Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに ETHの相場が高騰しており、相場を確認するたびに楽しい気分になる昨今ですが、Ethereumファンの皆様や暗号通貨評論家の各位やブロックチェーンマニアの諸兄姉には、いかがお過ごしでしょうか。 さてこの記事では、そんな楽しい流れとはさほど関係なく、Ethereum Yellow Paper、Ethereum RLPx、Ethereum Node Discovery Protocol、DEV P2P Wire Protocol、Ethereum Wire Protocol PV61、等々のEthereumの主要な仕様をScalaで
最近はGoやScalaでサービスを開発したり、既存のシステムを置き換えたりする事例が増えてきてますよね。私も仕事ではruby/railsがメインなのですが、新しくアプリケーションを開発するにあたって別の言語・フレームワークを検討する機会があり、少しだけScala(とJava)のフレームワークPlayを触ったので、**Railsでいう◯◯はPlayではどうやるの?**という点をまとめたいと思います。 ちなみに、この記事を書いてる時点で筆者のScala歴・Play歴は10時間くらいですので、「Play Framework入門」と銘打ったものの、「Play Framework紹介」に近いかもしれませんwご了承ください。 サンプルコード 以下ではこちらのコードから色々抜粋して貼り付けてます。 https://github.com/suzan2go/hello_play 公式のScalaToDoLi
紹介 この投稿は、Advent Calendar 2015 .. NextGen DistributedComputing system をキッカケにして初めています! Advent Calendar1日目の記事です。 方針について Spark、SparkStreamingが初めての方でも順を追っていただければスムーズに理解できるよう書きたいと思います。 開発はScalaベースです。Spark処理を書くためにScalaガッツり使いこなせないと分からないわけではないですが、 基本的なことは必要かと思います。 Scala基礎を習得するためには下記リンク先を参照することをお勧めいたします。 https://gist.github.com/scova0731/2c405ea55488d804b366 SparkStreamingの紹介 SparkStreamingとは Sparkコアの拡張モジュー
前置き Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 Minimal Cake Pattern のお作法 これらの記事で mix-in injection 1 を導入し、プロダクション用インスタンスの構築方法を解説しましたが、テスト用インスタンスの構築については言及がありませんでした。所詮テストだしどう書いてもいいのですが、短く綺麗に書くための tips も紹介します。このパターンはいろんな人によりだんだん洗練されていったもので、まだ改善の余地があるかもしれません。 ここでは Scala + Scalatest + Mockito の利用を想定します。別の言語・フレームワークでも使い回せる部分があるかもしれないし、ないかもしれません。 テストの書き方 まずは簡単に実装例を示します。 case clas
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? TungstenのShuffleまでカバーされていて、感動してしまったので、翻訳(意訳)してみました。 元記事: Spark Architecture: Shuffle Spark Architecture: Shuffle これは Apache Spark のアーキテクチャに関する2本目の記事です。今回は、Spark デザインの中で、もっと面白い Shuffle について詳しく紹介します。前回の記事は、Spark のアーキテクチャとメモリ管理についてでした。 一般的に Shuffle とはなんでしょうか? 電話の履歴リストがテーブルに
本記事は TIS Engineer Advent Calendar 2015 23日目の記事です。 はじめに Akka で分散システムを構築したときに、分散された複数のアクター間で常に更新されるデータを共有することを考えます。DBを使わずにやろうとすると、共有データを管理するためのアクターを1つ作っておき、常にそのアクターにデータの取得と更新を依頼するという方法が思いつきます。しかし、この方法ではデータを共有するためのアクターが単一障害点になってしまうということと、その部分のスケーラビリティを確保できないという問題があります。 耐障害性とスケーラビリティを確保したまま、Akkaのアクター間でデータを共有するにはどうすれば良いのでしょうか?こういうケースでは Akka の Distributed Data というモジュールが使えます。Distributed Data を使うと、DBを使わずに
sealed trait Freer[F[_], A] { def map[B](f: A => B): Freer[F, B] = flatMap(a => Pure(f(a))) def flatMap[B](f: A => Freer[F, B]): Freer[F, B] = this match { case Pure(a) => f(a) case Impure(fa, g) => Impure(fa, (a: Any) => g(a).flatMap(f)) } } case class Pure[F[_], A](a: A) extends Freer[F, A] case class Impure[F[_], A, B](fa: F[A], f: A => Freer[F, B]) extends Freer[F, B]
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? マイクロサービスにおける障害と Failurewall こちらは Scala Advent Calendar 2015 25日目の記事です。 Scalist の皆さん、一年間お疲れさまでした。 当記事の目的はマイクロサービス(に限らないですが)における失敗の怖さについて説明することと、それを克服するためのライブラリ、Failurewall を紹介することです。 障害は怖い 障害の連鎖 現代的な Web アプリケーションは多くの依存を抱えています。MySQL のようなデータベースに依存することもあれば、Twitter API のような外部
特に Scala 初心者だったとき、Scala を始めようとして「なかなか jar ファイルが落ちてこなくてコードが書き始められない」という問題に遭遇したことがある方も多いのではないかと思います。Advent Calendar の穴埋めのネタとして、それについて少し説明してみようと思います。 参考:下り 60Mbps での結果 http://qiita.com/seratch@github/items/0df29e637a9f9b3d7dec sbt (Scala Build Tool) まず前提として Scala のビルドツールは Gradle や Maven も利用可能ですが、Typesafe 社が開発している sbt というビルドツールが主流です。 この記事時点での最新バージョンは 0.13.9 です。 https://github.com/sbt/sbt/releases このとこ
斬新なアドベントカレンダーで毎回楽しみに拝読していましたが、ポッカリと 20 日目だけが空いていることに気づき、何か書こうと思い立って登録しました。しかし、一つ重要なことを見落としていたことに気づきます。 にわかどころか、一般人レベルの知識すら怪しい・・ これまで 30 年以上もろくにさだまさしさんのことを知らないまま生きてきてしまったので、一般人レベルの知識かそれ以下しか持ち合わせていないことに気づきました。 お恥ずかしながら「さだまさしの曲名を 10 挙げてみろ」と言われただけで「もうお手上げです・・」となりかねないという体たらくです。「神田川」がさだまさしではなく南こうせつの曲であることはさすがに存じ上げておりましたが、基本的にはズブの素人といっていいレベルです。 この有り様では、このアドベントカレンダーに参加されている他のさだまさしマニアの方々はもちろんのこと、このアドベントカレン
TL;DR アドホック多相は型クラスじゃなくても実現できる。 Haskell, Rust, Scalaでは後付けで拡張できるけど、それはアドホック多相の本質ではない。 アドホック多相(Ad hoc polymorphism) ウィキペディアは辞書ではないのはわかっていますが、それでも 英語版WikipediaのAd hoc polymorphismのページを参考に挙げておきます。 ざっくりまとめると 型階層上は関連性のない複数の型の引数に適用できる、多相的な関数 引数の型に応じて、個別の(アドホックな)実装にディスパッチされる と、それだけのこと。 「引数の型によって別の実装にディスパッチされるって、それメソッドのオーバーロードと何が違うの」ってことなんですけど、特に違いはありません。同じです。とはいえ、プログラミング言語によって、実現方法や使い勝手は違います。そのあたりのことを、いくつか
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに Scalaの勉強を始めた時にJavaやRubyと比べると情報量が少なく苦戦したので、今まで調べたことや経験者から聞いた情報などをまとめてみようと思います。 私自身まだまだ初心者ですが、これからScalaやってみようかなと思っている人の参考になれば幸いです。 WEBサイトで勉強する ScalaのインストールやHelloWorldなどは検索するとすぐ見つかるので割愛します。 Scala特有の記法や概念などを勉強するのに以下のサイトが参考になりました。 技術系 ひしだま's 技術メモページ - Scala Qiita - やってみよ
はじめに ScalaはJavaと違って共変・反変が定義できるため、型パラメータの取り扱いが一段と複雑になっている(なおJavaでは配列のみ共変の振る舞い)。 Scaladocを読んでは[+A]、[-B]、[A1 >: A]、[B1 <: B]のようなものを華麗にスルーする毎日にさよならをつげるためにまとめてみた。 ※なお、共変・反変・上限境界・下限境界とはなにか、どんな効能があるのかについては事前に知っているものとし細かい説明は省略している。 とりあえず先にまとめておくと、これを覚えておけばScalaにおける型パラメータを使ったプログラムにおいて困ることはだいぶ減ると思う。 以降でそれぞれの理由を見ていくことにする。 変位 指定可能位置 制約 制約突破条件
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? ついに アクター について語る時がきました。 Scalaの醍醐味の一つです。 そして難しいです。。。 でも、アクターを使うと並列処理を扱うことが簡単になります。 ただアクターには色々な種類があるので、そこが簡単じゃないかも。。。 アクターの歴史 2.9のアクターは知らないんだけど、2.10からは標準のscala.actorパッケージが非推奨になっていて 今後削除されるみたいなんだ。 そして、今後はAkkaのアクターを使うことが推奨されている。 The Scala Actors API Akkaとは Typesafe社が開発していて、高い
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く