classics.

2012/02/26 Sunflickr

Growl for Windows の履歴地獄を回避する

Growl for Windows 履歴地獄回避

Growl for Windows の 設定フォルダ内の History フォルダへの書き込み権限を自分から奪うと幸福実現できた。growlnotify 叩いてる分には特に問題は起きていない。便利。

追記

全く問題ないというわけでも無いですね( exit code とか違うかも)。

growlnotify

2012/02/26 Sunflickr

LimChat で Growl for Windows 再検討

やっぱマルチディスプレイにしていない状態での Windows で LimeChat のメッセージが強制的に視界に入らないのが不便なので、Growl for Windows 再検討した。問題としては、

  • growlnotify.exe を叩きまくると Growl for Windows がすぐ死ぬ
  • Growl for Windows に通知しすぎると Growl for Windows の履歴が多すぎて設定を開くのに時間がかかりまくる

というのがあった。前者は、Twitter のアイコンを毎回自分用のアイコンキャッシュサーバーにHTTPリクエストを投げて取得しているのが要因の一つと思ったので、キーワード通知以外の場合は LimeChat を Growl for Windows に登録して、アイコンは設定せずに通知するようにした。後者は、設定ファイル( Windows 7 だと C:\Users\{USERNAME}\AppData\Local\Growl\2.0.0.0\user.config あたり)の HistoryDaysToSave とか HistoryDays を 1 とかに設定しておくことで被害を最小に食い止めるようにしてみた。
(追記: 便利設定書いた http://oquno.com/log/eid2493.html )

LimeChatのマクロはこんな感じ( コマンドラインオプション )

"C:\Program Files (x86)\Growl for Windows\growlnotify.exe" /a:LimeChat /n:Default /t:"%n@%c" /cu:"http://{オレオレTwitter検索}/?q=from:%n+%m" /i:"http://{オレオレアイコンAPI}%n.png" "%m"

/i のアイコンオプションはキーワード通知の場合のみで、 /cu のコールバック URL オプションは URL エンコードしてないのでハッシュタグとかスラッシュが入るとまともに機能しないけれど、それなりに使える。直接 growlnotify を叩かずに何らかのスクリプトに投げてアイコンキャッシュ諸々の処理をさせるのもいいけれど、低スペックマシンへの負荷等を考慮してやめておいた。

2012/02/26 Sunflickr

こたつを片付けた

早朝思い立ってこたつ片付けたのだけれどこたつ布団干しておこうと思ったら雨降ってきてはめられた感じだった。テーブル形態よりもこたつ形態の方が6倍くらいの面積だったので、片付けると大分部屋がすっきりした。床掃除も楽になったので、汚かったわけでもないけどフローリングワイパーかけまくった。

2012/02/26 Sunflickr

インターホンが押されたのを音以外で notify したいメモ

ということでチャットとかしつつ検討した。ちなみにうちはマイクとかカメラとかなくて押したら音が鳴るだけのタイプです。

ヘッドホンしている状況では大体PC立ち上げているので、IRC か Growl で通知すればいい。インターホン押されたか程度の情報ならば Twitter に流しても自分は問題ないので、Twitter に投稿すれば IRC に流すのも Growl に通知するのもできる。Notify My Android にだけ通知するのは、秒単位で完全にリアルタイムに通知されるわけでもないのでよくない。

実装方法としては、

  1. どこでもドアホンを買って設置
  2. インターホンを改造
    1. インターホンのボタンの方を改造
    2. スピーカー側を改造
    3. スピーカー側に音量センサーとか組み合わせる

どこでもドアホン使うのはこんな感じで携帯電話にメール送信できるらしいので、携帯電話側で転送設定して、Gmail の XMPP とかでリアルタイムに通知できる。けど携帯電話まで含めると4万円くらいはかかる。ボタン側改造するのは、ボタンが押されたらXBeeとかで家の中の受信端末に通知するようなのが出来ればうまく行きそう。ただ、ボタン側は家の外なので、あまり見た目を変えたりするのはよくないので制限が大きい。スピーカー側を改造するのは、スピーカー側鳴らすための配線はどうせ単純だし簡単にハックできるだろうという予想で、Arduino あたりを組み合わせたり。スピーカー側に音量センサーとか組み合わせるのは、スピーカーの側に Arduino あたりで作った音量センサーを設置するというもの。もうちょっとプログラマブルなインターホンが出てくれるとうれしいですね。

2012/02/23 Thuflickr

たぽろだと Gumroad、どうして差がついたのか…慢心、環境の違い

みたいなことを書こうと思ったけど長くなりそうだったのでまじめに書くのをやめた。まとめると、Gumroad にはアイテム一覧が(表向きには)ないから使うのにどういうサービスなのか(違法なことに使われてるとか)判断できないのと、たぽろだのデザインが手抜きだったのと、仮想通貨が使われればいいのでスクリプトを配布したため中途半端にアップローダーが拡散したとかそんな感じですかね。モリタポか現金かというのは他ほど大きな要因ではないと思う。あとは Twitter とかで情報が拡散しやすい時代でどうこうとかもあるんでしょうかね。PANアップローダーβから7年後にあれではしゃぐのはないと思うけど。

2012/02/19 Sunflickr

Google Latitude の公開バッヂは JSON の隠し API があった

GOOGLE CODE , TIPS TRICKS and Hacks: Easier way to use Google Latitude API : Google Badge API

どうせ普通にスクレイピングしてるんだろと思って色々見てたら、JSONで取ってた。 type パラメータを json にするだけで取れたし、バッヂからスクレイピングした場合みたいなアイコン表示用の中心位置のズレがないっぽい。夜ピクでも使ってましたね。自分の場合だと http://www.google.com/latitude/apps/badge/api?user=4601680445375420648&type=json を GET すると

{
    "type": "FeatureCollection",
    "features":
    [
        {
            "type": "Feature",
            "geometry": {"type": "Point", "coordinates": [135.769316, 35.0294089]},
            "properties":
            {
                "id": "4601680445375420648",
                "accuracyInMeters": 849,
                "timeStamp": 1329661996,
                "reverseGeocode": "日本, 京都府京都市上京区",
                "photoUrl": "http://www.google.com/latitude/apps/badge/api?type=photo&photo=JB8WljUBAAA.4tZKCmm1Cd_CFPt0FEHt7A.joksABPdFATpX1-RYvIBSQ",
                "photoWidth": 96,
                "photoHeight": 96,
                "placardUrl": "http://www.google.com/latitude/apps/badge/api?type=photo_placard&photo=JB8WljUBAAA.4tZKCmm1Cd_CFPt0FEHt7A.joksABPdFATpX1-RYvIBSQ&moving=false&stale=true&lod=1&format=png",
                "placardWidth": 56,
                "placardHeight": 59
            }
        }
    ]
}

こんな感じの JSON が取れる。色々ツール書きなおすようにする。

2012/02/19 Sunflickr

日曜日の日記

髪を切った(ということを書いておかないと前回いつ切ったか確認できない)。昨日とか雪降ってたのでまだ雪がそこそこ残っていた。

image

雛あられを買ったら商店街のマスコットキャラクターのステッカーくれた。

2012/02/19 Sunflickr

複数台の Kindle を会社とかで使う場合について

今のところ自分の環境では発生していないけれど、会社で Kindle を複数台買って、Kindle Store で1冊分の支払いで買った技術書なんかを複数の端末で同時に読んでも問題ないのかちょっと気になったので調べた。日本の著作権法だと私的利用目的の複製のOKラインがが家族程度のつながりなので会社はだめだろうみたいなことを弁護士が語る的なのが前あったので。

We want a kindle app account for our business so we can share books we use for business, can you do this?
では、問い合わせろだとか、一般的な制限に引っかからなければいいんじゃないのかとかいう回答がされている。amazon.com ドメインのくせにいい回答が返ってきていない。

Kindle FAQ | Amazon Kindle 3 and Kindle DX Review and News With Fire and Special Touch...
非公式FAQでは、一般的利用としては1アカウントについては7台の端末まで同時に同じ本をロードできるらしい。

もっと探してみたら、Kindle Business とやらがあったので、企業とかで使うのならばこれを利用すべきなのかも。FAQ には、5台以上の注文だと多い分の端末はアカウントと紐付けられていない状態で発送されるとか書いてあったので、5台までは同時に読んでいいのかも。

適当にまとめると、アメリカの Kindle Store 使ってる範囲ならばまあ5台程度までなら大丈夫なのではないだろうかといったところでした。

追記

アフィリエイト忘れた

2012/02/18 Satflickr

Serene Bach 3 系で新着コメントを Notify My Android に通知

sendmail の設定もしてないし、それなら Notify My Android に送った方がいいなということで少し Serene Bach をいじった。Perl 全然わかってないけど。HTTP::Request::Common を入れる罰とかも受けた。

lib/sb/App/Receipt.pm で

$self->send_nma($new, $entry);

$self->_sendmail("com",$new,$entry);

の下あたりに追加して、適当なところに

sub send_nma {
    use HTTP::Request::Common;
    my $self = shift;
    my ($obj,$entry) = @_;
    my $url = "https://www.notifymyandroid.com/publicapi/notify";
    my $text = "new comment [". $obj->body ."]  by ". $obj->auth . " for " . $entry->subj . " http://oquno.com/" . $entry->id ;
    my $data = [apikey => "APIKEY",
        application => 'BLOGNAME', # ちゃんとオブジェクトから取れそう
        event => 'comment',
        description => $text];
    my $ua = LWP::UserAgent->new;
    $ua->request(POST $url, $data);
}

を追加した。やっぱ Perl 苦手っぽい。

2012/02/18 Satflickr

Google Latitude の位置情報を Twitter につけるの図解

Twitter に Google Latitude の位置情報をつけるの図解

図解ブームが来ると思ったのでこれ図解してみた。reverse_geocode はなくてもいいので省略した。Google ドキュメントの図形描画でそこそこできますね。PNG/JPG/SVG/PDFで出力できるのもよかった。