タグ

qiitaとscalaに関するnabinnoのブックマーク (172)

  • JavaScriptのPromiseとScalaのPromiseは別物で、むしろScalaのFutureが似てる話 - Qiita

    JavaScriptにもScalaにもPromiseという機能がありますが、全く内容が違って、しかもScalaのFutureがむしろJavaScriptのPromiseに似た機能なのでそれを整理します。 基的には、言語によってちょっと違うFuture/Promiseをまとめてみたのシリーズの内容をはしょったものです。 まずはJavaScriptのPromiseは、非同期処理自体を抽象化したものとなっております。しかも、thenというPromiseを更に関数を適用して得たでPromiseでPromiseChainを書くことも可能です。 詳しくは、AzuさんのPromiseのが詳しく書かれていますが、簡単な実装例で言うと、 function doubleUp(value) { return value * 2; } function increment(value) { return va

    JavaScriptのPromiseとScalaのPromiseは別物で、むしろScalaのFutureが似てる話 - Qiita
  • Scala - Slick 2.0 で SQLite に接続してみる - Qiita

    name := "SlickTest" version := "0.1" scalaVersion := "2.10.3" libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % "2.0.2", "org.slf4j" % "slf4j-nop" % "1.6.4", "org.xerial" % "sqlite-jdbc" % "3.7.2" ) import scala.slick.driver.SQLiteDriver.simple._ import java.io.File object SlickTestMain { // database フォルダの test.sqlite3 ファイルをデータベースとして使用 val DatabasePath = "./database/test.sqlite3" // デ

    Scala - Slick 2.0 で SQLite に接続してみる - Qiita
  • Scala.jsで触るServiceWorker - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Scala.jsで触るServiceWorker - Qiita
  • [scala]なぜListではなくSeqを使うべきなのか - Qiita

    Listは使わずにSeqにしなさいとよく言われるけど、何故そうなのかはいまいちよくわかってなかったので、調べました。基的な内容です。 そもそもSeqとは Seq(scala.collection.Seq)は、Iterableのうち順序を持つものを指します。 全てのcollectionはIterableであるので、順序がある(要素にindexでアクセスできる)コレクションは全てSeqです。(SeqでないコレクションにはMapやSetがあります) Seqはscala.collection下にあるので、VectorだろうとMutableListだろうとSeqです。メソッドや関数の引数の型には、特別な理由がない限り、取りうる型の範囲を狭めてしまうListなどよりSeqを指定したほうが良さそうです。 scala> Seq res0: scala.collection.Seq.type = scal

    [scala]なぜListではなくSeqを使うべきなのか - Qiita
  • Hello Akka! 自分用日本語訳 - Qiita

    はじめに Play Frameworkのactivatorについてるサンプル"Hello Akka!"のテキストを(かなり雑に)日語に訳しました。各章がactivator uiに表示される説明テキストのページに対応してます。自分が勉強するついでに日語訳したものでスーパー雑です!あとオリジナルのテキストにはJavaScalaのそれぞれのソースに対する説明が併記されてますが、Java向けの説明は訳してません。 Source Code Akkaは高度な並列分散、fault-tolerantでイベントドリブンなアプリケーションをJVM上に構築するツールキットとランタイムだ。AkkaはJavaScalaどちらでも使える。Akkaのもっとも強力な機能はアクターモデルによる並列性で、このチュートリアルではそれについて学ぶ。 チュートリアルで扱うサンプルはとてもシンプルだ。サンプルではGreete

    Hello Akka! 自分用日本語訳 - Qiita
  • Akka vs Erlang - Qiita

    Akka vs Erlang Erlang Advent Calendar 2014の22日目です。よろしくお願いいたします。 最近すごいErlangゆかいに学ぼう!を読んだので、Akkaとの違いをまとめてみることにしました。 AkkaもErlangもアマチュアなので正しくない部分があるかもしれません。その場合はご指摘ください。 Erlangは特に素人で、AkkaのactorとErlangのプロセス間でメッセージパッシングしてみたの記事で初めて「-compile(export_all)」でないプログラムを書いたレベルです。 Akkaとは AkkaはErlangにインスパイヤされて制作されたオープンソースのライブラリです。 アクターモデルで並行処理を記述し、スーパーバイザーツリーにより高度な耐障害性を実現し、また分散システムを実装してくれるのを助けてくれる、そのようなフレームワークとなってい

    Akka vs Erlang - Qiita
  • Finagleでサーバープログラミング - Qiita

    この記事はScala Advent Calendar 2014の20日目です。 よろしくお願いします。 はじめに latencyが短く、かつ大規模アクセスにも耐えられるサーバー環境の構築が必要になる場合があります。 例えば、広告系のシステムだと入札/応札するようなサーバーでは100msとか50msとか以内にレスポンスを返さなければいけません。 このようなサーバーを書くために、Scalaではいくつか選択肢があるかと思います。 自分の会社では、その中でFinagleを使ってAdServerを書いています。 この記事ではFinagleの簡単な紹介と、Finagleがサーバーをどのように動かしているのかについて書きたいと思います。 Finagle Finagleは、Twitterが開発したOSSのRPCシステムです(御存知の通り)。こちらにもあるように、RPCライブラリそのものではありません。 裏

    Finagleでサーバープログラミング - Qiita
  • scalac にもっと警告してもらう - Qiita

    これはScala Advent Calendar 2014 6日目の記事です。 Scala はコンパイルが遅いことで有名ですが、コンパイルの嬉しいところは、実行前に沢山のプログラムミスやミスっぽいものをキャッチできることです。 C を書くときは -Wall -Wextra -Wpedantic あたりをつけるとたくさん警告だしてくれてありがたいですね。Scala の場合もたくさん警告出して欲しい。scalac 2.11.4 にある警告関連のオプションを見てみましょう。 オプションの区分 とその前に、scalac オプションの区分についておさらいです。オプションは -X や -Y 以外から始まる普通のオプション -X から始まる advanced オプション -Y から始まる private オプション に分類されています。それぞれ scalac -help, scalac -X, scal

    scalac にもっと警告してもらう - Qiita
  • finagleとthriftでmicro-servicesを作る - Qiita

    こんにちは、 今回は個人的に注目しているfinagleとthriftを使って簡単なmicro-servicesの作成を行うチュートリアルを紹介します。 finagleについてはseratchさんの翻訳、Scalaのmicro services事例はokapiesさんのエントリが詳しいと思います。 題材 日語も検索できる全文検索サービスを作ります。POSTでデータを入れて、GETでヒットしたドキュメントを表示するといった簡単な仕様です。 twitterscalaチュートリアルにsearchbird というfinagleとthriftを使って検索エンジンを作るチュートリアルがありました。 searchbirdは更新されておらず動かない+古いということでもとに紹介したいと思います。 また、micro-servicesっぽい構成にするために無理矢理ですが、3つのサーバに分けました。 キャッシュ

    finagleとthriftでmicro-servicesを作る - Qiita
  • 初心者のうちに知っておきたかったScalaのこと - Qiita

    自分は今年に業務でScalaを使い始めて格的にはじめたのですが、入門した時に早めに知っておきたかったScalaのTipsを紹介しようと思います。 これらを早く知っていれば今後の負債を減らせるかもしれませんよ。 コード規約系 Scalaに限らずソースコードは書いた人の癖が非常に出やすいのでif(){}の{}位置など比較的どうでもいいことでチーム開発では揉めてしまいことがあります。 Scalariform コーディング規約を設定ファイルに書き込むとコンパイルするたびにオートフォーマットしてくれます。 導入もsbtのライブラリを追加するだけで非常に簡単なのでおすすめです 依存性 scalaのobjectは便利だけど、テストが大変です… 弊社のアプリケーションはslickのDAOが全部objectで構成されていてビジネスロジックばりばり書いてあったのでモックを差し替えることができずにテストの際に

    初心者のうちに知っておきたかったScalaのこと - Qiita
  • Sprayでログの設定をする - Qiita

    Sprayを利用したアプリケーションの実装を行う際、ログ出力は必須となりますが、そのあたりに関する設定のメモ。 日語でSprayの記事って少ないですね。 LoggingContextにありますが、AkkaのLoggingAdapterをラップしてるようです。したがって、Akkaと同じ設定で利用できます。 ちなみに、ビルドにはsbtを利用している前提です。 logback.xml logback.xmlをsrc/main/resourcesに置きます。内容はLogbackのための設定なので、詳細については別の資料とかを見たほうが良いかと。 サンプルで、以下のを用意しました。 <configuration> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>application-debug.log</

    Sprayでログの設定をする - Qiita
  • Vagrant+Chef-Soloで、Play Frameworkが実行できる環境を作る - Qiita

    Amazon.co.jp: 入門Chef Solo - Infrastructure as Code eBook: 伊藤直也: Kindleストア をひと通り読んだので、Vagrant上のCentOSにPlay Frameworkが実行可能な環境を構築するレシピを作ってみました。 レシピ 実行手順はリンク先のREADMEに書いたので、軽く概要をまとめる程度にしたいと思います。(こうして書いてみると意外とやること多いのと、レシピを書く、人のレシピを使う際に色々用語が出てきて、一気にやると混乱すると思うので。) VM and Vagrant CentOSな仮想環境を構築するために使用。 設定はVagrantfileに書く。 Vagrantfileにシェルを書いて実行も出来るみたいだが、ここに色々書くのは無理があると思うので、Chef-Soloを使った次第。 Vagrantfileの設定項目 ・

    Vagrant+Chef-Soloで、Play Frameworkが実行できる環境を作る - Qiita