( ꒪⌓꒪) ゆるよろ日記

( ゚∀゚)o彡°オパーイ!オパーイ! ( ;゚皿゚)ノシΣ フィンギィィーーッ!!!

scala

scalaでYコンビネータ

Yコンビネータの定義: def Y[A,B]( f:((A => B), A ) => B, x:A ):B = f( ( y:A ) => Y( f,y ),x ) Yコンビネータってのは、要は Y(f) = f(Y(f))となる関数らしい。不動点演算子とか呼ばれていますがなんのことかわかりませんね。 「ある関数fをYに与えた結…

Scala基礎文法最速マスター

面倒なのでここ見てください。 yuroyoro/scala-hackathon · GitHub Dropbox - 404

車輪の再発明 - Base64のencoder/decoderをScalaで書いてみた。

「何故、JDKにはBase64のencoder/decoderがないのだッ?!」 ってことで、書きました。 imutableなLIstをreverseしたりdropしたりしまくって、再帰でListを受け渡す形なのでパフォーマンスいくないです。 あと、decodeの時はフォーマットのチェックしてない適…

GeoHashのdecodeのアルゴリズムの解説します & ScalaのGeoHashライブラリを作ってみました(仮)

GeoHash(http://en.wikipedia.org/wiki/Geohash)は、緯度経度を文字列のハッシュで表現する仕様です。 GeoHashにより表現された緯度経度の情報は、一つの文字列で緯度と経度という2次元の情報に加えて精度も表すことができるという特徴を持っています。 例え…

Scala Hack-a-thon #2(初心者向けハンズオンor発火村) やります!

1回目の発火村が終わったばかりですが、Scala Hack-a-thon #2 を開催します。 参加希望の方は、ATNDで申し込み登録してくださいね☆ 参加お待ちしております!!Scala Hack-a-thon #2 : ATND Scala Hack-a-thon #2 ■なにやるの? ・Scalaの初心者向けのハンズオ…

はてなスーパーPre記法がScalaに対応したらしいのでEchoServerのソース貼ってみる

はてなスーパーPre記法がScalaに対応したらしいのでEchoServerのソース貼ってみます。 いちおう、Scala hack-a-thonの資料にも反映済み。 yuroyoro/scala-hackathon · GitHub Dropbox - 404 普通のServerSocket版と、NIOノンブロッキングチャネル版の2種類書…

Scala hack-a-thon #1 開催しました。

Scala hack-a-thon #1、無事終了しました。参加された皆さん、本当に有り難うございました。 また、ついったーなどでサポートしてくれた皆さんも有り難うございました。 当日は、みんな黙々とコード書いたり資料読んだりで一切言葉を発しない異様な雰囲気の…

Scala hack-a-thon #1に参加される皆様へ

えと、次の日曜であるところの11月22日(日)に、Scala hack-a-thon #1が開催される予定となっております。 Scala Hack-a-thon #1 : ATND つきましてはですね、主催である私目から皆様へ、どのような趣旨のイベントなのかと、いくつかのお願いをこの場を借りて…

ついったーで自分が追加されてるListから、未フォローのアカウントをレコメンドするスクリプトを書いた。

ついったーにリスト機能が追加されましたね。いろいろ賛否両論ありますし、クライアントがまだ対応してないんですが、おもしろい機能だと思います。 というのは、リスト機能は人力によるユーザのタグ付けという側面を持っているからです。 その人がどんな人…

ScalaでWebAPIをたたいてXMLを処理するための定型パターンのまとめ

俺はLTなどの資料に使うためのネタ画像をTumblrで収集してるのですが、いざスライドに画像を貼ろうと思ったらTumblrから検索して落としてこなきゃいけなくてめんどくさいです。 ってことで、Tumblrから画像を落とすプログラムをscalaで書いてみました。 せっ…

Scalaで強引に日本語プログラミングしてみた

ちょっとした小ネタです。 Scalaは変数名などに日本語を使用することができるんですが、どこまで日本語でいけるかをちょっと試してみました。 はっきり言って誰得?って感じですがまぁそれはおいといて。。。 やったこと LDRの公開OPMLをダウンロードして、ド…

Scalaでperlのorみたいなやつ

ScalaでPerlのorみたいに、val a:String = foo or "bar" のように、fooがnullとか""だったら"bar"が設定されるようにしたい。 使いどころはあまりないと思うけど、練習がてら作ってみたらエライ大変だった。 はまったのは、implicit parameterを適用する際の…

Scala Hack-a-thon #1(初心者向けハンズオンor発火村) やります!

[10/13 追記] 会場が新宿NSビル304に変更になってます。[9/26 追記] 定員を80名まで増やしました。あと、ハンズオンでチューターやってくれる人募集します!是非お願いします! 最近ついったのTLでもscalaの話題が多くなってうれしい限りです。で、Seasar Conf…

Seasar Conference 2009 Autumnでのデモ

Seasar Conference 2009 Autumn 「Javaプログラマに捧げるScala入門」でデモで使ったソースです。yuroyoro/s2conAutumn · GitHub S2Console 勝手に名前つけましたが、要はScalaのインタプリタからS2Containerを操作するためのスクリプトです。 このスクリプ…

Seasar Conference 2009 Autumnでscalaについて発表しました。

Seasar Conference 2009 Autumnに、Javaプログラマに捧げるScala入門というタイトルで登壇させて頂きました。 当日はあいにくの天候にも関わらず、たくさんの方にご来場頂きありがとうございました。 発表資料は、Seasar Conference 2009 Autumnのセッション…

Seasarカンファレンス2009 Autumnでscalaの話をしますよ

scala-be名義で、Seasarカンファレンス2009 Autumnに登壇します. Javaプログラマに捧げるscala入門 前回はいきなりLiftの話で敷居が高かったので、今回はscalaの初心者向けの内容です。 S2Con2009Springでscalaの部分の食いつきがよかったので、もっとつっ…

Scalaインタプリタ上でscaladocを検索できるInteractiveHelpを作りました。

みなさん、「Scala スケーラブルプログラミング」読みましたか? 俺はまだデスおつかれザマァm9(^Д^) scalaには対話型実行環境(インタプリタ)がついてます。 ちょろっとコード打って動作確認しながらコーディングするLLライクな開発スタイルが可能なんで…

scaladoc toolが壊れたHTML吐くバグを本家に報告した

ちょっとscaladocを解析してほげるプログラムを作ってるんですが、scala公式のAPIドキュメントのうちいくつかはXHTMLとして壊れてるのでなかなかうまく行きません。 原因は、scala.tools.nsc.doc.ModelAdditionsで挿入されるhashCodeなどのメソッドのscalado…

scala.io.Sourceとscala.xml.parsing.XhtmlParser

scalaでファイルやURLからテキストを読み込みたいときには、scala.io.Sourceオブジェクトとscala.io.Sourceクラスを利用するのが便利です。 scala.io.Sourceオブジェクトを利用するとファイルからの文字列の読込や、URLからフェッチする処理はこんなふうに簡…

Twitterのつぶやきをバックアップするツールをscalaで書いたの

Scalaスケーラブルプログラミングが書店にはもう並んでいるのにいまだにamazonからの発送メールが来ていないゆろよろデスおつかれザマァm9(^Д^)です。 自分がついったをはじめて早1年半が経ちます。Postが3000を超えたんで、いままでの自分のつぶやきを…

twitterでも利用されているメッセージキュー Kestrelを試す

ついったーさんやってますか? ついったーさんのバックエンドは、実はscalaで書かれているってご存じですか? 急成長するついったーさんのバックエンドを支えるなんてすごいですねscala! ついったーさんとscalaのお話は、こちらを参考に。 Twitter on Scala で…

java,scalaからGrowlに通知を送る方法

macなみなさん、Growl使ってますか? TwitterのTLやらSkypeチャットやらなにやらがぴよんぴよんポップアップして、とっても楽しいですよね! Growlがあると、LTやってる最中にSkypeチャットに「チンコ」とか書き込まれたのがGrowlでポップアップしてプロジェク…

GAE/JでLift-1.1-Snapshotを動かす方法

GAE/JでLiftを動かす方法は、Liftコミッタでもあるscala勉強会東北の山中さんがまとめてくださってますが、英語なのでものっそい適当に意訳したものを掲載します。 元はこちらです。 http://groups.google.com/group/liftweb/browse_thread/thread/8193eb25e…

BP Study #22でscalaとLiftについて発表したお

BPStudy第22回:scala/lift on GAE/J 、GAE/Jってどう使う?でscalaとLiftの話をさせてもらいました。 以下が発表資料です。s2conのときとあまり変わってないです…。20090622 Bp Study#22View more presentations from yuroyoro. ってか、19:00スタートに間…

Seasar Conference 2009 Springでscalaのwebframework Liftについて発表しました。

タイトルの通り、Seasar Conference 2009 SpringでLiftについてのセッションを行いました。 マニアックな内容のセッションにも関わらず、たくさんの方にご来場頂きありがとうございました。 発表資料は、Seasar Conference 2009 Springのセッション情報のペ…

scalaユーザー会#01でLiftについて発表して来ました

scalaユーザー会が立ち上がりました。 ご案内:Scalaユーザ会 5/22(金)19:00-21:00@新宿三井ビル34F豆蔵 - HHa(H派)メモってことで、Liftについて発表してきました。 20090522 Scalaユーザー会#1 今回から資料をkeynoteで作ってkeynote remoteでiphoneか…

scala.util.matching.Regexはバグじゃないよ

Twitter / Kota Mizushima: @yuroyoro グルーピングを含まない正規表現 ... via kwoutついったで@kmizuさんに教えて頂きましたよ。 グループを含まない正規表現の場合は、case reg1() => ...のように書けばよいとのことです。 scala> val reg1="abc.+$".r re…

scala.util.matching.Regexのバグ?

昨日twitterにPOSTしたんだけど、scalaの正規表現マッチングをパターンマッチングで利用するときに、変な動きをしてるのに気がついた。 同じ正規表現で、グループを含むものと含まないものではマッチングの挙動が異なる。 グループを含む正規表現は、パター…

java-ja温泉成果物 @で話しかけるとsayコマンドでしゃべるbot

java-ja温泉ではsayコマンドで盛り上がってました。 んで、"@saybot hogehoge"のように@をつけて話しかけると、sayコマンドでしゃべるbotをscalaで書いてみました。 Runtime#execでsayコマンドを実行しているので、このbotが動いているマシンでしかしゃべら…

Liftでフォームから送信した日本語のデータが文字化けする場合の対応

コメントで質問を受けたんですが、Liftでフォームから送信した日本語が文字化けする場合の対応方法について書きます。 どこかに書いたと思っていたら無かったので、自分用のメモもかねて。 結論から言うと、Boot.scalaで、フォームデータのエンコードをHttpS…