ましめも

技術系メモ

はじめてのscala-redis

import com.redis.RedisClientPool
import com.redis.serialization.Parse.Implicits._
import com.redis.serialization._

object RedisTest extends App{
  val clients = new RedisClientPool("localhost", 6379)

  clients.withClient(client => {
    client.set("fuga", "hoge")
    val result1 = client.get[String]("fuga")
    println(result1) //Some(hoge)

    client.set("fuga", 3L)
    val result2 = client.get[Long]("fuga")
    println(result2.get) //3

    client.del("log")
    client.lpush("log", "a", "b", "c")
    val result3 = client.lrange[String]("log", 0, 100)
    println(result3.get) //List(Some(c), Some(b), Some(a))


  })
}

なんでresult3、List[Option[String]]なんだろ。List[String]でよさそうな気がするのに…うーん。
即flatMapしたくなる。

ThreadLocalのお勉強

ThreadLocalというものの存在を知ったので、Play Frameworkがマルチスレッドで動いており、スレッドが使い回されていることを実感できるテストをしてみた。

object Application extends Controller {

  val threadLocal = new ThreadLocal[Int] {
    override protected def initialValue(): Int = {
      0
    }
  }

  def index = Action {
    threadLocal.set(threadLocal.get() + 1)
    Ok(views.html.index("Number: "+threadLocal.get()))
  }
  
}

これでindexを叩くと 1→2→3...と順調に上がっていくけど、大量に叩く(同時にab実行したりとかする)と突然数値が減ったり、突然大きくあがったりする。
そういえばTomcatの場合、HttpRequestのインスタンス自体が使いまわされているんだっけ…(うろ覚え)すごくハマった覚えが…

javadoc-sbtを使う方法

https://github.com/bartschuller/javadoc-sbt を使う方法

build.sbtのかわりに…

  lazy val scalastudy = Project(
    id = "scalastudy",
    base = file("."),
    settings = Project.defaultSettings ++ javadoc.JavadocPlugin.javadocSettings ++ Seq(
      name := "hogefuga",
      organization := "jp.example.exex",
      version := "0.1-SNAPSHOT",
      scalaVersion := "2.9.1",
      javadoc.JavadocPlugin.JavadocKeys.javadocOptions := Seq("-encoding", "UTF-8", "-charset", "UTF-8")
      // add other settings here
    )
  )

javadoc.JavadocPlugin.javadocSettingsを追加する。
javadocコマンドを実行する際のオプションはjavadoc.JavadocPlugin.JavadocKeys.javadocOptions := Seq("-encoding", "UTF-8", "-charset", "UTF-8")のようにして指定可能(もっと良い書き方あるのかも。教えて><)

スノボで必要な用意

服装

レンタル可能な持ち物 - スキーウエア上下 - ニット帽、もしくはヘルメット - スノボ、スノボブーツ - ゴーグル (レンタルは曇りやすい) - スノボ用グローブ

持ち物 - 暖かい下着上下(ブレスサーモとか、なければヒートテックとか) - 長い靴下(スキー用推奨、なければ普通のを重ねて履くとか) - お尻保護用のパッド、もしくは厚手の短パン(こけても痛くない、雪で座っていても冷たくない) - ネックウォーマー

注意点 - できる限り着ていくと楽。更衣室は狭くて混んでることが多い

その他便利グッズ

あってもなくてもいい

  • 貼るカイロ2枚(背中に貼ると断然に暖かい、スマホを暖めておくと電池が切れにくい)
  • スマホを入れて首から下げられるいれもの(スマホ落とすと見つからないので)
  • 現金を持ち歩く入れ物