2012-01-01から1年間の記事一覧

Higher-Rank Polymorphism in Scala を訳した

https://gist.github.com/3300312元記事は2010年7月2日と、(このblog書いてる時点から)もう2年以上前の記事ですが、未だに日本語の情報少ないというか、まぁ(頻繁に必要になるものでもないからだろうから)それほど理解している人少ないので。ちょっとまえのS…

@merborne さんの Rubyの Object#repeat は、Scala だと iterate

RubyにおけるシーケンスはObject#repeatに任せなさい!っていうか @udzuraさんから、うれしい言葉。 RT @udzura: 便利なのも同意、そして名前、もっと良いのがあるかどうかみんなで考えたい感じするのも同意です / RubyにおけるシーケンスはObject#repeatに…

Scala逆引きレシピ #scalarecipe

献本貰いました!Scala逆引きレシピ作者: 竹添直樹,島本多可子出版社/メーカー: 翔泳社発売日: 2012/07/03メディア: 単行本(ソフトカバー)購入: 6人 クリック: 54回この商品を含むブログ (14件) を見る見た目の大きさとしてはそれほど大きくない感じですが…

コンパイル時に、 String を lift json に変換する macro

追記: lift-json から json4s に変えた scala-user の ML に流れてたhttps://groups.google.com/forum/?fromgroups#!topic/scala-user/IKR_4rfbPRs

html でソースコード表示用の等幅なフォント

単に font-family で monospace が指定されている場合が多いのだけれど、それだと環境によって全然等幅じゃなくてずれる・・・ことに気づいた。 で、例えば github とかってどうなってるんだろうって思って、chromeから右クリックして inspect element した…

Scalaで、あるディレクトリ以下のファイルの行末の空白をすべて削除するコード

scala.tools.nsc.io.Directory っていうコンパイラ内部の非公式(?)のAPI便利です。 "再帰的に全部のファイル取得"っていう便利なメソッドとかいっぱいある http://www.slideshare.net/KenjiYoshida/scala-repl (スクリプト言語になれてたらかなり起動遅く感…

giter8 の template の一覧

--list オプションなくなりました。また復活したらしいhttps://github.com/n8han/giter8/issues/48#issuecomment-5091075がしかし、古いAPIなくなったけどv3にもとりあえず search の API 存在してるようなので、html と javascriptで作ってみた*1http://xuw…

travic-ci でカスタムのビルドの設定

