ダメ人間オンライン

あまり信用しないほうがいい技術メモとか備忘録とかその他雑記

ターミナルでカジュアルに使えるタイマー書いた

皆さんカップ焼きそば好きですよね。僕も大好きです。一平ちゃん最高です。

カップ焼きそばと言えばお湯を入れて3分待つのが一般的だと思います。皆さんはどうやって時間計ってますか?僕はキッチンタイマーとか持ってないし買うつもりもないのでアナログ時計の針を見て時間計ってます。

ただ人の記憶というものは曖昧なもので「あれ、何分スタートやっけ。。。」となってしまうこともたまにあります。それはそれでいつもと違う一平ちゃんを堪能できるのでいいのですが、ノウハウが溜まりきってしまうとやはりベストな時間というものが見えてくるので一番おいしく食べられる時間ぴったりでお湯を捨てられるのが良いです。

なのでターミナルでサッと使えるタイマー書いた。
https://gist.github.com/dameninngenn/5865715

f:id:dameninngenn_owata:20130626234422g:plain

文字の大きさと色は変えられます。
f:id:dameninngenn_owata:20130626234436g:plain


Perl5.8以降あたり入ってたらたぶん下の一行で動く気がします。

% curl https://raw.github.com/gist/5865715/timer.pl | perl

時間指定したり色とか変えるなら

% curl https://raw.github.com/gist/5865715/timer.pl | perl - --color=green --scale=5 --timer=180

上のgistのtimer.plを信用しきってる場合は.zshrcとかにalias設定しとくといざという時役に立つかもしれません。

alias ippei='curl https://raw.github.com/gist/5865715/timer.pl | perl - --color=green'

もしかしたらtimer.plの中身がある日急にoppai時計になったりするかもしれませんが。

あとLTとかの時間測りたいけどタイマーアプリ入ってなくて急いでる時とかにも使えますね!

ちなみにデフォルトの時間が2分30秒なのは「お湯を入れてPCの前に戻ってくる時間」と「時間きてからお湯を捨てるまでの時間」を考慮してさらに3分より少し前にお湯を捨てるぐらいでちょうどいいという好みのためです。

やったー!超キュートなHiveロゴを愛でながらブラウジングできるChrome拡張できたよー\(^o^)/

f:id:dameninngenn_owata:20130613014858p:plain
http://www.apache.org/

事の発端

@tagomorisさんがHiveロゴがプリントされたTシャツを着てた

背中側が狂気に満ちてると感じた

kowai

夢に出てきた

起きたらHiveロゴがとても愛おしく感じるようになってた

もっと長い時間眺めていたい!

どのページ見てもHiveロゴが目に入るようにすればええんや!!

@tagomorisさんが着てたTシャツのデザインはこちら
Hadoop Conference Japan 2013 Winter にいってきた&しゃべってきた - tagomorisのメモ置き場

⊂二二二( ^ω^)二⊃

dameninngenn/chrome-ext-bu-------n · GitHub

やったー!かーわーいーいー!!

ただ大量に発生させすぎるとCPUがウォーーーってなってファンがファーーーーーってなる。。

余談

ライセンスの話

Hiveロゴのライセンスってどうなってるんだろうと思って調べてみたけど明記されてるとこ見つからなくてtwitterで聞いてみたら教えてもらえた。


なるほど。

読んでみると、

