scala

「Scalaに存在演算子を求めるのは間違っているだろうか」の解答例

なにやってるんだ・・・、と思いつつ見てたら、とりあえず解答を思いついてしまったので貼っておきます。Scalaに存在演算子を求めるのは間違っているだろうか

Scalaでcompanion contains its own main method, which means no static forwarder can be generatedというエラーの解説

英語ならもっと正確なわかりやすい解説あるかもしれないけど、とりあえず書いたので貼っておく。 (なにか間違っていたら教えて下さい)

Scala2.11.7からのJava8に対応した新しいコンパイルオプションを試してみた

"新しい" とは、今まで全部無名classにコンパイルしてたラムダを、invoke dynamic使って動的に生成するようになるとかそういうやつ。

"-Yno-generic-signatures"というScalaのコンパイルオプションとバイナリ(jar)のサイズ

generic-signatureというもの(リフレクション経由でしか取得できない何か?)が、必要ないなら、コンパイルオプションに"-Yno-generic-signatures"指定すると、ある程度バイナリサイズ減ることに気がついた。 とある自分のライブラリ(scalaprops)だと、 7% く…

typesafe社が社名変更大喜利を始めたようです

http://www.typesafe.com/blog/whats-in-a-name For opinions about the @typesafe renaming process, use #typesafename hashtag. Thanks to @trapo1975 for the idea!2015-05-20 11:46:50 via Tweetbot for iΟS参加しましょう(?)

Scalaのオンライン実行環境 scastie

http://scastie.org/ https://github.com/OlegYch/scastie

nscala-timeのScalaのversion毎の使用状況

使用というか、ダウンロード数ですが。 なんとなくsonatypeのグラフを見ていて少し面白そうだったので、あれリリース権限持っていないと見れないので、blogに公開しておく

"Theorems for free!"とParametricityとJVMとCLRのジェネリクスの実装の違いの関係

という題だけ思いついて、中身を書ける気がしないので、誰か書いて欲しい(他力本願)

sbtで "-Ywarn-unused" や "-Ywarn-unused-import" を設定する際のベストプラクティス

前提や問題点 "-Ywarn-unused" と "-Ywarn-unused-import" は、Scala2.11以降の機能 REPLでこれが有効になるとうざいだけなので、REPLのときのみ無効にしたい

Scalaでテストライブラリを作ってる話

http://xuwei-k.github.io/slides/scalazcheck/#0 https://github.com/xuwei-k/slides/blob/gh-pages/scalazcheck/scalazcheck/scalazcheck.md

Scala標準ライブラリのscala.xml.XML.loadStringなどを直接使うとXXE(XML External Entity)という脆弱性になるので気をつけましょう

liftというweb frameworkのメーリングリストで「ちょっとセキュリティの問題見つかってリリースしたから、アップデートしてくれ」というのが2015/3/16 (月曜)頃に流れてくる https://groups.google.com/d/topic/liftweb/NSXpg778Oos/discussion ↓

「Functional Programming in Scala」を訳した「Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド」という本が出ます

わざと両方のタイトルをblogのタイトルに入れてみました(ながい・・・) レビューに少しだけ関わりました。自分が翻訳したわけではありません。あくまでもレビューです

Scalaのprivateメソッドと内部的クラスとバイナリ互換

またバイナリ互換・・・ Scalaのversionは2.10.4です

Scalaのprivateとprivate[this]とバイナリ互換

