amazonで「持っています」に任意商品を登録するスクリプト.
var isan = (location.href.match(/\b[0-9]{9}[0-9X]\b/)||[""])[0];
var ssid = (document.cookie.match(/session-id=([\d\-]+)/)||["",""])[1];
location.href="https://www.amazon.co.jp/gp/yourstore/ratings/submit.html/ref=pd_ys_iyr_del?type=asin&rating_asin="
+isan+"&"+isan+"_asin.rating.owned=OWN&rating.source=ir&session-id="+ssid+"&template-name=%2F&return.response=204";
OWNをNONEにすれば消せます.評価も入れたい場合は{isan}_asin.rating.onetofive={0~5}を.
amazonで買った商品と同じように,持っているにチェックいれた商品も,買うときに警告してくれないかなぁ.間違って買ってしまうことたまにある.
ある商品を持ってるか確認できるAPIとか無いのかな.
http://www.amazon.co.jp/gp/rate-it/?rateIndex=search-alias%3Dstripbooks&rateKeywords={isan}
とかで検索すればとってこれるけど,なんだかなあ.
httpdとかjsonシリアライザ書いたりしていた.SAX形式で省メモリで軽量なC++用のjsonライブラリ探しているうちに適当に書き始めてしまった.
http://code.google.com/p/rapidjson/
この辺良さげと思ったけど,インターフェイスがあまり好みでないのと,今回そんな高機能である必要ないなと思って,いつものパターン.
久しぶりにOpenCV使う.4年ぶりに触ったけどだいぶ変わってる.今の最新は2.4.2とかなのか.C++のインターフェイスもけっこう使いやすくなった気がする.
Javaのjava.nio.channels.DatagramChannelのリファレンス見ると受信時のタイムアウトをサポートしてるって書いてあるのだけど,setSoTimeout()してもなぜか無視されてしまうな.channelからDatagramSocketを取得して受信するとちゃんとタイムアウトする.何が違うんだろう.
少し調べた感じでは,DatagramSocketのsetSoTimeout()で指定したタイムアウトはDatagramSocket内で処理されてしまっていて,DatagramChannelには影響しないっぽい?
肉食べた.
Visual Studio 2012はMetroを意識したっぽい平坦なUIで,慣れるまでは落ち着かないですね.
そういえばinitializer listもないのか.C++11対応もう少しがんばってくれると期待していたのでちょっと残念.thread,mutex,futureあたりが追加されてるのは良かった.
*future使ってみる
async良い感じ.
#include <iostream>
#include <future>
using namespace std;
int main() {
int a[] = { 1, 2, 3, 4, 5, 6, 7 };
auto f1 = async([&]{
long r = 0;
for (const auto &n : a) {
r += n;
cout << "add " << n << endl;
std::this_thread::sleep_for(std::chrono::milliseconds(50));
}
return r;
});
auto f2 = async([&]{
long r = 1;
for (const auto &n : a) {
r *= n;
cout << "mul " << n << endl;
std::this_thread::sleep_for(std::chrono::milliseconds(50));
}
return r;
});
cout << "f1:" << f1.get() << " f2:" << f2.get() << endl;
return 0;
}
排他処理もstd::mutexあるので良いですね.
しかし,
std::this_thread::sleep_for(std::chrono::milliseconds(50));
これ長すぎる…….
*GC周り(N2670)
現時点では役に立たないのであんまり他のコンパイラが対応してないですが,リストに入っていたので確認してみる.
#include <iostream>
#include <memory>
using namespace std;
int main() {
auto ps = get_pointer_safety();
if (ps == pointer_safety::relaxed) {
cout << "relaxed" << endl;
}
int *a = new int;
declare_reachable(a);
undeclare_reachable(a);
delete a;
return 0;
}
relaxedでした.declare_reachableとかは空っぽ.
今更だけれど,Visual Studio Express 2012 for Windows Desktop公開されましたね.
SDKにKernel32.libとか入ってないの?と一瞬思ったけれど,lib\um\x86とかに移動したっぽい.x86,x64のほかにARM版もあるように見える.
他にも,Range-based for 使えるようになったのはうれしい.ただ,constexprはだめみたい.http://msdn.microsoft.com/library/hh567368.aspx ここを見ると,constexpreが「部分的」になってるのだけど,何が使えるんだろう.
単体テストのフレームワークもあとで使ってみよう.
秋葉原.
シチュー.普通だった.
パンケーキ.
AndroidのBitmap.BitmapFactoryでJPEG読むとRGBA_8888指定してもhasAlphaはfalseになるのだけど,setHasAlphaがAPI Level 12以降なので困った.仕方ないので新しくBitmap作りなおしてる.
Visual Studio Express 2012 for Windows Desktopまだかなぁ.
夜の9時頃寝て朝4時に起きる+6時間くらい昼寝という生活を送っている….
HDDの中身をコピーするときにフォルダの作成日時が変わるのが嫌なのでCopyExtというソフトを使った.以前使っていたソフトが64ビット版のWindows7で動かなくなってたので.
http://www.htosh.com/software/freesoft/copyext.html
ただ,100GB弱のデータのために1TBのHDDを2台使ってるのはもったいないな.もう少し待てば,DropBoxとかGoogle Driveみたいなストレージサービスで上手くいくようになるはず……たぶん.
家に引きこもっていると毎日Amazonから荷物が届く不思議.
外付けのHDDが邪魔なので,2.5インチのものに置き換えることにした.とりあえず,このまえ買ったのと同じやつを買い足しておく.本当は秋葉原まで行こうかと思ったのだけど,天気が悪かった.
バックアップ用は別のメーカーにするべきな気もするけど,まぁ大丈夫だろうと思って同じやつに統一.
休みです.
会社行って,お昼ご飯食べて,ミーティングして帰る
Android 4.1.1(JRO03C)の標準のradio.img入れたらFOMAプラスエリア使えなくなってるっぽいな.仕方ないので,radioだけSC-04Dのやつに戻す.
本とか買う.
作ったのが2000年の夏だったから12年前か.