ゲンゾウ用ポストイット

Java、Groovy、Linux関連の備忘録

Groovy

スクリプトでステップカウントする

会社の方がソースコードの行数をカウントする方法として、Amateras StepCounter を利用する方法を紹介している。 メモ: Amateras StepCounter を Ant で利用する - いがぴょんの日記@はてな 僕もプロジェクトでは同じ方法を利用していた。 紹介されている方…

Controllerにメソッドを作る際の注意

久々のブログ更新です。最近はGriffonでアプリを作る機会が多いですが、ハマったことを載せておきます。とある、非常に簡単な画面があるとします。 ボタン1つ、テキストフィールド2つ。 ボタンを押すと、テキストフィールドに値をセットする。 セットする…

知っている方は知っている問題

Groovyで解いてみた。 answer.groovy #!/usr/bin/env groovy def code = args[0] def parts = [] def life = 0 code.chars.each{ if (life == 0) { parts << "" life = Integer.parseInt(it as String, 16) } else { parts[-1] += it life-- } } parts.each{…

Groovyで、クラスにInterceptor(AOP)を適用する

Springなどを利用せずにGroovy単体でInterceptorできないものかを調べてみた。 きっかけはGriffonアプリを作成しているのだが、全アクションに同じようなログ出力処理が散らばってしまっているため一元管理したかったこと。以下の2点にさえ注意すれば実現で…

List#takeメソッドが便利

よく組むロジックだが、いつもしこしこコーディングしていた処理が組み込みメソッドで用意されてた。とあるリストから、前方3件だけ取得したい。 ただしリストが2件以下の場合はすべて返却。 #!/usr/bin/env groovy def list = [ "aaa", "bbb", "ccc", "ddd"…

ランダムな半角英数字を作成

CakePHP勉強中。初期セットアップ手順に設定ファイル内の Security.salt っていうランダム文字列の値(40文字)を書き直しなさいってあったので、なんかいいコマンドないか探してみた。ググると、Linuxなら mkpasswd というコマンドで生成できるよ、とあった。…

griffon-1.0.1で -version オプション付きでコマンド実行するとエラーが出る。

