<?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:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2428042776517504615</id><updated>2024-09-01T23:18:57.494+09:00</updated><category term="en"/><category term="android"/><category term="ja"/><category term="ruby"/><category term="ctags"/><category term="linux"/><category term="opensolaris"/><category term="os x"/><category term="parrot"/><title type='text'>$!</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lateau.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2428042776517504615/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://lateau.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03735532033760175308</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2428042776517504615.post-1202390973839276308</id><published>2012-11-19T18:00:00.001+09:00</published><updated>2012-12-04T22:55:52.945+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><title type='text'>How to fix Android NDK Error: non-numeric second...</title><content type='html'>&lt;b&gt;&lt;span style=&quot;color: #cfe2f3;&quot;&gt;First of all, My English sucks ;)&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: #cfe2f3;&quot;&gt;Problem:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
When I did ndk-build on terminal with a new android project and I got a follow message.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
$ ndk-build&lt;br /&gt;android-ndk-r8c/build/gmsl/__gmsl:512: *** non-numeric  second argument to `wordlist&#39; function: &#39;&#39;.  Stop.&lt;/blockquote&gt;
&lt;div&gt;
&lt;br /&gt;&amp;nbsp;  &lt;div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: #cfe2f3;&quot;&gt;How To Fix:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Just simply add android:minSdkVersion tag&amp;nbsp;&lt;uses-sdk android:minsdkversion=&quot;N&quot;&gt;to AndroidManifest.xml.&lt;/uses-sdk&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;lt;uses-sdk android:minSdkVersion=&quot;3&quot; /&amp;gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: #cfe2f3;&quot;&gt;What I did:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
It seems something goes wrong so I decided remove project files one per one before hack the 512 line of __gmsl because I believe the ndk version &quot;r8c&quot; which I used.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Finally, I got the reason of build fail is &#39;AndroidManifest.xml&#39;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
$ rm -f AndroidManifest.xml&lt;br /&gt;$ ndk-build&lt;br /&gt;Gdbserver      : [arm-linux-androideabi-4.6] libs/armeabi/gdbserver&lt;br /&gt;Gdbsetup       : libs/armeabi/gdb.setup&lt;br /&gt;Install             : libhello.so =&amp;gt; libs/armeabi/libhello.so&lt;/blockquote&gt;
&lt;div&gt;
&lt;br /&gt;
Then I tried do diff with sample codes which&#39;s shipped with Android NDK&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;
$ android create project -t 2 -k com.myproject -a HelloActivity -p .&lt;br /&gt;$ diff AndroidManifest /path/to/android-ndk/samples/hello-jni/AndroidManifest.xml&lt;br /&gt;...&lt;br /&gt;&amp;lt;uses-sdk android:minSdkVersion=&quot;3&quot; /&amp;gt;&lt;br /&gt;...&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
DAMN!&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://lateau.blogspot.com/feeds/1202390973839276308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lateau.blogspot.com/2012/11/how-to-fix-android-ndk-error-non.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2428042776517504615/posts/default/1202390973839276308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2428042776517504615/posts/default/1202390973839276308'/><link rel='alternate' type='text/html' href='http://lateau.blogspot.com/2012/11/how-to-fix-android-ndk-error-non.html' title='How to fix Android NDK Error: non-numeric second...'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03735532033760175308</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2428042776517504615.post-3889019514308167422</id><published>2011-10-02T23:11:00.000+09:00</published><updated>2011-10-02T23:11:20.733+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><title type='text'>gnome3 「最近使った項目」を初期化</title><content type='html'>gnome3で最近使った項目（recent items）を初期化する。&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;$ cat /dev/null &amp;gt; ~/.local/share/recently-used.xbel&lt;/blockquote&gt;&lt;br /&gt;
recently-used.xbelはFedoraなら上記のパスになる。&lt;br /&gt;
その中身を消してしまえばOK。xserverを再起動する必要はない。&lt;br /&gt;
&lt;br /&gt;
gnome2とは違って、項目らをキャッシュしておくのではないらしい。</content><link rel='replies' type='application/atom+xml' href='http://lateau.blogspot.com/feeds/3889019514308167422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lateau.blogspot.com/2011/10/gnome3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2428042776517504615/posts/default/3889019514308167422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2428042776517504615/posts/default/3889019514308167422'/><link rel='alternate' type='text/html' href='http://lateau.blogspot.com/2011/10/gnome3.html' title='gnome3 「最近使った項目」を初期化'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03735532033760175308</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2428042776517504615.post-222959100399321370</id><published>2011-09-18T22:32:00.000+09:00</published><updated>2012-09-07T16:50:49.108+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ja"/><category scheme="http://www.blogger.com/atom/ns#" term="ruby"/><title type='text'>ruby debugでActiveRecordをデバッグ</title><content type='html'>rails3からはruby-debugをサポートとしているが、場合によってはruby-debugを使えなかったりもする。個人環境であれば全く問題ないはずだろうが、たまにはデプロイサーバなどでデバックを行わざるを得ない。デプロイサーバなどで新しいライブラリやツールを導入するのはちょっと面倒なので、できれば標準ライブラリを使った方がスムーズに行けるだろう。そのため、今回は標準ライブラリdebugを使ったrailsデバッグに手をかけてみることにした。&lt;br /&gt;
&lt;br /&gt;
※railsとruby-debugの公式文書は&lt;a href=&quot;http://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-ruby-debug&quot;&gt;こちら&lt;/a&gt;に詳しく説明されている。&lt;br /&gt;
※&lt;a href=&quot;http://www.google.co.jp/search?gcx=c&amp;amp;sourceid=chrome&amp;amp;ie=UTF-8&amp;amp;q=ruby-debug+rails&quot;&gt;日本語文書&lt;/a&gt;もそこそこポスティングされているようだ。&lt;br /&gt;
&lt;br /&gt;
大まかに言うと標準ライブラリのdebugとruby-debugはほぼ同じ（かも）。ただ、railsの起動そのものとは違うので、必要な環境設定ファイルなどを手動でロードさせるしかない。&lt;br /&gt;
&lt;br /&gt;
まず、テスト環境を作る。&lt;br /&gt;
&lt;blockquote&gt;
$ rails new debug -d sqlite3&lt;br /&gt;
$ cd debug/&lt;br /&gt;
$ rake db:create&lt;br /&gt;
$ rails g model Blank&lt;br /&gt;
$ rake db:migrate&lt;/blockquote&gt;
新しいモデルまで作成できたら、問題を起こすコードを入れる。&lt;br /&gt;
&lt;blockquote&gt;
# app/models/blank.rb&lt;br /&gt;
1: &amp;nbsp; class Blank &amp;lt; ActiveRecord::Base&lt;br /&gt;
2: &amp;nbsp; &amp;nbsp; class &amp;lt;&amp;lt; self&lt;br /&gt;
3: &amp;nbsp; &amp;nbsp; &amp;nbsp; def get_all&lt;br /&gt;
4: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; self.all&lt;br /&gt;
5: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; []&lt;br /&gt;
6: &amp;nbsp; &amp;nbsp; &amp;nbsp; end&lt;br /&gt;
7: &amp;nbsp; &amp;nbsp; end&lt;br /&gt;
8: &amp;nbsp; end&lt;/blockquote&gt;
ふざけたコードだが、よいとしよう。ごく単純なコードだが、行数が数十行程度だとしても分かりづらかったりする。ここでは、debugに慣れることだけ考えよう。&lt;br /&gt;
&lt;br /&gt;
このコードで知りたいのは、get_allからなぜ空っぽの配列ばかりが返ってくるのかだ。ちなみにblank.rbそのものはBlankクラスとBlank::get_allを定義しているたけなので、これらを実行するコードも用意しておく。場所はどこでもよい。&lt;br /&gt;
&lt;blockquote&gt;
# ../blank_get_all.rb&lt;br /&gt;
Blank.get_all&lt;/blockquote&gt;
これで準備はOK。いよいよデバッグを開始する。&lt;br /&gt;
&lt;blockquote&gt;
$ ruby -rdebug ../blank_get_all.rb&lt;/blockquote&gt;
するとデバッグプロンプトが出てくる。基本的な操作方法はhまたはhelpで出せるので、知りたいコマンドがあればその都度調べておこう。&lt;br /&gt;
&lt;br /&gt;
まず、正常にデバッガが立ち上がったのか確認して見る。&lt;br /&gt;
&lt;blockquote&gt;
rdb:1) l&lt;br /&gt;
[-4, 5] in ../blank_get_all.rb&lt;br /&gt;
=&amp;gt; 1 &amp;nbsp;Blank.get_all&lt;/blockquote&gt;
よし、行けた。lはlistの略であり、表示したいラインの前後のコードを表示する。オプションとしてライン番号を指定できる。省略した場合は、現在のポイントが指しているラインを表示してくれる。&lt;br /&gt;
&lt;br /&gt;
Blank.get_allが空っぽの配列を返すのは既に分かっていることだ。これだけじゃ、問題解決はできなさそうなので、もう少し詳しく調べてみよう。ただし、このままではBlankクラスが何なのかをデバッガは全く知らない。pコマンドでBlankを調べてみると、&lt;br /&gt;
&lt;blockquote&gt;
(rdb:1) p Blank&lt;br /&gt;
......lib/ruby/1.9.1/debug.rb:130:in `eval&#39;:uninitialized constant Object::Blank&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;from .../lib/ruby/1.9.1/debug.rb:130:in `rescue in debug_eval&#39;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;from .../lib/ruby/1.9.1/debug.rb:127:in `debug_eval&#39;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;from .../lib/ruby/1.9.1/debug.rb:492:in `block in debug_command&#39;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;from .../lib/ruby/1.9.1/debug.rb:240:in `catch&#39;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;from .../lib/ruby/1.9.1/debug.rb:240:in `debug_command&#39;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;from .../lib/ruby/1.9.1/debug.rb:691:in `trace_func&#39;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;from .../lib/ruby/1.9.1/debug.rb:905:in `block in &lt;class:debugger__&gt;&#39;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;from ../blank_get_all.rb:1:in `&lt;main&gt;&#39;&lt;/main&gt;&lt;/class:debugger__&gt;&lt;/blockquote&gt;
と怒られる。これはrails環境とBlankクラスがまだロードされていないせいであろう。だけど、少し面倒なだけで手動でロードしてしまえば全く問題ない。&lt;br /&gt;
&lt;blockquote&gt;
(rdb:1) require &#39;./config/environment&#39;&lt;br /&gt;
(rdb:1) p Rails.env&lt;br /&gt;
&quot;development&quot;&lt;/blockquote&gt;
大体の場合はconfig/environmentを読み込むだけで済むはずだが、カスタマイズした環境設定ファイルがあった場合も同じように読み込めばいい。Rails.envがdevelopmentを返しているが、これもデバッガ内で切り替えられるので、気にしなくていい。&lt;br /&gt;
&lt;br /&gt;
次はblank.rbを読み込む。&lt;br /&gt;
&lt;blockquote&gt;
(rdb:1) p ActiveRecord&lt;br /&gt;
ActiveRecord&lt;br /&gt;
(rdb:1)&amp;nbsp;require &#39;./app/models/blank.rb&#39;&lt;br /&gt;
false &amp;nbsp; &amp;nbsp; # 既にロードされているから&lt;/blockquote&gt;
これでやっと準備が揃った。stepでBlank.get_allの中身を見てみよう。&lt;br /&gt;
&lt;blockquote&gt;
(rdb:1) s&lt;br /&gt;
.../debug/app/models/blank.rb:5:      self.all&lt;br /&gt;
(rdb:1) l&lt;br /&gt;
[0, 9] in .../debug/app/models/blank.rb&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 1  class Blank &amp;lt;&amp;lt; ActiveRecord::Base&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 2&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 3 &amp;nbsp; class &amp;lt;&amp;lt; self&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; 4 &amp;nbsp; &amp;nbsp; def get_all&lt;br /&gt;
=&amp;gt; 5 &amp;nbsp; &amp;nbsp; &amp;nbsp; self.all&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;6&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;7 &amp;nbsp; &amp;nbsp; &amp;nbsp; []&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;8 &amp;nbsp; &amp;nbsp; end&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;9 &amp;nbsp; end&lt;/blockquote&gt;
ここでもう一度stepコマンドで進んでみよう。（ActiveRecordの中身など見たくない場合は、nコマンドで次のラインに移動する）&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
(rdb:1) s&lt;br /&gt;
.../gems/activerecord-3.1.0/lib/active_record/base.rb:441: &amp;nbsp; &amp;nbsp; &amp;nbsp;delegate :find, :first, :first!, :last, :last!, :all, :exists?, :any?, :many?, :to =&amp;gt; :scoped&lt;br /&gt;
(rdb:1) l&lt;br /&gt;
[436, 445] in .../gems/activerecord-3.1.0/lib/active_record/base.rb&lt;br /&gt;
&amp;nbsp; &amp;nbsp;436 &lt;br /&gt;
&amp;nbsp; &amp;nbsp;437 &amp;nbsp; &amp;nbsp; &amp;nbsp;class_attribute :_attr_readonly, :instance_writer =&amp;gt; false&lt;br /&gt;
&amp;nbsp; &amp;nbsp;438 &amp;nbsp; &amp;nbsp; &amp;nbsp;self._attr_readonly = []&lt;br /&gt;
&amp;nbsp; &amp;nbsp;439 &lt;br /&gt;
&amp;nbsp; &amp;nbsp;440 &amp;nbsp; &amp;nbsp; &amp;nbsp;class &amp;lt;&amp;lt; self # Class methods&lt;br /&gt;
=&amp;gt; 441 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;delegate :find, :first, :first!, :last, :last!, :all, :exists?, :any?, :many?, :to =&amp;gt; :scoped&lt;br /&gt;
&amp;nbsp; &amp;nbsp;442 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;delegate :destroy, :destroy_all, :delete, :delete_all, :update, :update_all, :to =&amp;gt; :scoped&lt;br /&gt;
&amp;nbsp; &amp;nbsp;443 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;delegate :find_each, :find_in_batches, :to =&amp;gt; :scoped&lt;br /&gt;
&amp;nbsp; &amp;nbsp;444 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;delegate :select, :group, :order, :except, :reorder, :limit, :offset, :joins, :where, :preload, :eager_load, :includes, :from, :lock, :readonly, :having, :create_with, :to =&amp;gt; :scoped&lt;br /&gt;
&amp;nbsp; &amp;nbsp;445 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;delegate :count, :average, :minimum, :maximum, :sum, :calculate, :to =&amp;gt; :scoped&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote&gt;
(rdb:1) f&lt;br /&gt;
--&amp;gt; #1 /Users/lateau/.rvm/gems/ruby-1.9.2-head/gems/activerecord-3.1.0/lib/active_record/base.rb:441:in `all&#39;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; #2 /Users/lateau/dev/testroom/ruby/debug/debug/app/models/blank.rb:5:in `get_all&#39;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; #3 ../bundle_get_all.rb:1&lt;/blockquote&gt;
&lt;br /&gt;
フレーム3から1に移動しているのが分かる。多分、この先も何回もフレームを移動することになるだろう。ActiveRecordがどのような働きをしているかが知りたいなら、stepコマンドで１行ずつ確認してもよいだろうが、今回の目標ではない。ただstepでActiveRecordの中身をデバッグ中に確認できることだけ覚えておこう（octopusなどのdbmを調べる時に役立つ）。&lt;br /&gt;
&lt;blockquote&gt;
(rdb:1) b ./app/models/blank.rb:5&lt;br /&gt;
Set breakpoint 1 at ./app/models/blank.rb:5&lt;br /&gt;
(rdb:1) b&lt;br /&gt;
Breakpoints:&lt;br /&gt;
1 ./app/models/blank.rb:5&lt;/blockquote&gt;
&lt;div&gt;
ブレークポイントをかけた。これでblank.rbの５行目で必ず止まるはず。１行ずつ行くのはどうも面倒なので、continueコマンドを使う。5行目で止まったらnコマンドで次の行に移動する。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;blockquote&gt;
(rdb:1) n&lt;br /&gt;
.../debug/app/models/blank.rb:7: &amp;nbsp; &amp;nbsp; &amp;nbsp;[]&lt;/blockquote&gt;
「７行目を実行すると5行目の戻り値とは関係なく[]が返ってくる」というのが分かる。これでBlank::get_allが何故空っぽの配列ばかりを返すのかが分かった。分かったら、該当コードを直し、問題を解決する。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ここまで大雑把なdebugの使い方を説明した。説明できなかった部分もあるが、一通りのデバッグはこれで充分であろう。ちなみに、ActiveSupportはActiveRecordとほぼ同じ方法でデバッグできる。ActionContollerは少し面倒な部分があるので、次回時間があったら説明する。&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://lateau.blogspot.com/feeds/222959100399321370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lateau.blogspot.com/2011/09/debugactiverecord.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2428042776517504615/posts/default/222959100399321370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2428042776517504615/posts/default/222959100399321370'/><link rel='alternate' type='text/html' href='http://lateau.blogspot.com/2011/09/debugactiverecord.html' title='ruby debugでActiveRecordをデバッグ'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03735532033760175308</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2428042776517504615.post-7422450269186010675</id><published>2011-09-10T01:05:00.002+09:00</published><updated>2011-09-10T01:11:08.830+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ja"/><category scheme="http://www.blogger.com/atom/ns#" term="os x"/><title type='text'>OS X AppleScriptでスクリンロック</title><content type='html'>出かけ用のノートをマックにしてから色々便利ではあるが、やっぱりショートカットの足りなさにはどうしようもない。例えば、スクリンロックとか。&lt;br /&gt;
&lt;br /&gt;
で、Google神に祈ってみた。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://macscripter.net/viewtopic.php?id=17352&quot;&gt;Lock Screen?&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
神様に感謝。&lt;br /&gt;
&lt;br /&gt;
要はAppleScriptでスクリンロックできるってこと。ってか、ScreenSaverEngineを実行させるスクリプトを書けばいいってことかな。その中でもkaiという人が書いた方法が一番シンプルでしっかりと動いてくれた。&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;postmsg&quot;&gt;&lt;blockquote&gt;Note that, if the user attempts to dismiss the screen saver  immediately after the activate command has been sent, a Process Manager  error number -609 [connectionInvalid] may occur: &quot;ScreenSaverEngine got  an error: Connection is invalid.&quot;&lt;br /&gt;
&lt;br /&gt;
This can usually be avoided by using the launch command, instead:&lt;br /&gt;
&lt;blockquote&gt;&lt;div class=&quot;incqbox&quot;&gt;launch application &lt;span class=&quot;str&quot;&gt;&quot;ScreenSaverEngine&quot;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;/div&gt;けど、このまま入れるとScreenSaverEngineを参照できないというエラーが起きるので、絶対パスを指定する。&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;span class=&quot;str&quot;&gt;launch application /System/Library/Frameworks/Screensaver.framework/Versions/A/Resources/ScreenSaverEngine.app&lt;/span&gt; &lt;/blockquote&gt;これを名前を付けてアプリケーションとして保存。勝手にソースを開かれるのを防ぐにはバイナリにしてもいいだろう。後はSpotlightで実行可能だ。自分は重複してもしょうがないと思いつつ、Lockという名前にしちゃった。だってすぐ忘れちゃうしな。&lt;br /&gt;
&lt;br /&gt;
別の方法としてはサービスとして登録する方法があった。けど、こちらは格アプリケーションと相性が悪いのか、ショートカットが効かなかったりするのでパス。</content><link rel='replies' type='application/atom+xml' href='http://lateau.blogspot.com/feeds/7422450269186010675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lateau.blogspot.com/2011/09/os-x-applescript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2428042776517504615/posts/default/7422450269186010675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2428042776517504615/posts/default/7422450269186010675'/><link rel='alternate' type='text/html' href='http://lateau.blogspot.com/2011/09/os-x-applescript.html' title='OS X AppleScriptでスクリンロック'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03735532033760175308</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2428042776517504615.post-4054567488421312051</id><published>2011-08-07T02:27:00.001+09:00</published><updated>2011-09-18T22:48:23.681+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="en"/><title type='text'>adb devices &quot;no permissions&quot;</title><content type='html'>When you using hardware devices to debug android applications, sometimes your machine may cannot found or initialize the hardware.&lt;br /&gt;
&lt;br /&gt;
$ adb devices&lt;br /&gt;
List of devices attached &lt;br /&gt;
emulator-5554&amp;nbsp;&amp;nbsp; &amp;nbsp;device&lt;br /&gt;
????????????&amp;nbsp;&amp;nbsp; &amp;nbsp;no permissions&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What happened?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
1. Your machine does not have udev rules.&lt;br /&gt;
2. adb does not have a permission&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;How to&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
1. See &lt;a href=&quot;http://developer.android.com/guide/developing/device.html&quot;&gt;this page&lt;/a&gt; and create the rules.&lt;br /&gt;
2. Kill adb server then restart it as root permission.&lt;br /&gt;
&lt;blockquote&gt;$ adb kill-server&lt;br /&gt;
$ sudo adb start-server&lt;br /&gt;
$ adb devices&lt;br /&gt;
List of devices attached &lt;br /&gt;
353019043208217&amp;nbsp;&amp;nbsp;&amp;nbsp; device&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://lateau.blogspot.com/feeds/4054567488421312051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lateau.blogspot.com/2011/08/adb-devices-no-permissions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2428042776517504615/posts/default/4054567488421312051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2428042776517504615/posts/default/4054567488421312051'/><link rel='alternate' type='text/html' href='http://lateau.blogspot.com/2011/08/adb-devices-no-permissions.html' title='adb devices &quot;no permissions&quot;'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03735532033760175308</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2428042776517504615.post-7053635593076333670</id><published>2011-04-24T17:15:00.006+09:00</published><updated>2011-09-10T01:10:20.048+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ctags"/><category scheme="http://www.blogger.com/atom/ns#" term="en"/><category scheme="http://www.blogger.com/atom/ns#" term="parrot"/><title type='text'>Parrot support on Exuberant Ctags</title><content type='html'>&lt;h2 style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Parrot and Ctags&lt;/span&gt;&lt;/h2&gt;&lt;br /&gt;
As you know, parrot itself has very common editors support. Some common settings, syntax, color scheme and even tags file can generated with running &quot;make&quot; on parrot_src/editor directory.&lt;br /&gt;
&lt;blockquote&gt;&lt;pre&gt;$ make vi-tags
$ make vi&lt;/pre&gt;&lt;/blockquote&gt;But, unfortunately, that tags files can do resolve to c source files that make parrot itself, so any languages wrote in parrot features such like &#39;pir&#39; doesn&#39;t understand how to works with it.&lt;br /&gt;
&lt;br /&gt;
So, I added parrot.c to Exuberant Ctags and published on my github.&lt;br /&gt;
&lt;br /&gt;
*This is a very basic support for parrot ctags, yet*&lt;br /&gt;
&lt;blockquote&gt;&lt;pre&gt;$ git clone git://github.com/lateau/exuberant-ctags.git
$ cd exuberant-ctags
$ ./configure
$ make -j
$ su -c &#39;make install&#39;     # install if you want
$ ./ctags --list-languages
...
parrot
...
$./ctags --list-kinds=parrot
s subroutine
r rule
t token&lt;/pre&gt;&lt;/blockquote&gt;Supported files:&lt;br /&gt;
&lt;blockquote&gt;&lt;pre&gt;*.pir
*.pasm
*.pg&lt;/pre&gt;&lt;/blockquote&gt;Kinds:&lt;br /&gt;
&lt;blockquote&gt;&lt;pre&gt;s subroutine
r rule&lt;/pre&gt;&lt;pre&gt;t token&lt;/pre&gt;&lt;/blockquote&gt;Usage:&lt;br /&gt;
&lt;blockquote&gt;$ cd rakudo&lt;br /&gt;
$ ctags -R -exclude=.git --lang-map=parrot:+.pir.pasm.pg&lt;/blockquote&gt;&lt;br /&gt;
&lt;h2 style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;How to use with tlist.vim&lt;/span&gt;&lt;/h2&gt;&lt;br /&gt;
You can also enable TagList in vim. Just add bellow code to taglist.vim around line 430.&lt;br /&gt;
&lt;blockquote&gt;&lt;pre&gt;&quot; parrot
s:tlist_def_parrot_settings = \
   &#39;parrot;s:subroutine;r:rule;t:token&#39;&lt;/pre&gt;&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://lateau.blogspot.com/feeds/7053635593076333670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lateau.blogspot.com/2011/04/parrot-support-on-exuberant-ctags.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2428042776517504615/posts/default/7053635593076333670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2428042776517504615/posts/default/7053635593076333670'/><link rel='alternate' type='text/html' href='http://lateau.blogspot.com/2011/04/parrot-support-on-exuberant-ctags.html' title='Parrot support on Exuberant Ctags'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03735532033760175308</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2428042776517504615.post-2779352690408135917</id><published>2010-05-10T22:50:00.000+09:00</published><updated>2011-09-18T22:51:06.304+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="en"/><category scheme="http://www.blogger.com/atom/ns#" term="opensolaris"/><category scheme="http://www.blogger.com/atom/ns#" term="ruby"/><title type='text'>Compiling Ruby1.9 with SunCC on OpenSolaris</title><content type='html'>Today, I compiled snapshot of ruby on my OpenSolaris machine. It&#39;s so smoothly gone and then I could try some new features of ruby1.9.2 on developing.&lt;br /&gt;
&lt;br /&gt;
First of all, very important thing is installation of SunCC via IPS. It is included i n Sun Studio built on Netbeans.&lt;br /&gt;
&lt;blockquote&gt;$ pfexec pkg install pkg:/sunstudio12u1&lt;br /&gt;
$ CC=&#39;/opt/sunstudio12u1/bincc&#39; CFLAGS=&#39;-Xa&#39; ./configure --enable-pthread&lt;/blockquote&gt;That&#39;s all.</content><link rel='replies' type='application/atom+xml' href='http://lateau.blogspot.com/feeds/2779352690408135917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lateau.blogspot.com/2011/09/compiling-ruby19-with-suncc-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2428042776517504615/posts/default/2779352690408135917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2428042776517504615/posts/default/2779352690408135917'/><link rel='alternate' type='text/html' href='http://lateau.blogspot.com/2011/09/compiling-ruby19-with-suncc-on.html' title='Compiling Ruby1.9 with SunCC on OpenSolaris'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/03735532033760175308</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>