まえこんな記事書きましたがScala でも travis-ciその後色々試して↓ travis-ci が sbt が起動する以前の段階で、なぜか jruby のスタックトレースを吐いただけで死んで、buildが失敗したことになっていたりする・・・(´・ω・`)まぁα版ってことだからしょう…

"sbt compile" などとtaskを指定してsbtを起動した後でも、sbtのシェルをそのまま起動させておく方法

単に sbtとだけ打つと、sbtのシェルが立ち上がって対話モードになるわけです。で、 sbt compileとやると、勝手にcompileまでしてくれますが、compileの成功失敗にかかわらず、sbt自体は終了して対話モードは立ち上がりません。compileして、なおかつその後対…

Scala 2.9.2 用の lift-json 2.4

scala2.9.2でlift-json使いたかったら "net.liftweb" % "lift-json_2.9.1" % "2.4" って書いて、バイナリ互換性があるはずなので、2.9.1のもの使えばいいわけですが、バイナリ互換性がどーしても心配・・・とか _2.9.1 って書きたくないとか、なんとなく気持…

Map.Entry の hashCode

tgtr.ExtendWidget({id:'315916',url:'http://togetter.com/'});

twitter4j の getToUserId でハマった

ここ読んで https://github.com/twitter/twitter4j/blob/2.2.5/twitter4j-core/src/main/java/twitter4j/Tweet.java#L38"指定されていない場合は -1 が返るのかー" と思いこんでプログラム書いて、toUserが指定されたtweetなのかどうかを判断するのに tweet.…

Java で、 scalaz の assert_=== っぽいなにか

追記: はてぶのterazzoさんのコメントにあるように、単に public <S, T extends S> void assertEq(S a, T b){ } でいい気がする・・・orz はじめに、scalaz の assert_=== って書きましたが、Equal のインスタンスを要求しないので、かなり別のものです、すいません。(いい題</s,>…

twitter で 日本語のScalaの情報を検索するときの設定

https://twitter.com/#!/search/realtime/lang%3Aja%20scala%20OR%20scalajp%20-%E3%83%8F%E3%83%83%E3%83%88%20-%E7%9B%A3%E7%9D%A3 lang:ja scala OR scalajp -ハット -監督 -スカラ座 -Kolacnyアフェリエイトのbotうざいですね・・・。"監督"っていうのは…

Scala の Vector の アルゴリズム

http://scalajp.github.com/scala-collections-doc-ja/collections_15.html ベクトルは分岐度の高い木構造で表される2。全てのノードは 32以下の要素か、32以下の他のノードを格納する。32個以下の要素を持つベクトルは単一のノードで表すことができる。ベク…

sbt 0.7 、 0.10 、 0.11 系の全部のversionがひとつのlauncherで起動できるようになったらしい

https://groups.google.com/forum/?fromgroups#!topic/simple-build-tool/3sE6DxS9t6Eちょっとまえに 0.11.3 でたときにこんなこと書きましたがsbt 0.11.3 でたので、注意点とかsbtの互換性とか 0.11.2のpluginを0.11.3で使う方法の話versionの依存関係のと…

Scalaz7 の Iteratee や partial Lenses 、zipper を使った、新しい Database と Json のライブラリ

追記:リポジトリ変わったみたいです あれ、以前blog書いたこれ URL違うリポジトリで開発続いてたのか!?なんでforkもしてないのか・・・ URL2012-12-20 10:07:33 via web https://github.com/ephox/argonaut https://github.com/ephox/vaultargonaut が JSO…

Java で Either モナド

functional java ってライブラリ使えば、Javaでも関数型プログラミングできるよ!っていう誰得な記事。あと、途中にScalaの話しもちょっと混ざってます。 ライブラリ使うために、sbt使います。まず以下のようなbuild.sbtを用意 libraryDependencies ++= Seq(…

複数の sbt の version に対応させた scripted-plugin への依存の書き方

ちょっと前に書いたものだけど、なんとなくblogにも貼っておく scripted plugin の 依存のせいだけで、githubにあるsbt pluginを import sbt._ object Plugins extends Build { lazy val root = Project("root", file(".")) dependsOn( uri("git://github.co…

sbt の情報を調べるときは、必ず2011年5月以前の情報を省いたほうがいい

わりと今でもこれでハマっている人を見かけるので、sbt初心者向けの注意喚起。sbt の0.10.0のtagがでたのが、2011年6月3日だからです。現状主流の0.10系以降の0.11系や(もうすぐ公式の安定版リリースがでる0.12系)と、それ以前の0.7系では、かなり設計が異な…

Inverse Fizzbuzz

URL今更、問題文(しかも日本語訳)ちゃんと読んだけど、当てはまらない場合にちゃんと処理しないといけないようなこと書いてあって、自分がさっき書いたやつたしか無限ループ2012-05-15 20:03:23 via Twitter for iPhoneこれ↑まだ対処してない・・・?

Javaのpackage privateでabstractなmethodを他のpackageにあるScalaのclassでoverrideすると、実行時にAbstractMethodErrorが発生する件

そもそもbugなのか仕様なのかよく分からず、Scalaのissueのページをちょっと探しても、登録されているかどうかよくわからなくて、気になったのでStackOverflowで質問してみたhttp://stackoverflow.com/questions/10555806/abstractmethoderror-occurred-when…

sbt scripted plugin で OutOfMemoryError にならないように、必要そうな元のJVMの引数を引継ぐ

sbt scripted pluginは、sbt plugin自体をテストするためなどために、標準でsbtに添付されてるsbtとおなじproject内で作られている plugin で、*1 内部的には新たにprocess自体を作成して実行されてます。*2 それで結構前に↓ sbtのscripted-pluginでOutOfMem…

heroku と unfiltered 使って、ブラウザ上で xtend を試せるサイトを作った

作ったの数日前(っていうかゴールデンウィークの最後のあたり引きこもってこれやってた)だけど、そういえばblogに書いてなかったhttp://xtend.herokuapp.com/ https://github.com/xuwei-k/xtend.herokuapp.com日本語でtweetくらいしかしてなかったのに、なぜ…

Scala の vim や emacs などの、エディタ用のシンタックスハイライトのためのファイル

これも、見つからなくてこまってる人を度々見かけるので。ここ↓にあります https://github.com/scala/scala-tool-support *1version 2.9.2 くらいから(?) Sbazが消えて、このあたりのファイルも添付されなくなったんでしょうか?(詳しい経緯とか知らない)ファ…

sbtplugin自体が他のsbtpluginにaddSbtPluginで依存してると詰んでる気がするので、やっぱりそれぞれのplugin作者はsbt0.11.3用にpublishするべき?

sbt

追記: 杞憂でしたね。。。みんな0.11.3用はそれなりにpublishしてるみたいなので、大丈夫そうです 昨日書いた sbt 0.11.3 でたので、注意点とかsbtの互換性とか 0.11.2のpluginを0.11.3で使う方法の話 の続き的なお話。ほとんどplugin作者側とかの話しなので…

sbt 0.11.3 でたので、注意点とかsbtの互換性とか 0.11.2のpluginを0.11.3で使う方法の話

追記: これも読んだほうがいいよ! sbt 0.7 、 0.10 、 0.11 系の全部のversionがひとつのlauncherで起動できるようになったらしい これ↑でうまくいくなら、下に書いたversionの依存関係のところ把握しなくてもいいはずなので おぉぉぉぉぉぉぉぉぉぉぉぉぉ…

xtend の sbt plugin をつくった

xtend って、これ http://www.eclipse.org/xtend/ なんかJavaコード吐いてくれるらしい。日本語解説だとこのあたりとか http://d.hatena.ne.jp/Naotsugu/20111108/1320773480 http://d.hatena.ne.jp/takezoe/20111118/p1 http://news.mynavi.jp/column/ide/1…

Scala Compiler 内部で、Android の Parcelable のために特殊処理しているところ

なんとなくメモこのあたり↓ https://github.com/scala/scala/blob/v2.9.2/src/compiler/scala/tools/nsc/backend/jvm/GenAndroid.scala https://github.com/scala/scala/blob/v2.9.2/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala#L272 https://gi…

functional java に関するメモ

概要 https://github.com/functionaljava/functionaljava/tree/12e4d23954d352bcb16b43eed09dbc3624ce5e96 のtreeの時点での記録 これを書いてる2012年4月現在sbt0.7.4でbuildされている sbtやmavenの標準のディレクトリ構成 昔は google code にあったみた…