You needn't ask us for permission to use Apache's graphics logos (the versions published on individual project's websites) on your own website solely as a hyperlink to the specific Apache project website or to www.apache.org. All other uses of Apache Foo (and similar) graphic logos must be approved in writing by VP, Apache Brand Management or a designee.

Apache Trademark Policy

って書いてあって、www.apache.orgへのリンクと共にウェブサイトで掲載する分には特に許可とかとらなくてやっちゃっていいけどそれ以外の用途なら別途聞いてねみたいな感じだったのでメールで問い合わせた。

poor Englishで申し訳なく思いながらやりとりして、キャプチャとって見てもらったりしてこんな感じですねん!ロゴとしてそのまま使うんじゃなくてソフトウェア内での要素の一つとして使いたいですねん!って説明してokをもらった。

ポイントとしては
1. Apacheのロゴを個人的なプロダクトであれロゴとして使ってはいけない。Chrome拡張で言えばアイコンにロゴは使ってはいけない。
2. 利用者が勘違いすることなく「このグラフィックはApacheのものである」と認識できるよう注意書きを表示しなければいけない。
ということ。

なので拡張を入れた時点では機能はOFFで必ず設定画面を開いてONにしないと動かないようにしてそこに説明書きを表示するようにした。あとはREADMEにも。

当たり前のことだけどブランドをすごく大事にしてるんだなーっていうのをやりとりしてて特に感じた。

Thank you Shane Curcuru.

requestAnimationFrame

フレーム毎に動かすのをsetTimeoutでやってたけどrequestAnimationFrameっていうのがあるっていうのを知ってそれを使うようにした。

一番のメリットだと思ったのはブラウザのタブが非表示になってる時は処理をしないところ。今回のだと作りが雑ってのもあってすごいCPUが頑張る感じになってるので全部のタブでブンブン飛び回ってる状態だと大惨事になる。なので非表示にしてるやつの処理をしないと表示してるのだけ頑張る感じなので大惨事まではいかず惨事ぐらいまでにおさまる。

けど使い方を間違ってる感はあるので(CPU頑張る感じになってる部分でお察し)こういうアニメーションまわりのところとかjsの根本的なリソースまわりのこととかもうちょっとちゃんと勉強したい。マサカリ飛んでくる。kowai

Chromeのバグ

Chrome27からかわかんないけどImage()を使ってなんやかんやしようとしたら

returns Uncaught TypeError: Type error

みたいなエラーが出てよくわからず「????」ってなって悩んでたけどどうやらChrome側のバグだったらしい。

Issue 238071 - chromium - Using canvas drawImage in chrome extension content script returns type error - An open-source project to help move the web forward. - Google Project Hosting

unite.vim + perldoc.vim

unite-perldoc

perldoc.vim 便利ですよね。僕も愛用させてもらってます。

モジュール名の上にカーソルがある状態で K を入力するとドキュメントが見れるし

:Perldoc HogeFuga

としても同じように見れる。しかも補完も効く。ステキ。

カーソルがモジュール名の近くにあるか、調べたいモジュール名がはっきりわかってる場合にサッとドキュメントをひけるってわけですね。

けど上記を満たさない場合だと若干手間取ってしまう。例えば、

my $nanntoka = SugokuOboeduraiNamaeNoModuleDesuyo->new();

...
# 上のモジュール名が見えなくなるぐらいの行数を間に挟んでから
$nanntoka->shiran_method( 'hanage' );

みたいな時に「あー、このshiran_method()ってなんやろー。モジュール名なんやっけ、えっと、、、」ってなって上にスクロールして戻って「そうそうこういうモジュール名やった」って言いながらperldocで引くみたいな感じになってサッと引けないことがある。

今となってはそんなことが本当にあったのかどうかも疑わしいけどあったということにしとく。

ので今開いてるファイルでuseしてるモジュール名をunite.vimで一覧表示してそこからperldoc引けたらサッとできそうってことでやってみた。

dameninngenn/unite-perldoc · GitHub
f:id:dameninngenn_owata:20130426021332p:plain

正規表現でuse なんとかを引っ掛けてそれを:Perldocに渡してるだけです。requireはとりあえず考慮してない。vimの正規表現こわい。

とりあえずそれっぽくできたので満足した。

ref.vim

ref.vimというperlだけに限らず他の色んな言語のリファレンスを引ける便利なプラグインがあって、それだと標準でuniteから使えるみたいな感じだったので試してみた。

特に何も設定なし
f:id:dameninngenn_owata:20130426021335p:plain

let g:ref_perldoc_complete_head = 1
f:id:dameninngenn_owata:20130426021323p:plain

という表示になって候補となるモジュール名をpathを走査して一覧表示してるっぽい感じ(ちゃんと確認したわけではないですが)で今開いてるファイルに含まれるモジュール名を表示するっていうやりたい事とはまた別の用途な気がした。uniteのインターフェースで絞り込んだりして引きたいって場合に便利そう。

unite.vimでbuffer一覧表示をシュッとさせたかった

\前回のラブライブ!/

neobundleの導入ついでに使ってたプラグインが軒並みアップデートされたけど、:Unite buffer した時の表示がなんか賑やかになってたのでもうちょっとシンプルに表示するようにしたいと思ったのでした。

f:id:dameninngenn_owata:20130314042658p:plain

converter

unite.vimのバージョンは5.0。ドキュメントには簡単にそこの表示を変更できるような感じのことは書いてなかったのでググってみたところ unite.vim buffer buffer_tab のバッファ番号表示を消す でできそうだったので真似をした。

dameninngenn/unite-converter-buffer-simple · GitHub

少し違うのは、ドキュメントの unite#custom_filters の項目を見ると

Note: This function is deprecated. Please use
unite#custom_source() instead.

となっていたので unite#custom_filters じゃなくて unite#custom_source を使った

結果

f:id:dameninngenn_owata:20130314042738p:plain

少しみやすくなった。ハイライトまわりも見直す。

すぐに超エキサイティンになれるGoogle Chromeの拡張をシュウウウウウウウウウウウウ

生きていればつらいことがある。
しかし、つらいからと言って簡単に投げ出す事は出来ないということも多い。

みなさんもつらまってる時、よくなんとかドームで遊ぶと思う。
当然のごとく僕もそうである。

最近つらい事がよくある。
そんな時のために、なんとかドームを素早くプレイできる必要があった。
なので、なんとかドームをすぐプレイできるGoogle Chromeの拡張を作った。

「だめだ。もうやってらねー」って時は、右にあるアイコンをクリックすればすぐなんとかドームをプレイできる。最高。超エキサイティン。

f:id:dameninngenn_owata:20130312005330p:plain
dameninngenn/chrome-ext-nanntoka-dome · GitHub