以下のようなエラーが出て困った。 僕の環境だけなのか不明。 /opt/griffon/bin/griffon: 140: /opt/griffon/bin/startGriffon: [[: not foundgriffon 1.0.1は、以下のようにインストールしている。 opt ├─griff n-シンボリックリンク ├─griffon-0.9.5 ├─gri…

CloudBees上でGrailsにてDBにアクセス

google:CloudBees にGrailsアプリをアップできたので、DBにアクセスしてみた。 設定 以下にアクセスして、Databaseの新規追加を行う。 https://grandcentral.cloudbees.com/ CloudBees上での各種設定方法は、僕自身も四苦八苦しているうちに登録方法をみにつ…

作成したGroovyスクリプトをGroovy未インストール環境で使ってもらう

作成したGroovyスクリプトをチームメンバーに利用してもらいたいが、普通のメンバーはGroovyはインストールしていない。 知名度はまだまだのようだ。そこでGroovyをインストールしていないメンバー環境でもGroovyを実行できるようにするにはどうしたらよいか…

CloudBeesにGrailsアプリをデプロイしてみる

Literal Ice: PaaSでGrailsならCloudBeesがイイ のエントリを見てから、GrailsでWebアプリを作る際には google:CloudBees が良さそうだなと思ったので、無料版でアプリ検証してみた。 アプリケーションの構築などはいろんな方が紹介しているので、今回はデプ…

Bash上でGrailsコマンドのオプションを保管

Bash completion for Grails 1.1 - uehaj's blog を見てからずっと設定を試してみたいと思っていたが google:Grails を触る機会がなかったもので試せていなかったが、 Webの案件が入りそうなのでGrailsの最習得を目指して環境周りを整備しだした。 マシン環…

GriffonでHibernateのアノテーションを使いたい時に躓いた

Griffonでアプリケーションを作成する機会が増えてきた。 SQliteが気に入っていてよく使っていたがHibernateを利用したかったため実績のあるHsqldbに切り替えた。griffon-app/conf/Config.groovyに以下の記載を追加すればすぐに使えるものと思っていた。 dep…

fat jar作成後にInvalidsignaturefileがどうのこうの言われる時の対処

既存のJavaプロジェクトから、google:Gradle]を利用して[google:fat jarを作成してみた。 Cookbook - Gradle - Codehausただし、swt関連のjarを含めたfat jarを実行すると以下のようなエラーが発生する場合がある。 Exception in thread "main" java.lang.Se…

Groovyでもよくコマンド作るよね?(え?起動が遅い?)

以下のサイトではrubyでやっていたが、Groovyで同じことをしてみる。 URIのエンコードをコマンドにしていつでも呼べるようにしておくと便利だと思う。 - それマグで! encodeuri #!/usr/bin/env groovy println java.net.URLEncoder.encode(System.in.getTex…

FC2ブログのユーザー情報を取得(Groovyでxml-rpc)

以下のエントリで一生懸命xml-rpcによる通信方法を実現した。 FC2ブログへの投稿を行う - ゲンゾウ用ポストイット-newが、実はGroovyに便利なライブラリがあった。 Groovy - XMLRPCFC2ブログのユーザー情報を取得するサンプル。 #!/usr/bin/env groovy @Grab…

FC2ブログへの投稿を行う

以下のサイトを参考にさせていただきました。 ���J���� [Java] XML-RPC���g����FC2�Ƀu���O�𓊍e Fc2Sample.groovy #!/usr/bin/env groovy @Grab("org.apache.xmlrpc:xmlrpc-client:*") import org.apache.xmlrpc.client.* XmlRpcClient client = new XmlRpcCli…

SQLiteを使ってみる

クライアントアプリやjettyで動かすようなローカルアプリの場合には、軽量で小さなDBが欲しくなる。 SQLiteが使えるとかなり便利。GroovyでSQLiteを使うサンプルを作成してみた。 emailテーブルを作成し、データを3レコードセット。 それを出力する例。 sql…

ブラウザ起動

前回OAuth実装のエントリでこねくり回して頑張ってブラウザ起動していたけど、起動したブラウザを停止する必要さ得なければ以下の方法で実現可能みたい。 (あんまり使わないので、かなり前にチラ見していたけど頭から抜けていた) #!/usr/bin/env groovy ja…

アプリケーションの二重起動を禁止する。

Groovyに限ったことではないが、アプリケーションの二重起動を防止する方法をメモ。以下のように、ファイルチャネルからロック取得が成功するかどうかで二重起動を防止できる。Attach API( Oracle Technology Network for Java Developers )というのを利用し…

textArea(JTextArea)で、タブによるフォーカス移動を実現したいとき

以下のようにkeyPressedイベントを設定する。 textArea( text:bind('statusMessageBody', target:model, mutual:true), rows:5, dragEnabled:true, keyPressed:{ e -> if(e.keyCode == KeyEvent.VK_TAB) { if(e.modifiers > 0) e.source.transferFocusBackwa…

windows用の実行ファイル(exe)を簡単に作成

実行可能jarやjnlpで配布、というのでよい気がするが、ウィンドウズを使っている方々の中にはlhacaなんかでjarファイルを展開対象ファイルとして関連付けしている方もいるようだ。なのでexe形式にできると便利。griffonではプラグインで簡単に実現できた。仮…

ルパンっぽいもの

コマンドラインでルパンっぽいもの。 ふっと頭に浮かんだので息抜きで作ってみた。 lupan.groovy #!/usr/bin/env groovy args[0].each{ c -> ( [' '] + ('a'..'z') ).find{ print ( it ) if ( it == c ) return true sleep 50 print ("\b") return false } }…

JsonSlurperを使ってfacebook内のいいね!をクリック

悪用厳禁で。 #!/usr/bin/env groovy import groovy.json.* def facebookApi = new Object(){ def baseurl = "https://graph.facebook.com" def accessToken = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" def jsonSlurper = new JsonSlurper() def get = {…

JsonSlurperを使ってfacebook内のいいね!してないフィードを一覧表示

JsonSlurperかなりいい!調子にのっていろいろやってみた。 #!/usr/bin/env groovy import groovy.json.* def slurper = new JsonSlurper() slurper.metaClass.define{ def baseurl = "https://graph.facebook.com" def accessToken = "XXXXXXXXXXXXXXXXXXXX…

JsonSlurperを使ってfacebook apiを呼び出す

restfb( RestFB)を使ってのfacebook api呼び出しをいろいろ調べたが、先日Groovyの合宿twitterにリモート接続しているときにJsonSluperなるものの存在を知って、これを利用したほうが簡単なんじゃないかと思ったので試してみた。フレンド名一覧を取得してみ…

Groovyでfacebookへ近況書き込み

先日成功したfacebookのOAuth2.0認証方式をクラス化した。クラスと使用例をあげる。 OAuth2.0認証にて取得したアクセストークンさえあれば、restfbライブラリを利用してfacebookに自由にアクセスできる。 RestFB - A Lightweight Java Facebook Graph API an…

facebookにGroovyでログイン(その4)

以下のエントリのさらに続き。 facebookにGroovyでログイン(その3) - ゲンゾウ用ポストイット-new結局、昨日の方式を採用した。 リダイレクト後の http://localhost:9999/#access_token=... の#以降をサーバー側で取得できないため、画面描画後にjavascri…

facebookにGroovyでログイン(その3)

以下のエントリのさらに続き。 facebookにGroovyでログイン(その2) - ゲンゾウ用ポストイット-new結局、以下の流れでアクセスキーを取得してみることにした。 jettyを起動 ブラウザを起動 ブラウザでfacebookに手動でログイン リダイレクト結果より、アク…

facebookにGroovyでログイン(その2)

以下のエントリの誤りを修正。 facebookにGroovyでログイン - ゲンゾウ用ポストイット-new 以下のようなhttpアクセスを実装した。 facebookのログイン画面へアクセス ユーザー名、パスワードを指定しfacebookへログイン ログイン完了後、OAuth認証用のURLへ…

facebookにGroovyでログイン

というのを必死でやろうとしているがうまくいかない。 とりあえず現時点でできているところまでアップする。 やりたいことは、facebookにOAuth2.0方式でアクセスするようなデスクトップアプリケーションを作りたいということ。 facebook内のデータにアクセス…