groovy

Lazybonesによるプロジェクトテンプレート管理(1): Lazybones概要/Hello Lazybones

Lazybonesとは? Lazybonesはプロジェクトテンプレートからプロジェクトのひな形を自動作成するツールです。 pledbrook/lazybones Railsのscaffoldや、Mavenのarchetype:generateに近いメージですが、特定のフレームワークやビルドツールに依存しない汎用的な…

GroovyでApache Sparkアプリケーションを作る #gadvent

このエントリは G*Advent Calendar(Groovy,Grails,Gradle,Spock...) Advent Calendar 2014 - Qiita の12/20担当分です。 Apache Sparkとは? Hadoopエコシステムにおける次世代の分散処理基盤として注目されています。インメモリ処理とDAGによるタスクスケジ…

GroovyでAWS SDK for Javaを使う #gadvent

このエントリは G*Advent Calendar(Groovy,Grails,Gradle,Spock...) Advent Calendar 2014 - Qiita の12/13担当分です。 AWS SDK for Javaとは? パブリッククラウドサービスであるAmazon Web ServicesにはWebAPIが提供されていますが、生のAPIでは使いにくい…

Gradle Groovy Shellプラグインを使って依存ライブラリ込みのREPLを起動する #gadvent

このエントリは G*Advent Calendar(Groovy,Grails,Gradle,Spock...) Advent Calendar 2014 - Qiita の12/8担当分です。 Gradle Groovy Shellプラグインとは? Groovyには"groovysh"(Groovy Shell)という機能があります。これはGroovyのインタラクティブシェル…

AntのGroovyタスクを使うときの俺流ベストプラクティス

G* Advent Calendar 2013の12/16担当、@nobusue です。12/7に続き二度目の登場になりますが、引き続き実務に役立つシリーズでいきたいと思います。といっても、「ビルドはGradleで決まりだよね!」というイマドキの現場ではなく、いまだにAntでがんばってい…

GroovyでGCログ解析: ちょっと扱いにくいフォーマットを処理するときのパターン

