まーぽんって誰がつけたの?

iOS→Scala→インフラなおじさん技術メモ

Scala

Play FrameworkのRequest.remoteAddressの値が突然変わった

現象 あるサービスの仕組みで処理結果を通知してくるために、自サーバーのapiをたたきにくるときがある。この際に、サーバー側では本当にそのサービスからのリクエストかどうかをみるために、あらかじめIPアドレスを設定しておいてvalidateしてるが、あるリ…

sbt testが途中で止まってしまうのを調査する

状況 という状態になってしまって困った。sbtがグローバルで利用するsbtoptsもプロジェクト共通で指定してるやつがあって他の人は問題なさそうとのこと。ただ、OutOfMemoryなのでJVMのステータスみたいのが見たいと思って調べ始めた。 :dancers: JVMのパフォ…

scala.PartialFunction condOpt を使おう

同僚に教えて貰った。 scala.PartialFunction condOpt を使おうに書いてあるサンプルを見るとわかる。 ポイントは match式を使っていて そのmatch式の戻り値の型がOption 先頭からmatchさせていったとき、一番最後以外のmatchした場合については、明示的にSo…

ScalaでHTTPクライアントのライブラリは何を使えばいいのかと思ってAkkaを調べる

scalaのhttpクライアント 今までPlayしかやったことないからWSしか知らなくて、Playじゃないやつでhttpクライアント的なライブラリって何を使えばいいんだろうってのがスタート。Comparing Scala's HTTP client libraries - implicitdefとか見てdispatchって…

Future.sequenceは1つずつ順番に実行される訳じゃない

sequenceっていう名前からどうしても順序を意識してしまって順番に(直列に)実行されるものだと思っていた。 でもそうじゃなかった。 Future.applyの場合 ためしに、こんな処理を書いてみる。1から10までを1s待って出力するだけのやつ。 def process: Futur…

Scalaやったことないけど始めてみたいと思ってる人へのオススメ環境作り

とりあえずScalaをhomebrewとかでインストールすればREPLで実行できるけど、やっぱりIDEとか使った方がやりやすいです。その環境を作るのも結構簡単なのでそれを紹介。僕も始めて2ヶ月ぐらいなので、これからScalaに入門してみたいって人向けの記事です。 In…

Scalaでprintlnの括弧はなぜ省略できない?

Scalaだとメソッド呼び出しで、ドットと括弧は省略できるって教えてもらったんだけど、printlnの括弧は省略すると怒られる。具体的にはこう // OK println("Hello, world!") // NG println "Hello, world!" なんでだろうーと思いながらググっても出てこない…

Scalaでcase classのメンバーを更新する

Scalaを始めて1ヶ月ぐらいたったので、つまづいたところをまとめていこうと思う。 Scalaは基本的にcase classという雛形的なclassを使うようにするんですが、メンバーをどう更新するか分からなかったのでメモ。 例えば、ユーザー情報が入ったモデルがあった…

関数型言語はこわくないよ!

関数型言語と聞くと、LispとかHaskelとかScalaとか難しいんだろうなーという先入観を持ってる人がいると思います。ぼくもそうでした。 でも、最近業務でScalaでプロトタイプのWebアプリケーション書いてて、関数型言語の概念が分かってきて、これってそんな…

Play Frameworkを使ってみて知ったScalaの正体

Scalaは使った事もないけどいいものなんだろうという雰囲気は感じていた。 Javaを極めたわけでもないのに、みんながScalaがナウいというとScalaにしなきゃいけないんじゃないかと思ってしまうタイプです。 よく分かんないけどScala使ったほうがいいんでしょ…