github にあるライブラリを使うのにローカルにインストールして云々しようとして色々試していたら id:xuwei と id:j5ik2o に github にあるライブラリ、直接使えるよ m9(^Д^)プギャー と言われて涙目でした。 んで、 あんまり知られてないし、教えてやったんだからブログに書け!! と、id:j5ik2o に脅されたので涙目で書いているところです。 import sbt._ import sbt.Keys._ object ProjectBuild extends Build { lazy val root = Project( id = "root", base = file("."), settings = Project.defaultSettings ++ Seq( name := "coderwall-bot", organization := "o
Scala2.8から、Predefに<:<とか=:=とかが定義されていて、これなんだろ?とずーっと疑問だった訳ですよ。で、ついったーで質問投げてたらやっと理解できました。 教えて頂いた @ScalaTohoku さん、@okomok さん、@tioa さん、有り難うございました! "generalized type constraints"というヤツで、型パラメータに与えられた型が、特定の条件を満たす場合にのみ呼び出せるメソッドを定義できるというものです。しかもコンパイル時に静的にチェックされる!! これはスゴい!! What do <:<, <%<, and =:= mean in Scala 2.8, and where are they documented? - Stack Overflow =:=や<:<や<%<で特定の型のみ呼び出せるメソッドを定義する 具体的な例で説明します。
はじめに Akka Actorのask(?)まわりをソースコードリーディング でActor内で例外が発生するとFutureのSuccess/Failureには直接影響は及ぼさず、結果的にはtimeoutによってFailureになったことを確認した。 今回はその続きで、Actor内で例外が発生するとどうなるんだっけ?を見ていく。 今回のサンプルプログラム 今回はActorを2種類用意した。 mainプログラムからはSupervisorExceptionActorへ。そこからExceptionActorへ単に横流し。で、例外発生。 単純化のために?(ask)ではなくて!(tell)を使っている。 import akka.actor._ object Main extends App { val system = ActorSystem() try { val actor = system.ac
trait A object B extends A { println("B") } object C exetends A { println("C") } object Main { def main(args: Array[String]): Unit = { println("RUN") } } このとき、標準出力には RUN しか表示されません。 これをどうにか、明示的なアクセスなく B C RUN と表示されるようにしたいです。なんらかのかたちでアクセスされる前に初期化したいです。 特定のアノテーションをつけると、そのクラス・オブジェクトにアクセスして初期化してくれるとか、型パラメータAを指定したとき、そのサブクラスにアクセスできる、みたいな方法はないですか?
Scalaのビルドツールsbtには1.xからLanguage Server Protocol 3.0に対応したサーバモードが実装されており、常駐させたサーバに別プロセスから接続してコマンドを実行することができます。サーバモードはIDEやエディタプラグインのために実装されたものだと思いますが、sbtにはクライアントモードも実装されており、コマンドラインで動作を確認することもできます。 たとえばあるプロジェクトでsbtのプロセスを立ち上げておき、 $ sbt ... sbt:gitbucket> 別のターミナルから以下のようにしてコマンドを送信します。 $ sbt client clean ... [info] entering *experimental* thin client - BEEP WHIRR > compile サーバ側ではこんな感じのログが表示されます。 [info] new
scala> :paste // Entering paste mode (ctrl-D to finish) trait SuperMain extends App { def printClassName(): Unit println("Start") printClassName() println("Finish") } object Main1 extends SuperMain { def printClassName(): Unit = println("Main1") } object Main2 extends SuperMain { def printClassName(): Unit = println("Main2") } // Exiting paste mode, now interpreting. defined trait SuperMain define
F5 Sites DevCentral Connect & learn in our hosted community F5 Labs The latest threat intel and research to help protect your apps MyF5 Your key to everything F5, including support, registration keys, and subscriptions Partner Central Research and support for partners LearnF5 Guidance, insights, and how to use F5 products Contact F5 Contact F5 Sales Talk to an F5 sales representative Contact F5 Su
AirframeはScala向けのDIコンテナを中心とした様々な便利機能を提供するプロジェクトなのですが、最近airframe-httpとairframe-http-finagleというモジュールが追加され、Finagleを使ったWebアプリケーションを簡単に作れるようになったので感じを掴むために軽く試してみました。 まず、build.sbtの依存関係はこんな感じ。 libraryDependencies ++= Seq( "org.wvlet.airframe" %% "airframe-http" % "0.66", "org.wvlet.airframe" %% "airframe-http-finagle" % "0.66", "org.wvlet.airframe" %% "airframe" % "0.66" ) Webアプリケーションの実際の処理を作ります。ルーティングやパラ
「Scala言語らしさ」を理解しよう! オブジェクト指向と関数型プログラミングの融合とは? プログラミング言語Scalaの設計思想にあるという、オブジェクト指向と関数型プログラミングの融合(fusion)という理想と、それを掲げつつも現実主義的な点について、水島宏太(kmizu)さんが解説します。 kmizuと申します。株式会社ドワンゴでエンジニアを務めています。 最近では、毎年の新卒エンジニア向けScala研修の講師や、N予備校 プログラミングコースの一部教材のレビューといった教育、および研究等の面でも活動しています。 ドワンゴでは、私が入社した時点でScalaがかなり採用されており、社内にScalaをより深く広めることも職務の一環でした。私は2007年くらいの、Scalaがまだほとんど注目されていなかった頃からScalaを触り始めており、その縁で新卒エンジニア向けのScala研修資料作
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く