タグ

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

  • リフレクションで無理やりplayframework2.4のroutesのコメントを取得しつつURL一覧を返すAPIを作る - xuwei-k's blog

    タイトルの通りのものをやってみたので解説を書きます。 前提として、とても内部実装に依存した話なので、すぐ動かなくなる可能性があります、ご注意ください(play2.4.6の情報) 解説はいいから、コード見せろ、という人はこちらご覧ください https://github.com/xuwei-k/dependency-graph/commit/9d2a7e3ba3 http://dependency-graph.herokuapp.com さて、リフレクションの説明に入る前に、そもそもplay2.4には、routesのurl一覧取得メソッドがあります。 router.Routes.documentation で Seq[(String, String, String)] な (httpメソッド、url、Scala上の実装のclass名 + メソッド名) のTuple3のSeqが返ってきます。 こ

    リフレクションで無理やりplayframework2.4のroutesのコメントを取得しつつURL一覧を返すAPIを作る - xuwei-k's blog
  • 「Functional Programming in Scala」を訳した「Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド」という本が出ます - xuwei-k's blog

    わざと両方のタイトルをblogのタイトルに入れてみました(ながい・・・) レビューに少しだけ関わりました。自分が翻訳したわけではありません。あくまでもレビューです 原著 Functional Programming in Scala Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド (impress top gear) 作者: Paul Chiusano,Rúnar Bjarnason,株式会社クイープ出版社/メーカー: インプレス発売日: 2015/03/20メディア: 単行(ソフトカバー)この商品を含むブログ (7件) を見る http://book.impress.co.jp/books/1114101091 作者達はおそらく訳されて今の時期にでることをあまり知らない?だろうから、知らせるのと感謝の意を伝えるtweet↓(そしてサンプ

    「Functional Programming in Scala」を訳した「Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド」という本が出ます - xuwei-k's blog
    takezoe
    takezoe 2015/03/15
    翻訳、異常に早かったなー。これが専門家の仕事なのか。
  • Scalaのマクロの基礎。評価タイミング、評価回数と、健全性 - xuwei-k's blog

    Scalaのマクロというより、一般的にマクロに共通する基であり重要な部分です。それをScala使って説明するだけです。 Scalaのマクロは、未だexperimentalという位置づけで、他の機能に比べれば仕様やAPIが変わりやすい状態です。そして、機能が搭載されてからあまり時間が経っていないこともあって*1あまり一般的に使われているとはいえない状態でしょう。しかし、Cなどのマクロとは違い、Scalaのものはある程度は格的にコンパイル時に抽象構文木を自由にいじれるものであり、使いこなせるようになってくるとなかなかおもしろいです。 マクロというと、ある程度の人はLispを思い浮かべると思いますが(?)、先ほど書いた「格的に抽象構文木いじれる」という点はまさにLispと共通する部分もあります(もちろん異なる部分も多くあります)。 つまり、これから説明することは、On Lisp*2 On

    Scalaのマクロの基礎。評価タイミング、評価回数と、健全性 - xuwei-k's blog
    takezoe
    takezoe 2014/08/31
    マクロ書くときの注意点。
  • 252要素のcase classまでのplayframeworkのJsonのReadsやWritesやFormatを生成できるライブラリ作った - xuwei-k's blog

    https://github.com/xuwei-k/play-twenty-three 特に断りが無い限り、以下の解説は、これ書いてる時点の(最初のリリースである)0.1.0に関するものです。 sonatype経由でmaven centralにおいてあるので、githubのREADME通りに設定すればもう使えるはずです。 以下のような謎の努力をしました こういう感じのコード生成してコンパイル始めたら、Scalaコンパイラさんが数十分ずっとコンパイルしてて終わらない・・・ URL 2014-07-26 20:43:28 via Twitter Web Client @xuwei_k 結果、1時間くらいコンパイル時間がかかるようになってしまって全く実用的ではないので、(どうせimplicitの探索が遅いのだろうから)implicitをすべて明示的に呼び出してコンパイル時間の短縮を試みるという

    252要素のcase classまでのplayframeworkのJsonのReadsやWritesやFormatを生成できるライブラリ作った - xuwei-k's blog
    takezoe
    takezoe 2014/07/27
    まずはScala 2.11に上げないとダメだなー。
  • Scala2.10から2.11の変更点 - xuwei-k's blog

    例のごとく、最初に注意書き まだfinalがでていないので、細かい部分変わるかもしれません*1 個人的に、「大きい変更点だなと思ったもの」「ライブラリ側のユーザーが直接使うクラス関連*2」「なんとなく興味があるもの」を中心にとりあげただけで、すべてを網羅してるわけではありません finalがでるまではできるだけ随時更新する予定です Scala2.11.0は、今のところ順調にいけば2014年の2月には最初のRCがでて*3、3月にはfinalがでるらしいです。*4 https://issues.scala-lang.org/browse/SI しばらくこの記事がblogの一番上にくるように、少し未来の日付にしておきます。 2.9から2.10のときの変更点に比べると、だいぶ少ないですね。(2.9から2.10の変更点が多すぎただけですが)細かく追えていませんが、その分コンパイラ側の細かいパフォーマ

    Scala2.10から2.11の変更点 - xuwei-k's blog
    takezoe
    takezoe 2013/12/02
    22制限から解放されるのが大きいけど、それ系のライブラリの作り方も変わるのかな。あとはコンパイラが速くなるだけでいい気がする。
  • gitbucketをherokuで動かしてみた - xuwei-k's blog

    gitbucketとは、takezoeさんが作ってる、Scalatraで作られているgithubのcloneです。 http://gitbucket.herokuapp.com ユーザー名 root、パスワード root でログインできるので、サンドボックス的に試したい人が自由に使ってください。 デフォルトのH2のデータベースそのままheroku上で使ってるので、数時間経ったらデータは消えてしまうみたいです。まぁheroku上でデモ的に動かす分には問題ないですかね。*1 heroku用に設定変えるは以下のような感じです https://github.com/xuwei-k/gitbucket/commit/2e128817700a *1:誰か、postgresの設定やってくれないかな。(herokuは、postgresならちょっとだけ無料で使えるはず)

    gitbucketをherokuで動かしてみた - xuwei-k's blog
  • Scala 2.10 から try catch の catch の部分に型を書かないと警告が出るようになった件について - xuwei-k's blog

    先日、12月20日に、(現時点では非公式ですが)Scala 2.10.0がでました。*1 ところで、2.10から以下のような警告がでます。 scala> try{ | 1 | } catch { | case e => e.printStackTrace | } <console>:11: warning: This catches all Throwables. If this is really intended, use `case e : Throwable` to clear this warning. case e => e.printStackTrace ^で、2.8から2.9でerrorの呼び出しが警告になって、sys.errorになったときなども、単純作業で置き換えなくてはならず、ちょっと評判悪かったのですが・・・なにも知らずに単にThrowableの型を書くのはまずいと

    Scala 2.10 から try catch の catch の部分に型を書かないと警告が出るようになった件について - xuwei-k's blog
  • Scala逆引きレシピ #scalarecipe - xuwei-k's blog

    貰いました! Scala逆引きレシピ 作者: 竹添直樹,島多可子出版社/メーカー: 翔泳社発売日: 2012/07/03メディア: 単行(ソフトカバー)購入: 6人 クリック: 54回この商品を含むブログ (14件) を見る 見た目の大きさとしてはそれほど大きくない感じですが、600ページ以上あり結構なボリュームです。なので、細かいところまで全然読みきれていませんが、全体をある程度眺めた感想を書いてみます。 特徴としてはここ Scala逆引きレシピというが出ます に書いてあるとおりですが、当に、まずそもそもライブラリやフレームワークの取り上げている数そのものが多いことと、それらのある程度細かいところまで、使い方や例がひと通り書かれているところです。 大きな章立てとしては以下のようになってますが(右の数字はページ) 1 準備 1 〜 16 2 Scalaの基 17 〜 90 3

    Scala逆引きレシピ #scalarecipe - xuwei-k's blog
  • Scala でも travis-ci - xuwei-k's blog

    travis-ci http://travis-ci.org/ という、githubと連携して、いわゆる CI(継続的インテグレーション)を簡単に行えるサービスがあります。 もともとRubyのみで始まったらしいんですが、現在はかなりの言語に対応していてScalaでも使えるんですね。*1 たとえば Scalatra とかが利用してます最近、独自jenkinsに移行して利用やめたかも? https://github.com/scalatra/scalatra/blob/0703c7c466e58965f574fd804c40d1ba828c49d9/.travis.yml Scalaでの設定のやり方が書いてある公式ページ↓ http://about.travis-ci.org/docs/user/languages/scala/ 現状sbtの0.11系に対応してるらしいです。一度最初に設定すれ

    Scala でも travis-ci - xuwei-k's blog
    takezoe
    takezoe 2012/04/29
    githubと連携してCIできるサービス。Scalaでも使える模様。
  • Scalaのライブラリについてごちゃごちゃと適当に説明 - xuwei-k's blog

    これ http://d.hatena.ne.jp/gkojax/20111212#1323701862 に対するツッコミというか、べつに間違ってる部分がたいしてあるわけでもないのに簡単な補足と言うか、単に自分の言いたいこと言うだけっていうか、おまえどれだけScalaのことについてだと突っ込むんだよ!っていう感じのなにか flockdb いわゆる neo4j や orientdb などの graphdb の類なのだが、バックエンドにMySQLを使って構築しているところが、なんかtwitterさんらしいというか独特というか graphdb自体については、勉強会 一人演説会を開くほどの @doryokujin さんの 「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜 や The Definition of GraphDB が素晴らしいので、みると

    Scalaのライブラリについてごちゃごちゃと適当に説明 - xuwei-k's blog
  • Scala上級者になるために読んでおくべき海外blogまとめ - xuwei-k's blog

    上級者というより、基的には 「べつにbetter javaとして使うならば必ずしもScalaでそこまでやらなくてもいいのに、関数型の濃い話が書いてあったりする」やつです。*1というか、自分が勉強したくても一回読んだだけじゃよくわからなくて、読み直したいもののメモです。独断と偏見で選んだので、他にもあるかもしれませんがとりあえず 1. http://apocalisp.wordpress.com/ Scalazのcommiterの人です。 type level programming のシリーズ *2とかyuroyoroさんが一部訳していたりしましたね。このシリーズ順を追ってけっこう網羅的に説明されてて素晴らしいので是非読みましょう!もちろんこのシリーズ以外にも面白そうなものありますが https://twitter.com/#!/runarorama https://github.com

    Scala上級者になるために読んでおくべき海外blogまとめ - xuwei-k's blog
  • Scala の Either についての考察 - xuwei-k's blog

    最近 この あたり に書いてあるような、(for式での) Either の chain の やり方覚えて慣れてきたと思ったら、なんだか微妙に使いづらくて、色々疑問が湧いてきて、とくに結論はでていないんですが、現在の考えをメモ。Either自体よくわかってない人はこちらがオススメ ちなみに(このblog書いている時点のversionで) Scalaz(6.0.3) の Validation Scala(2.9.1) 標準のEither それと NonEmptyList (*´Д`)ハァハァ 2011-09-26 14:05:20 via web というのは、 Scalaz の Validation をつかって chain していった際に fail の場合の値を NonEmptyList として accumulate することができる*1ということを知った際の反応です。 error 情報を a

  • 1