<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-25238059</id><updated>2009-11-09T02:37:24.448+09:00</updated><title type='text'>まだブロ</title><subtitle type='html'>日々ちょろちょろと調べてみたことなどを書いてゆきます．
あ、名前をちょっと変えました。</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tf0054.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default?start-index=26&amp;max-results=25'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>453</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-25238059.post-7753808157269672845</id><published>2009-11-09T01:21:00.005+09:00</published><updated>2009-11-09T02:37:24.461+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HIVE'/><title type='text'>[HIVE] 日本語が。。。</title><content type='html'>jdkのエンコードのせいだと思うのだけど(コマンドラインでUTF8は見えるから)、HIVEのコンソールでは日本語が使えない。直接cygwinのコマンドラインでなら使えるので、まぁいいのだけど。&lt;br /&gt;&lt;br /&gt;$&amp;nbsp;/cygdrive/d/work/apache-hive/build/dist/bin/hive&amp;nbsp;-hiveconf&amp;nbsp;hadoop.bin.path=&amp;quot;bash&amp;nbsp;/cygdrive/d/work/apache-hadoop-0.19.2/bin/hadoop&amp;quot;&amp;nbsp;-e&amp;nbsp;&amp;quot;FROM&amp;nbsp;zip&amp;nbsp;z&amp;nbsp;insert&amp;nbsp;overwrite&amp;nbsp;directory&amp;nbsp;'/tmp/gina3'&amp;nbsp;SELECT&amp;nbsp;z.zip,&amp;nbsp;z.pref,&amp;nbsp;z.city,&amp;nbsp;z.town&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;z.ver&amp;nbsp;=&amp;nbsp;'2008-12-26'&amp;nbsp;AND&amp;nbsp;z.town&amp;nbsp;REGEXP&amp;nbsp;'銀座';&amp;quot;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.atmarkit.co.jp/fdb/single/s_hive/hive_06.html"&gt;@ITの記事&lt;/a&gt;を参考に練習中。。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-7753808157269672845?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/7753808157269672845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/7753808157269672845'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/11/hive_09.html' title='[HIVE] 日本語が。。。'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-1815530980594366414</id><published>2009-11-06T01:53:00.008+09:00</published><updated>2009-11-06T02:08:58.088+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HIVE'/><category scheme='http://www.blogger.com/atom/ns#' term='Hadoop'/><title type='text'>[HIVE] select出来た!</title><content type='html'>cygwinだと、HIVEからhadoopを呼び出すところで失敗する。なのでこのためにはhiveconfオプションにて、hadoopのまるママの実行文を書いておくべし。&lt;br /&gt;&lt;br /&gt;00962724@XXX&amp;nbsp;/cygdrive/d/work/apache-hive/build/dist/conf&lt;br /&gt;$&amp;nbsp;/cygdrive/d/work/apache-hive/build/dist/bin/hive&amp;nbsp;-hiveconf&amp;nbsp;hadoop.bin.path=&lt;nobr&gt;&lt;FONT COLOR="RED"&gt;&amp;quot;bash&amp;nbsp;/cygdrive/d/work/apache-hadoop-0.19.2/bin/hadoop&amp;quot;&lt;/FONT&gt;&lt;/nobr&gt;&amp;nbsp;-e&amp;nbsp;&amp;quot;SELECT&amp;nbsp;a.foo&amp;nbsp;FROM&amp;nbsp;invites&amp;nbsp;a&amp;nbsp;WHERE&amp;nbsp;a.ds='2008-08-15';&amp;quot;&lt;br /&gt;&lt;br /&gt;また、以下のようなエラーがでるときはmetadataが壊れていた様子。&lt;br /&gt;&lt;br /&gt;Job&amp;nbsp;Submission&amp;nbsp;failed&amp;nbsp;with&amp;nbsp;exception&amp;nbsp;'java.lang.NullPointerException(null)'&lt;br /&gt;&lt;br /&gt;"drop table"して(このコマンドも失敗したけど、その後"show tables"してテーブルが無いようなら"create table"してloadすれば、うまく動くようになった！&lt;br /&gt;&lt;br /&gt;Hive&amp;nbsp;history&amp;nbsp;file=/tmp/00962724/hive_job_log_00962724_200911060205_2037141967.txt&lt;br /&gt;Total&amp;nbsp;MapReduce&amp;nbsp;jobs&amp;nbsp;=&amp;nbsp;1&lt;br /&gt;Number&amp;nbsp;of&amp;nbsp;reduce&amp;nbsp;tasks&amp;nbsp;is&amp;nbsp;set&amp;nbsp;to&amp;nbsp;0&amp;nbsp;since&amp;nbsp;there's&amp;nbsp;no&amp;nbsp;reduce&amp;nbsp;operator&lt;br /&gt;09/11/06&amp;nbsp;02:05:32&amp;nbsp;INFO&amp;nbsp;exec.ExecDriver:&amp;nbsp;Number&amp;nbsp;of&amp;nbsp;reduce&amp;nbsp;tasks&amp;nbsp;is&amp;nbsp;set&amp;nbsp;to&amp;nbsp;0&amp;nbsp;since&amp;nbsp;there's&amp;nbsp;no&amp;nbsp;reduce&amp;nbsp;operator&lt;br /&gt;09/11/06&amp;nbsp;02:05:32&amp;nbsp;INFO&amp;nbsp;exec.ExecDriver:&amp;nbsp;Using&amp;nbsp;org.apache.hadoop.hive.ql.io.HiveInputFormat&lt;br /&gt;09/11/06&amp;nbsp;02:05:32&amp;nbsp;INFO&amp;nbsp;exec.ExecDriver:&amp;nbsp;Processing&amp;nbsp;alias&amp;nbsp;a&lt;br /&gt;09/11/06&amp;nbsp;02:05:32&amp;nbsp;INFO&amp;nbsp;exec.ExecDriver:&amp;nbsp;Adding&amp;nbsp;input&amp;nbsp;file&amp;nbsp;file:/user/hive/warehouse/invites/ds=2008-08-15&lt;br /&gt;09/11/06&amp;nbsp;02:05:34&amp;nbsp;INFO&amp;nbsp;jvm.JvmMetrics:&amp;nbsp;Initializing&amp;nbsp;JVM&amp;nbsp;Metrics&amp;nbsp;with&amp;nbsp;processName=JobTracker,&amp;nbsp;sessionId=&lt;br /&gt;09/11/06&amp;nbsp;02:05:34&amp;nbsp;WARN&amp;nbsp;mapred.JobClient:&amp;nbsp;Use&amp;nbsp;GenericOptionsParser&amp;nbsp;for&amp;nbsp;parsing&amp;nbsp;the&amp;nbsp;arguments.&amp;nbsp;Applications&amp;nbsp;should&amp;nbsp;implement&amp;nbsp;Tool&amp;nbsp;for&amp;nbsp;the&amp;nbsp;same.&lt;br /&gt;09/11/06&amp;nbsp;02:05:34&amp;nbsp;INFO&amp;nbsp;mapred.FileInputFormat:&amp;nbsp;Total&amp;nbsp;input&amp;nbsp;paths&amp;nbsp;to&amp;nbsp;process&amp;nbsp;:&amp;nbsp;1&lt;br /&gt;Job&amp;nbsp;running&amp;nbsp;in-process&amp;nbsp;(local&amp;nbsp;Hadoop)&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.ExecDriver:&amp;nbsp;Job&amp;nbsp;running&amp;nbsp;in-process&amp;nbsp;(local&amp;nbsp;Hadoop)&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;mapred.FileInputFormat:&amp;nbsp;Total&amp;nbsp;input&amp;nbsp;paths&amp;nbsp;to&amp;nbsp;process&amp;nbsp;:&amp;nbsp;1&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;mapred.MapTask:&amp;nbsp;numReduceTasks:&amp;nbsp;0&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;ExecMapper:&amp;nbsp;maximum&amp;nbsp;memory&amp;nbsp;=&amp;nbsp;1040515072&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;ExecMapper:&amp;nbsp;conf&amp;nbsp;classpath&amp;nbsp;=&amp;nbsp;[file:/D:/tmp/hadoop-00962724/hadoop-unjar3921453707640367881/,&amp;nbsp;file:/D:/work/apache-hive/build/dist/lib/hive_exec.jar,&amp;nbsp;file:/D:/tmp/hadoop-00962724/hadoop-unjar3921453707640367881/classes]&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;ExecMapper:&amp;nbsp;thread&amp;nbsp;classpath&amp;nbsp;=&amp;nbsp;[file:/D:/tmp/hadoop-00962724/hadoop-unjar3921453707640367881/,&amp;nbsp;file:/D:/work/apache-hive/build/dist/lib/hive_exec.jar,&amp;nbsp;file:/D:/tmp/hadoop-00962724/hadoop-unjar3921453707640367881/classes]&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.MapOperator:&amp;nbsp;Adding&amp;nbsp;alias&amp;nbsp;a&amp;nbsp;to&amp;nbsp;work&amp;nbsp;list&amp;nbsp;for&amp;nbsp;file&amp;nbsp;/user/hive/warehouse/invites/ds=2008-08-15/kv2.txt&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.MapOperator:&amp;nbsp;dump&amp;nbsp;TS&amp;nbsp;struct&amp;lt;foo:int,bar:string,ds:string&amp;gt;&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;ExecMapper:&lt;br /&gt;&amp;lt;MAP&amp;gt;Id&amp;nbsp;=10&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Children&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;TS&amp;gt;Id&amp;nbsp;=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Children&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;FIL&amp;gt;Id&amp;nbsp;=1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Children&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;FIL&amp;gt;Id&amp;nbsp;=2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Children&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;SEL&amp;gt;Id&amp;nbsp;=3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Children&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;FS&amp;gt;Id&amp;nbsp;=4&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Parent&amp;gt;Id&amp;nbsp;=&amp;nbsp;3&amp;nbsp;&amp;lt;\Parent&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;\FS&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;\Children&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Parent&amp;gt;Id&amp;nbsp;=&amp;nbsp;2&amp;nbsp;&amp;lt;\Parent&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;\SEL&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;\Children&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Parent&amp;gt;Id&amp;nbsp;=&amp;nbsp;1&amp;nbsp;&amp;lt;\Parent&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;\FIL&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;\Children&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Parent&amp;gt;Id&amp;nbsp;=&amp;nbsp;0&amp;nbsp;&amp;lt;\Parent&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;\FIL&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;\Children&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Parent&amp;gt;Id&amp;nbsp;=&amp;nbsp;10&amp;nbsp;&amp;lt;\Parent&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;\TS&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;\Children&amp;gt;&lt;br /&gt;&amp;lt;\MAP&amp;gt;&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.MapOperator:&amp;nbsp;Initializing&amp;nbsp;Self&amp;nbsp;10&amp;nbsp;MAP&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.TableScanOperator:&amp;nbsp;Initializing&amp;nbsp;Self&amp;nbsp;0&amp;nbsp;TS&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.TableScanOperator:&amp;nbsp;Operator&amp;nbsp;0&amp;nbsp;TS&amp;nbsp;initialized&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.TableScanOperator:&amp;nbsp;Initializing&amp;nbsp;children&amp;nbsp;of&amp;nbsp;0&amp;nbsp;TS&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;Initializing&amp;nbsp;child&amp;nbsp;1&amp;nbsp;FIL&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;Initializing&amp;nbsp;Self&amp;nbsp;1&amp;nbsp;FIL&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;Operator&amp;nbsp;1&amp;nbsp;FIL&amp;nbsp;initialized&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;Initializing&amp;nbsp;children&amp;nbsp;of&amp;nbsp;1&amp;nbsp;FIL&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;Initializing&amp;nbsp;child&amp;nbsp;2&amp;nbsp;FIL&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;Initializing&amp;nbsp;Self&amp;nbsp;2&amp;nbsp;FIL&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;Operator&amp;nbsp;2&amp;nbsp;FIL&amp;nbsp;initialized&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;Initializing&amp;nbsp;children&amp;nbsp;of&amp;nbsp;2&amp;nbsp;FIL&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.SelectOperator:&amp;nbsp;Initializing&amp;nbsp;child&amp;nbsp;3&amp;nbsp;SEL&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.SelectOperator:&amp;nbsp;Initializing&amp;nbsp;Self&amp;nbsp;3&amp;nbsp;SEL&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.SelectOperator:&amp;nbsp;SELECT&amp;nbsp;struct&amp;lt;foo:int,bar:string,ds:string&amp;gt;&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.SelectOperator:&amp;nbsp;Operator&amp;nbsp;3&amp;nbsp;SEL&amp;nbsp;initialized&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.SelectOperator:&amp;nbsp;Initializing&amp;nbsp;children&amp;nbsp;of&amp;nbsp;3&amp;nbsp;SEL&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FileSinkOperator:&amp;nbsp;Initializing&amp;nbsp;child&amp;nbsp;4&amp;nbsp;FS&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FileSinkOperator:&amp;nbsp;Initializing&amp;nbsp;Self&amp;nbsp;4&amp;nbsp;FS&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FileSinkOperator:&amp;nbsp;Writing&amp;nbsp;to&amp;nbsp;temp&amp;nbsp;file:&amp;nbsp;FS&amp;nbsp;file:/tmp/hive-00962724/1005059804/_tmp.10001/_tmp.attempt_local_0001_m_000000_0&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FileSinkOperator:&amp;nbsp;Operator&amp;nbsp;4&amp;nbsp;FS&amp;nbsp;initialized&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FileSinkOperator:&amp;nbsp;Initialization&amp;nbsp;Done&amp;nbsp;4&amp;nbsp;FS&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.SelectOperator:&amp;nbsp;Initialization&amp;nbsp;Done&amp;nbsp;3&amp;nbsp;SEL&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;Initialization&amp;nbsp;Done&amp;nbsp;2&amp;nbsp;FIL&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;Initialization&amp;nbsp;Done&amp;nbsp;1&amp;nbsp;FIL&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.TableScanOperator:&amp;nbsp;Initialization&amp;nbsp;Done&amp;nbsp;0&amp;nbsp;TS&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.MapOperator:&amp;nbsp;Initialization&amp;nbsp;Done&amp;nbsp;10&amp;nbsp;MAP&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.MapOperator:&amp;nbsp;10&amp;nbsp;forwarding&amp;nbsp;1&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.TableScanOperator:&amp;nbsp;0&amp;nbsp;forwarding&amp;nbsp;1&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;1&amp;nbsp;forwarding&amp;nbsp;1&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;2&amp;nbsp;forwarding&amp;nbsp;1&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.SelectOperator:&amp;nbsp;3&amp;nbsp;forwarding&amp;nbsp;1&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;ExecMapper:&amp;nbsp;ExecMapper:&amp;nbsp;processing&amp;nbsp;1&amp;nbsp;rows:&amp;nbsp;used&amp;nbsp;memory&amp;nbsp;=&amp;nbsp;2369824&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.MapOperator:&amp;nbsp;10&amp;nbsp;forwarding&amp;nbsp;10&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.TableScanOperator:&amp;nbsp;0&amp;nbsp;forwarding&amp;nbsp;10&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;1&amp;nbsp;forwarding&amp;nbsp;10&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;2&amp;nbsp;forwarding&amp;nbsp;10&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.SelectOperator:&amp;nbsp;3&amp;nbsp;forwarding&amp;nbsp;10&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;ExecMapper:&amp;nbsp;ExecMapper:&amp;nbsp;processing&amp;nbsp;10&amp;nbsp;rows:&amp;nbsp;used&amp;nbsp;memory&amp;nbsp;=&amp;nbsp;2388056&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.MapOperator:&amp;nbsp;10&amp;nbsp;forwarding&amp;nbsp;100&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.TableScanOperator:&amp;nbsp;0&amp;nbsp;forwarding&amp;nbsp;100&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;1&amp;nbsp;forwarding&amp;nbsp;100&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;2&amp;nbsp;forwarding&amp;nbsp;100&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;exec.SelectOperator:&amp;nbsp;3&amp;nbsp;forwarding&amp;nbsp;100&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:35&amp;nbsp;INFO&amp;nbsp;ExecMapper:&amp;nbsp;ExecMapper:&amp;nbsp;processing&amp;nbsp;100&amp;nbsp;rows:&amp;nbsp;used&amp;nbsp;memory&amp;nbsp;=&amp;nbsp;2388056&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.MapOperator:&amp;nbsp;10&amp;nbsp;finished.&amp;nbsp;closing...&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.MapOperator:&amp;nbsp;10&amp;nbsp;forwarded&amp;nbsp;500&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.MapOperator:&amp;nbsp;DESERIALIZE_ERRORS:0&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.TableScanOperator:&amp;nbsp;0&amp;nbsp;finished.&amp;nbsp;closing...&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.TableScanOperator:&amp;nbsp;0&amp;nbsp;forwarded&amp;nbsp;500&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;1&amp;nbsp;finished.&amp;nbsp;closing...&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;1&amp;nbsp;forwarded&amp;nbsp;500&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;PASSED:500&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;FILTERED:0&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;2&amp;nbsp;finished.&amp;nbsp;closing...&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;2&amp;nbsp;forwarded&amp;nbsp;500&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;PASSED:500&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;FILTERED:0&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.SelectOperator:&amp;nbsp;3&amp;nbsp;finished.&amp;nbsp;closing...&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.SelectOperator:&amp;nbsp;3&amp;nbsp;forwarded&amp;nbsp;500&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.FileSinkOperator:&amp;nbsp;4&amp;nbsp;finished.&amp;nbsp;closing...&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.FileSinkOperator:&amp;nbsp;4&amp;nbsp;forwarded&amp;nbsp;0&amp;nbsp;rows&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.FileSinkOperator:&amp;nbsp;Committed&amp;nbsp;to&amp;nbsp;output&amp;nbsp;file:&amp;nbsp;file:/tmp/hive-00962724/1005059804/_tmp.10001/attempt_local_0001_m_000000_0&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.SelectOperator:&amp;nbsp;3&amp;nbsp;Close&amp;nbsp;done&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;2&amp;nbsp;Close&amp;nbsp;done&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.FilterOperator:&amp;nbsp;1&amp;nbsp;Close&amp;nbsp;done&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.TableScanOperator:&amp;nbsp;0&amp;nbsp;Close&amp;nbsp;done&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.MapOperator:&amp;nbsp;10&amp;nbsp;Close&amp;nbsp;done&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;ExecMapper:&amp;nbsp;ExecMapper:&amp;nbsp;processed&amp;nbsp;500&amp;nbsp;rows:&amp;nbsp;used&amp;nbsp;memory&amp;nbsp;=&amp;nbsp;2459320&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;mapred.TaskRunner:&amp;nbsp;Task:attempt_local_0001_m_000000_0&amp;nbsp;is&amp;nbsp;done.&amp;nbsp;And&amp;nbsp;is&amp;nbsp;in&amp;nbsp;the&amp;nbsp;process&amp;nbsp;of&amp;nbsp;commiting&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;mapred.LocalJobRunner:&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;mapred.TaskRunner:&amp;nbsp;Task&amp;nbsp;attempt_local_0001_m_000000_0&amp;nbsp;is&amp;nbsp;allowed&amp;nbsp;to&amp;nbsp;commit&amp;nbsp;now&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;mapred.FileOutputCommitter:&amp;nbsp;Saved&amp;nbsp;output&amp;nbsp;of&amp;nbsp;task&amp;nbsp;'attempt_local_0001_m_000000_0'&amp;nbsp;to&amp;nbsp;file:/tmp/hive-00962724/384798627&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;mapred.LocalJobRunner:&amp;nbsp;file:/user/hive/warehouse/invites/ds=2008-08-15/kv2.txt:0+5791&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;mapred.TaskRunner:&amp;nbsp;Task&amp;nbsp;'attempt_local_0001_m_000000_0'&amp;nbsp;done.&lt;br /&gt;2009-11-06&amp;nbsp;02:05:36,156&amp;nbsp;map&amp;nbsp;=&amp;nbsp;100%,&amp;nbsp;&amp;nbsp;reduce&amp;nbsp;=&amp;nbsp;0%&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.ExecDriver:&amp;nbsp;2009-11-06&amp;nbsp;02:05:36,156&amp;nbsp;map&amp;nbsp;=&amp;nbsp;100%,&amp;nbsp;&amp;nbsp;reduce&amp;nbsp;=&amp;nbsp;0%&lt;br /&gt;Ended&amp;nbsp;Job&amp;nbsp;=&amp;nbsp;job_local_0001&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.ExecDriver:&amp;nbsp;Ended&amp;nbsp;Job&amp;nbsp;=&amp;nbsp;job_local_0001&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.FileSinkOperator:&amp;nbsp;Moving&amp;nbsp;tmp&amp;nbsp;dir:&amp;nbsp;file:/tmp/hive-00962724/1005059804/_tmp.10001&amp;nbsp;to:&amp;nbsp;file:/tmp/hive-00962724/1005059804/_tmp.10001.intermediate&lt;br /&gt;09/11/06&amp;nbsp;02:05:36&amp;nbsp;INFO&amp;nbsp;exec.FileSinkOperator:&amp;nbsp;Moving&amp;nbsp;tmp&amp;nbsp;dir:&amp;nbsp;file:/tmp/hive-00962724/1005059804/_tmp.10001.intermediate&amp;nbsp;to:&amp;nbsp;file:/tmp/hive-00962724/1005059804/10001&lt;br /&gt;OK&lt;br /&gt;Time&amp;nbsp;taken:&amp;nbsp;27.86&amp;nbsp;seconds&lt;br /&gt;&lt;br /&gt;00962724@XXX&amp;nbsp;/cygdrive/d/work/apache-hive/build/dist/conf&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-1815530980594366414?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/1815530980594366414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/1815530980594366414'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/11/hive-select.html' title='[HIVE] select出来た!'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-9092823441886810424</id><published>2009-11-05T01:15:00.006+09:00</published><updated>2009-11-09T00:40:33.586+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HIVE'/><category scheme='http://www.blogger.com/atom/ns#' term='Hadoop'/><title type='text'>[HIVE] 準備が結構。。。</title><content type='html'>Hadoopも、JavaのScalaと同様に楽をしたいため&lt;a href="http://hadoop.apache.org/hive/"&gt;HIVE&lt;/a&gt;を使おうと思って準備。したのだけど結構はまったのでメモ。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;・Hadoopをインストール&lt;/span&gt;&lt;br /&gt;HIVEにするといってもHadoopは事前に入れておく必要がある様子。このときおとなしくcygwinを入れるべし。中でdfとか使うのでbash.exeなどを入れていても(それだけでは)途中でこける。&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;・HIVEをインストール&lt;/span&gt;&lt;br /&gt;&lt;a href="http://journal.mycom.co.jp/articles/2008/12/03/apacheivy/index.html"&gt;ivy&lt;/a&gt;(というmavenみたいな構成管理ツール)が曲者。というかtrunkをsvnで取ってきたのだけど、中でもう古い、たとえばv0.19.0みたいなHadoopをdownloadしようとしてしまう。なので以下2ファイルを書き替える必要があった。&lt;br /&gt;apache-hive\shims\ivy.xml&lt;br /&gt;apache-hive\shims\build.xml&lt;br /&gt;これらの中で、使いたいHadoopバージョンだけを残せばOK(私はv0.19.2だけを入れました)。あと、普通に入れると途中のHadoopダウンロードが遅いので、&lt;br /&gt;D:\work&gt;ant -Dhadoop.mirror="http://www.meisei-u.ac.jp/mirror/apache/dist" -Dhadoop.version=0.19.2 package&lt;br /&gt;のとおり、ダウンロードサイトを指定すると吉。&lt;br /&gt;&lt;br /&gt;補足：&lt;br /&gt;cygwinのv1.7をUTF8化する方法は&lt;a href="http://vmi.jp/software/cygwin/cygwin-wcwidth.html"&gt;こちら&lt;/a&gt;。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-9092823441886810424?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/9092823441886810424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/9092823441886810424'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/11/hive.html' title='[HIVE] 準備が結構。。。'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-1151488303215284986</id><published>2009-10-25T16:59:00.004+09:00</published><updated>2009-10-25T17:04:36.695+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solr'/><title type='text'>[Solr] tikaを簡単に</title><content type='html'>curlを2回つなげると、簡単にウェブページを検索対象にできる。&lt;br /&gt;&lt;br /&gt;konpyuta:~/work&amp;nbsp;tf0054$&amp;nbsp;curl&amp;nbsp;-s&amp;nbsp;http://lucene.apache.org/tika/&amp;nbsp;|&amp;nbsp;curl&amp;nbsp;'http://localhost:8983/solr/update/extract?literal.id=doc5&amp;amp;literal.url=doc5&amp;amp;commit=true'&amp;nbsp;-F&amp;nbsp;&amp;quot;myfile=@-&amp;quot;&lt;br /&gt;&amp;lt;?xml&amp;nbsp;version=&amp;quot;1.0&amp;quot;&amp;nbsp;encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;response&amp;gt;&lt;br /&gt;&amp;lt;lst&amp;nbsp;name=&amp;quot;responseHeader&amp;quot;&amp;gt;&amp;lt;int&amp;nbsp;name=&amp;quot;status&amp;quot;&amp;gt;0&amp;lt;/int&amp;gt;&amp;lt;int&amp;nbsp;name=&amp;quot;QTime&amp;quot;&amp;gt;76&amp;lt;/int&amp;gt;&amp;lt;/lst&amp;gt;&lt;br /&gt;&amp;lt;/response&amp;gt;&lt;br /&gt;konpyuta:~/work&amp;nbsp;tf0054$&amp;nbsp;&lt;br /&gt;&lt;br /&gt;ちなみに、&lt;a href="http://www.big.or.jp/~crane/cocoa/0800_internet/curl/"&gt;curlの"-F"オプション&lt;/a&gt;で指定ファイルをPOSTすることができる(ココでは前のcurlから受け取ったSTDINを流すために"-"で受けている)。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-1151488303215284986?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/1151488303215284986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/1151488303215284986'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/10/solr-tika.html' title='[Solr] tikaを簡単に'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-4076122479464060340</id><published>2009-10-03T02:17:00.007+09:00</published><updated>2009-10-03T03:57:37.626+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scala'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>[Android] BlueLoggerを公開しました</title><content type='html'>まだまだお恥ずかしいレベルですが、AndroidでBluetooth通信を使って疑似的に「すれちがい通信」ぽいことを行うアプリを作ってADC2に出していたので、マーケットにも&lt;a href="http://jp.androlib.com/android.application.com-digipepper-bluelogger-qFwz.aspx"&gt;公開&lt;/a&gt;してみました(もちろんScalaで書いています)。&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0tSGvTIRZ7U/SsY1zFxTAxI/AAAAAAAAAIk/k1xBaqshJwk/s1600-h/device.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 214px; height: 320px;" src="http://4.bp.blogspot.com/_0tSGvTIRZ7U/SsY1zFxTAxI/AAAAAAAAAIk/k1xBaqshJwk/s320/device.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5388053156033921810" /&gt;&lt;/a&gt;&lt;br /&gt;Twitter連携としては「&lt;a href="http://code.google.com/p/droidsensor/"&gt;すれちがったー&lt;/a&gt;」さんが抜群のバランス感なのでアレですが、一応Twidroidを入れてあると連携してTweetも打てます。&lt;br /&gt;&lt;br /&gt;ただ、、いかんせんHT-03A同士で実験をしていないので、、お互いうまく発見できるか分かりません。。が。ぜひ使えたら、また使えなかったりバグっていたら教えて下さい!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-4076122479464060340?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/4076122479464060340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/4076122479464060340'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/10/android-bluelogger.html' title='[Android] BlueLoggerを公開しました'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0tSGvTIRZ7U/SsY1zFxTAxI/AAAAAAAAAIk/k1xBaqshJwk/s72-c/device.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-8638247861383267282</id><published>2009-09-24T05:09:00.002+09:00</published><updated>2009-09-24T05:13:40.610+09:00</updated><title type='text'>[Linux] フィード取得の偽装に関して</title><content type='html'>blogspotユーザのフィード(atomで吐いている)を解析、画像のソースを本文に引っ付けて戻す事で、その記事ページに行かなくてもリーダ上で画像を見られるようにしたい。のだけど、atomで&amp;lt;img&amp;nbsp;src=&amp;quot;〜&amp;quot;&amp;gt;〜&amp;lt;/img&amp;gt;をきちんと処理してもらうには、どうすれば良いのか分からない。。。atom:contentでcdata付けてみたけどダメ。あ、cdata付けるからだめなのかな。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-8638247861383267282?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/8638247861383267282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/8638247861383267282'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/09/linux.html' title='[Linux] フィード取得の偽装に関して'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-6166470826146006616</id><published>2009-09-10T04:45:00.003+09:00</published><updated>2009-09-10T04:55:12.200+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solr'/><category scheme='http://www.blogger.com/atom/ns#' term='gosen'/><title type='text'>[Solr] GoSenをまた修正!</title><content type='html'>Luceneが2.9-rc2になったからか、またSolrでgosenが動かなくなっていたので修正しました。&lt;br /&gt;&lt;a href="http://mantis.divers-high.com/work/public/lucene-ja/lucene-ja-gosen-1.0.2.zip"&gt;lucene-ja-gosen-1.0.2.zip&lt;/a&gt;として置いておきます。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-6166470826146006616?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/6166470826146006616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/6166470826146006616'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/09/solr-gosen.html' title='[Solr] GoSenをまた修正!'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-1862871434363185160</id><published>2009-08-29T03:47:00.003+09:00</published><updated>2009-08-29T03:53:41.547+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>[Android] サブメニューの作成</title><content type='html'>androidでメニューをXMLで書くときの、サブメニュー(クリックしたら更にその中から表示されるメニュー。選択肢だけが画面中央にでる)は以下のように書きます。&lt;br /&gt;&lt;pre class="prettyprint"&gt;&lt;br /&gt;&amp;lt;?xml&amp;nbsp;version=&amp;quot;1.0&amp;quot;&amp;nbsp;encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;menu&amp;nbsp;xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&amp;gt;&lt;br /&gt; &amp;lt;item&amp;nbsp;android:id=&amp;quot;@+id/main_Sort&amp;quot;&amp;nbsp;android:title=&amp;quot;ソート&amp;quot;&lt;br /&gt;  android:icon=&amp;quot;@android:drawable/ic_menu_more&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;menu&amp;gt;&amp;nbsp;&lt;br /&gt;   &amp;lt;item&amp;nbsp;android:id=&amp;quot;@+id/main_Sort_1&amp;quot;&amp;nbsp;android:title=&amp;quot;すれ違い日時&amp;quot;&amp;nbsp;/&amp;gt;&lt;br /&gt;   &amp;lt;item&amp;nbsp;android:id=&amp;quot;@+id/main_Sort_2&amp;quot;&amp;nbsp;android:title=&amp;quot;すれ違い回数&amp;quot;&amp;nbsp;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/menu&amp;gt;&amp;nbsp;&lt;br /&gt; &amp;lt;/item&amp;gt;&lt;br /&gt; &amp;lt;item&amp;nbsp;android:id=&amp;quot;@+id/main_Input&amp;quot;&amp;nbsp;android:title=&amp;quot;入力&amp;quot;&amp;nbsp;/&amp;gt;&lt;br /&gt; &amp;lt;item&amp;nbsp;android:id=&amp;quot;@+id/main_Stop&amp;quot;&amp;nbsp;android:title=&amp;quot;停止&amp;quot;&amp;nbsp;/&amp;gt;&lt;br /&gt; &amp;lt;item&amp;nbsp;android:id=&amp;quot;@+id/main_Exit&amp;quot;&amp;nbsp;android:title=&amp;quot;終了&amp;quot;&lt;br /&gt;  android:icon=&amp;quot;@android:drawable/ic_menu_close_clear_cancel&amp;quot;&amp;nbsp;/&amp;gt;&lt;br /&gt;&amp;lt;/menu&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-1862871434363185160?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/1862871434363185160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/1862871434363185160'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/08/android.html' title='[Android] サブメニューの作成'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-1144020100890974068</id><published>2009-08-27T02:05:00.004+09:00</published><updated>2009-09-15T03:06:24.017+09:00</updated><title type='text'>[Scala] Antでfscを</title><content type='html'>Scalaはコンパイルが遅いので(Javaに比べて遅いかどうかは、Java開発をほぼしたことがないので不明)、Antでscalacタスクではなくfscタスクを使えるようにした。段どりは以下。&lt;br /&gt;&lt;br /&gt;・&lt;a href="http://www.scala-lang.org/docu/files/tools/fsc.html"&gt;fsc&lt;/a&gt;だけをコマンドで実行し常駐させる(helpが出る)&lt;br /&gt;・上がったデーモンのポート番号を調べる(※1)&lt;br /&gt;・それをファイルに書く(※2)&lt;br /&gt;・build.xmlのfscタスクでそれを指定(serverオプションにて)&lt;br /&gt;&lt;br /&gt;(※1)は以下にポート番号でファイルができるのでそれを見ます。&lt;br /&gt;d:\scala-2.7.5.final\var\scala-devel\scalac-compile-server-port&lt;br /&gt;&lt;br /&gt;不思議なことに、fscのデーモンさんはPCをスタンバイにすると死んでしまうようなので、そうなると(※2)を毎回やらなくてはならず不便。。&lt;br /&gt;&lt;br /&gt;今日&lt;a href="http://osima.jp/memo/using_javascript_in_ant.html"&gt;AntでJavascript実行&lt;/a&gt;ができることに気がついたので、(※1)も(※2)も、それで何とかできると思います。&lt;br /&gt;&lt;br /&gt;追伸：&lt;br /&gt;今のところ致し方無い。そもそもWindowsじゃなければ、こんな面倒なことはないのだけど。&lt;br /&gt;&lt;br /&gt;追伸2：&lt;br /&gt;以下でポート番号を動的にantから取れそうです(参考にさせて頂いた&lt;a href="http://d.hatena.ne.jp/m-hiyama/20090119/1232326111"&gt;ページ&lt;/a&gt;)。&lt;br /&gt;&lt;pre class="prettyprint"&gt; &amp;lt;target&amp;nbsp;name=&amp;quot;fileList&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;script&amp;nbsp;language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;   &amp;lt;![CDATA[&lt;br /&gt;&lt;br /&gt;    ls();&lt;br /&gt;&lt;br /&gt;    function&amp;nbsp;ls()&amp;nbsp;{&lt;br /&gt;     var&amp;nbsp;curDir&amp;nbsp;=&amp;nbsp;(new&amp;nbsp;java.io.File(&amp;quot;/scala-2.7.5.final/var/scala-devel/scalac-compile-server-port&amp;quot;));&lt;br /&gt;     var&amp;nbsp;list&amp;nbsp;=&amp;nbsp;curDir.listFiles();&lt;br /&gt;     for&amp;nbsp;(var&amp;nbsp;i&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;i&amp;nbsp;&amp;lt;&amp;nbsp;list.length;&amp;nbsp;i++)&amp;nbsp;{&lt;br /&gt;      print(baseName(list[i].toString()));&lt;br /&gt;     }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    function&amp;nbsp;baseName(path)&amp;nbsp;{&lt;br /&gt;     //&amp;nbsp;var&amp;nbsp;sep&amp;nbsp;=&amp;nbsp;environment[&amp;quot;file.separator&amp;quot;];&lt;br /&gt;     var&amp;nbsp;sep&amp;nbsp;=&amp;nbsp;&amp;quot;\\&amp;quot;;&lt;br /&gt;     var&amp;nbsp;i&amp;nbsp;=&amp;nbsp;path.lastIndexOf(sep);&lt;br /&gt;     return&amp;nbsp;path.substring(i&amp;nbsp;+&amp;nbsp;1);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;   ]]&amp;gt;&lt;br /&gt;  &amp;lt;/script&amp;gt;&lt;br /&gt; &amp;lt;/target&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-1144020100890974068?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/1144020100890974068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/1144020100890974068'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/08/scala-antfsc.html' title='[Scala] Antでfscを'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-67816739891038642</id><published>2009-08-17T01:20:00.003+09:00</published><updated>2009-09-03T01:21:07.571+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scala'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>[Scala] AndroidのHandlerとか</title><content type='html'>Scalaでのコーディングにおいては、特別な処理をしないなら&lt;a href="http://www.scala-lang.org/docu/files/api/scala/concurrent/ops$object.html"&gt;ops&lt;/a&gt;の&lt;a href="http://d.hatena.ne.jp/unageanu/20080617"&gt;future&lt;/a&gt;メソッドで別スレッドで処理を実行、結果は(Android的に正しく)Handlerのpostでメインスレッドに戻すのが正解な気がしています。&lt;br /&gt;&lt;br /&gt;、、と思っていたのですが、(futureで作ったかにかかわらないと思うけど)スレッド側でExceptionしててもログに出ない様子？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-67816739891038642?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/67816739891038642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/67816739891038642'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/08/scala-androidhandler.html' title='[Scala] AndroidのHandlerとか'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-2381843357302664064</id><published>2009-08-09T03:17:00.004+09:00</published><updated>2009-08-09T03:26:12.055+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scala'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>[Scala] UriMatcher</title><content type='html'>ScalaでAndroidプログラミングをして、&lt;a href="http://developer.android.com/reference/android/content/UriMatcher.html"&gt;UriMatcher&lt;/a&gt;のmatchメソッドが使えず困った。&lt;br /&gt;結局、matchが予約語だからバッククオート(`)で括ればOKでした。&lt;br /&gt;&lt;br /&gt;ふつう、URLのマッチをとってそれを(Scalaだから)さらにmatchでcaseしてゆく、、ので確かに、書きながらややこしいなぁ、とは思っていましたが。&lt;br /&gt;&lt;br /&gt;今はAndroid的売り(だと思う)ContentProviderを作ろうとしておりハマり中。マニフェストへ記述したら、なぜかClassNotFoundといわれてアプリごと起動不能に。。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-2381843357302664064?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/2381843357302664064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/2381843357302664064'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/08/scala-urimatcher.html' title='[Scala] UriMatcher'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-4003111995257944363</id><published>2009-07-19T22:58:00.003+09:00</published><updated>2009-07-19T23:02:37.196+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scala'/><title type='text'>[Scala] JavaからScalaを</title><content type='html'>JavaからScalaで作ったクラスを使うサンプル。簡単すぎてか、以外にサンプルが無かったので載せてみる。&lt;br /&gt;&lt;pre class="prettyprint"&gt;konpyuta:~/work/j2s asummer$ cat javaMain.java &lt;br /&gt;class javaMain {&lt;br /&gt;  public static void main(String[] args){&lt;br /&gt;    scalaConv objScala = new scalaConv(args[0]);&lt;br /&gt;    System.out.println(objScala.getResult());&lt;br /&gt;    System.out.println(objScala);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;konpyuta:~/work/j2s asummer$ cat scalaConv.scala &lt;br /&gt;class scalaConv(tmpStr:String){&lt;br /&gt;  val tmpPre = "xxx&gt;";&lt;br /&gt;  def getResult = {&lt;br /&gt;    tmpPre + tmpStr;&lt;br /&gt;  }&lt;br /&gt;  override def toString = {&lt;br /&gt;    tmpPre + tmpStr;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;konpyuta:~/work/j2s asummer$ javac javaMain.java &lt;br /&gt;konpyuta:~/work/j2s asummer$ scalac scalaConv.scala&lt;br /&gt;konpyuta:~/work/j2s asummer$ java -cp ~/work/scala/lib/scala-library.jar:. javaMain test&lt;br /&gt;xxx&gt;test&lt;br /&gt;xxx&gt;test&lt;br /&gt;konpyuta:~/work/j2s asummer$ &lt;/pre&gt;おもいきりシームレス。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-4003111995257944363?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/4003111995257944363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/4003111995257944363'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/07/scala-javascala.html' title='[Scala] JavaからScalaを'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-5944322826939174412</id><published>2009-07-14T12:53:00.003+09:00</published><updated>2009-07-14T13:08:00.128+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scala'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>[Scala] HT-03AのUSB接続…</title><content type='html'>HT-03AをPCにUSBでつなげる際、普通にやるディスクドライブとして自動認識されてしまい、少しはまります。こんな時は、&lt;a href="http://groups.google.co.jp/group/android-developers/msg/bbff8436bfd23ce0"&gt;Android開発者MLに流れていたメッセージ&lt;/a&gt;を参考に、&lt;br /&gt;　・レジストリを消して&lt;br /&gt;　・端末で"設定＞アプリケーション＞開発＞デバッグ"をONに&lt;br /&gt;することで、無事SDK(r2)のUSBドライバにて接続し、デバイス番号が確認できるところまで進みました。でも、もしかすると初めて端末を接続する前に、端末のデバッグをONにしておけばよかったのかも、と思います。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-5944322826939174412?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/5944322826939174412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/5944322826939174412'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/07/scala-ht-03ausb.html' title='[Scala] HT-03AのUSB接続…'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-5380761635143611395</id><published>2009-07-07T00:09:00.007+09:00</published><updated>2009-07-14T13:05:11.073+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scala'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>[Scala] Androidアプリ!(センサーの実験など)</title><content type='html'>せっかくAndroid端末を&lt;a href="http://googlejapan.blogspot.com/2009/06/google-developer-day-2009-japan.html"&gt;GDD&lt;/a&gt;でもらったので、&lt;a href="http://d.hatena.ne.jp/yamashina/20090613/1244901811"&gt;yamashitaさん&lt;/a&gt;のアプリを以下改造しました。&lt;br /&gt;・せっかくなので売りのセンサーを使って(これは元から)&lt;br /&gt;・自前式では動きが気に食わなかったので物理エンジンを入れて&lt;br /&gt;・最近お気に入りの&lt;a href="http://ja.wikipedia.org/wiki/Scala"&gt;Scala&lt;/a&gt;で焼き直し&lt;br /&gt;・SDKも1.5にして&lt;br /&gt;そして、せっかくなので(汚いソースままですが)公開しておこうと思います(&lt;a href="http://code.google.com/p/ideathon/source/browse/#svn/trunk/20090704/MoveCircle"&gt;MoveCircle&lt;/a&gt;)。&lt;br /&gt;&lt;br /&gt;物理エンジンは&lt;a href="http://www.cove.org/ape/"&gt;APE&lt;/a&gt;が&lt;a href="http://blog.akaiho.com/2009/04/android%E3%81%A7%E7%89%A9%E7%90%86%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3/"&gt;ある程度Androidに移植されていた(testape2d.zip)&lt;/a&gt;ので取り込んでいます)。&lt;br /&gt;&lt;br /&gt;でも、SDK1.5のセンサーって、今は&lt;a href="http://code.google.com/p/openintents/wiki/SensorSimulator"&gt;シミュレータ&lt;/a&gt;で実験できないんですね(シミュレータといってもライブラリを入れるタイプで、そのライブラリが1.1仕様ママ)。実機じゃないとテストできないってちょっと。。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-5380761635143611395?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/5380761635143611395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/5380761635143611395'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/07/scala-android.html' title='[Scala] Androidアプリ!(センサーの実験など)'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-7105117387873973739</id><published>2009-06-25T03:55:00.008+09:00</published><updated>2009-06-29T01:01:59.127+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scala'/><title type='text'>[Scala] RichString!</title><content type='html'>動作は遅いのかもしれませんが、&lt;pre class="prettyprint"&gt;      val tmpStr:String = '^'+args(0)+".*";&lt;br /&gt;      val objStr = tmpStr.r;&lt;br /&gt;      println(aryTmp.filter{w =&gt; {&lt;br /&gt;        w match {&lt;br /&gt;          case objStr() =&gt; { true;}&lt;br /&gt;          case _ =&gt; { false; }&lt;br /&gt;        }&lt;br /&gt;      }}(0));&lt;br /&gt;&lt;/pre&gt;というのが、一行で書けるScalaの&lt;a href="http://scala-tools.org/scaladocs/scala-library/2.7.1/scala/runtime/RichString.html"&gt;RichString&lt;/a&gt;は、やはり魅力です。&lt;pre class="prettyprint"&gt;      println(aryTmp.filter{x =&gt; x.startsWith(args(0))});&lt;br /&gt;&lt;/pre&gt;特に意識せずに使う文字列型がコレ、というのはしかし、考えようによってはやり過ぎですが。。まぁLLと捉えればまったくありかと。&lt;br /&gt;&lt;br /&gt;追伸：&lt;br /&gt;　きちんと&lt;a href="http://www.scala-lang.org/docu/files/api/scala/runtime/RichString.html#split(Char)"&gt;split&lt;/a&gt;なんかもあって。本当にLL感覚でいけて嬉しいです。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-7105117387873973739?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/7105117387873973739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/7105117387873973739'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/06/scala-richstring.html' title='[Scala] RichString!'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-7679143597979298857</id><published>2009-06-21T16:08:00.006+09:00</published><updated>2009-06-21T16:19:47.201+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scala'/><category scheme='http://www.blogger.com/atom/ns#' term='GAE/J'/><title type='text'>[Scala] GAE/JのMemcacheサービス</title><content type='html'>Scalaで、なぜかGAE/JのMemcacheサービスをJCacheを経由して使う方法が分からない。&lt;br /&gt;直接APIを使ってよいなら下のソースな感じで大丈夫なのだけど。&lt;br /&gt;&lt;pre class="prettyprint"&gt;import com.google.appengine.api.memcache._&lt;br /&gt;&lt;br /&gt;class memcached {&lt;br /&gt;  val cache:MemcacheService = MemcacheServiceFactory.getMemcacheService();&lt;br /&gt;&lt;br /&gt;  def setValue(strKey:String,strValue:String) = {&lt;br /&gt;   cache.put(strKey,strValue);    &lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  def getValue(strKey:String):String = {&lt;br /&gt;   cache.get(strKey).asInstanceOf[String];    &lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;JCache経由にしようとしたら、出てしまうエラー。Kってjava.util.Map&lt;K,V&gt;のKっぽいんだけど解決方法が分からない。。&lt;pre&gt;　～snip～&lt;br /&gt;   [scalac] D:\work\workspace\test\src\com\digipepper\memcached.scala:51: error:&lt;br /&gt; type mismatch;&lt;br /&gt;   [scalac]  found   : String&lt;br /&gt;   [scalac]  required: K&lt;br /&gt;   [scalac]             cache.put(key, value);&lt;br /&gt;   [scalac]                           ^&lt;br /&gt;　～snip～&lt;br /&gt;&lt;/pre&gt;お分かりの方は是非コメントください。一部ではGAE/JをPythonで使うべきかJavaで使うべきか、から発展した大変な議論が巻き起こったようですが、私はのんびりとScalaでがんばります。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-7679143597979298857?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/7679143597979298857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/7679143597979298857'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/06/scala-gaejmemcache.html' title='[Scala] GAE/JのMemcacheサービス'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-4480570065983759208</id><published>2009-06-20T23:49:00.001+09:00</published><updated>2009-06-25T03:55:01.206+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scala'/><category scheme='http://www.blogger.com/atom/ns#' term='GAE/J'/><title type='text'>[Scala] GAE/JのMailサービス</title><content type='html'>本文は普通に日本語文章を与えたらOK。サブジェクトだけ自分でいじることにしました。&lt;br /&gt;&lt;pre class="prettyprint"&gt;import java.util.Properties;&lt;br /&gt;&lt;br /&gt;import javax.mail.Message;&lt;br /&gt;import javax.mail.Session;&lt;br /&gt;import javax.mail.Transport;&lt;br /&gt;import javax.mail.MessagingException;&lt;br /&gt;import javax.mail.internet.AddressException;&lt;br /&gt;import javax.mail.internet.InternetAddress;&lt;br /&gt;import javax.mail.internet.MimeMessage;&lt;br /&gt;import javax.mail.internet.MimeUtility;&lt;br /&gt;&lt;br /&gt;class sendmail(strFrom:String) {&lt;br /&gt;&lt;br /&gt; var props:Properties = new Properties();&lt;br /&gt; var session:Session = Session.getDefaultInstance(props, null);&lt;br /&gt;&lt;br /&gt;  def send(strTo:String, strSubject:String, strBody:String) {&lt;br /&gt;  try {&lt;br /&gt;         var msg:Message = new MimeMessage(session);&lt;br /&gt;         msg.setFrom(new InternetAddress(strFrom));&lt;br /&gt;         msg.addRecipient(Message.RecipientType.TO,&lt;br /&gt;                          new InternetAddress(strTo, "Mr. User"));&lt;br /&gt;&lt;br /&gt;         msg.setSubject(MimeUtility.encodeText(strSubject,"iso-2022-jp","B"));&lt;br /&gt;         msg.setText(strBody+"\n");&lt;br /&gt; &lt;br /&gt;         Transport.send(msg);&lt;br /&gt;     &lt;br /&gt;  } catch {&lt;br /&gt;         case e:AddressException =&gt; printf("Exp_A(%s)\n", e.getMessage)&lt;br /&gt;         case e:MessagingException =&gt; printf("Exp_B(%s)\n", e.getMessage)&lt;br /&gt;         case e =&gt; e.printStackTrace&lt;br /&gt;  }&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;エラー処理とかとても適当ですが、何かの参考に。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-4480570065983759208?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/4480570065983759208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/4480570065983759208'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/06/scala-gaejmail.html' title='[Scala] GAE/JのMailサービス'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-7273183267742032596</id><published>2009-06-20T19:54:00.004+09:00</published><updated>2009-06-25T03:55:01.206+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scala'/><category scheme='http://www.blogger.com/atom/ns#' term='GAE/J'/><title type='text'>[Scala] Eclipse+GAE/Jで最初にやること</title><content type='html'>GoogleAppEngineのアプリをEclipse+Scalaで開発するとき、ScalaとGAEのアドオンを入れた最初の状態では、GAEのEnhancerが失敗する(ファイルを保存する度にコンソールで「エンハンスするクラスファイルが見つからない/CLASSPATH変えろ」と言われ続ける)。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0tSGvTIRZ7U/Sjy_5XXTXlI/AAAAAAAAAGc/rUKdGh7lqis/s1600-h/desk.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://3.bp.blogspot.com/_0tSGvTIRZ7U/Sjy_5XXTXlI/AAAAAAAAAGc/rUKdGh7lqis/s320/desk.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5349361449654509138" /&gt;&lt;/a&gt;そんなときには、"eclipse\plugins\com.google.appengine.eclipse.sdkbundle_1.2.1.v200905131143\appengine-java-sdk-1.2.1\lib\tools\orm"など、GAEのプラグイン内のライブラリフォルダにScalaのライブラリを入れておくことで解決できます。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-7273183267742032596?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/7273183267742032596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/7273183267742032596'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/06/scala-eclipsegaej.html' title='[Scala] Eclipse+GAE/Jで最初にやること'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0tSGvTIRZ7U/Sjy_5XXTXlI/AAAAAAAAAGc/rUKdGh7lqis/s72-c/desk.PNG' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-7805663989317475173</id><published>2009-06-14T02:35:00.006+09:00</published><updated>2009-09-16T02:28:28.480+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solr'/><category scheme='http://www.blogger.com/atom/ns#' term='gosen'/><title type='text'>[Solr] GoSenを修正!</title><content type='html'>たぶん、全文検索ライブラリluceneに入った修正(&lt;a href="http://issues.apache.org/jira/browse/LUCENE-1636"&gt;LUCENE-1636&lt;/a&gt;)のために、&lt;a href="http://tf0054.blogspot.com/2009/04/solr-gosen.html"&gt;先のgosenセット&lt;/a&gt;がtrunkの&lt;a href="http://lucene.apache.org/solr/"&gt;Solr&lt;/a&gt;が起動すら出来なくなっていました(IllegalAccessExceptionがPosFilter初期化時に発生!)。今日までupdateしてなかったので気が付かず。&lt;br /&gt;&lt;br /&gt;で、読めないJavaをなんとなく眺め、結局、本体の似たようなFilterのソースと同じ初期方法にかえる(superを呼ぶだけにする)ことで解消できている様子。なので、新&lt;a href="http://mantis.divers-high.com/work/public/lucene-ja/lucene-ja-gosen-1.0.2.zip"&gt;lucene-ja-gosenセット&lt;/a&gt;として置いておきます。&lt;br /&gt;&lt;br /&gt;よかったー。と直したのはいいけど、結局(Solrの)&lt;a href="http://wiki.apache.org/solr/Solr1.4"&gt;v1.4&lt;/a&gt;はいつ出るんだろう。。。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-7805663989317475173?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/7805663989317475173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/7805663989317475173'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/06/gosen.html' title='[Solr] GoSenを修正!'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-9024602939405895536</id><published>2009-06-08T00:11:00.000+09:00</published><updated>2009-06-08T00:11:07.665+09:00</updated><title type='text'>[Linux] libproxy</title><content type='html'>ブラウジングでロケーションが変わるとよく問題となる"Proxy情報(どうやったらインターネットにつなげるの?)の取得"は、当然アプリを自作するときもとても手間な部分です。これをサポートするライブラリが有りました。&lt;br /&gt;&lt;div style="text-align:center"&gt;&lt;img src="http://kwout.com/cutout/n/xy/q6/t94_bor_sha_f0f0f0.jpg" alt="http://code.google.com/p/libproxy/" title="libproxy - Google Code" width="351" height="52" style="border:none" usemap="#map_nxyq6t94"&gt;&lt;map name="map_nxyq6t94"&gt;&lt;area coords="2,5,37,42" href="http://code.google.com/p/libproxy/" alt="" shape="rect"&gt;&lt;area coords="49,8,133,28" href="http://code.google.com/p/libproxy/" alt="" shape="rect"&gt;&lt;area coords="49,29,337,39" href="http://code.google.com/p/libproxy/" alt="" shape="rect"&gt;&lt;/map&gt;&lt;p style="margin-top:0px;text-align:center"&gt;via &lt;a href="http://kwout.com/quote/nxyq6t94"&gt;kwout&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;a href="http://d.hatena.ne.jp/keyword/WPAD"&gt;WPAD&lt;/a&gt;って規格もあるんですね。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-9024602939405895536?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/9024602939405895536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/9024602939405895536'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/06/linux-libproxy.html' title='[Linux] libproxy'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-1855617044198240920</id><published>2009-05-31T03:47:00.002+09:00</published><updated>2009-05-31T06:57:50.134+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scala'/><title type='text'>[Scala] GAE/JでJDO!</title><content type='html'>GoogleAppEngine/Javaではディスクが無いことからJDO/JPAでのデータ保存が必須です。&lt;br /&gt;&lt;br /&gt;これをピュアScalaで(Javaクラスを使わず)やっている例題&lt;a href="http://bitbucket.org/markryall/scalagae/"&gt;scalagae&lt;/a&gt;を見つけたのだが、うまく動かず苦労。&lt;br /&gt;&lt;br /&gt;原因は「java.lang.VerifyError」が出てしまうことだったのだが、これはJDO実装であるDataNucleusの&lt;a href="http://www.datanucleus.org/servlet/jira/browse/NUCENHANCER-34"&gt;バグ&lt;/a&gt;である様子。v1.1.3に入れ替えたら無事に動きました。&lt;br /&gt;具体的には、D:\appengine-java-sdk-1.2.1\lib\tools\ormにあるdatanucleus-enancer-1.1.0.jarが悪いので&lt;a href="http://www.datanucleus.org/downloads/maven-nightly/org.datanucleus/jars/"&gt;datanucleus-enhancer-1.1.3.jar&lt;/a&gt;に入れ替えます。&lt;br /&gt;&lt;br /&gt;あと、コマンドラインからGAEにuploadするとき、app_idはscalagae\WEB-INF\appengine-web.xmlに書かれるので、適宜書き換えましょう。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-1855617044198240920?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/1855617044198240920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/1855617044198240920'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/05/scala-gaejjdo.html' title='[Scala] GAE/JでJDO!'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-4582946576226515589</id><published>2009-05-30T06:19:00.001+09:00</published><updated>2009-05-31T06:57:31.927+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scala'/><title type='text'>[Scala] GAE/J上でコンパイル!?</title><content type='html'>GAE/J上でコンパイル、JDOでバイトコードを保存、それを引き出して実行する、という機構を作ろうプロジェクトを&lt;a href="http://github.com/vydra/gae-scala/tree/master"&gt;見つけた&lt;/a&gt;。動くのかな。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-4582946576226515589?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/4582946576226515589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/4582946576226515589'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/05/scala-gaej.html' title='[Scala] GAE/J上でコンパイル!?'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-4725726809639532865</id><published>2009-05-29T06:53:00.000+09:00</published><updated>2009-05-31T06:57:50.134+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scala'/><title type='text'>[Scala] PulpCore!</title><content type='html'>Javaの2Dレンダライブラリである&lt;a href="http://edtechdev.blogspot.com/2009/03/pulpcore-scala-sample-project-for.html"&gt;PlupCoreのScala版&lt;/a&gt;があった。何故ソース的に焼き直したのかまったく不明。。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-4725726809639532865?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/4725726809639532865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/4725726809639532865'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/05/scala-pulpcore.html' title='[Scala] PulpCore!'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-5637169422529022607</id><published>2009-05-27T00:36:00.003+09:00</published><updated>2009-06-01T02:25:02.137+09:00</updated><title type='text'>[Scala] Rail@GAE/J!</title><content type='html'>JRubyがあるわけなので、出来そうではありますが、普通に&lt;a href="http://d.hatena.ne.jp/technohippy/20090428#1240939733"&gt;ありました&lt;/a&gt;。すごい。&lt;br /&gt;&lt;br /&gt;ちなみに、Python版ではブログアプリ@GAEを&lt;a href="http://brizzled.clapper.org/id/77"&gt;見つけた&lt;/a&gt;のだが、これのJava版、もっというとScala版は無いものでしょうか。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-5637169422529022607?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/5637169422529022607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/5637169422529022607'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/05/scala-railgaej.html' title='[Scala] Rail@GAE/J!'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry><entry><id>tag:blogger.com,1999:blog-25238059.post-1238272510380398364</id><published>2009-05-24T23:32:00.003+09:00</published><updated>2009-07-01T06:12:25.124+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solr'/><title type='text'>[Solr] WebService::Solrが</title><content type='html'>自前でSolrのレスポンスを、&lt;a href="http://search.cpan.org/dist/XML-Simple/ "&gt;XML::Simple&lt;/a&gt;使って解析しようとして四苦八苦していたところ、、ふと思いついて調べてみたら、案の定&lt;a href="http://search.cpan.org/dist/WebService-Solr/"&gt;WebService::Solr&lt;/a&gt;なるものが。。&lt;br /&gt;&lt;br /&gt;早速書き直してみたところ、SolrのレスポンスのクセxXML::Simpleのクセにやられていた(例外処理ばかりだったコード)が、シンプルにんありました。&lt;br /&gt;&lt;br /&gt;最初から調べておけば。。。&lt;br /&gt;&lt;br /&gt;追伸：&lt;br /&gt;XMLじゃなくJSONのレスポンスを解析してますね、、なるほどー。そういえば、確かにJSON用CPANモジュールをいっぱいダウンロードしていました(&lt;a href="http://strawberryperl.com/"&gt;StrawberryPerl&lt;/a&gt;さいこうです)。&lt;br /&gt;&lt;br /&gt;追伸：&lt;br /&gt;英語の&lt;a href="http://infomotions.com/blog/2009/01/fun-with-webservicesolr-part-i-of-iii/"&gt;解説ページ&lt;/a&gt;を発見。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25238059-1238272510380398364?l=tf0054.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/1238272510380398364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25238059/posts/default/1238272510380398364'/><link rel='alternate' type='text/html' href='http://tf0054.blogspot.com/2009/05/solr-webservicesolr.html' title='[Solr] WebService::Solrが'/><author><name>tf0054</name><uri>http://www.blogger.com/profile/10320114687941940832</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11603419994675086011'/></author></entry></feed>