@Grab(group='org.apache.commons', module='commons-math3', version='3.0') import org.apache.commons.math3.stat.clustering.* import java.util.* def points = [ new EuclideanIntegerPoint([10,10] as int[]), new EuclideanIntegerPoint([12,11] as int[]), new EuclideanIntegerPoint([30,23] as int[]), new EuclideanIntegerPoint([91,20] as int[]), new EuclideanIntegerPoint([95,17] as int[]), new EuclideanIntegerPoint([11,89] as int[]), new EuclideanIntegerPoint([12,85] as int[]), new EuclideanIntegerPoint([7,88] as int[]) ] def kmpp = new KMeansPlusPlusClusterer(new Random()) def clusters = kmpp.cluster(points, 4, 10) def cn = 0 for(cluster in clusters){ println "cluster : ${cn}" for(point in cluster.getPoints()){ println point.getPoint() } cn++ }
2012年10月19日金曜日
groovyでk-means++法を使用してクラスタリングする
groovyでk-means++法を使用してクラスタリングするには、以下のコードを実行します。
2012年10月8日月曜日
groovyとFreeTTSで音声合成する
groovyとFreeTTSで音声合成するには、以下のコードを実行します。
インストール手順(ubuntu)
1)freetts-1.2.2-bin.zipをhttp://freetts.sourceforge.net/docs/index.phpからダウンロード
2)sudo apt-get install sharutils (jsapi.shでuuencodeを使用するので)
3)unzip freetts-1.2.2-bin.zip
4)解凍したlibディレクトリに移動してchmod +x jsapi.sh
5)./jsapi.sh
6)cp *.jar ~/.groovy/lib
動作環境
OpenJDK1.7.0_03, groovy 2.0.1, Ubuntu12.04
import com.sun.speech.freetts.* System.setProperty("com.sun.speech.freetts.voice.defaultAudioPlayer", "com.sun.speech.freetts.audio.SingleFileAudioPlayer") def voice = VoiceManager.getInstance().getVoice("kevin16") voice.allocate() // Hello, Groovy. こんにちはgroovy! voice.speak("Hello, Groovy. kon nitch were, Groovy!") voice.deallocate() // ubuntuのplayerを使ってwavファイル再生 "aplay freetts.wav".execute()
インストール手順(ubuntu)
1)freetts-1.2.2-bin.zipをhttp://freetts.sourceforge.net/docs/index.phpからダウンロード
2)sudo apt-get install sharutils (jsapi.shでuuencodeを使用するので)
3)unzip freetts-1.2.2-bin.zip
4)解凍したlibディレクトリに移動してchmod +x jsapi.sh
5)./jsapi.sh
6)cp *.jar ~/.groovy/lib
動作環境
OpenJDK1.7.0_03, groovy 2.0.1, Ubuntu12.04
2012年5月26日土曜日
groovyとMongoHQのREST APIで、コレクションを一覧表示する
groovyとMongoHQのREST APIで、コレクションを一覧表示するには、以下のコードを実行します。
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.3') import org.apache.http.client.methods.* import org.apache.http.impl.client.* import groovy.json.* def _apikey = "your-key" def base = "https://api.mongohq.com/databases" def db = "mydb" def httpclient = new DefaultHttpClient() def method = new HttpGet("${base}/${db}/collections?_apikey=${_apikey}") response = httpclient.execute(method) println response.getStatusLine().getStatusCode() def json = new JsonSlurper().parseText(response.getEntity().getContent().text) for(col in json){ println "name:${col.name}" println "storageSize:${col.storageSize}" }
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
2012年5月24日木曜日
groovyとMongoHQのREST APIで、コレクションを削除する
groovyとMongoHQのREST APIで、コレクションを削除するには、以下のコードを実行します。
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.3') import org.apache.http.client.entity.* import org.apache.http.client.methods.* import org.apache.http.impl.client.* import org.apache.http.message.* import org.apache.http.protocol.* import groovy.json.* def _apikey = "your-key" def base = "https://api.mongohq.com/databases" def db = "mydb" def col = "your-collection" httpclient = new DefaultHttpClient() method = new HttpDelete("${base}/${db}/collections/${col}?_apikey=${_apikey}") response = httpclient.execute(method) println response.getStatusLine().getStatusCode() println response.getEntity().getContent().text
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
2012年5月22日火曜日
groovyとMongoHQのREST APIで、コレクション内のドキュメントを削除する
groovyとMongoHQのREST APIで、コレクション内のドキュメントを削除するには、以下のコードを実行します。
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.3') import org.apache.http.client.methods.* import org.apache.http.impl.client.* import org.apache.http.entity.* import groovy.json.* def _apikey = "your-key" def base = "https://api.mongohq.com/databases" def db = "mydb" def col = "employee" def doc_id = "your-document-id" def httpclient = new DefaultHttpClient() def method = new HttpDelete( "${base}/${db}/collections/${col}/documents/${doc_id}?_apikey=${_apikey}") response = httpclient.execute(method) println response.getStatusLine().getStatusCode() println response.getEntity().getContent().text
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
2012年5月21日月曜日
groovyとmongolabのREST APIで、コレクションを列挙する
groovyとmongolabのREST APIで、コレクションを列挙するには、以下のコードを実行します。
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.3') import org.apache.http.client.methods.* import org.apache.http.impl.client.* import groovy.json.* def apikey = "your-key" def base = "https://api.mongolab.com/api/1" def db = "mydb" def httpclient = new DefaultHttpClient() def method = new HttpGet("${base}/databases/${db}/collections?apiKey=${apikey}") response = httpclient.execute(method) println response.getStatusLine().getStatusCode() def json = new JsonSlurper().parseText(response.getEntity().getContent().text) for(col in json){ println "name:${col}" }
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
2012年5月20日日曜日
groovyとMongoHQのREST APIで、コレクション内のドキュメントを更新する
groovyとMongoHQのREST APIで、コレクション内のドキュメントを更新するには、以下のコードを実行します。
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.3') import org.apache.http.client.methods.* import org.apache.http.impl.client.* import org.apache.http.entity.* import groovy.json.* def _apikey = "your-key" def base = "https://api.mongohq.com/databases" def db = "mydb" def col = "employee" def doc_id = "your-document-id" def json = new JsonBuilder() json ( document:[ '$set': ["name":"テスト2"] ], safe:true ) def httpclient = new DefaultHttpClient() def method = new HttpPut( "${base}/${db}/collections/${col}/documents/${doc_id}?_apikey=${_apikey}") method.setHeader("Content-Type", "application/json; charset=utf-8") method.setEntity(new StringEntity(json.toString(), "UTF-8")) response = httpclient.execute(method) println response.getStatusLine().getStatusCode() println response.getEntity().getContent().text
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
2012年5月19日土曜日
groovyとmongolabのREST APIで、コレクション内のドキュメントを削除する
groovyとmongolabのREST APIで、コレクション内のドキュメントを削除するには、以下のコードを実行します。
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.3') import org.apache.http.client.methods.* import org.apache.http.impl.client.* import org.apache.http.entity.* import groovy.json.* def apikey = "your-key" def base = "https://api.mongolab.com/api/1" def db = "mydb" def col = "employee" def doc_id = "your-document-id" def httpclient = new DefaultHttpClient() def method = new HttpDelete( "${base}/databases/${db}/collections/${col}/${doc_id}?apiKey=${apikey}") response = httpclient.execute(method) println response.getStatusLine().getStatusCode() println response.getEntity().getContent().text
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
2012年5月18日金曜日
groovyとMongoHQのREST APIで、コレクション内のドキュメントを取得する
groovyとMongoHQのREST APIで、コレクション内のドキュメントを取得するには、以下のコードを実行します。
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.3') import org.apache.http.client.methods.* import org.apache.http.impl.client.* import groovy.json.* def _apikey = "your-key" def base = "https://api.mongohq.com/databases" def db = "mydb" def col = "employee" def doc_id = "your-document-id" def params = "_apikey=${_apikey}" def httpclient = new DefaultHttpClient() def method = new HttpGet("${base}/${db}/collections/${col}/documents/${doc_id}?${params}") response = httpclient.execute(method) println response.getStatusLine().getStatusCode() def content = new InputStreamReader( response.getEntity().getContent(), "UTF-8").text def json = new JsonSlurper().parseText(content) println json.employeeno println json.name
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
2012年5月17日木曜日
groovyとmongolabのREST APIで、コレクション内のドキュメントを更新する
groovyとmongolabのREST APIで、コレクション内のドキュメントを更新するには、以下のコードを実行します。
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.3') import org.apache.http.client.methods.* import org.apache.http.impl.client.* import org.apache.http.entity.* import groovy.json.* def apikey = "your-key" def base = "https://api.mongolab.com/api/1" def db = "mydb" def col = "employee" def doc_id = "your-document-id" def json = new JsonBuilder() json ( '$set': ["name":"テスト2"] ) def httpclient = new DefaultHttpClient() def method = new HttpPut( "${base}/databases/${db}/collections/${col}/${doc_id}?apiKey=${apikey}") method.setHeader("Content-Type", "application/json; charset=utf-8") method.setEntity(new StringEntity(json.toString(), "UTF-8")) response = httpclient.execute(method) println response.getStatusLine().getStatusCode() println response.getEntity().getContent().text
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
2012年5月16日水曜日
groovyとMongoHQのREST APIで、コレクション内のドキュメントを検索する
groovyとMongoHQのREST APIで、コレクション内のドキュメントを検索するには、以下のコードを実行します。
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.3') import org.apache.http.client.methods.* import org.apache.http.impl.client.* import groovy.json.* def _apikey = "your-key" def base = "https://api.mongohq.com/databases" def db = "mydb" def col = "employee" def params = "_apikey=${_apikey}&q=" + URLEncoder.encode("{employeeno:\"1234\"}", "UTF-8") def httpclient = new DefaultHttpClient() def method = new HttpGet("${base}/${db}/collections/${col}/documents?${params}") response = httpclient.execute(method) println response.getStatusLine().getStatusCode() def content = new InputStreamReader( response.getEntity().getContent(), "UTF-8").text def json = new JsonSlurper().parseText(content) for(employee in json){ println employee.employeeno println employee.name }
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
2012年5月15日火曜日
groovyとmongolabのREST APIで、コレクション内のドキュメントを取得する
groovyとmongolabのREST APIで、コレクション内のドキュメントを取得するには、以下のコードを実行します。
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.3') import org.apache.http.client.methods.* import org.apache.http.impl.client.* import groovy.json.* def apikey = "your-key" def base = "https://api.mongolab.com/api/1" def db = "mydb" def col = "employee" def doc_id = "your-document-id" def params = "apiKey=${apikey}" def httpclient = new DefaultHttpClient() def method = new HttpGet("${base}/databases/${db}/collections/${col}/${doc_id}?${params}") response = httpclient.execute(method) println response.getStatusLine().getStatusCode() def content = new InputStreamReader( response.getEntity().getContent(), "UTF-8").text def json = new JsonSlurper().parseText(content) println json.employeeno println json.name
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
2012年5月14日月曜日
groovyとMongoHQのREST APIで、コレクション内にドキュメントを作成する
groovyとMongoHQのREST APIで、コレクション内にドキュメントを作成するには、以下のコードを実行します。
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.3') import org.apache.http.client.methods.* import org.apache.http.impl.client.* import org.apache.http.entity.* import groovy.json.* def _apikey = "your-key" def base = "https://api.mongohq.com/databases" def db = "mydb" def col = "employee" def json = new JsonBuilder() json ( document:[ employeeno:"1234", name:"test1" ], safe:true ) def httpclient = new DefaultHttpClient() def method = new HttpPost("${base}/${db}/collections/${col}/documents?_apikey=${_apikey}") method.setHeader("Content-Type", "application/json") method.setEntity(new StringEntity(json.toString())) response = httpclient.execute(method) println response.getStatusLine().getStatusCode() println response.getEntity().getContent().text
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
2012年5月13日日曜日
groovyとmongolabのREST APIで、コレクション内のドキュメントを検索する
groovyとmongolabのREST APIで、コレクション内のドキュメントを検索するには、以下のコードを実行します。
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.3') import org.apache.http.client.methods.* import org.apache.http.impl.client.* import groovy.json.* def apikey = "your-key" def base = "https://api.mongolab.com/api/1" def db = "mydb" def col = "employee" def params = "apiKey=${apikey}&q=" + URLEncoder.encode("{employeeno:\"1234\"}", "UTF-8") def httpclient = new DefaultHttpClient() def method = new HttpGet("${base}/databases/${db}/collections/${col}?${params}") response = httpclient.execute(method) println response.getStatusLine().getStatusCode() def content = new InputStreamReader( response.getEntity().getContent(), "UTF-8").text def json = new JsonSlurper().parseText(content) for(employee in json){ println employee.employeeno println employee.name }
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
2012年5月12日土曜日
groovyとMongoHQのREST APIで、コレクションを作成する
groovyとMongoHQのREST APIで、コレクションを作成するには、以下のコードを実行します。
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.3') import org.apache.http.client.entity.* import org.apache.http.client.methods.* import org.apache.http.impl.client.* import org.apache.http.message.* import org.apache.http.protocol.* import groovy.json.* def _apikey = "yourkey" def base = "https://api.mongohq.com/databases" def db = "mydb" def col = "employee" httpclient = new DefaultHttpClient() method = new HttpPost("${base}/${db}/collections?_apikey=${_apikey}") values = [ new BasicNameValuePair('name', col) ] method.setEntity(new UrlEncodedFormEntity(values, HTTP.UTF_8)) response = httpclient.execute(method) println response.getStatusLine().getStatusCode() println response.getEntity().getContent().text
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
2012年5月11日金曜日
groovyとmongolabのREST APIで、コレクションにドキュメントを作成する
groovyとmongolabのREST APIで、コレクションにドキュメントを作成するには、以下のコードを実行します。
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.3') import org.apache.http.client.methods.* import org.apache.http.impl.client.* import org.apache.http.entity.* import groovy.json.* def apikey = "yourkey" def base = "https://api.mongolab.com/api/1" def db = "mydb" def col = "employee" def json = new JsonBuilder() json ( [ employeeno:"1234", name:"test1" ], [ employeeno:"5678", name:"test2" ] ) def httpclient = new DefaultHttpClient() def method = new HttpPost("${base}/databases/${db}/collections/${col}?apiKey=${apikey}") method.setHeader("Content-Type", "application/json") method.setEntity(new StringEntity(json.toString())) response = httpclient.execute(method) println response.getStatusLine().getStatusCode() println response.getEntity().getContent().text
動作環境
groovy 1.8.6
関連情報
groovyとMongoDBのまとめ
2012年5月9日水曜日
grailsとcloud foundryで画像加工・変換サービス
grailsとcloud foundryで画像加工・変換サービスを作ってみました。ちょっとした画像加工などにご利用どうぞ。
以下のリンクからアクセスできます。
gImageConverter
2012年5月1日火曜日
grailsとjsPlumbでコネクター上にダイヤモンド形を描画する
grailsとjsPlumbでコネクター上にダイヤモンド形を描画するには、以下の手順を実行します。
1. ApplicationResources.groovyでモジュールを宣言
2. main.gspに以下のようにr:requireを使用してリソースを導入します。
動作環境
grails 2.0.1
関連情報
jsPlumbのホームページ
http://jsplumb.org/jquery/demo.html
1. ApplicationResources.groovyでモジュールを宣言
modules = { application { resource url:'js/application.js' } // jsPlumbのモジュールを宣言 jsplumb { dependsOn 'jquery-ui' resource url: 'js/jquery.jsPlumb-1.3.7-all-min.js', disposition:'head' } }コマンドでgrails install-plugin jquery-uiを実行してjQuery UI pluginをインストールしておきます。 jquery.jsPlumb-1.3.7-all-min.jsはweb-app/jsに配置します。
2. main.gspに以下のようにr:requireを使用してリソースを導入します。
<g:layoutHead/> <!-- jsPlumbを使用 --> <r:require module="jsplumb"/> <r:layoutResources /> </head>3. viewに以下のようなコードを追加します。
<!-- jsPlumb --> <div id="jsplumb" style="width: 300px; height:200px; background-color: #dddddd;">jsPlumb <div id="node0" style="width:50px; height:50px; background-color: #7799dd; position: absolute;"> </div> <div id="node1" style="width:50px; height:50px; background-color: #ffff99;position: absolute;"> </div> </div> <script type="text/javascript"> $(function(){ // レンダーモードを設定 jsPlumb.setRenderMode(jsPlumb.CANVAS); // unload処理 $("body").unload(function(){ jsPlumb.unload(); }); jsPlumb.Defaults.Container = "jsplumb"; // endpointの作成と配置 $("#node0").css("left", $("#jsplumb").position().left + 10); $("#node0").css("top", $("#jsplumb").position().top + 40); var node0 = jsPlumb.addEndpoint("node0", {anchor:"AutoDefault", endpoint:["Blank"]}); $("#node1").css("left", $("#jsplumb").position().left + 240); $("#node1").css("top", $("#jsplumb").position().top + 140); var node1 = jsPlumb.addEndpoint("node1", {anchor:"AutoDefault", endpoint:["Blank"]}); // endpointsを接続(overlaysでdiamondを指定する) jsPlumb.connect({ source:node0, target:node1, overlays:[["Diamond", {location:0.5, width:30, length:30}]] }); }); </script>出力画面
動作環境
grails 2.0.1
関連情報
jsPlumbのホームページ
http://jsplumb.org/jquery/demo.html
groovyとPostgreSQLでテーブルスペースを一覧表示する
groovyとPostgreSQLでテーブルスペースを一覧表示するには、以下のコードを実行します。
動作環境
groovy 1.8.6, JDK7 Update4, PostgreSQL 9.1
@Grab(group='postgresql', module='postgresql', version='9.1-901.jdbc4') import groovy.sql.Sql sql = Sql.newInstance( "jdbc:postgresql://localhost:5432/postgres", "postgres", "postgres", "org.postgresql.Driver") query = """ select spcname, -- テーブルスペース名 spcowner, -- テーブルスペースのオーナーのoid spclocation -- テーブルスペースのディレクトリ from pg_tablespace order by spcname """ sql.eachRow(query){ println "${it.spcname},${it.spcowner},${it.spclocation}" }
動作環境
groovy 1.8.6, JDK7 Update4, PostgreSQL 9.1
2012年4月26日木曜日
grailsとROMEでRSS/ATOMの内容を表示する
grailsとROMEでRSS/ATOMの内容を表示するには、以下の手順を実行します。
1. BuildConfig.groovyでROMEのライブラリを指定します。
動作環境
grails 2.0.1
関連情報
groovyとROMEでATOM/RSSフィードのエントリを取得する
http://groovyarekore.blogspot.jp/2009/09/groovyromeatomrss.html
1. BuildConfig.groovyでROMEのライブラリを指定します。
...省略... repositories { inherits true // Whether to inherit repository definitions from plugins grailsPlugins() grailsHome() grailsCentral() mavenCentral() // uncomment these to enable remote dependency resolution from public Maven repositories // mavenCentral()をuncommentする mavenCentral() //mavenLocal() //mavenRepo "http://snapshots.repository.codehaus.org" //mavenRepo "http://repository.codehaus.org" //mavenRepo "http://download.java.net/maven/2/" //mavenRepo "http://repository.jboss.com/maven2/" } dependencies { // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg. // ROMEのライブラリを指定 runtime 'rome:rome:1.0' // runtime 'mysql:mysql-connector-java:5.1.16' } ...省略...2. コントローラークラスで以下のようなコードを記述します。
package yourpackage import com.sun.syndication.feed.synd.* import com.sun.syndication.io.* class RssController { def index() { def uri = "http://groovyarekore.blogspot.com/feeds/posts/default" return [feed:new SyndFeedInput(false).build( new InputStreamReader(new URL(uri).openStream(), "UTF-8") )] } }3. ビューに以下のようなマークアップを記述します。
<!-- RSSの内容を出力 --> <h2>${feed.title}</h2> <ul> <g:each in="${feed.entries}" status="i" var="entry"> <li>${entry.publishedDate.format('yyyy/MM/dd(E)')}:<a href="${entry.link}" target="_blank">${entry.title}</a> </li> </g:each> </ul>出力画面
動作環境
grails 2.0.1
関連情報
groovyとROMEでATOM/RSSフィードのエントリを取得する
http://groovyarekore.blogspot.jp/2009/09/groovyromeatomrss.html
登録:
投稿 (Atom)