changeset 14:deecd8254ba8

rename
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Fri, 26 Jan 2018 14:34:14 +0900
parents 967fe50f1ef4
children 80767afba59c
files slides/20170116/slide.md slides/20170123/slide.md slides/20180116/slide.md slides/20180123/slide.md slides/20180126/slide.md
diffstat 5 files changed, 355 insertions(+), 342 deletions(-) [+]
line wrap: on
line diff
--- a/slides/20170116/slide.md	Fri Jan 26 14:16:04 2018 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,254 +0,0 @@
-title: 分散フレームワークakkaの調査
-author: Takahiro Shimizu
-profile:
-lang: Japanese
-
-
-# 調査目的
-* 先輩の修論の比較材料の為に行う
-* 分散フレームワークの1つであるakkaがどのような書き方、及び処理なのかを調査する
-
-# 調査内容
-* akkaのmac osx,ubuntu上の導入
-* [公式チュートリアル](https://developer.lightbend.com/guides/akka-quickstart-java/)の例題を行う
-* 今回はJavaで実行した
-
-# 環境構築
-
-* 公式からzipファイルで提供されているので落とす
-* 例題はGradleで実行できるように作成されているので `$ gradle run` を実行可能.
-
-# akkaの分散処理
-
-* akkaはアクターモデルを採用したフレームワーク
-    * アクターモデルでは「アクター」と呼ばれるオブジェクト同士がメッセージ通信を行うことで並列処理を実現する(イベント・ドリブン)
-    * publicなAPIを持っていない為,強力な分離機能を持っており、複数のJVMなどでも連携可能
-    * 環境透過性
-    * 軽量
-* JVM上で動き、ScalaとJavaをサポートしている
-
-# 例題(Hello,World)
-
-* 今回は公式チュートリアルにある、複数のアクターが挨拶をするHello Worldの例題を実行する
-* <img src="https://developer.lightbend.com/guides/akka-quickstart-java/images/hello-akka-architecture.png">
-
-* 実行結果
-
-```
-$ gradle run
-Starting a Gradle Daemon (subsequent builds will be faster)
-
-    > Task :run
-    >>> Press ENTER to exit <<<
-    [INFO] [01/16/2018 15:33:05.871] [helloakka-akka.actor.default-dispatcher-4] [akka://helloakka/user/printerActor] Howdy, Akka
-    [INFO] [01/16/2018 15:33:05.872] [helloakka-akka.actor.default-dispatcher-4] [akka://helloakka/user/printerActor] Howdy, Lightbend
-    [INFO] [01/16/2018 15:33:05.872] [helloakka-akka.actor.default-dispatcher-4] [akka://helloakka/user/printerActor] Good day, Play
-    [INFO] [01/16/2018 15:33:05.872] [helloakka-akka.actor.default-dispatcher-4] [akka://helloakka/user/printerActor] Hello, Java
-```
-
-# Hello World Actors
-
-* 例題のActorrは3種類のmessageを利用する
-
-* `WhoToGreet`
-    * greetingの受取用オブジェクト
-* `Greet`
-    * greetingの実行用
-* `Greeting` 
-    * `greeting`にメッセージを含める為の命令
-
-* 複数のスレッドで共有をする必要がある為、メッセージはimmutableでなければならない
-
-
-# Greeter Actor
-
-* `Greeter` のコンストラクタは、送信用メッセージと出力用のActorのリファレンスを必要とする
-* mainの中ではGreeterは複数呼ばれている
-
-```
-package com.lightbend.akka.sample;
-
-import akka.actor.AbstractActor;
-import akka.actor.ActorRef;
-import akka.actor.Props;
-import com.lightbend.akka.sample.Printer.Greeting;
-
-public class Greeter extends AbstractActor {
-  static public Props props(String message, ActorRef printerActor) {
-    return Props.create(Greeter.class, () -> new Greeter(message, printerActor));
-  }
-
-  static public class WhoToGreet {
-    public final String who;
-
-    public WhoToGreet(String who) {
-        this.who = who;
-    }
-  }
-
-  static public class Greet {
-    public Greet() {
-    }
-  }
-
-  private final String message;
-  private final ActorRef printerActor;
-  private String greeting = "";
-
-  public Greeter(String message, ActorRef printerActor) {
-    this.message = message;
-    this.printerActor = printerActor;
-  }
-
-  @Override
-  public Receive createReceive() {
-    return receiveBuilder()
-        .match(WhoToGreet.class, wtg -> {
-          this.greeting = message + ", " + wtg.who;
-        })
-        .match(Greet.class, x -> {
-          printerActor.tell(new Greeting(greeting), getSelf());
-        })
-        .build();
-  }
-}
-```
-
-# Printer Actor
-
-* `Logging.getLogger(getContext().getSystem(), this);` で各Actorが `log.info()` に追記していく
-* `Greeting` とlogsに対してhandleを所持している
-
-```
-package com.lightbend.akka.sample;
-
-import akka.actor.AbstractActor;
-import akka.actor.ActorRef;
-import akka.actor.Props;
-import akka.event.Logging;
-import akka.event.LoggingAdapter;
-
-public class Printer extends AbstractActor {
-  static public Props props() {
-    return Props.create(Printer.class, () -> new Printer());
-  }
-
-  static public class Greeting {
-    public final String message;
-
-    public Greeting(String message) {
-      this.message = message;
-    }
-  }
-
-  private LoggingAdapter log = Logging.getLogger(getContext().getSystem(), this);
-
-  public Printer() {
-  }
-
-  @Override
-  public Receive createReceive() {
-    return receiveBuilder()
-        .match(Greeting.class, greeting -> {
-            log.info(greeting.message);
-        })
-        .build();
-  }
-}
-```
-
-
-# Actorを作る
-
-* akkaはインスタンスを作る際に `new` を使わない。これはakkaのインスタンスがリファレンスである為 (`akka.actor.ActorRef`)である。
-    * その為、軽量かつ柔軟にシステムに組み込むことが可能である
-* akkaのActorは `akka.actor.ActorSystem` が管理する。(factoryなどとも呼ばれる)
-* 例題では次のようにakkaのインスタンスを作成している。
-
-```
-public class AkkaQuickstart {
-  public static void main(String[] args) {
-    final ActorSystem system = ActorSystem.create("helloakka");
-    try {
-      //#create-actors
-      final ActorRef printerActor =
-        system.actorOf(Printer.props(), "printerActor");
-      final ActorRef howdyGreeter =
-        system.actorOf(Greeter.props("Howdy", printerActor), "howdyGreeter");
-      final ActorRef helloGreeter =
-        system.actorOf(Greeter.props("Hello", printerActor), "helloGreeter");
-      final ActorRef goodDayGreeter =
-        system.actorOf(Greeter.props("Good day", printerActor), "goodDayGreeter");
-      //#create-actors
-```
-
-# メッセージ送信
-
-* akkaのメッセージ送信は `ActorRef`の`tell`メソッドを呼ぶ。
-
-```
-howdyGreeter.tell(new WhoToGreet("Akka"), ActorRef.noSender());
-howdyGreeter.tell(new Greet(), ActorRef.noSender());
-
-howdyGreeter.tell(new WhoToGreet("Lightbend"), ActorRef.noSender());
-howdyGreeter.tell(new Greet(), ActorRef.noSender());
-
-helloGreeter.tell(new WhoToGreet("Java"), ActorRef.noSender());
-helloGreeter.tell(new Greet(), ActorRef.noSender());
-
-goodDayGreeter.tell(new WhoToGreet("Play"), ActorRef.noSender());
-goodDayGreeter.tell(new Greet(), ActorRef.noSender());
-```
-
-* `Greeter` Actrorは `Printer` Actorにメッセージを送信している
-
-```
-printerActor.tell(new Greeting(greeting), getSelf());
-```
-
-# テスト
-
-* Javaで使われているのでテストはJUnitを利用できる
-* akkaaでは `akka.test.javadsl.TestKit` が用意されており, TestKit が推奨されている。
-* 詳しくは[公式ドキュメント](https://doc.akka.io/docs/akka/current/testing.html?language=java)を見ろということらしい…
-
-```
-`ckage com.lightbend.akka.sample;
-
-import akka.actor.ActorRef;
-import akka.actor.ActorSystem;
-import akka.testkit.javadsl.TestKit;
-import com.lightbend.akka.sample.Greeter.*;
-import com.lightbend.akka.sample.Printer.*;
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-public class AkkaQuickstartTest {
-    static ActorSystem system;
-
-    @BeforeClass
-    public static void setup() {
-        system = ActorSystem.create();
-    }
-
-    @AfterClass
-    public static void teardown() {
-        TestKit.shutdownActorSystem(system);
-        system = null;
-    }
-
-    @Test
-    public void testGreeterActorSendingOfGreeting() {
-        final TestKit testProbe = new TestKit(system);
-        final ActorRef helloGreeter = system.actorOf(Greeter.props("Hello", testProbe.getRef()));
-        helloGreeter.tell(new WhoToGreet("Akka"), ActorRef.noSender());
-        helloGreeter.tell(new Greet(), ActorRef.noSender());
-        Greeting greeting = testProbe.expectMsgClass(Greeting.class);
-        assertEquals("Hello, Akka", greeting.message);
-    }
-}
-```
--- a/slides/20170123/slide.md	Fri Jan 26 14:16:04 2018 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-title: 分散フレームワークakkaの調査
-author: Takahiro Shimizu
-profile:
-lang: Japanese
-
-
-# 調査目的
-* 先輩の修論の比較材料の為に行う
-* 分散フレームワークの1つであるakkaがどのような書き方、及び処理なのかを調査する
-
-
-# 今週の進捗
-* scalaの入門書を斜め読みした
-* akkaの公式チュートリアルを行った
-* Graphでn入力1出力のアクターモデルが生成出来ることを調べた
-    * ドキュメントの例題を実行した
-
-# 調査内容
-* akkaのmac osx,ubuntu上の導入
-* [公式チュートリアル](https://developer.lightbend.com/guides/akka-quickstart-java/)の例題を行う
-* 前回はJavaで実行した
-    * scalaで今回再調査を行いました
-
-# scala環境の構築
-* brewやaptで導入した
-* scalaという名前のパッケージもあるが、sbtで導入する
-    * `~/.sbt` 以下のディレクトリにバージョンごと入る為、適切に処理しないと競合する
-
-# akkaでn入力の処理
-* [GraphDSL](https://doc.akka.io/docs/akka/current/stream/stream-graphs.html?language=scala#constructing-graphs)系の命令を利用すると実行可能
-* [Github上の別のサンプル](https://github.com/pkinsky/akka-streams-example)
-
-# 出力系
-* Broadcast[T] 
-    * (1input N output) 1入力に対して全てのoutputに渡す
-* Balance[T]
-    * (1input N outputs) outputを1つ指定して出力をする
-* unzipWith[In,A,B..]
-    * 関数を受取,20までの各要素に対して実行する
-* unZip[A,B]
-    * Tupleを分割して、2つのoutputに対して送る
-
-# input系
-* Merge[In]
-* MergePreferred[In]
-* MergePrioritized[In]
-* ZipWith[A,B,...,Out]
-* Zip[A,B]
-* Concat[A]
-
-# チュートリアル
-
-```scala
-package merger
-
-import akka.NotUsed
-import akka.actor.ActorSystem
-import akka.routing.Broadcast
-import akka.stream.{ClosedShape, OverflowStrategy}
-import akka.stream.scaladsl.{Flow, GraphDSL, Merge, RunnableGraph, Sink, Source}
-
-
-object merger extends App {
-  val system: ActorSystem = ActorSystem("mergeAkka")
-
-  val g = RunnableGraph.fromGraph(GraphDSL.create() { implicit builder: GraphDSL.Builder[NotUsed] =>
-    import GraphDSL.Implicits._
-    val in = Source(1 to 10)
-    val out = Sink.ignore
-
-    val bcast = builder.add(Broadcast[Int](2))
-    val merge = builder.add(Merge[Int](2))
-
-    val f1, f2, f3, f4 = Flow[Int].map(_ + 10)
-
-    in ~> f1 ~> bcast ~> f2 ~> merge ~> f3 ~> out
-    bcast ~> f4 ~> merge
-    ClosedShape
-  })
-
-}
-
-```
-
-# 詰まっている所
-
-* 公式のサンプルコードを動かそうとすると型エラーが発生する
-* コンパニオンオブジェクトの書き方があまり理解できていない
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/20180116/slide.md	Fri Jan 26 14:34:14 2018 +0900
@@ -0,0 +1,254 @@
+title: 分散フレームワークakkaの調査
+author: Takahiro Shimizu
+profile:
+lang: Japanese
+
+
+# 調査目的
+* 先輩の修論の比較材料の為に行う
+* 分散フレームワークの1つであるakkaがどのような書き方、及び処理なのかを調査する
+
+# 調査内容
+* akkaのmac osx,ubuntu上の導入
+* [公式チュートリアル](https://developer.lightbend.com/guides/akka-quickstart-java/)の例題を行う
+* 今回はJavaで実行した
+
+# 環境構築
+
+* 公式からzipファイルで提供されているので落とす
+* 例題はGradleで実行できるように作成されているので `$ gradle run` を実行可能.
+
+# akkaの分散処理
+
+* akkaはアクターモデルを採用したフレームワーク
+    * アクターモデルでは「アクター」と呼ばれるオブジェクト同士がメッセージ通信を行うことで並列処理を実現する(イベント・ドリブン)
+    * publicなAPIを持っていない為,強力な分離機能を持っており、複数のJVMなどでも連携可能
+    * 環境透過性
+    * 軽量
+* JVM上で動き、ScalaとJavaをサポートしている
+
+# 例題(Hello,World)
+
+* 今回は公式チュートリアルにある、複数のアクターが挨拶をするHello Worldの例題を実行する
+* <img src="https://developer.lightbend.com/guides/akka-quickstart-java/images/hello-akka-architecture.png">
+
+* 実行結果
+
+```
+$ gradle run
+Starting a Gradle Daemon (subsequent builds will be faster)
+
+    > Task :run
+    >>> Press ENTER to exit <<<
+    [INFO] [01/16/2018 15:33:05.871] [helloakka-akka.actor.default-dispatcher-4] [akka://helloakka/user/printerActor] Howdy, Akka
+    [INFO] [01/16/2018 15:33:05.872] [helloakka-akka.actor.default-dispatcher-4] [akka://helloakka/user/printerActor] Howdy, Lightbend
+    [INFO] [01/16/2018 15:33:05.872] [helloakka-akka.actor.default-dispatcher-4] [akka://helloakka/user/printerActor] Good day, Play
+    [INFO] [01/16/2018 15:33:05.872] [helloakka-akka.actor.default-dispatcher-4] [akka://helloakka/user/printerActor] Hello, Java
+```
+
+# Hello World Actors
+
+* 例題のActorrは3種類のmessageを利用する
+
+* `WhoToGreet`
+    * greetingの受取用オブジェクト
+* `Greet`
+    * greetingの実行用
+* `Greeting` 
+    * `greeting`にメッセージを含める為の命令
+
+* 複数のスレッドで共有をする必要がある為、メッセージはimmutableでなければならない
+
+
+# Greeter Actor
+
+* `Greeter` のコンストラクタは、送信用メッセージと出力用のActorのリファレンスを必要とする
+* mainの中ではGreeterは複数呼ばれている
+
+```
+package com.lightbend.akka.sample;
+
+import akka.actor.AbstractActor;
+import akka.actor.ActorRef;
+import akka.actor.Props;
+import com.lightbend.akka.sample.Printer.Greeting;
+
+public class Greeter extends AbstractActor {
+  static public Props props(String message, ActorRef printerActor) {
+    return Props.create(Greeter.class, () -> new Greeter(message, printerActor));
+  }
+
+  static public class WhoToGreet {
+    public final String who;
+
+    public WhoToGreet(String who) {
+        this.who = who;
+    }
+  }
+
+  static public class Greet {
+    public Greet() {
+    }
+  }
+
+  private final String message;
+  private final ActorRef printerActor;
+  private String greeting = "";
+
+  public Greeter(String message, ActorRef printerActor) {
+    this.message = message;
+    this.printerActor = printerActor;
+  }
+
+  @Override
+  public Receive createReceive() {
+    return receiveBuilder()
+        .match(WhoToGreet.class, wtg -> {
+          this.greeting = message + ", " + wtg.who;
+        })
+        .match(Greet.class, x -> {
+          printerActor.tell(new Greeting(greeting), getSelf());
+        })
+        .build();
+  }
+}
+```
+
+# Printer Actor
+
+* `Logging.getLogger(getContext().getSystem(), this);` で各Actorが `log.info()` に追記していく
+* `Greeting` とlogsに対してhandleを所持している
+
+```
+package com.lightbend.akka.sample;
+
+import akka.actor.AbstractActor;
+import akka.actor.ActorRef;
+import akka.actor.Props;
+import akka.event.Logging;
+import akka.event.LoggingAdapter;
+
+public class Printer extends AbstractActor {
+  static public Props props() {
+    return Props.create(Printer.class, () -> new Printer());
+  }
+
+  static public class Greeting {
+    public final String message;
+
+    public Greeting(String message) {
+      this.message = message;
+    }
+  }
+
+  private LoggingAdapter log = Logging.getLogger(getContext().getSystem(), this);
+
+  public Printer() {
+  }
+
+  @Override
+  public Receive createReceive() {
+    return receiveBuilder()
+        .match(Greeting.class, greeting -> {
+            log.info(greeting.message);
+        })
+        .build();
+  }
+}
+```
+
+
+# Actorを作る
+
+* akkaはインスタンスを作る際に `new` を使わない。これはakkaのインスタンスがリファレンスである為 (`akka.actor.ActorRef`)である。
+    * その為、軽量かつ柔軟にシステムに組み込むことが可能である
+* akkaのActorは `akka.actor.ActorSystem` が管理する。(factoryなどとも呼ばれる)
+* 例題では次のようにakkaのインスタンスを作成している。
+
+```
+public class AkkaQuickstart {
+  public static void main(String[] args) {
+    final ActorSystem system = ActorSystem.create("helloakka");
+    try {
+      //#create-actors
+      final ActorRef printerActor =
+        system.actorOf(Printer.props(), "printerActor");
+      final ActorRef howdyGreeter =
+        system.actorOf(Greeter.props("Howdy", printerActor), "howdyGreeter");
+      final ActorRef helloGreeter =
+        system.actorOf(Greeter.props("Hello", printerActor), "helloGreeter");
+      final ActorRef goodDayGreeter =
+        system.actorOf(Greeter.props("Good day", printerActor), "goodDayGreeter");
+      //#create-actors
+```
+
+# メッセージ送信
+
+* akkaのメッセージ送信は `ActorRef`の`tell`メソッドを呼ぶ。
+
+```
+howdyGreeter.tell(new WhoToGreet("Akka"), ActorRef.noSender());
+howdyGreeter.tell(new Greet(), ActorRef.noSender());
+
+howdyGreeter.tell(new WhoToGreet("Lightbend"), ActorRef.noSender());
+howdyGreeter.tell(new Greet(), ActorRef.noSender());
+
+helloGreeter.tell(new WhoToGreet("Java"), ActorRef.noSender());
+helloGreeter.tell(new Greet(), ActorRef.noSender());
+
+goodDayGreeter.tell(new WhoToGreet("Play"), ActorRef.noSender());
+goodDayGreeter.tell(new Greet(), ActorRef.noSender());
+```
+
+* `Greeter` Actrorは `Printer` Actorにメッセージを送信している
+
+```
+printerActor.tell(new Greeting(greeting), getSelf());
+```
+
+# テスト
+
+* Javaで使われているのでテストはJUnitを利用できる
+* akkaaでは `akka.test.javadsl.TestKit` が用意されており, TestKit が推奨されている。
+* 詳しくは[公式ドキュメント](https://doc.akka.io/docs/akka/current/testing.html?language=java)を見ろということらしい…
+
+```
+`ckage com.lightbend.akka.sample;
+
+import akka.actor.ActorRef;
+import akka.actor.ActorSystem;
+import akka.testkit.javadsl.TestKit;
+import com.lightbend.akka.sample.Greeter.*;
+import com.lightbend.akka.sample.Printer.*;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class AkkaQuickstartTest {
+    static ActorSystem system;
+
+    @BeforeClass
+    public static void setup() {
+        system = ActorSystem.create();
+    }
+
+    @AfterClass
+    public static void teardown() {
+        TestKit.shutdownActorSystem(system);
+        system = null;
+    }
+
+    @Test
+    public void testGreeterActorSendingOfGreeting() {
+        final TestKit testProbe = new TestKit(system);
+        final ActorRef helloGreeter = system.actorOf(Greeter.props("Hello", testProbe.getRef()));
+        helloGreeter.tell(new WhoToGreet("Akka"), ActorRef.noSender());
+        helloGreeter.tell(new Greet(), ActorRef.noSender());
+        Greeting greeting = testProbe.expectMsgClass(Greeting.class);
+        assertEquals("Hello, Akka", greeting.message);
+    }
+}
+```
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/20180123/slide.md	Fri Jan 26 14:34:14 2018 +0900
@@ -0,0 +1,88 @@
+title: 分散フレームワークakkaの調査
+author: Takahiro Shimizu
+profile:
+lang: Japanese
+
+
+# 調査目的
+* 先輩の修論の比較材料の為に行う
+* 分散フレームワークの1つであるakkaがどのような書き方、及び処理なのかを調査する
+
+
+# 今週の進捗
+* scalaの入門書を斜め読みした
+* akkaの公式チュートリアルを行った
+* Graphでn入力1出力のアクターモデルが生成出来ることを調べた
+    * ドキュメントの例題を実行した
+
+# 調査内容
+* akkaのmac osx,ubuntu上の導入
+* [公式チュートリアル](https://developer.lightbend.com/guides/akka-quickstart-java/)の例題を行う
+* 前回はJavaで実行した
+    * scalaで今回再調査を行いました
+
+# scala環境の構築
+* brewやaptで導入した
+* scalaという名前のパッケージもあるが、sbtで導入する
+    * `~/.sbt` 以下のディレクトリにバージョンごと入る為、適切に処理しないと競合する
+
+# akkaでn入力の処理
+* [GraphDSL](https://doc.akka.io/docs/akka/current/stream/stream-graphs.html?language=scala#constructing-graphs)系の命令を利用すると実行可能
+* [Github上の別のサンプル](https://github.com/pkinsky/akka-streams-example)
+
+# 出力系
+* Broadcast[T] 
+    * (1input N output) 1入力に対して全てのoutputに渡す
+* Balance[T]
+    * (1input N outputs) outputを1つ指定して出力をする
+* unzipWith[In,A,B..]
+    * 関数を受取,20までの各要素に対して実行する
+* unZip[A,B]
+    * Tupleを分割して、2つのoutputに対して送る
+
+# input系
+* Merge[In]
+* MergePreferred[In]
+* MergePrioritized[In]
+* ZipWith[A,B,...,Out]
+* Zip[A,B]
+* Concat[A]
+
+# チュートリアル
+
+```scala
+package merger
+
+import akka.NotUsed
+import akka.actor.ActorSystem
+import akka.routing.Broadcast
+import akka.stream.{ClosedShape, OverflowStrategy}
+import akka.stream.scaladsl.{Flow, GraphDSL, Merge, RunnableGraph, Sink, Source}
+
+
+object merger extends App {
+  val system: ActorSystem = ActorSystem("mergeAkka")
+
+  val g = RunnableGraph.fromGraph(GraphDSL.create() { implicit builder: GraphDSL.Builder[NotUsed] =>
+    import GraphDSL.Implicits._
+    val in = Source(1 to 10)
+    val out = Sink.ignore
+
+    val bcast = builder.add(Broadcast[Int](2))
+    val merge = builder.add(Merge[Int](2))
+
+    val f1, f2, f3, f4 = Flow[Int].map(_ + 10)
+
+    in ~> f1 ~> bcast ~> f2 ~> merge ~> f3 ~> out
+    bcast ~> f4 ~> merge
+    ClosedShape
+  })
+
+}
+
+```
+
+# 詰まっている所
+
+* 公式のサンプルコードを動かそうとすると型エラーが発生する
+* コンパニオンオブジェクトの書き方があまり理解できていない
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/20180126/slide.md	Fri Jan 26 14:34:14 2018 +0900
@@ -0,0 +1,13 @@
+title: 分散フレームワークakkaの調査
+author: Takahiro Shimizu
+profile:
+lang: Japanese
+
+
+# 調査目的
+* 先輩の修論の比較材料の為に行う
+* 分散フレームワークの1つであるakkaがどのような書き方、及び処理なのかを調査する
+
+# 今週の進捗
+* コンパイラと共通の課題をやっていました
+* ゼミ資料を良い感じに作るスクリプトとかを組んでました