タグ

ブックマーク / xuwei-k.hatenablog.com (134)

  • ScalaのREPLでASTを表示する機能 - xuwei-k's blog

    showのほうは2.11.0から(?)あって、printは2.11.8から Neat trick I just discovered: add `// show` in the Scala REPL to see the actual code that gets compiled. 2016-03-30 23:19:15 via Twitter for Mac @jaguarul starting 2.11.8, add `// print` and hit tab, it will show the de-sugared version of your code (without the REPL's wrappers) 2016-03-31 00:38:16 via Twitter Web Client to @jaguarul scala -Xprint:typer などとすれば、

    ScalaのREPLでASTを表示する機能 - xuwei-k's blog
  • scala.collection.JavaConversionsが非推奨になるかもしれないらしい - xuwei-k's blog

    めでたい https://github.com/scala/scala.github.com/pull/509 https://github.com/scala/scala/pull/5064 JavaConvertersのほうはたぶん残ります。 ConversionsとConvertersの詳細な違いはググってください。 一言で言っておくと、非推奨になるJavaConversionsのほうは、暗黙に変換されすぎて意図しないわかりづらいバグを生む可能性があるので、いろんなプロジェクトや規約でも、わりと避ける傾向が大昔からありました。 たとえば、こういう罠 https://gist.github.com/xuwei-k/8870ea35c4bb6a4de05c (仕事でも、少なくとも新規コードでは使うな、みたいなことを個人的に言っている) これでもっと積極的にJavaConversions使

    scala.collection.JavaConversionsが非推奨になるかもしれないらしい - xuwei-k's blog
  • Joda-timeではなくJava8のtimeを使おう - xuwei-k's blog

    と作者も言ってる(?)ので、そうしましょう。 Joda-Time now in maintenance mode as Java 8 usage rises. Usage questions at Stack Overflow: URL URL 2016-02-22 08:09:02 via TweetDeck https://github.com/JodaOrg/joda-time/blob/84aeb139de0149dd13a022120890985df5f1080a/.github/pull_request_template.md https://github.com/JodaOrg/joda-time/blob/84aeb139de0149dd13a022120890985df5f1080a/.github/issue_template.md ちなみにnscala-timeに(j

    Joda-timeではなくJava8のtimeを使おう - xuwei-k's blog
    terazzo
    terazzo 2016/02/24
  • Scala祭でscalatest作者とproperty based testingの話をした - xuwei-k's blog

    明らかに祭の1日目の一番の収穫でした。 scalatest作者とは、Bill Vennersさんです。コップの共著者だったりもする方です。 https://github.com/bvenners まず、Scala祭の半年くらい前(?)の2015年6月頃の話 twitterで急にDM来たり、eed3si9nさんに仲介してもらってメールのやりとりする 具体例にはCogen(Coarbitrary)について聞かれて、scalapropsの作成経緯含め答えた覚え それで、その返信で scalapropsの一部取り込むことも考えてるんだけど、その場合のライセンスが(ry https://github.com/japgolly/nyaya も試したり、さらにscala.js対応もやろうとして 現状こんな感じでscalatest内にGenerator入れて試してるんだけど みたいな内容でした。たぶん。

    Scala祭でscalatest作者とproperty based testingの話をした - xuwei-k's blog
  • そろそろscalaz 7.2 の final 出すぞ! - xuwei-k's blog

    https://github.com/scalaz/scalaz/issues/1029 誰も言い出さなかったら、もう7.2.0のfinal出すのは、Scala2.12.0のfinalがでる来年の春か夏頃?でもいいかなぁー、せめて2.11.8でて「 コンパイルオプション有効にして、いっそのこと7.2.0ではJava7以下の対応も切ろうぜっ!」って提案してからでいいかなー、と思っていたけど、 そもそも7.1.0のfinal出たのが1年3ヶ月くらい?前なので、逆に誰かがいいだせば、いつ出してもいい頃かな―と思っていたところに、話題出してきた人がいて、runaroramaさん(わりと主要コミッターの一人)が賛成してるので、特に反対意見なければ11月くらい?か、少し遅れたとしても年内には7.2.0のfinal出しちゃってもいいかなー、という気持ちになってきました。 自分がリリース権限持ってるので、

    そろそろscalaz 7.2 の final 出すぞ! - xuwei-k's blog
  • 竹添さんが紹介してないScalaのWebフレームワークも含めて2015年現在の状況を色々紹介 - xuwei-k's blog

    ScalaのWebフレームワーク事情 2015年版 - たけぞう瀕死ブログ Scala界隈のWebフレームワークやJsonライブラリは良くも悪くも混沌を極めている(?)わけですが、それにしても竹添さんが紹介してるやつだけでは個人的に不公平感というか、混沌としている感が全然伝わらないと思ったので、全部に詳しい訳ではいですが、自分なりに現状を書きたくなったので紹介しようと思います。 どうせ全部を当に知り尽くしている人なんでいないので、これはこれで不公平というか偏った見方にもなってるかもしれませんが、そんなこと言ってたらこういう記事をいつまで経っても書けないので、思い切って書くことにしました。 いつもの注意書きですが、あくまでこれ書いてる2015年10月現在の状況であり、1年程度経過しただけで状況は劇的に変化する可能性あるので、ご了承ください。 そもそも、あまりこういうの書きたくないのは、わり

    竹添さんが紹介してないScalaのWebフレームワークも含めて2015年現在の状況を色々紹介 - xuwei-k's blog
  • 論文を頑張って読もうと思ったきっかけ - xuwei-k's blog

    "OSSコミュニティがある日突然壊れたときにどうすればいいか" という発表をしてきました http://xuwei-k.github.io/slides/oss-community/#1 http://connpass.com/event/19690/ 端的にいえば「論文を頑張って読もうと思ったきっかけ」がそれです。それをハッキリ自覚した数ヶ月前に以下のようなtweetしました 騒動疲れたので、そんなことがあっても動じない圏論力か何かを身につけて、有無をいわさない正しい知識で殴りつけられるようになろう、もうそれしかない、みたいな、よくわからない決意を最近固めつつある 2015-08-04 01:53:58 via Twitter Web Client 自分でもよくわからないし、あきらかに無理やりなこじつけな感じはあるけど、無理やりな理由でもそれをなにかエネルギーに変えて頑張れるなら、それ

    論文を頑張って読もうと思ったきっかけ - xuwei-k's blog
    terazzo
    terazzo 2015/10/06
  • 1443641775

    よく「どうやって情報手に入れてるの?」みたいに聞かれますが、そんなの、ひたすら時間かけてgithubみたりメーリングリスト読んだり最近ではgitterの会話読んでるに決まってます。 どうやって(How)ではなく、なぜ(Why)、自分がそんなことをするようになったのかを、あらためて書いてみる気になったので書いてみたいと思います。 書こうと思ったのは、Howだけ書いても、Why書かないとあまり意味ないと思うことが多くなったからですかね。(この件に関しては) 無責任に大雑把にいうと、(どんな理由であれ)情熱みたいなものがあれば、Howは自然に身につきます、たぶん。 なお、少し長くなるし、自分語りっぽくなるし、いつも書いてるようなものとは少し方向性が違い、具体的なすぐ役に立つ技術的な内容*1は基出てこないので、期待してるものが違うと思う人は、ここで読むのやめたほうがいいと思います。 どれほどコー

    1443641775
    terazzo
    terazzo 2015/10/01
  • Typeclassopediaに足りない型クラス - xuwei-k's blog

    挙げようと思えばいくらでも挙げられるとは思うけれど、とりあえず自分が思ったものをいくつか挙げておきます。 Typeclassopediaという型クラスを色々紹介した有名な素晴らしいやつがあるのですが、それ少し古いし、もうちょっと紹介してもいいような型クラスが触れられてないぞ?というのを前から思っていたので、それを簡単に書いてみるという話。 https://wiki.haskell.org/Typeclassopedia http://snak.tdiary.net/20091020.html 今回挙げてないのが重要でない、これ以外知らない、というわけではなく、あくまでもなんとなくな基準です。 (好評だったら、続編を書く? or 他の人が書いてくれてもいい?) 以前こんなtweetしたけど、まぁやってくれそうな人いないし、言い出しっぺの法則ということで。 「typeclassopediaに載

    Typeclassopediaに足りない型クラス - xuwei-k's blog
    terazzo
    terazzo 2015/09/28
  • scalaz.Treeとカタラン数。そして代数的データ型とzipperと微分 - xuwei-k's blog

    1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900・・・ という数列を知ってますか?カタラン数と言うらしいです。 詳しくはwikipediaみるなり、ググるなりしてください https://ja.wikipedia.org/wiki/%E3%82%AB%E3%82%BF%E3%83%A9%E3%83%B3%E6%95%B0 https://en.wikipedia.org/wiki/Catalan_number Eugène Charles Catalanさんという人がいたらしいです。 https://en.wikipedia.org/wiki/Eug%C3%A8ne_Charles_Catalan さて、標題のscalaz.Treeとカタラン数との関係ですが、こういう話好きな人はすでに知ってるのかも

    scalaz.Treeとカタラン数。そして代数的データ型とzipperと微分 - xuwei-k's blog
    terazzo
    terazzo 2015/09/22
  • Divisible型クラスやそのメソッドの名前の由来 - xuwei-k's blog

    数日前にDivisibleなどのことを書きましたが、その名前の由来について、気がついたことをメモ。 ContravariantやInvariantなApplicativeとscalaz.Equal, Orderとscalaprops.Cogenと各種シリアライザ―(scodec, argonaut, play-json, msgpack4z) そもそもContravariantなApplicativeなら「ContravariantApplicative」と呼べばいいだろ、とも思わなくないですね?それだと長いですが。 実際ekmettせんせーが最初に入れたときはDivisibleではなく、そういった違う名前だったようです。 以下、関連コミット 最初にCoapplicativeとして入れたコミット https://github.com/ekmett/contravariant/commit/

    Divisible型クラスやそのメソッドの名前の由来 - xuwei-k's blog
  • Scalaでのtagless final - xuwei-k's blog

    ひたすらググって見つけたのをメモするだけのエントリ これ FreeモナドとTagless FinalによるDependency InjectionのためのDSL に触発されてというか、今まであまりtagless final理解してなかったというか注目してなかったけど、改めて探してみたら、Scalaでの例もすでにそれなりにある、という。 とくにFP in Scalaの作者は二人とも既に知ってたみたいだし、pchiusanoさんのほうはblogまで書いてましたね(当時読んだけど、理解できてなかったので、もう一度読もう) runaroramaさんもTypeTagがどうとか言ってて気になるけど、まだ下に貼ったやつ全然よんでないし、自分の中での結論よくわかってないので、もうちょっと考えて整理できたらなにか書くかもしれません。 ただ、Tagless final流行らずに?Freeばかり流行ってる?のは

    Scalaでのtagless final - xuwei-k's blog
    terazzo
    terazzo 2015/08/13
    ついにScalaでのタグ無し
  • sbtにおけるKeyとは何か? 〜 有向非巡回グラフ(Directed Acyclic Graph)とsbt - xuwei-k's blog

    sbtを使ったことがある人なら、たいていSettingKeyやTaskKeyという言葉を聞いたことがあるはずです。もし聞いたことがなくても、1度でもsbtを使ったことがあるなら、すでに知らないうちにそれらに触れているはずでしょう。 それらSettingKeyやTaskKeyを含んだsbtの内部DSLについては、その独特さゆえに、好みが分かれることが多いと思います。 そもそも なぜSettingKeyやTaskKeyという概念が必要なのか? それらは一体何なのか? ということに関して、少し別の視点から考察や解説をしてみることによって、sbt自体の理解の手助けとなることを目的として、このエントリを書いてみます。 なんだか、少しばかり堅苦しい始まり(?)にしてみましたが、つまり 「sbtのKeyは有向非巡回グラフにおけるNodeであり、build.sbtは有向非巡回グラフを組み立てるDSLである

    sbtにおけるKeyとは何か? 〜 有向非巡回グラフ(Directed Acyclic Graph)とsbt - xuwei-k's blog
    terazzo
    terazzo 2015/08/05
  • ekmett先生のdiscriminationというライブラリの動画を見たので雑に要約してみた - xuwei-k's blog

    当に雑に(前半部分だけを)まとめただけなので、ちゃんと知りたい人は、元動画やライブラリのコードや、元論文読むとよいです http://hackage.haskell.org/package/discrimination https://www.youtube.com/watch?v=cB8DapKQz-I https://github.com/ekmett/contravariant/blob/v1.3.2/src/Data/Functor/Contravariant/Divisible.hs やる気がでたら、もう少し真面目な解説を後で別に書くかも知れませんし、書かないかもしれません。 先に簡単に自分の感想的なものを書いておきます。 ソートの話なはず、の動画を見ていたら、なぜか前半は「圏論」や「Hask」や「Contravariantなんちゃら」の話してて 「あれ、見る動画間違ったのかな

    ekmett先生のdiscriminationというライブラリの動画を見たので雑に要約してみた - xuwei-k's blog
    terazzo
    terazzo 2015/08/03
    ( ^ω^)
  • 関数型Scalaという勉強会でproperty based testingについて話をした - xuwei-k's blog

    Scalaの勉強会で半分くらいHaskellの話してすいませんでした。 http://xuwei-k.github.io/slides/scalaprops/ http://connpass.com/event/16052/ http://togetter.com/li/852254 資料はりきって頑張り過ぎたらとても長くなりました(150ページ超えた) 今までで一番頑張ったかもしれません。ここ半年くらいの成果を全部詰め込んだ感じです。 あとで資料として読んで理解してもらうこと前提で色々詰め込んだので、1年後でも2年後でも、興味のある人が見て有用な資料になればいいですね・・・。 ところで、スライド作るのに、今回から remark というやつ使いました https://github.com/gnab/remark markdownで書けて コードのシンタックスハイライト効いて ページ数表示と

    関数型Scalaという勉強会でproperty based testingについて話をした - xuwei-k's blog
  • "MonadPlusは単なる自己関手の圏における近半環だよ。何か問題でも" の理解を試みる - xuwei-k's blog

    それほど数学の素養ない筆者が、論文を斜め読みして「理解を試みてみた」記録です。最低限の雰囲気だけ説明してみるけど、雑だし正確な言い方もしないので、ちゃんと知りたい人は最初から元の論文を読もう。 といういつものような注意書きを書いておきます。 あと、(日語でなんとなく書いてるので細かい部分はあれとして)もし明らかな重大な間違いとかあったら教えて下さい。 さて、説明に入ります。 "MonadPlusは単なる自己関手の圏における近半環だよ。何か問題でも" とは、以下のblog(とそこで言及してる論文)のことです。 http://tomschrijvers.blogspot.jp/2015/07/monadplus-and-alternative-are-just-near.html http://www.fceia.unr.edu.ar/~mauro/pubs/FromMonoidstoNea

    "MonadPlusは単なる自己関手の圏における近半環だよ。何か問題でも" の理解を試みる - xuwei-k's blog
    terazzo
    terazzo 2015/07/22
  • 猫とscalazとscalacheckとscalapropsと私 - xuwei-k's blog

    さて、このあたりのこと色々ありすぎて書ききれないんですが、たまには少し書いておこうという気になったので書いておきます。 作者が以下のようなtweetをしていて Do you write Scala? Want me to send you a hand-drawn cat picture? Help improve the Cats project's code coverage! URL 2015-06-10 06:03:24 via Twitter Web Client 「なるほどー、まぁOSSの貢献者を純粋に増やしたいなら悪くない試みかな―(ライブラリの質や、長く続くかは別問題でもあるだろうけど)」 と思いつつも 「いや、scalazとの騒動が発生したの、そこが主要な問題だったわけではないし」 「テストのカバレッジより、scalacheckが残念(CoArbitraryがなくてF

    猫とscalazとscalacheckとscalapropsと私 - xuwei-k's blog
  • scalazとcatsの型クラスやデータ構造の対応表 - xuwei-k's blog

    名前が違ってるのだけ書きだした。 はまだ1度もリリースされてないし、これ書いてる時点(2015-05-22)の情報なので、今後変わる可能性は大いにあり? 必要以上に(?)名前変えるのは、当て付けなのか何なのか・・・。混乱を招くデメリットのほうが大きい気がするが果たして

    scalazとcatsの型クラスやデータ構造の対応表 - xuwei-k's blog
  • Scalaのオンライン実行環境 scastie - xuwei-k's blog

    http://scastie.org/ https://github.com/OlegYch/scastie ずっと前からあるし、知っていたけど、なぜかblogに紹介書いたことなかった気がするので書いておく。 任意のsbtの設定書ける(ライブラリの依存追加や、scalaのversionも自由に変えられる)という意味では、ほかのやつよりも、(少なくともこれ書いてる時点で)一番便利なはず

    Scalaのオンライン実行環境 scastie - xuwei-k's blog
  • scalaz-streamの基本的なクラスや概念まとめ - xuwei-k's blog

    なぜかgistに書いた

    scalaz-streamの基本的なクラスや概念まとめ - xuwei-k's blog