2013-11-29

怖いScala資料まとめ

つげったしかなかったような気がしたので纏めました。
怖いScala (2013/11/28) の資料です。

@yuroyoro さん
Scala at ISUCON3
https://dl.dropboxusercontent.com/u/261418/scala_at_isucon3/index.html#/

@xuwei_k さん
怖いScala
http://xuwei-k.github.io/slides/kowai_scala/


LT

@seratch さん
Skinny Framework 進捗どうですか?
http://www.slideshare.net/seratch/skinny-framework-28706741

@kmizu さん
こわくない型クラス
http://www.slideshare.net/kmizushima/ss-28707326

@potix2 さん
Scala meets Gradle
https://speakerdeck.com/potix2/bu-iscala
(資料が無いように見えますが…?)

@tototoshi さん
アルパカの生態
http://tototoshi.github.io/slides/kwi-scala-alpaca-life/


つげった
http://togetter.com/li/596286

間違い等ありましたらマサカリ飛ばして下さい。

2013-06-18

Scala って重い

世の中には
https://github.com/tototoshi/sbt-musical
このようなプラグインが開発される程 Scala のコンパイルが重い事がわりとどうしようもない感じなんだと思いますが

上のプラグインは使ってないけれど、個人的にはそもそもビルド中は Macが 重くなってブラウザも思うように動かせず、iPhone で twitter を見るなどという下らない時間を過した事もありました。

私の場合、依存ライブラリの更新の為のビルドですごく時間がかかっていたので、上記のような状態で待ち時間が非常に苦痛だったんですけれども、
(B が A に依存しており、B を動かす為に A を更新して jar を作成し、B を動かすという感じの構成になっている。A はコード量が多いため重い。)

「Jenkins に job 登録して、push をトリガーに Jenkins にビルドして貰うようにすればいいんじゃね?」

というアドバイスを基に、まぁそのまま実行したらかなり快適にブラウザでネットサーッフィインができるようになりました。
  • Jenkins が用意されているか、用意する事が前提
  • 作成した jar は社内のリポジトリに上げてるので、一々 DL します。
  • 普通は git の branch で作業すると思うんですけれども branch と言えどもコンパイルせずに push する為 commit log がけっこう汚れるので、master とかに merge するときは --squash オプションを付けるとかしないとアレ 普通しますね。

Jenkins で push をトリガーにしてビルドする記事はそこらへんにたくさんあると思いますので割愛します。
Jenkins ワイルドカード使えるので origin/test-branch/* とかいう branch の指定のし方すると、origin/test-branch/ 以下の branch が全て ビルド 対象になってくれたりするのが地味に便利だと思います。

ビルドを早くするにはプロジェクトを分割するとか、Zinq 使ってみるとか色々あると思いますが、思ったより楽で効果的だったのでブログに書いてみました。
(Jenkins から用意しろと言われたらたぶんわりと辛いと思うけど…)

見たいスライドとか rpscala で話題にあがったネタとかも、この時間で見る事ができるんですね!!わーい!

あまりに普通すぎて ブログに書く程の事でもなかったですね ハイ
結構感動的に快適だったので… Jenkins 凄いし、Scala 重い死 っていうただの日記です。

おしまいです。

2013-04-30

Scala Collection method 適当なまとめ

最終更新が2年くらい前かよ… 気にせず書きます。

今更
http://www.scala-lang.org/docu/files/collections-api/collections.html
(の日本語訳)を読んでいるんですが、会社で使ってる Scala のバージョンが 2.8.2 だからいいよねって事で
半年くらい前まで 2.7.7 使ってたんですよ…酷い
単純に読み辛いからみやすくしただけです。Travarsable のところ。

Addition

  • ++

Map operations

  • map
  • flatMap
  • collect (map + flatMap)

Conversions

  • toArray
  • toList
  • toIterable
  • toSeq
  • toIndexedSeq (Vector 等 IndexedSeq に変換)
  • toStream
  • toSet
  • toMap

Copying operations

  • copyToBuffer
  • copyToArray

Size info operations

  • isEmpty
  • nonEmpty
  • size
  • hasDefiniteSize

Element retrieval operations

  • head
  • last
  • headOption
  • lastOption
  • find

Sub-collection retrieval operations

  • tail
  • init
  • slice
  • take
  • drop
  • takeWhile
  • dropWhile
  • filter
  • filterNot
  • withFilter

Subdivision operations

  • splitAt
  • span
  • partition
  • groupBy

Element tests

  • exists
  • forall
  • count

Folds

  • foldLeft
  • foldRight
  • /:
  • :\
  • reduceLeft
  • reduceRight

Specific folds

  • sum
  • product
  • min
  • max

String operations

  • mkString
  • addString
  • stringPrefix

View operations


うおー min,max はいつも math 使ってたアホす…