Groovy
引数に渡すencodeを変えれば違ったバイト値が取得できます。
はてなハイクをAPIを使わずにHTMLで解析することになった。 ここにとりあえずURLをまとめてある。 で、最終的にはHatenaHaiku4Jに組み込む予定なんですが とりあえずGroovyで動作などを下調べということで、書いたソースが以下。 ソース 解説 正規表現版とXm…
以前、何かを受信したときのアイデアをコードに起してみた。 ソース Powered by HatenaHaiku4J import hatenahaiku4j.* import hatenahaiku4j.util.* def baseKeyword = 'ひとりごと' def list = konnaKeyword(baseKeyword, 20, 10) println ('*' * 20) prin…
ちょっと気になったので実験した結果のメモです。*1 その1 A, Bの順にstatic importして、scriptにも同じフィールド名を宣言 import static A.* import static B.* class A { static def FIELD = 'aaa' } class B { static def FIELD = 'bbb' } static def …
Groovyからかなり簡単にいろいろできるのを示すために ちょっとだけサンプルを書いてみた。使ったのは HatenaHaiku4J v0.2.1 // キーワード「ひとりごと」の最新20件のうち // "なう" or "なぅ" が含まれているエントリに対して // "なうっ♪" とReplyする。 …
ここを見ていたらGroovyでもラムダ式版のQuickSortが書きたくなったので書いてみた。 GroovyでQuickSortラムダ式版 - No Programming, No Lifeなんとなく時間ができたのでxyzzy Lisp(Common Lisp)の勉強中なのだが、関数型言語の底力をひしひしと感じる今日…
おださん(id:odashinsuke)のところでGinAに載っているQuickSortについて書かれていたので ラムダ式版にさらに改変してみた。ダックタイピングの恩恵 - お だ のスペース 2010-10-10追記 クイックソートのお題だったので、#g100pon No.47 として下記コードを…
via twitter4j+Groovyテンプレートエンジンを試しに使ってみた。 - けみかるGroovy日記 - はてなGroovyグループ by けみかるさん(id:tmftake) 以下の部分が、LinkedHashMapをbingdingクラスにキャストできないよーと怒られてました。 binding = ["statuses":…
beautiful-programというはてなグループに招待されたので早速参加。そのグループの中でお題が出題されたので早速解いてみた。 詳細は↓via 「第0-1回 電卓を作ろう」を解いてみた - プログラムは美学 - beautiful-programグループなんだかはてなグループを…
いま、Google App Engine(GAE)上でGroovletを動かす実験をしているところなんですが既存でつくってたGroovyスクリプトがうまく動きません。Const.groovyみたいなstatic finalフィールドをいっぱいもったクラスを作ってあるんですがどうも、それを外部からimp…
TinyURLでURLが圧縮できますが、シンプルなAPIも提供されているようです。 http://tinyurl.com/api-create.php?url=ここに圧縮したいURL で、レスポンスが以下のようになる。 http://tinyurl.com/n2apo5 ということで、Groovyだととともシンプルにできます d…
ふもぼ(h:id:fumobot)が使っている はてなハイクAPIをGroovyから操るAPIをせっかくなので公開してみます。 #ただし、自分用に書いているので、使いにくいかもしれません。エッセンスだけでもどうぞ。 HatenaHaikuAPI.groovy import java.text.* class Hatena…
Groovyにはテンプレートエンジンと呼ばれるものがあります。 埋め込みのプレースホルダを設けておいて、そこに値をバインドしていくっていうアレです。サンプルだけでもメモしていきます。 SimpleTemplateEngine まずは一番基本のものから。 バインディング…
いまさらですが、Groovletを試してみました。 ハローワールド的な内容ですが、すごく簡単にできたのでとてもビックリしました。 まずはTomcatをインストール ここから最新版をダウンロードしてきたインストール*1 フォルダ構成&ソース 以下のような感じにソ…
Groovyで(というかJavaで)動的に作った文字列をFTPでアップロードしてWebページをゴリゴリ更新できないかな〜と思い、ライブラリを探してみたらJakartaのcommons-netに行き着きました。 ちょうどその頃、twitterでゲンゾウさんにGroovy使ってるんならgrapeが…
当メモは [お題] Typoglycemia関数の作成 | Think Twice へ移管しました。
GinAのデータベースの章*1に書かれていることをまとめておこうと思う。 ここに書かれている内容はSQLをある程度理解している方を対象としています。また、JavaでDB操作を行ったことがあると理解が早まります。 DBに接続 まずは、JDBCドライバを使ってDBに接…
Groovyでスクレイピングしてみる - No Programming, No Life の続き。 前回は取得したHTMLの内容を正規表現で解析していましたが、JavaのライブラリでNekoMTMLというのがあるらしく*1、それを使うと曖昧なHTMLをいい感じに解析してくれるようです。GroovyのX…
Javaプログラムを起動する際にやらなきゃいけない面倒な作業の一つとして、クラスパスを通すことがあります。 Groovyでしたら、動的にクラスパスを追加できますのでとても便利です。 GinA P418より def loader = this.class.classLoader.rootLoader loader.a…
ちょっと1.6から追加されたdefineを使って範囲内乱数を実現するメソッドを追加してみた。 IntRange.metaClass.define { // 範囲内でランダム random { int from = delegate.isReverse() ? to : from int to = delegate.isReverse() ? from : to int size = t…
ウェブサイトのデータを必要な部分だけ抽出して利用すること。 スクレイピングとは - はてなキーワード Groovyだと簡単にWebからデータを取得できる。 お試しで書いてみたので、一応公開しておく。*1 /* * はてなハイクのトップページ(http://h.hatena.ne.jp…
Groovyはコマンドラインからでも色々と遊べます。 ということで、Windows環境で試してみました。とりあえず、試したのは以下のオプションです。 -v または --version display the Groovy and JVM versions # GroovyとJava VMのバージョン情報を表示*1 バージ…
Groovy で文字列を Camel 形式、Pascal 形式に変換する - 集中力なら売り切れたよ にてid:r_ikedaさんが書かれていたスクリプトを私も書いてみました。 ソース 動作確認:Groovy Version: 1.6.0 JVM: 1.6.0_12 replacer = { _0, _1 -> _1.toUpperCase()[-1] }…
id:nemo_kazさんのところ(⇒こちら)で変換スクリプトが書かれていたので、私も書いてみた。 単純に変換テーブルを宣言しただけだが。 ソースコード class Converter { def maps = [ [from:'あ', to:'ア'], [from:'い', to:'イ'], [from:'う', to:'ウ'], [from…
AntBuilderでnative2asciiを使いたかったんですが、そのままだと使えないみたい。 動作確認: Groovy Version: 1.6.0 JVM: 1.6.0_12 実行すると以下のようなエラーが出る >groovy compile.groovy Caught: : Problem: failed to create task or type native2as…
あーついにGroovy 1.6が公開されましたねぇ。 Groovy - Home時間がなくてまだインストールも出来てない! 早くインストールしていじりたいですなぁ。 参考 Groovy 1.6 has been released! | Groovy Zone
お題: Server error 投稿: Server error こんな感じになりました println alphaList('A'..'Z', 100)*.join()*.trim().join(', ') /** アルファベットのリストを返却 */ def alphaList(values, num) { // 必要な桁を求める int digit = { int d = 1; int size…
お題: Server error 投稿: Server error RFC 4180対応版*1でCSVを分解するお題でした。 こんな感じになりました def csv = '''\ "aaa","b bb","ccc",zzz,"y""Y""y",xxx\ ''' resolveCSV(csv).eachWithIndex{ it, idx -> println "${idx+1} => ${it}" } /** C…