Scalaのversionは2.10.4です。 とあるprivateなフィールドをobject内に定義 ライブラリをリリース それをpublicにしようとする mimaに怒られる(´・ω・`) 実は内部的にはコンパニオン同士でアクセスするためのメソッドが自動生成されてるから、そのメソッ…

travis-ciのキャッシュ機能を使って、Scalaプロジェクトのビルドを少しだけ高速化する

以下を参照 https://github.com/scalaz/scalaz/blob/b4463567/.travis.yml

msgpack4zというmsgpackのScala用ライブラリを作った

twitter上では何度かtweetしてたし、この前msgpackのjavaに関して書いたりしたけどmsgpack javaについてやっと、ここ2ヶ月くらいの成果を一旦リリースしました。最初はそれほど色々作る予定なかったのに、気がついたらかなり色々できてしまいました。それら…

playframeworkのJsonのEitherのReadsやWritesやFormat

これはPlay framework Advent Calendar 2014の24日目ですアドベントカレンダー空いてたのと、たまたま思い出したので、また 前回書いたものと関係あるような play-jsonのReadsやWritesの話をします。

macroとdynamicを使って任意の型を簡潔に記述、生成する手法がやばい

shapelessの話をします。

jol(Java Object Layout)という、Javaのオブジェクトがどのようにメモリ上にレイアウトされるのか?というツールをsbtから便利に使えるようにする

最近公式にopenjdkの一部になったらしい?ので、まだあまり有名じゃないかもしれませんが、以下のような便利ツールがあるの知ってますか?http://openjdk.java.net/projects/code-tools/jol/

playframeworkのJsonのReads, Writes, Formatと直和型

これはplayframework2014アドベントカレンダーの、13日目です。 少し長いので先に内容を要約しておくと play-jsonで、直和型のReads, Writes, Formatを短く簡潔に定義しようとすると微妙に面倒なことに気づいた どのあたりが面倒なのか?という理由の説明 解…

2014年のplayframeworkと自分のpull request

これは Play framework advent calendar 2014 の10日目です。 9日目は play アプリケーションのクラスパス指定を短くする でした。 去年に引き続き、

代数的データ型とshapelessのマクロによる型クラスのインスタンスの自動導出

これは、ドワンゴ Advent Calendar の 7日目です。6日目は DartのASTを触ってみる でした。

mavenリポジトリに上がっているsources.jarの中身を手軽に読みたいときのための何かを作った

https://github.com/xuwei-k/java-src http://java-src.appspot.com/org.scalaz/scalaz-core_2.11

QiitaのScalaのAPI clientライブラリ作った

https://github.com/xuwei-k/qiitascala

Scala2.10.4以前だと、scala.io.SourceのmkStringはとても遅い(10倍以上?)ので気をつけましょう

https://github.com/scala/scala/commit/4c4d3245 https://github.com/scala/scala/pull/2929

playframeworkのJsonのReadsやWritesやFormatで要素数が23以上の場合のcase class用のコード生成sbt pluginをつくった

タイトル長げーよ!!!

Scalaのマクロのバグ見つけた(AbstractMethodErrorやNoSuchMethodException発生する)

https://issues.scala-lang.org/browse/SI-8949 https://gist.github.com/xuwei-k/0348d85d3b80fcce1094

typesafe configとScala標準ライブラリのDurationの互換性

以下のテスト実行すると通ったので、大体あるっぽい。https://gist.github.com/xuwei-k/16d2ae62e9e04e9fda94大きすぎたりすると、ずれるけど・・・。あと、無限とかUndefindedは対応してないみたい?

Scalaのmacroを使ってstructural subtypingにおいてリフレクションを回避する方法

https://github.com/xuwei-k/scalikejdbc/commit/93a327b649

specs2のテストクラス内のさらに特定のテストだけ実行する際にtab補完するやつ作った

「テストクラス内のさらに特定のテスト名」については、まず以下の記事参照

Scala2.11.3がでたけど絶対使っちゃダメです

一言でいうとバイナリ互換崩れてるから。AbstractMethodError発生の可能性があります。2.11.2を使い続けるか、新しくでるはずのやつ待ちましょう。 公式にアナウンスあって、気が向けば詳細な経緯とか理由書くかもしれませんし、書かないかもしれません。ひ…

Scalaにおいて一番関数型というかHaskellっぽいコマンドラインオプション解析のライブラリ

それほど色々試したわけではないけど、数日前に良さそうなやつが登場したので貼っておく

HerokuにScalaやPlayframeworkプロジェクトをデプロイするための新しいsbt plugin

https://github.com/heroku/sbt-heroku

最新のJavadocやScaladocへのリンクのBadgeを表示する便利サービス作った

githubなどのREADMEに、

Reactive Manifestoではないほうの本当のReactive Programming?

タイトルにわざとReactive Manifestoを入れたのは、まずこちらのtogetterご覧くださいpokarimさんのReactive Manifestoに関する印象

ScalaはPizzaで作られていた

なにいってんだ?Pizzaってなんだ?と思うでしょうが、 Scala祭 http://scalamatsuri.org のOdersky先生の公演中にPizzaという言語でてきました。

Functional Programming in Scalaはオススメできる唯一のScalaの本 by アルパカの人

Functional Programming in Scala is the only scala book I have ever seen which I can recommend without reservation.2014-09-11 00:05:21 via Tweetbot for Mac

Scalaのマクロの基礎。評価タイミング、評価回数と、健全性

Scalaのマクロというより、一般的にマクロに共通する基本であり重要な部分です。それをScala使って説明するだけです。

ScalaのコードをEvalしてくれるtwitter bot作った

お使いください https://twitter.com/scalaeval/with_replies

Akka内でsun.misc.Unsafeが使われている箇所の分類

sun.misc.Unsafeについての説明は面倒なのでしません(というか、詳しくないのでできません) versionはこれ書いてる時点で最新のakka2.3.5です。grepして(importやコメント除いて)半手動で集計したら以下のような感じになりました。49箇所でした。(半手動なの…

Scala2.11.1から、Scaladocの個々のメソッドなどに対するPermalinkが簡単に取得できる機能が追加されていた件

https://issues.scala-lang.org/browse/SI-8144 https://github.com/scala/scala/commit/466340cf9e3fbc6fbd3c65e13b43d7fe57471d86

Scalaのマクロ使ってコンパイル時に全部Applicaiveをインライン展開するzeroapplyというライブラリを作った

https://github.com/xuwei-k/zeroapply

sbtで、テストを1つずつ実行して、1つでもテストが失敗したらその時点で他のテストは実行せずに終了するコマンド

同僚に聞かれて、そういえば標準にはない?し、少し調べても見つからなかったので作りました。「すでにあるよ!」「もっといい方法あるよ!」 などあれば教えて下さい。 あと、テスト名sortの部分はカスタマイズできるようにしたほうが便利そうですね。 追記…

akkaにおけるActorの生成時の注意事項

akkaをある程度使いこなしてる人なら、当たり前?かもしれませんが、その細かい仕組みがわかりずらいと思うので説明を書いてみます。(versionによってそれほど変わらないはずですが)これを書いてる時点の最新の akka 2.3.4、Scala 2.11.2 としておきます。

Scala勉強会131回の最中にバグが見つかったと思ったら既知のバグだった

https://issues.scala-lang.org/browse/SI-8760

252要素のcase classまでのplayframeworkのJsonのReadsやWritesやFormatを生成できるライブラリ作った

https://github.com/xuwei-k/play-twenty-three

Squerylの読み方

自分のtweetではないけど、今日も「わからない」という人を見かけたので貼っておく Squeryl pronunciation. squeryl google group Squeryl の発音の仕方ですが、作者によると "Squirrel"(スクワォ〜ル)と同じく言っているけど複数の発音があっても気にしない…

時代はリテラルレベルプログラミングだ!

リテラルレベルプログラミングという用語が存在するのかは知りませんが、べつに厳密に定義せずなんとなく使います。まぁこれ https://github.com/okomok/lity の説明が "Exploring literal-level metaprogramming" なので、そこから拝借という感じですかね。…

ScalaのMacroの今後のロードマップ

ロードマップ発表されていたので、簡単に要約しておきますhttp://scalamacros.org/news/2014/07/16/roadmap-for-scala-macros.html

finagleのnetty4対応

何気なくtweetしたら、twitterの中のfinagle作った超本人でとても有名な人からmention飛んできてびっくりしたので、tweet貼り付けておきます#scalive play2もfinagleもまだnetty3系だから、それほど変わらない気がする。まぁfinagleのほうが低レベルレイヤー…