G* Advent Calendar 2013の12/7担当、@nobusue です。今年は基本に返って、実務に役立つGroovyの利用方法をご紹介しようと思います。(というか実際に業務で使ったのですが。。。)お題はGCログの解析です。 ここでご紹介するサンプルはOracle JDK7(HotSpot VM…

Grails Database Reverse Engineering Plugin - G* Advent Calendar 2012 -

G* Advent Calender 2012の12/6担当、@nobusue です。どうも風邪を引いたらしく、体調がやばい事になってます。。。ということで、JGGUG合宿2012の成果まとめで勘弁してください。Grailsは通常、モデルオブジェクトを作成し、そこからRDB(もしくはKVSなど任…

G*と言えば猫、ということで子猫Tube作りました #gadvent2011

たいしたものではありませんが、まぁ実行してみてください。(猫好きさんは仕事の手が止まるので注意!!!) YouTubeのAPIはGETでAtomフォーマットのXMLを取得できますので、それを解析してURLを抽出しています。ブラウザ表示のところはjava.awt.Desktopを利…

スキャンしたJPEGを縮小してzipで固めるGroovyスクリプト

念願のAndroid Tablet(ICONIA TAB A500)を入手し、本格的な自炊生活に突入しました。以前から裁断機とScanSnapは準備してあったのですが、やはりビューアーがあるとやる気が出ますね。技術書などは検索可能PDFにするのでScanSnapの付属ソフトだけで後処理ま…

Grails Database Reverse Engineering Pluginインストール失敗

既存テーブルのマスタメンテアプリを自動生成したいというお話があり、GrailsのDatabase Reverse Engineering Pluginを試してみました。 とりあえず最新の安定版であるGrails-1.3.7でgrails install-plugin db-reverse-engineerしたところ、残念ながら以下の…

Groovy-1.8の新機能:JsonBulider

エスケープされた日本語が通るかどうか確認してみました。(Groovy-1.8RC2での結果です。) JsonSluperやJsonBuilderではエスケープされたUnicode文字列が問題なく扱えていることが確認できました。 ただし、JsonOutput.toJson()にはエスケープを行う機能は無…

Twitter Botの改善を目指して機械学習勉強中

http://gihyo.jp/dev/serial/01/machine-learning/0003 を参考に勉強中です。 元記事のコード例はPythonですが、ためしにGroovyで実装してみました。 ほとんどがMapの処理なので、GroovyでもPythonとほぼ同じくらいのコード量で実装できますね。 目標は、htt…

G*ワークショップ@仙台の資料

2010/4/24に仙台にて開催されました、G*ワークショップにて発表させていただきました。 JGGUGのイベントでしゃべるのは昨年夏以来ですね。。。G*workshop sendai 20100424(v2)View more presentations from Nobuhiro Sue.最近Groovyってどうなの?という方は…

GroovyのWritableインターフェースの存在意義

id:uehajさんの解説が分かりやすいです。 http://d.hatena.ne.jp/uehaj/20091019/1255925722 典型的な利用例としては、StreamingMarkupBuilderでのXML出力です。 XMLの出力ロジックをクロージャ(MarkupBuilderの記法)で構成し、StreamingMarkupBuilderのbind…

ソフトウェアに関わる人間は全員読むべき本

id:uehaj さんが読んでいたので、ちょっと気になって読んでみました。プロダクティブ・プログラマ -プログラマのための生産性向上術 (THEORY/IN/PRACTICE)作者: Neal Ford,島田浩二(監訳),夏目大出版社/メーカー: オライリージャパン発売日: 2009/04/27メデ…

Groovyイン・アクション訂正

Groovyイン・アクションで翻訳時のミスがありましたので、訂正しておきます。 P.355 表12.4の上から2行が Node(XmlParser) GPathResult(XmlSlurper) 意味 ['elementName'] [.elementName] 指定した名前を持つすべての子要素 'elementName' .elementName (同…

Groovyで行列の固有ベクトルを求める

ただいま、JGGUG温泉合宿2009に参加中です。 昨日は「どう書く?.org」のGroovyカバレッジ率を上げと、SpringSource Tool SuiteのGroovy対応の評価を兼ねて、こちらのお題をやってました。 どう書く?org「PageRankの計算」 http://ja.doukaku.org/48/ Googl…

StreamingMarkupBuilderでXML宣言を出力

前回のg*workshopでは「StreamingMarkupBuilderはXML宣言を出力してくれない」と言いましたが、実はありました。id:kskyさんからTwitterでやりかたを教えていただきましたのでメモ。 import java.nio.charset.* import groovy.xml.* def xml = new Streaming…

StreamingMarkupBuilderでXML宣言を出力(補足)

groovy.xml.StreamingMarkupBuilderのソースを見ると、"mkp."の後にはyield/yieldUnescaped/xmlDeclaration/comment/piが使えることが分かります。さらに、StreamingMarkupBuilderはgroovy.xml.streamingmarkupsupport.AbstractStreamingBuilderを継承してい…

はてなダイアリー監視 Twitter Bot公開します

http://d.hatena.ne.jp/nobusue/20090823/p2 でお知らせしたBotですが、GAE上で1週間安定稼働しているようなので、とりあえずソースコードを公開します。 HatenaKeywordBotApp.zip たいしたことはやっていませんが、GAE/JでTwitter Botを動かしてみたい方は…

はてなダイアリー Groovy botを作りました

昨日の熱気が醒める前にGaelykで何か作ってみようということで、さっそく作ってみました。 http://twitter.com/hatena_groovy はてなキーワードの「Groovyを含むブログ」(http://k.hatena.ne.jp/keywordblog/Groovy)のRSSを定期的にチェックして、新しいエン…

サマースペシャルg*workshop終了

昨日、JGGUGの夏祭りイベントが開催されました。 http://www.jggug.org/news/summer_event_2009 遠方からお越しいただいた方も多く、盛況のうちに終了しました。みなさんご参加いただきありがとうございました。(飲み会出席率が8割近かったような・・・) 私…

Groovy版Twitterクライアント(@Grab利用)

社内で開催したGroovyハンズオンで、id:nemo_kazさん作のTwitterクライアントが好評だったので、Grapeを利用してTwitter4jのjarを入れなくても使えるように手直ししてみました。(Groovy-1.6.3で動作確認済み) import twitter4j.Twitter // grape @Grab(group…

アクセスログ解析

たいしたものではないですが、GroovyでApacheのアクセスログを解析するスクリプトを作ったので晒します。 import java.text.* def sdf = new SimpleDateFormat("[dd/MMM/yyyy:HH:mm:ss", Locale.US) def sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:00-HH:5…

Groovy-1.6リリース

待望の1.6がリリースされました。 http://groovy.dzone.com/news/groovy-16-has-been-released http://groovy.codehaus.org/Download Groovy-1.6は、パフォーマンス改善やAST変換、Grape(依存モジュールを自動的に解決)など、大幅に機能が強化されています。…

Grails Code Reading #16

1/15に開催された、Grails Code Reading 第16回に参加してきました。発表者は「Grな日々」で日々Groovy/Grailsネタを書き綴っていらっしゃるNTTSoftの上原さんです。 GINA(Groovy in Action)以降のGroovyの進化について、ポイントとなるところを鋭くえぐった…

Groovy、日本でもちょっと盛り返しつつある?

最近、はてなダイアリーでもGroovyに関するエントリが増えてきたので、今年の総括も兼ねてちょっと傾向を調べてみました。 安直ですがGoogle Trendsを使います。ただし、"Groovy"というキーワードだとノイズが多い(音楽関係のネタがひっかかる)ので、あわせ…

Groovy/GrailsのPDFマガジン

GroovyMagというオンラインマガジンが創刊されました。PDF配布のみで、価格は$4.99です。 http://www.groovymag.com/ 本よりup to dateな情報を、Blogよりまとまった形で届けるために"雑誌"という形態を選択したということです。 ライター募集中だそうですの…

Grails Code Reading 第13回資料更新しました

http://d.hatena.ne.jp/nobusue/20081009/p2 から2か月近く経過してしまいましたが、未完成だった部分を追記しました。 自分がGroovyを使い込んでいく過程でぶつかった悩みを、コンパクトにまとめたつもりです。こちらからどうぞ。 http://grails-ja.googleg…

Grails Code Reading #13で発表しました

Groovyイン・アクション発売記念ということで、JavaからGroovyに移る際に知っておきたいことについて発表させていただきました。Java開発者がはまりがちなポイントや、Javaに比べてGroovyで大幅に便利になっているところなどを中心にまとめたつもりです。 資…