よく忘れるのでメモ。
シンボルテーブルの一覧を取得するには以下の方法で取得できます。
ポイントはモジュール名の後に :: をつけること。
これよく忘れます。
%モジュール::;
で、これだと変数なのか関数なのかが判断できません。
そこで便利なのが Devel::Symdump です。
@array = Devel::Symdump->functions(@packs);
これだけで関数一覧が取得できます。
関数だけでなく hash や scalar が取得できたり
diff とれたり HTML で出力できたり地味に便利です。
よーやく届いた。
久々に本をよんでみておもしかくて
何か書いて残しておきたいという気分になったので書いてみた。
内容は wii, DS がメイン。あとそれ意外にも軽くだけれども
任天堂の今までの歴史についても軽くふれていた。
(カルタ、トランプ、ゲーム&ウォッチ、光線銃とかについて)
何よりもびっくりしたのが前社長の山内氏のインタビューがあったこと。
それも任天堂にたいして。
本書を読む前は正直、岩田氏のことをそこまで知っていたわけではなかったので
イメージが凄いかわった。これは勝手なイメージだけど任天堂のトップは
ワンマン経営っていうイメージが強かったため。
ワンマン経営といっても山内氏のカリスマ性の上になりたってたものだけれども。
「枯れた技術の水平思考」や DS 誕生のいきさつ。
他には Wii の設計思想、Wiiプラットフォームのおはなし、
ボリュームは満点、おなかいっぱいになる内容でした。
本文の中には凄い名言がいっぱいあってどれも、、、となるけど
中でも自分に一番残ったところを紹介します。以下本文より引用。
「娯楽はよそと同じが一番アカン」ということで、とにかく何をつくって持っていっても、
「それはよそのとどう違うんだ」と聞かれるわけです。
「いや、違わないけど、ちょっといいんです。」
というのは一番ダメな答えで、それではものすごく怒られる。
それがいかに娯楽にとって愚かなことかということを徹底していたんですね。
で、そういう意味では、「よそと違うことをしなさい」ということは
我々のDNAの中に深く刻まれています。
だいぶ昔に知人に薦められて任天堂の本を読んだけれど、その時にあった
「独創的」って言葉がまさにこのことなんだと繋がった一文で
何より会社として実施しているのがすごい。
つまりは性能をあげての競争は一番ダメということ。
使う人をたのしませないと。これって別に娯楽だけでなく
サービス全般に通じることだと思う。
運を天に任し自分はひたすら精進あるのみ。
やるかやらないかの世界なだけに余計に身にしみた。
なによりも任天堂が巷でライバルといわれてる企業と戦っているのではなく
ユーザーの退屈、飽きと戦っているのが印象的でした。
wii 自体はもってなかったけど、この感覚を味わいたいがためだけに
本体が欲しくなった。なにより任天堂自体がよりいっそう好きになった。
きっと買ってるんだろうな。
その時もリスクとリターンのバランスの難しささ勉強になったけど
今回はまた違った発見があった。
また読み返すことになる名著であることに間違いはありません
アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。
id:typester さんの発言 を見て github-growler なるものがあることを知る。宮川さん作。
で、さっそく設定をしてみた。
ソースは github からダウンロード。(ここ)
git clone http://github.com/miyagawa/github-growler.git
cd github-growler
perl github-growler.pl [userID] [APIキー]
(※APIキーは [home] => [account] に書いてあります)
これで動くようになればok.
これ自身がデーモンなので、そのまま放置しとくと新しい動きだけを表示してくれる。
毎回 UserID と APIキー の入力がめんどい場合は git config で登録しておけばよい。
git config --global github.user [userID]
git config --global github.token [APIキー]
default で取得間隔と表示最大数は変更できる
defaults write net.bulknews.GitHubGrowler interval [取得間隔(秒)]
defaults write net.bulknews.GitHubGrowler maxGrowls [表示最大数]
設定ができてるかはこれで確認
defaults read net.bulknews.GitHubGrowler interval
自動起動の設定
実行するとデーモンがたちがあるけど、ログイン毎にするものめんどくさい。
というわけで launchd を使って自動起動の設定をしてみた。
gist から DL するかもしくは下記のをコピペしてください。
置き場所はここ。
~/Library/LaunchAgents/net.bulknews.GitHubGrowler.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>net.bulknews.GitHubGrowler</string>
<key>ProgramArguments</key>
<array>
<string>絶対パス /github-growler/github-growler.pl</string>
<string>ここに UserID </string>
<string>こっちに API キー</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
github-growler.pl までの絶対パスと UserID と APIキーを変更してください。
launchd に登録(登録すると自動起動するようにしてある)
launchctl load ~/Library/LaunchAgents/net.bulknews.GitHubGrowler.plist
エラーは /var/log/system.log にでます。
これで動かない場合は userID, APIキー が合ってるか確認してください。
net.bulknews.GitHubGrowler.plist を変更した際は一度 unload して再度、load してください。
そうしないと反映されないみたいで地味にはまった。。。
あとuserID や APIキー が script に渡っていない場合はこんな感じのエラーができます。
May 29 21:12:46 imac net.bulknews.GitHubGrowler[1358]: Can't exec "git": No such file or directory
May 29 21:12:46 imac net.bulknews.GitHubGrowler[1358]: Use of uninitialized value $user in scalar chomp
May 29 21:12:46 imac net.bulknews.GitHubGrowler[1358]: Can't exec "git": No such file or directory
May 29 21:12:46 imac net.bulknews.GitHubGrowler[1358]: Use of uninitialized value $token in scalar chomp
ちょっと動かしてみたけど、ほんとに世界がかわったw
前まで RSS リーダーとかで見てたけどこっちの方が全然いいなぁ〜
参考資料
LaunchDaemons (launchctl, launchd.plist) の使い方
id:secondlife さんの Vim プラグイン perldoc.vim がやばい。
久々にすごいヒット。使い方も簡単。インストールも簡単。
以下、本家引用
適当な func/class の上で K で読めるようになる。
perldoc 表示側でも K で飛べるのでぐるぐる巡れる。
s でソースコードとトグルする。
ここでいう func って perldoc -f で探すもののこと。(my, open, map とか)
はまりどこ
そんなだいそれたものでもないけど。。。
- ~/.vim/ftplugin/perl/init.vim に setlocal iskeyword+=: をかく。かかないとモジュール名(::)で区切られて perldoc が開く。(ex. URI::Simple => URIで開く):set iskeyword で確認できるよ。
- syntax plugin on ってのが
.vimrc に書いてないと、そもそも plugin 自体が動かない。
初めての VimScript そして github
凄い便利だけど、個人的に横分割があまり好きでない。
というわけで、ソースもみやすそうだったので縦分割で見れるようにいじってみた。
VimScript 触るのは初めてだったけど、help と勘でどーにかなった。
といっても何をやってるかはほんとに勘でこうだろうと
決めつけていじってるので何かあった時はご了承をw
~/.vim/ftplugin/perl/init.vim にこれを追記すると縦分割で表示されるようになる。
let b:window_vsplit = 1
--- perldoc.vim 2009-05-29 03:14:14.000000000 +0900
+++ perldoc_vsplit.vim 2009-05-29 03:14:02.000000000 +0900
@@ -13,17 +13,26 @@
let s:buf_nr = -1
let s:mode = ''
let s:last_word = ''
+let b:window_vsplit = 0
function! s:PerldocView()
" base on FuzzyFinder WindowManager
let cwd = getcwd()
if !bufexists(s:buf_nr)
- leftabove new
+ if b:window_vsplit
+ rightbelow vnew
+ else
+ leftabove new
+ end
file \[Perldoc]
let s:buf_nr = bufnr('%')
elseif bufwinnr(s:buf_nr) == -1
- leftabove split
+ if b:window_vsplit
+ rightbelow vnew
+ else
+ leftabove new
+ end
execute s:buf_nr . 'buffer'
delete _
elseif bufwinnr(s:buf_nr) != bufwinnr('%')
ソースは github にあります。
dealforest’s perldoc-vim at master – GitHub
git さわろうさわろうと思ってよーやくさわってみた。
fork していいものか分からなかったけど勢いでしてみた。
まずかったらすみません。。。
なんにせよ初めて尽くしで色々おもしろかったー。
せっかく fork したんだし、これを機に勉強を兼ねてしばらくいじろうかな
ほんと IE きらい。
まぁそれは別にして、IE でハマる時って時間の割に内容がへちょい。
エラー文言を google 先生に訪ねても見つからなかったので同じよう
症状になった人の助けになれればとの意味を込めての備忘録。
どちかというと本人が再度しそうな、、、 (ry
var hoge = { fuga: 1, foo: 2};
for each (var i in ['fuga', 'foo']) {
alert(hoge[i]);
}
これが IE だと動かなくて「’('がありません」となる。
var hoge = { fuga: 1, foo: 2};
alert(hoge.fuga);
alert(hoge.foo);
}
結局別に書いて対応したけど、いけそうな感じなんだけどなー
ちなみに in は凄い便利。書かないと忘れるのでメモ。
こんな感じでキーがあるかの確認もできたり。
if ('fuga' in hoge) { alert('fugaあるよー'); }