2013年12月31日火曜日

2013年を振り返る

年の終わりに、今年も良かったこと限定で、個人的に大きかったことを10個振り返ってみる。

快傑ズバットを見た
突っ込みどころは多々あれど、それらを全てねじ伏せる宮内洋。とんでもない作品だった。DVD欲しい。
投機再開
FXを再開した。もっとも、転職活動が忙しくなったあたりで、また止まってしまったけど。とりあえずトータルではちょいプラス。確定申告めんどいなぁ。
変態仮面復活
まさかの実写映画化。20年前のギャグ漫画だからと言って適当に茶化したりせず、真摯に映像化した関係者の皆さんに、改めて敬意を表しよう。
ももクロ春の一大事に行ってみた
当時はまだモノノフでも何でもなかったのだが、誘われたから話のタネにと行ってみた。まあ、アイドルのライブなんて2度と行く機会はないだろうし…。そんなふうに考えていた時期が俺にもありました。
ももクロ夏のバカ騒ぎに参戦した
夏は自ら望んで参戦。春はモニターも半分見えないようなスタンド最後列だったけど、夏はアリーナで放水の洗礼を受けまくれたのは良い思い出。スタジアムのど真ん中に客席を作らなかったことに対する批判もあったけど、個人的には上手側からえびぞり具合を目視確認できて満足。
引越しした
強行スケジュールでバタバタしながらも何とか完了。あばよ川崎、よろしく横浜。電気やらガスやらの手続きのほとんどがオンラインで済むようになったのはいいね。
転職した
もう2度とRTLは書かないつもりだったのだが…。まあ、結果論ではあるけれど、会社が嫌いだっただけで仕事内容そのものは嫌いになってはいなかったことが分かって良かった。
Blu-rayプレイヤーを買った
ちょっと前までDVDの再生環境すらなかったのに、ももクロのライブ映像見たさにBlu-rayプレイヤーを買ってしまった。以降、毎月1本ずつライブBDを購入して、歴史を追体験中。
カーレンジャーを十数年ぶりに見た
帰宅部状態だった頃にラスト1クールくらいをリアルタイムで見て以来。1話からきちんと見たのは初めて。とにかくギャグの印象ばかりが残っていたけど、改めて見ると熱いところはきちんと熱かった。
ももいろクリスマスに参戦した
楽しかったり熱かったり、あんなにポジティブな感情が溢れ出て来たことは過去にも覚えが無い。最後はあの国立発表に参加できて、もう最高に幸せだった。サブステージ正面あたりで表情まで目視確認できた席も良かった。

とにもかくにも、ももクロに救われた1年だったなぁ。この出会いが無かったら、諦めに満たされたまま去年の延長線上で落ち続けていたに違いない。傍から見たら、いい年こいたオッサンがおかしくなった以外の何物でもないのだろうけど、いいんだよ細けぇことは。

2013年12月30日月曜日

ランボー怒りの選別

http://www.huffingtonpost.jp/2013/12/29/idenshi-ranshi_n_4516861.html

この方面は完全に門外漢だけど、卵子の製造過程で生じる廃棄物だけで「9割以上の精度で異常を見つけることができた」ってことは、そもそも大半は精子に依存しないってこと? それとも、受精時に異常が異常が発生しうるか否かを9割以上の精度で当てられたってこと? 中学生レベルの知識だと、異常が発生する方が優性なら、どんなに卵子を選別しても精子が外れれば駄目な気がするんだが…。

さて、技術的なことは分からないけど、倫理的にどうのこうのとケチを付ける気は全くない。周りが何を言おうと、実際に生きる子と実際に育てる親にとって、異常が無い方が良いに決まっている。手間も金も出さない自分は、口も出さないよ。

2013年12月29日日曜日

中華式逆鼠算の修正

http://jp.reuters.com/article/worldNews/idJPTYE9BR01820131228

緩和するとは言っても、一人っ子政策そのものを改める気はまだないのか。

日本人の常識で考えれば、少子高齢化はゆっくりと、しかし着実に社会を蝕む不治の病。多少緩和するとは言っても、未だに少子高齢化を促進させるような政策を採っていること自体、どうかと思うのだが…。

しかし、よくよく考えてみると、少子化と高齢化は別問題ではないかという気がしてきた。ぶっちゃけ中国共産党なら、年寄りを減らすという方法で高齢化の解決を図っても驚かない。さすがに露骨に銃口を向けることはないとしても、金がないと十分な医療も受けられなければ…。

嫌な話だけど、有効な高齢化対策は貧乏人の切り捨てしかない気がする。他人事ではなく、この国でも。

総理の靖国参拝の狙い

賛否の声は散々出ているが、そもそもなぜ、このタイミングでこんなカードを切ったのだろうか?

経済に気を使っている総理が、経済のことを考えての行動だと仮定すると、これは韓国を反日で凝り固まらせるための策だったようにも思える。実際、これで朴槿恵は反日路線を軟化する選択肢を失っただろう。下手に韓国内の問題を本質的に改善されるより、改善のためのエネルギーを反日で浪費している方が、経済的なライバルとしては与し易いとも考えられる。また、日本と仲良くしろというアメリカの意に反した言動を取り続けさせて、米韓関係を改善させないという狙いもあるかもしれない。市場が半ば年末年始のお休みモードに入っている一方で、ニュースバリューとしては適当な暇ネタを容易に上回ることができるこのタイミングも、経済への悪影響を抑えながら最大限に煽れる機を狙ったように見えなくもない。

まあ、だとしても品の良い手ではないことは確かだし、子供じみた反韓を助長するリスクを過小評価している気もするが。

…と言うか、ぶっちゃけ右翼の大きな声で特定秘密保護法の悪評をかき消したいだけなんだろうと思ってるけど。

2013年12月28日土曜日

仕事納め

はぁ~、終わった終わった。今年の仕事も終わった。

去年の今頃は、1年間の仕事を振り返るのも嫌だった。…というか、会社の外で仕事のことなんて1秒たりとも考えなくなかったから、どんなにくだらないことでもいいから、とにかく仕事以外のことを考えるよう意識していた。自分はもう、この仕事が嫌いになったのだとばかり思っていた。

それが今年、初の転職をしてみて、目論見に反して仕事内容は前職からあまり変わらなかったにもかかわらず、気が付けば業務時間外でも仕事のことを考えるようになっていた。仕事が嫌いになったと思っていたのは勘違いで、嫌いだったのは前の会社や、それを動かしている上の連中だったのだ。坊主と袈裟はきちんと分けて考えるよう心がけていたつもりだったのだけれど、結局は坊主への憎さが上回って目が曇ってしまっていたわけか。

あ、前の会社には坊主頭の上司がいたけれど、別にその人が憎かったわけではないことを念のため明記しておこう。

2013年12月27日金曜日

Baidu IMEとSimejiが入力内容を勝手に送信

http://www.itmedia.co.jp/news/articles/1312/26/news055.html

Baidu IMEと言うと、どさくさに紛れて隙あらばインストールさせようとする胡散臭いソフトという印象があまりに強かったのだけれど、あながち間違ったイメージでもなかったか。今のところIMEをオフにしている間の入力文字列を吸い上げられているという話はないようだけど、どの道これまで同様、これからも使う気にはならないな。

しかし、同じことをGoogleがやったとしても、こんな騒ぎにはならないんだろうな。Gmailにしてもストリートビューにしても、実はGoogleの方が結構な情報を集めてるんだけど。悪いことをしていない実績と、悪いことをしそうにないイメージ。ブランドってのは重要だね。役所のシステムなんか、ITゼネコンに作らせずGoogleにやってもらいたいと思ってしまうもの。

2013年12月25日水曜日

田中将大渡米

http://www.jiji.com/jc/c?g=spo_30&k=2013122500365
http://jp.wsj.com/article/SB10001424052702304299204579279811648222266.html

う〜ん。新たな門出を祝福したい気持ちと、パリーグファンとしての寂しい気持ちと、1つ土を付けてから送り出したかったライオンズファンとしての気持ちが入り交じっている。

しかしまあ、本人が行きたいと言って、球団が行ってもいいと言ったのだから、今更外野がとやかく言う話ではない。パリーグファンとして、ライオンズファンとして、そして同じモノノフとして、海の向こうでの大活躍に期待しよう。

そういえばMerry Christmas

今日は妙にスーパーでイチゴを買っている人が多いと思ったら、そういえばクリスマスイブだったのか。ももクリ2013が最高の形で終わったので、もうクリスマスは終わった気分でいたのだけれど、世間一般では今晩がピークだったか。

さて、昨晩は何とか電車で帰宅するだけで精一杯で、ようやく今日、限定CDを聞くことが出来たので、その感想。

鋼の意思は、高見沢ソロのようなコテコテ早弾きメタル、下手するとペインキラー級の問題作をぶっ込んでくるかと予想していたら、思いの外アルフィーっぽかった。CD音源ではよりアルフィーっぽさが増している。マイクスタンド縛りはやめて、改めてもう少し振りを付けて欲しいかな。

一方の泣いちゃいそう冬は、広瀬香美っぽさが薄い気がした。広瀬香美の声で脳内再生してみても違和感はないのだけれど、広瀬香美の曲というよりももクロの曲という感じの方が強い。恋愛ものの歌詞じゃないからかな? だから悪いというのではなく、むしろ好み。

2013年12月24日火曜日

ももクリ2013 そして国立へ…

本当に本当に、心の底から最高のライブだった。懸念していた寒さも、始まってしまえば気にもならず。あっという間の4時間だった。

何と言うか、とにかく今日、このライブに参戦して、あの一部となれたことが、最高に幸せだった。不幸の拡大再生産ばかりしている世の中で、幸福の正帰還の真っ只中に自分も加わっていた奇跡。心底不本意な仕事をさせられて、ただただ呪うことしかできなかった1年前には、こんなに幸せな日が来るなんて全く想像できなかった。

8ヶ月前に彼女達に出会えていて、本当に良かった。この感謝の気持ちをどこにどうやって還元すればいいのか分からないけど、とりあえず明日から仕事を頑張ろう。

2013年12月22日日曜日

Amazon vs リアル書店

http://sankei.jp.msn.com/life/news/131222/trd13122218530008-n1.htm

そもそもKindle上陸よりずっと前から、紙の書店としてもAmazonが強かったことを忘れてないよな?

Amazonを利用する理由は単純明快、欲しい本を買えるからだ。一方のリアル書店では、ちょっと売れ筋から外れた本を探そうとすると、ほぼ見つからずに店を去ることになる。そんな経験を何度か繰り返せば、そりゃ最初からAmazonで検索するさ。電子書籍のダウンロードカードを取り扱ったところで、平積みしているベストセラーしか売っていないようなら、わざわざ足を運ぶ気にはならん。

…と、否定するだけなのもアレなので、個人的にAmazon以外で本を買うケースを挙げよう。ずばり、ポイント目当てでヨドバシ.comを使うか、図書カードを使うために単行本の発売日にリアル書店に行くかの2つ。要するに金の問題だ。

再販制度の上で戦っているうちは、どこで買っても同じなのだからAmazonには勝てないよ。数が見込めないマイナージャンルの保護は電子化でカバーできるだろうから、もう再販制度はやめた方がいいんじゃない? 今のままでは、総合力でAmazonに敗れたらそれでおしまい。それよりも、局地的なゲリラ戦を繰り広げられる余地を作った方が、まだ未来があると思うんだが。

2013年12月21日土曜日

Magicしもやけ?

右手の中指と薬指の先が腫れて、関節を曲げづらい。症状としては指先をドアに挟んだような感じなのだが、そんなことをした覚えはまるでない。なぜ右手の中指と薬指だけがこうなったのだろうか?

…1つだけ思い当たる節があった。問題の2本の指は、だらだらブラウジングしている最中にMagic Trackpadに乗せている指だ。冬のアルミ板がこの2本の指先をピンポイントで冷やして、しもやけのような状態になったのではなかろうか。

静電容量式のタッチパネルに反応する手袋を買おうかなぁ。そんなものが丁度、明後日のももクリで売ってるな。

2013年12月20日金曜日

iOS7で外部カレンダーを再同期させる

以前Macのカレンダーに追加したFXカレンダーが、いつの間にかiPod touchに反映されていなかった。FX自体すっかりご無沙汰なので今まで気が付かなかったけれど、第5世代iPod touchに乗り換えたときに駄目になった? Macのカレンダーには反映されているので、元のカレンダーの更新が止まってしまったということはない。iPod touch側の問題だろう。

さて、原因は定かではないが、iCloudの設定でカレンダーの同期を切ってから、再度同期を有効にするという場当たり的な対処で、今のところ解決したように見える。

2013年12月19日木曜日

量的緩和の出口

大方の予想を裏切って、遂にアメリカが蛇口を閉め始めるのか。バーナンキが少しでも量的緩和の出口に向かいはじめてから舞台を降りたかったのもあるだろうけど、それだけだったら、これまでの量的緩和縮小の噂が流れたときと同様、また株価が下がっていただろう。むしろ株高・円安が進んだということは、いよいよアメリカの復活も本物ということか? まあ、アベノミクスの最中の日本と同様、アメリカにも「復活? してねーよ!」という人達が大勢いるのだろうけど。

しかし、緩和縮小で円高が進んだときが米ドルの買い時だと思ってたのに、むしろ円安が進んで買いの機会を逃してしまった。

2013年12月18日水曜日

辞任秒読み

http://www.47news.jp/CN/201312/CN2013121801002369.html

ああ、これはもう時間の問題だ。こりゃ、そのまんま東の可能性も大いにあり得るな。ワタミも議員辞職して都知事を狙ってくるかな?

何にせよ、都民じゃなくて良かった。

2013年12月17日火曜日

Verilatorで変換できるdual port SRAMモデル改

以前作ったVerilator用dual port SRAMモデルは重たかったので、ビットイネーブルを外してライトイネーブルだけを付けたSRAMモデルのeRubyテンプレートを作り直した。バイトイネーブルが欲しくなったら、データ幅8ビットで生成したこのモデルを横に並べればいい。

他に変更点としては、書き込みをクロック同期に直したのと、リードデータをホールドしないようにした。前のRAMモデルを使ったテストで、書き込む前に読みだすバグを見つけ損ねてしまっていたので。

使い方は、ファイル先頭のName, DataWidth, Depthを好みの値に書き換えて

% erb ramdp.v.erb > ramdp.v
とでもすれば、RTLができる。etを使って
% erb ramdp.v.erb | et > ramdp.v
とやれば、インデントがそれなりに揃う。

2013年12月16日月曜日

プチプチマン

今週のキン肉マン。

やはり六騎士vs残りの始祖という展開か。以前、超人墓場にいるってことは、あの鬼達も完璧超人なのかと考えたことがあったけれど、明確に鬼と完璧超人は区別されていて一安心。六騎士相手にバッタバッタとなぎ倒される鬼達なんて、完璧とは程遠い。

さて、次の対戦はジャンクマンvsペインマンか。見た感じ、痛みを与えるというよりは、全身のプチプチで衝撃を吸収して痛みを感じない能力の持ち主? 六騎士に始祖の相手をさせている間、将軍様が何を狙っているかも気になる。まあ続きは来週、…じゃなくて3週間後か。長いなぁ。

2013年12月15日日曜日

JR東日本の二重運賃

http://sankei.jp.msn.com/life/news/131212/trd13121215390011-n1.htm

チラチラほのめかされてはいたけれど、本当にやるのか。

途中までの切符を買ってICカードで清算したり、ICカードで乗って途中から回数券を使ったり、切符とICカードの間に定期券の区間を挟んでみたり、ちょっと考えただけでも検証がエラいことになりそうなんだが。こんなこともあろうかと、エレガントな解を用意していればカッコいいのだけれど…。愚直に地獄を見せられるエンジニアがいないことを、安全な場所から祈ろう。

2013年12月14日土曜日

アウター購入と火星人襲来

ももクリに備えて真面目に寒さ対策を講じた。まあ、端的に言えば衣類を買った。

いざ探してみて痛感したのは、冬物は本当に色が地味。原色のアウターなんてユニクロか西友のダウンくらいしかない。こんなことならドカジャン脱寒ジャンパーに手を出しておけば良かったか。

…なんて思っていたところ、ふと立ち寄ったBOOKOFFの品揃えが意外にも良く、そこで鮮やかな緑色のジャケットを入手できたとさ。更に西友でセーターと股引を購入し、これで西武ドームの寒さだろうが何だろうが大丈夫、…かな? 自信はない。

あと、BOOKOFFに寄ったときに、ワゴンでマーズアタックのDVDを衝動買い。Tom Jonesが出てくる馬鹿映画という記憶しか残っていなかったのだけれど、改めて見てみて評価が変わった。確かに何よりも目立つのはクレイジーな絵の数々なのだけれど、実は群像劇として良く出来ていることに十数年遅れで気が付いた。これは決して馬鹿には作れない馬鹿映画だ。

I'ts Not Unusealを聞くと、コサキン知っテレフォンを思い出すなぁ。

2013年12月13日金曜日

12 DAYS プレゼント

https://itunes.apple.com/jp/app/12-days-purezento/id777716569

ああ、そういえば去年もあったなぁ、この企画。去年は確か曲とアプリだけだったと思ったけど、今年は本と映画も加わったのか。

去年貰った曲は、どうにもこうにも自分のライブラリの中では浮いていて、結局消してしまったのだった。あまり購入履歴を汚したくないから、今年はタダだからと言って適当に落とさず、視聴してから決めよう。

あと、URLのprezentoはどうかと思うぞ。

2013年12月12日木曜日

http://jp.wsj.com/article/JJ11464707405669244888518014091300547206413.html

輪?友達の輪が終わるからか? 全く持ってピンと来ないなぁ。

しかし、よくよく今年を振り返ってみると、個人的に大きなことはあったけれど、世の中的にはそれほど大きなイベントはなかったか。そんな今年をあえて漢字1文字で表すなら、「緩」かな。

2013年12月11日水曜日

3DSとNintendo Network IDとの紐付け

紐付け自体は昨日のうちにできたのだけれど、3DSのeShopはまともに繋がらず、何とか繋がったWii UのeShopでは、肝心のチャージ残高が合算されておらず。中の人は徹夜かなぁと思いながら、大人しく待つことにしたThuesday. そして、さすがに復旧しただろうとリトライするWednesday. その結果は…

ようやく3DSのeShopに入れて、Wii Uとチャージ残高が合算されていることを確認できた。まだ結構重たかったけど、まあそのうち解消するかな。

そう言えば、今回の3DSのファームウェアアップデートで、カメラの起動がLとR同時押しに変更されていた。これで間違えてカメラを起動することが劇的に減るな。

2013年12月10日火曜日

Google Testとクラス定数

Google Testではまったところ。こんなテストがビルドできない。

#include <gtest/gtest.h>
#include <cstdio>
struct Foo {
    static const int A = 100;
    static const int B;
    enum {
        C = 300
    };
};
const int Foo::B = 200;
int add(int a, int b) {
    return a + b;
}
TEST(AddTest, TestA1) {
    int sum = add(21, 79);
    EXPECT_EQ(Foo::A, sum);
}
TEST(AddTest, TestA2) {
    int sum = add(33, 67);
    int exp = Foo::A;
    EXPECT_EQ(exp, sum);
}
TEST(AddTest, TestB) {
    int sum = add(123, 77);
    EXPECT_EQ(Foo::B, sum);
}
TEST(AddTest, TestC) {
    int sum = add(199, 101);
    EXPECT_EQ(Foo::C, sum);
}
int main(int argc, char *argv[]) {
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

上記コードのTestA1でFoo::Aが見つからんとリンカに怒られるのだが、Debianのg++ v4.7.2のコンパイル結果を見てみると、どうも最適化が中途半端なのか、EXPECT_EQマクロを展開した先ではFoo::Aがインライン展開されず、外部モジュールにあるFoo::Aを参照しているところがあった。当然そんなものは誰も定義していないので、リンクでこけるわけだ。ちなみに、MavericksのApple LLVM v5.0でも同様にTestA1は通らなかった。

Google Testのマクロの引数は、テンプレートの引数になったり何だりややこしいことになっているので、なるべくシンプルな式を与えるのが無難なのかな。

2013年12月9日月曜日

超人閻魔

今週のキン肉マン。

とうとう超人閻魔の正体が明かされたか。超人になった元神と超人閻魔が同一人物で、そしておそらくS武道の中身となると、大ボス級の役者は出揃ったと言うか、実は出揃っていたわけだ。これ以上、もっと強い真のボスが登場する余地がまずなくなったので、いよいよ話を収束させるフェーズに入ったかな。まだネメシスとキン肉族との因縁(?)が残ってるけど、最後の最後がキン肉族の内輪もめでは締まらないから、こっちは先に解決してほしい。

どうでもいいけど、「鬼のように強い」って鬼が言うなよ。

2013年12月8日日曜日

みんな分裂

http://jp.wsj.com/article/JJ12623444413397623843819888575453798218264.html

う〜ん。みんなの党にはちょっと期待してたんだけどなぁ。

「小さく分かれていがみあっている野党が、政治理念と基本政策を軸に、自民党に対抗し得る勢力を結集しなければ」というのはその通りだとは思うんだけど、ならば尚更、党を割る以外の方法はなかったものか。みんなの党ですら掌握できずに党を割った人達が、野党連合を取りまとめられるとは正直言って考え難い。

次の選挙は本当に投票先が無くなりそうな悪寒。ああ、でも最高裁判所の裁判官に×印を付けに行くのは忘れちゃならないな。

2013年12月7日土曜日

100Ω

オーム社が創立100周年記念で電子書籍を半額セールしているので、とりあえず1冊ポチッとやった。そんなに歴史のある出版社だとは知らなかったけど、99年前に現・東京電機大学から独立してできたのか。東京電機大学が100年以上前からあることも知らなかった。

しかしまあ、2014年に100周年を迎える記念セールなんだから、よくよく考えれば慌てて買わなくても、来年もセールする気がする。まあとにかく、買った本は読もう。電子書籍はかさばらないのはいいんだけど、積んでも積んでも積んだ気がしないのが困りもの。

ちと話は逸れるけど、今回の支払いを機にPayPalのアカウントを作ったのだが、早速ログインしようとしたらパスワードが通らない。仕方なく、早々にパスワードのリセットと再設定の手続きをすることになったのだが…、パスワードは20文字まで? アカウントを作成したとき、ランダム生成した32文字のパスワードを設定したのがログインできない原因だったのかな。何にせよ、長過ぎるなら長過ぎると突っぱねてくれないと分からんよ。

2013年12月6日金曜日

直火にかけられるガラスポット

1杯で捨てるのはもったいないティーバッグを小皿にとっておいて何度か使うより、はじめから数杯分の紅茶を出した方がいいのではないかと思い、直火にかけられるガラスポットを買いに近所のスーパーへ行った。

…が、売っていない。耐熱ガラスのポット自体は売っていても、どいつもこいつも直火はNGと書いてある。どうしたことかとググってみたところ、1年半前に同じように直火ガラスポットを探した人のポストを発見。う~ん、クレーム対応しきれないから直火対応はやめたってことか? なんだかなぁ。

2013年12月5日木曜日

ももクリ復活当選

ももクリ一般当選キター!! AE先行2連敗の土俵際から起死回生の当選。年末調整以外のクリスマスプレゼントなんて久しぶりだわ。正直言って当たる気がしていなかったので、これから真面目に寒さ対策を考えなければ。ああ、嬉しい誤算。

そう。一般なんてとても当たる気がしていなかったので、AE先行のLVも申し込んでいたのだが、こちらは順当に当選。その結果、LVのチケットが余ってしまった。既にクレカで支払い済みだから、今更キャンセルもできん。まあ、気分がいいからいいや。

2013年12月4日水曜日

Debianの汚いフォントをきれいにする

久々にDebianでデスクトップ環境を作ってみたら、フォントが酷く汚い。読めないことはないからしばらく我慢していたけど、あまりにあまりなのでググってみたところ、以下の方法でかなりきれいになった。

http://keitaro1967.cocolog-nifty.com/blog/2011/02/debian-squeez-2.html

あまり良くないヒントなら使わない方がいいってことか。もっとフォントを小さくすればヒントが効いてくるかもしれないけど、どうせ小さい文字はよく見えないからいいや。

2013年12月3日火曜日

ラーメンまん

買ってきた。人類は麺類。

早速、子供の頃のトラウマシーンその1を完全再現。

ちなみに、トラウマシーンその2はバッファローマンがスグルにロングホーンを突き刺して火事場の糞力を吸収するところ。

2013年12月2日月曜日

地獄の3/9所封じ

今週のキン肉マン。

なんかアビスマンのキャラが卑屈になってないか? 先週まではただの脳筋馬鹿っぽかったのが、今週はやたらと「様」を付けたりして、いけ好かない優等生に対する歪んだ感情を噴出させているように見えるんだが。いや、調子に乗ったら出て来た今週の様こそが本性なのかな。

さて、残り6か所を封じたら、いよいよ石臼逆回転か。こればかりは何が起こるのか見当もつかないけど、始祖も残り6人になることだし、将軍様が石臼を回している間に六騎士が戦うってのはありかな。

2013年12月1日日曜日

片岡流出

http://www.jiji.com/jc/c?g=spo_30&k=2013113000319

あ〜、片岡に出て行かれるのはキツいなぁ。片岡が帰って来なかったら、今シーズン終盤のあの追い上げもなかっただろうし。まあ、そのうち若手が伸びてくるだろうと思えるチームであることが、救いかな。

涌井もまず間違いなく出て行くのだろうし、ヘルマンも繋ぎ止められなかったし…。正直、来シーズンが不安だ。FAの人的保証プロテクト漏れに期待するか?

2013年11月30日土曜日

資産運用

ファイナンシャルプランナーという人に会って来た。

う〜ん。これまではデフレに甘えてほぼ倹約だけで資産を形成して来たと言うか、半ば給料振り込まれっぱなし状態で普通預金を増やしてしまっていたけど、やっぱり良くないか。きちんと勉強しないで困るのは、他でもない自分自身なんだし。

何となくだけど、小金持ちと中金持ちの分かれ目は、この辺の知識の差にありそうな気がする。

2013年11月29日金曜日

カジノ解禁

http://www.bloomberg.co.jp/news/123-MWXGPZ6JTSG601.html

個人的には賛成。限りなく黒に近いパチンコを野放しにしておくくらいなら、合法化した公営カジノに一本化した方がいい。税収はもちろんのこと、きちんと入場者の管理を行えば、過度なギャンブル依存だって未然に防げるだろうし。

まあでも、そこまで踏み込むと反対だらけで話が進まないんだろうな。とりあえず既存のほぼ違法ギャンブルは置いといて、とにかく公営カジノのオープンにこぎつけて欲しい。その上で、あくまで自由競争の結果として、ほぼ違法ギャンブルの客を引っ張ってくればいいんだし。

2013年11月28日木曜日

ラーメンまん

http://nlab.itmedia.co.jp/nl/articles/1311/26/news071.html

第2弾はラーメンマンまんか。丸顔じゃないからラーメンマンはないと思ってたけど、写真を見ると結構ラーメンマンだ。そして何より、第1弾のウォーズまんより見た目が食べ物っぽいね。

第3弾の大本命はキン肉まんだろうけど、「キン肉マンでも人気が高いキャラ」となると、人気投票でそれほど上位に入らないスグルではないかも? 一捻りしてキン肉まんグレートってのもありだな。まあ、誰にせよ買うんだが。

2013年11月27日水曜日

tarのチェックサム

知らなかった。tarのchecksumってheader部分のチェックしかしてなかったのか。どうせほとんど縮まらない複数ファイルをまとめるときにLH0感覚で使っていたのだが、肝心なデータが化けても検出できないんだな。

データを正しく受け渡せたかを確認するには、圧縮としてはほとんど無駄と分かっていてもgzipをかけるか、別途ハッシュ値を教えなきゃいけないのね。

2013年11月26日火曜日

svn:externalsで外部参照の設定

SVNで

src
  +-- program1
  |     +-- (reference to common)
  +-- program2
  |     +-- (reference to common)
  +-- common
のように、SVN管理下の別のディレクトリを参照したい場合、参照を作りたいディレクトリのsvn:externals属性を編集する。

% cd src/program1
% svn propedit svn:externals .
でエディタを起動し、
../common common
と記述して
% svn update
すれば、program1の下にsrc/commonがチェックアウトされる。

参照先が同一レポジトリ内である必要はなく、

http://somewhere/trunk/common common
のように外部レポジトリでも指定可能。バージョン1.5より前はsvn:externals属性の書き方が違うので、いい加減に1.4とかを使うのはやめよう。

2013年11月25日月曜日

背中バリアー

今週のキン肉マン。

アビスマン「オレの体の正面は、相手の技を真っ向から受け止めてきた傷だらけだ」
グリムリパー「真に強き超人は体に傷など負わないもの、そんな傷を誇るなど愚の骨頂」
…無量大数軍の方が格上なんじゃないのか?

こんな連中に苦戦する悪魔将軍は見たくないのだけれど、このまま8人抜きしてしまったら悪魔六騎士の出番がなくなるからなぁ。難しいところだ。

2013年11月24日日曜日

訪問セールス対策

大失敗。うっかり玄関を開けてしまい、質の悪い訪問セールスに絡まれてしまった。

とにかく取りつく島を与えずに、何とか凌いだけど…。おい、あの野郎、お前にディスられる筋合いはないわ。あ〜、胸糞悪い。GOUNNツアーLVの余韻が台無しだよ。Blu-rayで口直ししよう。

…と、いたずらに時間を奪われた上に不愉快にさせられただけで終わってしまっては不毛すぎるので、今回の件を振り返ってきちんと今後に活かそう。何よりの失敗は玄関を開けてしまったこと。これに限る。ヤマトや佐川や日本郵便のような真っ当な人なら、インターホンで出ればまず自ら名乗ってくれるのだから、楽しみにしていた荷物が届きそうなときでも、まずは落ち着いてインターホンで相手を確認するべきだ。そこで曖昧な名乗り方しかできない輩に対しては絶対に玄関を開けない。月並みだけど、これに限る。

あと、とっさに偽名を使ったのだが、今後に備えてこの偽りのキャラクターに肉付けをしておこう。とりあえず氏名、生年月日(昭和と干支も)、出身地と出身小学校を設定してみた。誰だよこいつ?

2013年11月23日土曜日

基本情報技術者試験

そう言えば合格発表の日が過ぎていたので確認してみた。結果としては余裕で合格。まあ、いい年こいたオッサンがこんなところで手こずっているようでは困るわな。

思い返せば、資格を取ったのなんて中学生の頃の英検以来。資格ビジネスの食い物にされるのが癪なのと、別に士業じゃないんだから実アウトプットで示せばいいだろうと思ってスルーしてきたんだけどなぁ。とりあえず1つ資格は得たけど、何となくスッキリしない。

蒲鉾本舗 高政 Presents ももいろクローバーZ JAPAN TOUR 2013"GOUNN"

今日はバッグにペンライトを忍ばせて出社。さっさと上がって、イオンシネマみなとみらいにて宮城大会のLVに参戦してきた。

ああ、最高に楽しかった。ももクリ落選を一時的に忘れられるくらい。セットリストには若干変更があって、「オレンジノート」に替わって「いつか君が」の初披露。初とは言っても、皆CDで聞き込んでいることもあってか、結構それらしくコールは入っていた。コールと言えば、どどんが節のソイヤが入らなかったのは気になったかな。

あと、Twinkle5の赤は誰?

2013年11月21日木曜日

違憲状態

http://www.nikkei.com/article/DGXNZO62908690R21C13A1MM8000/
http://www.fnn-news.com/news/headlines/articles/CONN00258189.html
http://www.jiji.com/jc/c?g=soc_30&k=2013112000628

はぁ? 何が違憲状態だよ。駄目出しされた2009年から何一つ改善することなく、むしろより不平等になった状態を放置した立法の不作為を断罪せずして、何が司法だ? 何が三権分立だ? モンテスキューがへそで茶を沸かすわ。

「違憲状態」なんて生温いことを言った裁判官達よ。次の国民審査ではしっかり罷免の×印を付けるから覚悟をしておけ。

2013年11月20日水曜日

横浜の風

Iはshock. 帰宅したら洗濯物が竿もろとも風で落っこちていた。

まったく、今週だけで2度目だよ。川崎の外れに住んでいたときは、洗濯物が飛ばされることはあっても、物干竿まで落とされるなんてことはなかったのに。ましてや物干竿を固定する留め具まで使っていたのに、それをも力ずくで突破するとは、横浜の風恐るべし。

2階から物干竿が落ちるようでは普通に危ないので、物干ロープに乗り換えようかなぁ。

2013年11月19日火曜日

iWorks入手

そう言えば、新しいiOSデバイスを買えばiWorksが無料になるという話があったことを思い出したので、早速ダウンロードしてみた。

まずは母艦のiTunesでダウンロードを試みたのだが、値段は有料のまま。そこでiOS 7にアップグレードしたiPod touchからApp Storeをのぞいてみたところ、こちらからは無料でダウンロードできた。新しいiOSデバイスを登録したApple IDというだけでは駄目なのね。

…で、何に使おう? そもそもプライベートでオフィススイートを使うのは、LibreOfficeで家計簿を付けるときくらいなのだが、この家計簿をiCloudに上げれば、どこからでも追記できて便利かもしれない。しばらくLibreOfficeと併用してみて、いい感じだったら乗り換えてみようかな。

2013年11月18日月曜日

禁断の石臼

今週のキン肉マン。

将軍様やミラージュマンのように、完璧超人始祖は聖闘士甲冑のようなデザインで行くのかと思っていたら、肆式であっさり生身っぽい超人が出てきたな。左肩に突起物を付ける方向で始祖のデザインは統一するのかな。

しかしまあ、話の流れ的に、とても完璧超人には見えない超人墓場の鬼達まで、完璧超人ということになったのか? ケンダマンとスクリューキッドが乱入して来たときはとんでもない奴らが現れたと思ったものだが、完璧が安売りされている感は否めない。最終的な戦績はともかく、無量大数軍は強さも尊大さも完璧超人らしかったんだけどなぁ。

あと、第5世代iPod touchでは1ページが1画面にジャストフィットしなくなってしまった。

2013年11月17日日曜日

iPod touch乗り換え完了

ようやく保護フィルムも届いたので、第4世代から第5世代へ移行した。

移行作業自体は、とりあえず乗り換え元の第4世代iPod touchのバックアップさえ取っておけば、新しい第5世代を起動してからは、ほとんど道なりだった。ただWi-Fiの設定だけはいただけない。Wi-Fi対応しているハードを買う度に文句を言っている気がするが、しつこく苦言を呈そう。Wi-Fiの設定をさせるときはMACアドレスを表示してくれ

さて、気を取り直してiOSのバージョン確認。プリインストールされていたiOSは6.1.3だったので、さっさとお目当てのiOS 7にアップグレードしようとiTunesでダウンロード開始したところ、1GBオーバーで1時間コース。随分大きくなったもんだ。おかげで午前中に買い物に出かける予定はキャンセル。

さて、ただ待っているのも芸がないので、その間にMACアドレスフィルタのホワイトリストに第5世代を追加しようと無線ルータを設定しに行くと、こちらもファームウェアアップデートの通知が来ていた。せっかくだから俺はこの新しいファームを選ぶぜ。…と何気なく決断したところ、無線ルータが再起動してiOSのダウンロードがウギャーと停止。ああ、冷静に考えればそうなるよな。

そんなこんなで余計な時間をかけながらも、無事第5世代iPod touch + iOS 7に移行完了。アプリの起動がもたついていた第4世代と比べると、非常に軽快でいいね。もうiOS 6のサポートが切られるだろうと思って乗り換えた側から、iOS 6のアップデート通知が来たのは微妙だったけど。

2013年11月16日土曜日

C言語のプリプロセッサで文字列化、トークンの連結

たまに使おうとすると忘れてググるシリーズ。

C言語のプリプロセッサでマクロの引数を""で括って文字列化したり、トークンを連結して新たなトークンを作るときには、#や##演算子を使う。

例えば

#define TO_S(a) #a
#define CAT(a1, a2) a1 ## _ ## a2
こんな定義をしておいて、
TO_S(foo)
CAT(bar, baz)
こんな入力をすると
"foo"
bar_baz
こうなる。

2013年11月15日金曜日

第5世代iPod touch入手

届いた。

が、保護フィルムが届かないので、しばらくおあずけ。高くても近所のリアル店舗で買っておけばよかった…。

まあ、後悔しても仕方ない。今回が初のiOSデバイス買い替えなので、今のうちにデータの移行方法を調べておこうとググったら、こちらのサイトが参考になりそう。要はバックアップデータを新しいデバイスで復元するようなのだが、この場合OSのバージョンはどうなるのだろうか? まあ、明日か明後日あたりに保護フィルムが届いたら、やってみよう。

2013年11月14日木曜日

Wii Uと3DSの財布統合

Wii Uで導入されたNintendo Network IDが3DSにも導入される形で、ようやくWii Uと3DSのeShopチャージが統合されるそうな。財布が本体に縛られてきたのはWii以来だから、実に7年越しの改善になるのか。

DSiとWiiが対象外なのは、さすがに仕方ないか。残高確認のために久々にDSiを引っ張り出してみたら、あまりの軽さにビックリした。すっかりLLの重さに慣れていたからなぁ。昨日は重たいからとスルーしたiPadも、使っていれば慣れるのだろうか?

2013年11月13日水曜日

結局iPod touch

ようやく今日、iPad Airの現物を触って来た。第1印象は、意外とずっしり重たい。

売り場にあった旧世代のiPadと持ち比べてみれば、確かにかなり軽くなっているのだけれど、それでも片手で長時間支えるのは厳しそう。置いて使うものかなぁ。

iPad Airかminiかなんて迷ってたけど、結局第5世代のiPod touchを注文してしまった。性能は劣っても軽くて持ち歩きやすいのがいいわ。あばよ第4世代、よろしく第5世代。

2013年11月12日火曜日

iPad mini Retina販売開始

現時点で16GBモデルのみ、1〜3営業日で出荷予定か。品不足になりそうだとか、遅れそうだとか言われてた割には、意外とすんなり出て来たな。

…とは言え、まだApple Storeでしか買えないんだよな。とっくに発売しているiPad Airも未だに現物を見たことがない。最寄りの家電量販店でAirとminiを見比べてから買いたいんだが(Amazonで)。

さらりと酷いことを書いたけど、そりゃ同じものなら安く買いたいよ。

2013年11月11日月曜日

地獄の断頭台

今週のキン肉マン。

小道具で小賢しい真似をするミラージュマンを、元祖ダイヤモンドパワーで一蹴。そしてとどめは地獄の断頭台。将軍様カッコイイ!

今回、進化の差として地獄の断頭台を見せつけたということは、この技は完璧超人を辞めてから開発したことになるが、もっと言うと完璧超人始祖を倒すために開発した技ではないかと思えてきた。ゴールドマンとシルバーマン同様、始祖は首だけになっても死なないとするなら、頭部にダメージを与える地獄の断頭台こそが始祖を倒す必殺技に相応しい。

ところで六騎士は? 将軍様が正面突破している裏で暗躍しているのだろうか?

2013年11月10日日曜日

台風30号

http://www.huffingtonpost.jp/katsutoshi-dobashi/30_1_b_4244438.html
http://www.huffingtonpost.jp/2013/11/10/typhoon-haiyan_n_4248960.html

ちょっと前まで死者は1,000人くらいなんて言ってたのに、あっという間に10,000人か。状況が判明してくるに連れて犠牲者数が増えて行く感じは、どうしても311とダブってしまう。

311のときは会社にいて今一状況がつかめず、帰宅するまでは電車が止まっただけでかなりの被害者になったつもりだったのだが、家でラジオを聞いて尋常じゃないことを知ったんだっけ。海岸に数百人の遺体が流れ着いていると聞いたときは、あまりに現実離れし過ぎてて最初はピンと来なかった覚えがある。が、被害が明らかになってくると犠牲者数がどんどん増えて行って…。

フィリピンの人たちも今、あのときの我々と同じような思いをしているかと思うと、何とも言えない苦しい気分。

2013年11月9日土曜日

続・雨天

新しくなったamatenを使ってみた。

まず、いつの間にか相場が額面の95%になっていた。5%引きは嬉しいね。最小振込単位は1,000円から100円に改める予定のようだけど、95%が定着すれば、そんなに端数は出ないな。

さて、実際に使ってみたところ、振込に対する応答は自動化されているようだ。以前、自動化されていればいい稼ぎなんて書いたけど、これは良い仕組みを作ったもんだ。本当に頭がいい人は、上手いことやるもんだなぁ。

2013年11月8日金曜日

Verilatorで変換できるdual port SRAMモデル

Verilatorでdual port SRAMを含むモジュールをシミュレーションしようとしたら、そもそもSRAMのモデルがないことに気が付いた。適当に書けばいいだろうと思ったのも束の間、そういえばVerilatorは合成可能じゃないと変換できないんだったっけ。

…と言うわけで、Verilatorで変換可能なSRAMモデルのeRubyのテンプレートを作った。ファイル先頭のName, AddrWidth, DataWidthを好みに書き換えて

% erb ram.v.erb > ram.v
とでもすれば、SRAMモデルのRTLが生成される。不要な機能は適当なラッパを被せて潰すつもりでビットイネーブルまで付けたけど、ちょっと重たいかな。ちなみに、昨日のetを使って
% erb ram.v.erb | et > ram.v
とすれば、すこし見栄えが良くなる(主観)。

2013年11月7日木曜日

少しインテリジェントなハードタブ展開

個人的に使っているハードタブ展開ツールetの紹介。要Ruby。

ざっくり説明すると、TSV(Tab Separeted Values)ファイルを表計算ソフトで表示したような感じにテキストを成形する。

例えばこんなテキストを入力すると(<tab>はハードタブ)

    a0 <tab>= ..;
    a1 <tab>= ..;
    a2 <tab>= ..;
    a3 <tab>= ..;
    a4 <tab>= ..;
    a5 <tab>= ..;
    a6 <tab>= ..;
    a7 <tab>= ..;
    a8 <tab>= ..;
    a9 <tab>= ..;
    a10 <tab>= ..;
    a11 <tab>= ..;
    a12 <tab>= ..;
    a13 <tab>= ..;
    a14 <tab>= ..;
    a15 <tab>= ..;
こんなテキストを出力する。
    a0  = ..;
    a1  = ..;
    a2  = ..;
    a3  = ..;
    a4  = ..;
    a5  = ..;
    a6  = ..;
    a7  = ..;
    a8  = ..;
    a9  = ..;
    a10 = ..;
    a11 = ..;
    a12 = ..;
    a13 = ..;
    a14 = ..;
    a15 = ..;

要は、位置を揃えたい文字の前にハードタブを置けばよい。お手軽に手書き風(?)のコードを機械に吐かせるのに使っている。

2013年11月6日水曜日

新ポスティング制度

なんで今になって制度を変更しようとしてるのかと疑問に思っていたのだが、そもそも前の制度が既に失効していたのか。どうして騒がれているのか、ようやく分かった。

で、新制度の案は…、微妙。いっそ、このままポスティング制度は廃止してしまって、日米間FA移籍でも補償を得られるように交渉した方がいい気がする。

2013年11月5日火曜日

ウォーズまん

近所のファミリーマートでウォーズマンまん購入。

食べ物としてはかなりアレな色だけど、食べてしまえば…

ウギャー、キン肉まーん!

サイズは小振りに感じた。もうちょっとジャンクフードらしく腹を満たしてくれると嬉しかったかな。

宣告する勇気

http://www.huffingtonpost.jp/2013/11/02/shigeru-ishiba_n_4206288.html

石破茂の支持者でも何でもないけど、これは全くもってその通りだと思う。

残酷な現実を突き付ける役なんて誰もやりたくないのは分かるが、だからと言って嘘をつき続けても何の解決にもならない。何せ相手は、人間社会の都合なんてお構いなしで粛々と物理法則に従う放射性物質なのだから。偽りの希望で先に進めるはずのものまで足止めしている現状のままで良いはずがない。だからこそ、それを打破せんとする今回の石破茂の発言は、1度も自民党に投票したことがない自分でも支持する。

人間の寿命が1万年あれば、誰もが我が事として放射性物質の問題に向き合うのだろうけど。原子力という奴は、せいぜい100年程度しか生きられない人間の手には余るものなのかなぁ。全く別分野ではあるけれど、エンジニアの端くれとしてはいつか技術で克服できると思いたい。

2013年11月3日日曜日

イーグルス日本一

ライオンズファンだが、今日は素直にイーグルスを讃えよう。そしてパリーグファンとして、素直に喜ぼう。

CSが始まる前は、正直言ってイーグルスのことをファーストステージを抜ければどうにかできそうな相手だと思っていたんだが、甘かったかなぁ。日本シリーズ進出を決めてからも、巨大戦力相手に勝てるとしたら、勢いを付けて一気に押し切るしかないと思っていたら、がっぷり四つで最終戦までもつれ込んだ上で勝ち切るとは。お見事。

MVPが2勝した美馬なのは妥当だと思うけど、嶋に優秀選手賞をあげても良かったのではないかとは思う。投手も捕手も、そして対峙するビッグネーム達ですら普段通りの心境ではいられないであろう状況で、投手陣を最後まで大崩させなかったのは大きい。いったいどれ程の神経をすり減らしたのか、ただの一(ライオンズ)ファンには分からないけど、常人にはとても勤まらないであろうことは想像に難くない。これは来シーズン、手強い敵になるかもしれないな。

2013年11月2日土曜日

なんという冷静で的確な判断力なんだ!!

アシュラマンの読み切り。

…と言う予告だったけど、主役はアタル兄さんだったな。冷静で的確な判断力に加えてフェイスフラッシュを目の当たりにしてしまったら、さすがの悪魔超人たちも認めざるを得ないか。

ちょうど本編では悪魔将軍が出てきたところだけど、アシュラマンの中ではともすると、正体不明の偽ソルジャーが将軍様と同格に見えていたわけか。バッファローマンとブロッケンJr.は勝ち残っているし、悪魔六騎士のアシュラマンとザ・ニンジャも動き始めたところ。そして何より、正義と悪魔の垣根を越える真・友情パワー。これは今シリーズで超人血盟軍の再結成も十分ありえるんじゃないか!?

雨天

雨天がamaten.jpとしてリニューアルオープンした。取引所形式になると知ったときはどうなるのかと思ったけど、今のところ相場は以前と同じ額面の96%で落ち着いているみたいね。チャージという仕組みが加わったとは言え、相変わらず銀行振込が必要なのか。

トップページの取引高からざっと計算したところ、11/1で\100k程度の手数料が入ったのか。処理の自動化が進んでいればいい稼ぎだね。マンパワーでぶん回しているのなら、微妙かもしれないけど。

2013年10月31日木曜日

VirtualBoxでスケールモードを解除する

VirtualBoxで仮想マシンを使っていて、うっかり表示をスケールモードにしてしまうと、Windows版ではプルダウンメニューが表示されなくなるのでメニューから表示モードを戻せなくなる。

で、そんな滅多に使わないホットキーは覚えていないので焦るわけだが、そんなことを繰り返すのも芸がないので、デフォルトのホットキーをここに書いておこう。

「Host+C」だ。

デフォルトのHostキーは右Controlなので、Happy Hacking Keyboardユーザは真っ先に右Altとかに変更しておこう。でないと、フルスクリーンモードを解除できなかったり、ゲストOSインストール中の仮想マシンからマウスとキーボードを取り返せなくなったりするので。

MavericksとC++11

そう言えば、Mountain LionではC++11のコードをコンパイルするのに

% clang++ -std=c++11 -stdlib=libc++
としていたのだけれど、Mavericksではどうなったのか試してみた。

結果としては、Mavericks(と一緒にアップデートしたXcodeのコマンドラインツール)では

% g++ -std=c++11
でC++11のコードをコンパイルできるようになっていた。make時にCXX=clang++とかせずに済むようになったのね。

2013年10月30日水曜日

GOUNN感想

MVが公開されてから延々とリピート再生中のGOUNNの感想。

第1印象でガツンとやられるタイプの曲ではなかったけど、何度も聞いているうちにじわじわ来るタイプかな。音楽の素人が無理矢理キン肉マンに例えると、「本物の奇跡は〜」のパートがスグル版マッスルスパーク、「シャンパラヤ〜」がアタル版マッスルスパークみたいな感じ。

さて、この曲はライブでどうなるのだろうか? 衣装を含めて今後のセットリストに組み込みづらそうな気がするけど、今までになかった新しい色だから、大事に育てて欲しいな。

2013年10月28日月曜日

ガンダーラ改め超人墓場

今週のキン肉マン。

今までずっと神だと思っていたゴールドマンとシルバーマンは、ただの(?)超人だったのね。たまたま当時神だったS武道のお眼鏡にかなっただけで。S武道と悪魔将軍はかつて救った/救われた関係だったと。

ただ、袂を分かった悪魔将軍はともかく、完璧超人であり続けているミラージュマンすらも、S武道のことを「あやつ」呼ばわりしてるんだよな。元は神でも、あくまで今は対等な超人同士ってことなのだろうか?

さて、しばらくは悪魔将軍と六騎士 vs 完璧超人始祖になるのかな。舞台が超人墓場ということで、もしかしたらカメハメ師匠の出番があるかと期待していたけど、この雰囲気だと正義超人の出番はなさそうだなぁ。谷底に消えたまま階段ピラミッドに現れなかったS武道が実はこっちで戦っていた、みたいな可能性はあるかもしれないけど。

2013年10月27日日曜日

MavericksとHomebrew

何気なく

% brew update
% brew upgrade
したらエラー。MavericksでC++の標準ライブラリがlibstdc++からlibc++に変わったからリビルドしろとのこと。

とりあえず

Error: xx dependency XX was built with the following
C++ standard library: libstdc++ (from clang)
のようなエラーが出る度に
% brew reinstall XX
すれば良いのだが…。リビルドが必要な依存するformulaが1つ見つかる度に止まるので、その都度reinstallするのはめんどい。特にGTK+が依存しているライブラリで軒並み引っ掛かる。めんどいと言いながらも結局は手動でやってしまったのだが、今思えば一度全formulaを一度アンインストールしてから、能動的にインストールした覚えのあるformulaを再インストールしてしまった方が楽だったかもしれない。

あと、いつの間にかRubyが2.0系になっていた。Mavericksから?

2013年10月26日土曜日

やっぱり巨人

http://www.nikkansports.com/baseball/news/f-bb-tp0-20131026-1209231.html
http://headlines.yahoo.co.jp/hl?a=20131025-00000043-dal-base

自分を含めて誰もが疑っていた通りだろうけど…。

きちんと情報公開する(PDF)こと自体を否定する気は全くないが、よりによって日本野球機構が、日本シリーズに水を差すようなタイミングでやることか? 事の起こりから今に至るまで、ことごとくガッカリさせられるなぁ。

2013年10月25日金曜日

Kindle連載

http://pc.nikkeibp.co.jp/article/news/20131025/1109924/

Kindle連載という名前から、小額な定期課金を自動化してゴルゴみたいにいつ終わるか分からない連載を読み続けるサービスを想像したのだけれど、ちょっと違った。書き終えなくても見切り発車で売り始められる、作家向けのサービスなのね。試みは面白いけど、最初に全話分の料金を払う読者のメリットは、Amazonが言うところの「本の成長過程」を楽しめることだけ?

やっぱり1話ずつ分割払いにして、つまらなかったら購読を辞められるようにして欲しいなぁ。

2013年10月24日木曜日

きみしね

GOUNNのオフボーカルバージョンをリピート再生していて、どこか聞いたことがある感じを覚えながらも思い出せずにモヤモヤしていたのだが、ようやく脳内データベースの照会が完了した。DS立ち上げ時の迷作(?)、きみのためなら死ねるだ。

ラヴィ!!

2013年10月23日水曜日

OS X Mavericks

朝起きてMacを起こしてみたら、アップデート通知が来ていた。何かと思ってみてみると…、Mavericksへの無料アップグレードがキター! 昨晩のサプライズはこれだったのか。$20~30の出費は覚悟していたので、嬉しい誤算。何かあってもTimemachineで戻ればいいので、深く考えずにアップグレードしてみた。

結果としては、途中ヒヤリとしたけどアップグレード完了。再起動後にBluetoothキーボードが繋がらなかったときは焦ったけど、トラックパッドだけでゲストでログインして、電池を替えて再ペアリングしたら解決。しかし、念のためにUSBの接続キーボードを備えておいた方がいいな。今回は助かったけど、キーボードが使えないと詰みかねない。

iPadは9.7インチモデルをAirと改名。…と言うより、9.7インチが本流でminiはあくまで傍流というスタンスを改めて、Airとminiを対等にした感じなのかな。新しいminiのスペックは、サイズ以外Airと同等のようだし。iPad2はしぶとく生き残るなぁ。

2013年10月22日火曜日

もう一つ寝るとiPad?

明日の朝目覚めたころにはAppleの新製品の記事が概ね出揃っているだろうから、予想なり願望なりを今のうちに書いておこう。

まずiPad。まあリーク通りに、薄くなったiPad5とRetina化されたmini2が出るのだろう。もうサプライズはなさそうだけど、あれば普通に便利だろう。ただ、miniですら持ち歩くには大きそうなので、ほとんど家の中でしか使わないであろうことを思うと、3~6万は贅沢品だよなぁ。

そんな高嶺のiPadより、$20~30程度で買えるであろうMavericks。何よりも、NautilusにあってFinderになかったタブ機能が追加されるのが嬉しい。Finderの窓でデスクトップがとっ散らからなくなる。

あと、iPod touchの新型は発表されないだろうか。まずないだろうと思いながらも、万一を考えて第5世代に手を出せないでいたので。このタイミングでA6を積んだ第6世代を出してくれたら、間違いなく飛びつくんだけどなぁ。

2013年10月21日月曜日

GOUNNインスト公開

24時間限定でダウンロードできるoff vocal versionを、早速落としてループ再生中。

歌声が乗らないと何とも言えないけど、シューティングゲームのBGMにしたら良さそうな感じ。最初はコナミの横シューな気がしたけど、段々ハドソンの縦シューに合いそうな気がして来た。どちらももう戻って来ないけど…。

2013年10月20日日曜日

基本情報技術者試験

今更も今更なんだが、基本情報技術者試験を受けて来た。別に免許制じゃないんだから資格なんて要らないだろうと思っていたのだけれど、新しい会社が割と資格の取得を推奨しているようなのと、ハードからソフトにジョブチェンジするはずだったので、夏頃に申し込んでおいたのだ。そう、夏頃はソフト屋になる気満々だったのに、結局またRTL書いてるんだよなぁ。

まあ、昔で言う2種なら学生が取るような資格だろうし、全く問題ないだろうと思っていたら、敵は自分のなかにあった。午後の試験の最中にびゅんびゅん尿意MAX。モジモジしながら何とか進めるも、最後まで答案を埋める前に膀胱が限界。さすがに試験会場で漏らすのはキツいので、やむなく安くない受験料を諦めて退出しようと手を挙げたところ…、試験官同伴でトイレに行かせてもらえたとさ。

と言うわけで、これから試験を受ける人は無理せずトイレに行かせてもらおう。スッキリ落ち着いてから解答を見直してみたら、慌てて答えていたところはかなり間違えていたので、変に我慢していると受かるものも受からなくなる。

書き始めた頃の趣旨からかなり脱線しているこのブログだけど、今までで最も有用な情報を書いた気がする。

2013年10月19日土曜日

オレハニクマンジャナイ

http://nlab.itmedia.co.jp/nl/articles/1310/18/news152.html

何だよ、ウォーズまんってw

しかもこれ、第3弾まであるのか。スライム肉まんくらいの造形は可能なのだから、最後はスグルで締めくくるとして、問題は第2弾だな。〇〇マンは大勢いるけど、意外と肉まん向きな超人が思い付かない。ペンタゴンにマンが付いていればなぁ。

さすがにベンキマンはないよな?

2013年10月18日金曜日

UbuntuでデスクトップをDesktopにする

Ubuntu 13.10がリリースされたので、とりあえず仮想マシンにでも入れてみようか。

ここで、インストール後に手癖でlsして、日本語ディレクトリ名が気持ち悪くて変更方法をググるという、いつもの黄金パターン発動。いい加減に覚えるため、自分の手を動かして変更方法をまとめよう。

…と言うわけで、変更するには環境変数LANG=Cでxdg-user-dirs-gtk-updateを起動。Bシェル系なら

% LANG=C xdg-user-dirs-gtk-update
と起動してUpdate Namesボタンを押す。デフォルトでログイン時にxdg-user-dirs-gtk-updateが自動起動されなくなったようで、Don't ask me this againをチェックし忘れても再度「デスクトップ」にリネームされなくなった。

それにしてもUnityは重い。

2013年10月17日木曜日

C++11のauto

今更ながら、どうやらautoの意味が全く変わっていたようだ。従来は記憶クラスの指定でだったが、C++11では初期化しながら変数宣言する際、型推論して良きに計らってくれる。既存の予約語を使いまわすのは微妙な気がするけど、まあ、従来のautoを明示的に指定しているコードなんて見たことも書いたこともないから、まず誰も困らないか。

で、その新しいautoを使うと、

std::vector vec(100);
for (std::vector::iterator it = vec.begin(); it != vec.end(); ++it) { … }
これを
std::vector vec(100);
for (auto it = vec.begin(); it != vec.end(); ++it) { … }
こう書ける。要するに、右辺を見れば分かるだろ、ってこと。あくまでコンパイル時に自動的に型を決定してくれるというだけで、決して型付けが動的になったわけではないので、性能が落ちることもない。

これは便利な機能だと思う反面、型も調べずとりあえずautoで受けてしまうようなコードを書きたくなりそう。書く気になれば書けるけど面倒なときにのみ使うようにしよう。

2013年10月16日水曜日

SystemCはじめました、その6

VerilatorとGoogle Testを組み合わせる話の続き。

いつのまにやら、UbuntuのレポジトリからGoogle Testのバイナリパッケージがなくなっていた。適当にググってみると、Google Testはいつからか、プロジェクト毎にビルドすることを推奨しているらしい。

ならば、Verilatorが吐き出すMakefileにGoogle Testをビルドしてもらおう。Verilatorを実行するディレクトリにGoogleが配布しているgtest-1.7.0.zipを展開する場合、以下のようにすればGoogle Testも含めて、test_xx.cppでxx.vをテストするバイナリをビルドしてくれる。

% unzip gtest-1.7.0.zip
% export SYSTEMC_CXX_FLAGS=-pthread
% verilator --sc xx.v --exe test_xx.cpp gtest-1.7.0/src/gtest-all.cc -CFLAGS '-isystem ../gtest-1.7.0/include -I ../gtest-1.7.0'
% cd obj_dir
% make -f Vxx.mk

環境変数SYSTEMC_CXX_FLAGSの設定は、使っているシェルに合わせて適宜読み替えること。.profileとか.cshrcとか.zshenvとかに書いてしまってもいい。

注意点として、libgtest-devのようなソースパッケージを入れている状態でオプションを間違えると、 libgtest-devのヘッダをインクルードしながらgtest-1.7.0.zipの.ccファイルをコンパイルしてしまったりする。このポストの時点でUbuntuのlibgtest-devは1.6.0なので、gtest-1.7.0.zipと混ぜるのはよろしくない。libgtest-devは切ってしまおう。

2013年10月15日火曜日

失われたインカの記憶

今週のキン肉マン。

よりによってベンキマンかよ、何て思っていたけど、ゆでキレキレじゃないか。アンパンマンも脱帽ものの自己犠牲、過去を知る爺さんの最期、シャイダーもビックリなナスカの地上絵の新解釈。いずれも凄いギャグなのに、劇中では誰も突っ込まずに淡々と話が進められるから、余計におかしい。

本編の方はシリアスな展開になって久しいけど、どっこいギャグもいけるじゃない。

2013年10月14日月曜日

2013年パリーグ順位予想の答え合わせ

今シーズンが終わってしまったところで、開幕前の順位予想の答え合わせをしよう。まず、予想は以下の通り。

  1. 埼玉西武ライオンズ
  2. 北海道日本ハムファイターズ
  3. 福岡ソフトバンクホークス
  4. 千葉ロッテマリーンズ
  5. オリックス・バファローズ
  6. 東北楽天ゴールデンイーグルス

そして実際の結果は

  1. 東北楽天ゴールデンイーグルス
  2. 埼玉西武ライオンズ
  3. 千葉ロッテマリーンズ
  4. 福岡ソフトバンクホークス
  5. オリックス・バファローズ
  6. 北海道日本ハムファイターズ

ライオンズの優勝は予想ではなく願望なので置いておくとして、何と言っても予想と真逆だったのは田中将大の快進撃。WBCの影響で途中で失速すると予想したら、まさか最後まで負けずに1人で貯金24を稼ぐとは。普通(?)に7〜8敗してくれたら、優勝争いが相当もつれただろうに。敵ながら天晴としか言いようがないわ。

マリーンズは予想以上の健闘。巨大戦力を誇ったホークスはまさかのBクラス。そして予想を遥かに下回ってグダグダだったファイターズ。今年の予想は本当に当たらなかった。

2013年10月13日日曜日

ビックリ変態マン

今日の分のビックリマンチョコ。

まさに開けてビックリ。一昨日出た魔かいだん

に対応するお守りシールで、階段で滑らないようにということなのだろうが…。スリップを着たおっさんは100%アウトだろw

子供の頃にこのスリップ防止を持っていたかどうかは覚えていないけど、もし引き当てていたとしても、四半世紀前はそんな細かい(?)ことは気にせず、お守りだから悪魔よりまし、くらいに思っていたんだろうなぁ。80年代の子供向けデザイン、なかなか侮れん。

あと、そこそこ年を取った今見てみると、昔は当たりだと思っていた天使シールより、外れだと思っていた悪魔シールの方が、デザイン的に何でもありで面白い。キン肉マンの超人募集に近いものを感じる。

2013年10月12日土曜日

SystemCはじめました、その5

SystemCとVerilatorGoogle Testを組み合わせて使う話。

ググったらテスト毎にforkして別プロセスでシミュレーションする話も見つかったけれど、もう少し穏便(?)に行く。具体的には、シミュレーションとしては途中で止めることなく、途中途中でリセットをかけながら全テストを一気に流す。

まず、DUTとそのテストベンチと実行バッチをまとめたファイルはこちら。SystemCとVerilatorとGoogle Testがインストール済みの環境なら、解凍して出来たディレクトリの下で

% ./run
すれば動くはず。以下、SystemCで書いたテストベンチをコピペ。DUTはここには貼らないけど、「レイテンシ1クロックの符号無し8ビットのクリップ付き加減算機」とだけ書いておく。上のリンク先のtar ballの中に含まれているけど、以下のテストをパスするものを書いてみるのもありかも。

#include "Vdut.h"
#include "verilated_vcd_sc.h"
#include <gtest/gtest.h>
#define CLK_PERIOD 10
#define VCD_FILENAME "test_sc.vcd"
// test bench
SC_MODULE(TestBench) {
    sc_in<bool> clk;
    sc_signal<bool> xrst;
    sc_signal<bool> addsub;
    sc_signal<uint32_t> a, b, c;
    Vdut dut;
    SC_CTOR(TestBench) : dut("dut") {
        xrst = 0;
        dut.clk(clk);
        dut.xrst(xrst);
        dut.i_addsub(addsub);
        dut.i_a(a);
        dut.i_b(b);
        dut.o_c(c);
    }
    void cy(unsigned int n = 1) {
        for (int i = 0; i < n; i++) {
            wait(clk.posedge_event());
        }
        wait(1, SC_NS); // #1ns
    }
    void reset() {
        xrst = 0;
        wait(CLK_PERIOD * 5.5, SC_NS);
        xrst = 1;
        cy();
    }
};
// test thread
SC_MODULE(TestThread) {
    void (*body)();
    sc_event e_run;
    bool done;
    SC_CTOR(TestThread) : body(0), e_run(), done(false) {
        SC_THREAD(test);
        sensitive << e_run;
    }
    void test() {
        while (true) {
            wait();
            if (body) body();
            done = true;
        }
    }
    bool run(void (*func)(), uint32_t timeout = 0) {
        body = func;
        done = false;
        e_run.notify(CLK_PERIOD, SC_NS);
        if (timeout) {
            while (!done) {
                sc_start(CLK_PERIOD, SC_NS);
                if (--timeout == 0) return false;
            }
        } else {
            while (!done)
                sc_start(CLK_PERIOD, SC_NS);
        }
        return true;
    }
};
// instance
TestBench tb("tb");
TestThread th("th");
// tests
TEST(AddTest, Under255) {
    struct dummy {
        static void test() {
            tb.reset();
            tb.cy(10);
            tb.addsub = 0;
            tb.a = 0;
            tb.b = 0;
            tb.cy();
            EXPECT_EQ(0, tb.c);
            tb.a = 1;
            tb.b = 2;
            tb.cy();
            EXPECT_EQ(3, tb.c);
            tb.a = 3;
            tb.b = 4;
            tb.cy();
            EXPECT_EQ(7, tb.c);
            tb.a = 100;
            tb.b = 100;
            tb.cy();
            EXPECT_EQ(200, tb.c);
        }
    };
    ASSERT_TRUE(th.run(dummy::test));
}
TEST(AddTest, Clip) {
    struct dummy {
        static void test() {
            tb.reset();
            tb.cy(10);
            tb.addsub = 0;
            tb.a = 127;
            tb.b = 127;
            tb.cy();
            EXPECT_EQ(254, tb.c);
            tb.a = 128;
            tb.b = 127;
            tb.cy();
            EXPECT_EQ(255, tb.c);
            tb.a = 127;
            tb.b = 128;
            tb.cy();
            EXPECT_EQ(255, tb.c);
            tb.a = 128;
            tb.b = 128;
            tb.cy();
            EXPECT_EQ(255, tb.c);
            tb.a = 255;
            tb.b = 255;
            tb.cy();
            EXPECT_EQ(255, tb.c);
        }
    };
    ASSERT_TRUE(th.run(dummy::test));
}
TEST(SubTest, AgeB) {
    struct dummy {
        static void test() {
            tb.reset();
            tb.cy(10);
            tb.addsub = 1;
            tb.a = 0;
            tb.b = 0;
            tb.cy();
            EXPECT_EQ(0, tb.c);
            tb.a = 2;
            tb.b = 1;
            tb.cy();
            EXPECT_EQ(1, tb.c);
            tb.a = 7;
            tb.b = 4;
            tb.cy();
            EXPECT_EQ(3, tb.c);
            tb.a = 100;
            tb.b = 30;
            tb.cy();
            EXPECT_EQ(70, tb.c);
            tb.a = 255;
            tb.b = 254;
            tb.cy();
            EXPECT_EQ(1, tb.c);
            tb.a = 255;
            tb.b = 255;
            tb.cy();
            EXPECT_EQ(0, tb.c);
        }
    };
    ASSERT_TRUE(th.run(dummy::test));
}
TEST(SubTest, AltB) {
    struct dummy {
        static void test() {
            tb.reset();
            tb.cy(10);
            tb.addsub = 1;
            tb.a = 0;
            tb.b = 1;
            tb.cy();
            EXPECT_EQ(0, tb.c);
            tb.a = 2;
            tb.b = 3;
            tb.cy();
            EXPECT_EQ(0, tb.c);
            tb.a = 100;
            tb.b = 200;
            tb.cy();
            EXPECT_EQ(0, tb.c);
            tb.a = 254;
            tb.b = 255;
            tb.cy();
            EXPECT_EQ(0, tb.c);
            tb.a = 0;
            tb.b = 255;
            tb.cy();
            EXPECT_EQ(0, tb.c);
        }
    };
    ASSERT_TRUE(th.run(dummy::test));
}
// main
int sc_main(int argc, char *argv[]) {
    Verilated::commandArgs(argc, argv);
    testing::InitGoogleTest(&argc, argv);
    sc_clock clk("clk", CLK_PERIOD, SC_NS);
    tb.clk(clk);
#ifdef VCD_FILENAME
    Verilated::traceEverOn(true);
    VerilatedVcdSc *vcd = new VerilatedVcdSc();
    tb.dut.trace(vcd, 99);
    vcd->open(VCD_FILENAME);
    int r = RUN_ALL_TESTS();
    vcd->close();
    delete vcd;
    return r;
#else
    return RUN_ALL_TESTS();
#endif // #ifdef VCD_FILENAME
}

ざっくり解説。

TestBenchモジュールは、その名の通りテストベンチのモジュール。ここでDUTをインスタンスしている。複雑なDUTなら、ここで入出力モデルもインスタンスしてDUTに接続するところだろうけど、今回のDUTは単純なので入出力の信号を生やしただけ。cy()で1nsディレイさせているのはレーシング対策。このTestBenchを1つだけ静的にインスタンスして、各テストから突っついている。

TestThreadモジュールは、任意の関数をSystemCのスレッドで実行するためのモジュール。どうしてこんな面倒なことをするかというと、SystemCのモジュールはシミュレーション開始前に初期化しなければならないから。各テストの実行時に、そのテスト用のスレッドを含むモジュールをインスタンスしようとすると、1つ目のテストは動くのだが2つ目のテストが走らない(結構ハマった)。そこでテスト実行用のモジュールを静的にインスタンスして、各テストで使い回す形にした。

各テストTEST(...)の書き方はGoogle Testのドキュメントを見てもらうとして、テスト本体はdummyクラスのtest()の中に記述している。本当はここに直接test()の定義を書きたいのだけれど、C++の仕様上できないのでdummyクラスで包んでいる。C++11のlambdaを使えば、もうちょっと幸せになる?

sc_main()は概ねテンプレート通りだが、sc_start()を呼ぶ代わりにGoogle TestのRUN_ALL_TESTS()マクロを実行している。

本当にテストされているのか不安だったら、適当にテストの期待値を変更してこけさせてみればいい。また、とりあえず波形も取っているので見てみればいい。最後に実行バッチの中身を書いておこう。

% verilator --sc dut.v -LDFLAGS -lgtest --trace --exe sc_gtest.cpp
% cd obj_dir
% make -f Vdut.mk % ./Vdut
ポイントはVerilatorの-LDFLAGSオプションでGoogle Testのライブラリをリンクさせているくらいかな。昨日書いた通り、現状では-LDLIBSオプションは使えないので、-LDFLAGSで代用している。

2013年10月11日金曜日

SystemCはじめました、その4

VerilatorとSystemCでRTLをテストしていて、ふと思った。結局C++のソフトを書いているのだから、既存のC++テストフレームワークを使えないだろうか。

早速Google Testを使ってみようとしてみたところ、Verilatorが吐き出すMakefileにlibgtestをリンクするよう指定させるところで、Verilatorの-LDLIBSオプションを使おうとしてプチ引っかかった。

結論から言うと、-LDLIBSオプションはマニュアルにはあるけど、ざっとソースを見た限り実装されてない模様(v3.853)。ちょっと気持ち悪いけど-LDFLAGSオプションで代用するか、環境変数でLDLIBSを指定するか、だな。

SystemCとGoogle Testの組み合わせの話は後日。

2013年10月10日木曜日

マスコミvs小売り

http://jp.wsj.com/article/JJ12339254245020764360320058651270437926823.html

米の産地偽装自体は問題として掘り下げて欲しいけど、素直に文春を応援する気にはならないなぁ。

他のニュースから察するに、イオンが国産のつもりで買っていた米に中国産やアメリカ産の米が混ざっていたこと自体は本当なのだろう。訳もなく安いはずがないから、国産≒福島産のつもりで買っていたのかもしれないが、とりあえずイオンは騙された側なのか?

で、結局のところ、一消費者として知りたいのは、スーパーで普通に売っている米の産地表記がどの程度信頼できるのかどうかなんだよ。安直に中国をディスって人目を引こうとしているメディアに、国民の知る権利云々なんて言って欲しくないのが正直なところ。

2013年10月9日水曜日

落合GM、谷繁PM

http://www.chunichi.co.jp/s/article/2013100990031011.html
http://www.nikkansports.com/baseball/news/p-bb-tp0-20131009-1201652.html

うはっ、ドラゴンズのサプライズ人事キター!

若返りが急務であるチームだけど、まずは監督を若返らせてきたか。なかなか面白いとは思うけど、一番難しい捕手の世代交代が滞りそうでもある。兼任するとしても監督ではなくバッテリーコーチにして、明確に後進の捕手を育てる立場にした方が良かった気もする。

もっと言うと、勝ちながら若手を育てるのが難しいのは分かっているのだから、来シーズンは誰が監督をやっても結果を出すのは難しい。種だけ蒔いて結果責任を取る損な役回りは、未来のある若い谷繁より、もう1シーズンだけ続投させて高木監督にやらせた方が良かったと思う。落合GMの下で指揮するのは嫌がりそうだけど。

2013年10月8日火曜日

パリーグ頂上(の1つ下)最終決戦

まさかのゲーム差なしで両チーム最終戦までもつれ込んだ2位争い。熱いシチュエーションを望んではいたけれど、こんな絵に描いたような展開になろうとは。球団的にはともかく、一ファンとしては、ダメダメだった状態からここまで盛り返しただけでも胸いっぱいだったのだけれど…。

やっぱり勝つと気持ちいいわ! 田中将大と言えども、短期決戦なら2試合しか先発できない。このまま突っ走って、今年こそミラクル元年だ!

石井一久は割を食ったな。

2013年10月7日月曜日

Wii U 4.0.0J

ファームウェアアップデートが来たのでとりあえず入れておいたものの、何が変わったか分からないまま使っていたのだが、公式サイトを見たらWiiソフトのGamepad出力対応だと!? 10か月遅れで、ようやくGamepadで古いソフトを遊べるようになったのか。

で、いざ試してみると、コレジャナイ感が…。画面だけGamepadに飛ばせてもGamepadのボタンを使えないのでは、ほとんどありがたみがない。そこまで対応してしまうと、Gamepad単体で遊べることで追加料金を取っているVirtualConsoleが困るのかもしれないけど。モーションセンサーまで対応しろなんて言わないから、Gamepadのボタンを1Pのリモコンにつないだクラシックコントローラ扱いにするモードを追加してほしい。追加料金が必要でもいいから。

2013年10月6日日曜日

チョコのある生活

箱買いして1日1個ずつ食べてきたももクロマンチョコを、ついに食べ終えた。

メンバーを期待しているのに早々にアキラが揃って、先行き不安だった序盤。順調に種類が増えるのが楽しかった中盤。さすがにダブりが増えてきた中、ピンポイントで穴が埋まるのが嬉しかった終盤。楽しい1か月だったなぁ。ちなみにシールは29個目で無事コンプリート。

そんなチョコのある生活を終わらせるのが惜しくて、ついビックリマンの復刻版に手を出してしまった。

さすがに今回はバラで購入。

1日1個ルールは継続しながら、早速今日の分を食べてみると…、チョコが違う! ももクロマンチョコはナッツが入っていたけど、復刻版ビックリマンはウェハースとチョコだけ。ももクロマンチョコが20円高いのは、過去のデザインを流用できない上にキャラクターものなので、単純にシールにコストがかかったからだと思っていたのだけれど、景品表示法でおまけのコストは値段の2%以内に縛られているから、シールそのものによるコストアップは1個あたりせいぜい0.4円程度。0.4円のためだけに20円値上げするのもあんまりなので、ついでにチョコにも金をかけたのかな?

2013年10月5日土曜日

滑り込みCS進出

ライオンズCS進出決定! 正直言って今年はもう駄目だと思っていたよ。

2位まで手が届くかは微妙なところだけれど、奇しくも今シーズン最終戦がマリーンズとのファーストステージ前哨戦。そこで勢いを付けて、空気なんて読まずに一気に下克上だ。…なんて夢をまだ見られるんだから、批判もあるけどやっぱりCSって面白いな。

ああそうだ。CSの前に、レギュラーシーズンが終わったら開幕前順位予想の答え合わせをしなくては。見直してみたら酷い外しっぷりだわ。

2013年10月4日金曜日

GOUCHINN

ぐはぁっ、ペプシ落選。散々飲んだペプシがすべてゲップ水泡に帰した。冷蔵庫のペプシを丁度飲み干したところで、夏と秋と冬がまとめて終わってしまったような感覚。いや、まだまだ春は来ないんだけど。

…って、いかんいかん。抽選する前から年末の西武ドームに外れることが前提になっていた。ビンタものだわ。

2013年10月3日木曜日

小久保監督

http://www.jiji.com/jc/c?g=spo_30&k=2013100300850

ほ〜。人選もタイミングも意外だったけど、これは良い決断だと思う。

まず現役監督でない。そして、本番はまだまだ先の話だから、早急に結果を求められない環境で勉強してもらえる。そんなこんなで、各球団はほとんどリスクを負わずに、球界としては監督の出来る若い人財を得ることが出来る…、可能性がある。

コミッショナーの不可解な辞任(?)の何とも嫌な後味が残っていたけれど、久々に良い話だ。

2013年10月2日水曜日

辻内引退

http://hochi.yomiuri.co.jp/giants/news/20131001-OHT1T00200.htm

う~ん、切ないね。

とは言え、活躍できる選手なんてほんの一握りなんだよな。プロ野球選手の総人数が急に増えることは無いだろうから、毎年ドラフトで取った人数分くらいはユニフォームを脱いでいるわけだ。人知れず夢破れて去っていく選手が大勢いる中、引退にニュースバリューがあっただけでも、恵まれていたのかもしれない。

あの王子も、かなり危なそうだなぁ。

2013年10月1日火曜日

消費税8%

http://www.jiji.com/jc/c?g=eco_30&k=2013100100819
http://www.bloomberg.co.jp/bb/newsarchive/MTY6G96JTSFY01.html

税率アップ自体はまあ既定路線だとして、問題は景気の防寒策だな。

法人税を下げるのは正解だろう。下手なバラマキで競争力のない企業を延命させてしまうより、きちんと法人税を納めている財務的に健全な企業を優遇して、成長してもらった方がいい。

一方、低所得者にただ金を渡すというのはセンスがない。前にも書いたが、直接税を下げつつ間接税を上げて、トータルで税収が増えるように調整すべきだ。1万円の施しを受けるのと1万円の手取りが増えるのとでは、稼いだ実感がまるで違うだろう。言葉は悪いけど、1万円多く稼げるようになったと錯覚してもらって、気持ちよく金を回してもらうべきだ。

いつ切られるか分からない貧乏手当を給付したって、一般人のキャッシュフローは大して増えないだろうよ。それより所得税を下げて「給料」として振り込まれる金額を増やし、使ってもまた稼げると思える環境を作らないと。

2013年9月30日月曜日

さらばペプシ

ももクロ目当てで8月からずっとペプシを飲んでいたのだが、キャンペーンも今日で終了。この2か月で飲んだペプシは体重の9割分くらい。もう一生分のペプシを飲んだんじゃないか? 健康診断の結果に何かあったら、原因はこれだろうな。

とにもかくにも、長かったペプシ生活よ、さらば! …と言いつつ、最後に買い足した2本があるので、もうちっとだけ続くんじゃ。

2013年9月29日日曜日

Amazon先生ありがとう、いつも商品を届けてくれて…

情報を牛耳るグローバル大企業には個人レベルでは太刀打ちできないだろうなんて昨日は書いたけど、何も無理に敵視することもないんだよね。

例えば、今日も商品を届けてもらったAmazonは、今更自分が言うまでもないが、非常に便利で安い。気が付けばもう10年以上Amazonで買い物しているので、かなりの量の情報を渡したことになっているのだろうけど、別にそれで不利益を被ったことはない。もはや、下手な企業や政府よりよっぽど信用している。

よくAmazonは税金を払ってないという批判を目にするけど、Amazonの同業他社でも何でもない一消費者である自分にとっては、節税して浮いた金でサービスを向上してくれる方が嬉しい。ほとんど節税の術がないサラリーマンからしてみれば、Amazonを利用することで間接的に節税できるなんて、ありがたい限りじゃないか。

自分にとって有用なら使えばいいし、そうでなければスルーすればいい。大企業だろうが何だろうが、それでいいんじゃないかなぁ。

これからはプログラムが書けないとダメ?

「国家・Google・Appleが個人を支配する時代」どう生きる? 伊藤穣一・川上量生・まつもとゆきひろが語る」を読んで。正直言って、ちょっとやそっとプログラムを書けるくらいじゃ、表題にある国家やGoogle, Appleに対してはどうにもならないと思う。

ソフトを提供していれば良かった時代は、フリーの車輪を再発明すれば世界を大きく変えられた。が、雲の上から提供されるサービスが重要な時代になると、知識や技術を持っているだけの個人の力では、しっかり金をかけた大企業の設備には対抗し難い。

ソフトの世界でも共産主義が資本主義に敗れていくのかね。何か寂しいなぁ。

2013年9月27日金曜日

C++のストリームからバイナリデータ読み出し

プチはまったポイント。

std::istreamでバイナリデータを読み出すとき、get()やread()なら生データを返してくれるが、operator>>を使うと一部の特殊文字が読み飛ばされる。std::ios::binaryの効き目もないみたい。

#include <iostream>
#include <sstream>
int main() {
    std::string str("\x00\x01\x02\x03\x04\x05\x06\x07"
                    "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
                    "\x10\x11\x12\x13\x14\x15\x16\x17"
                    "\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f", 32);
    std::istringstream is(str, std::ios::binary);
    for (int i = 0; i < 32; i++) {
        char c;
        is >> c;
//      c = is.get();
//      is.read(&c, 1);
        std::cout << "(" << i << ") : " << static_cast<int>(c) << std::endl;
    }
    return 0;
}

プラットフォーム依存しそうだけど、上のコードをMountain Lionで実行すると

(0) : 0
(1) : 1
(2) : 2
(3) : 3
(4) : 4
(5) : 5
(6) : 6
(7) : 7
(8) : 8
(9) : 14
(10) : 15
(11) : 16
(12) : 17
(13) : 18
(14) : 19
(15) : 20
(16) : 21
(17) : 22
(18) : 23
(19) : 24
(20) : 25
(21) : 26
(22) : 27
(23) : 28
(24) : 29
(25) : 30
(26) : 31
(27) : 31
(28) : 31
(29) : 31
(30) : 31
(31) : 31

こうなる。

2013年9月26日木曜日

クロネコポイント

いつの間にか貯まっていたクロネコポイントとやらが失効しそうだったので、適当に景品と交換してみた。

箱。この箱はミニカーサイズだが、これより遥かに大きなダンボールで送られて来たので、まさかミニ四駆サイズか? と焦ってしまった。

外観。かなり良く出来てる。

上手く写真が撮れなかったけど、運転席もちゃんと作ってあって、ハンドルも付いてる。

後ろの扉だけでなく、助手席側のドアも開く。しかもスライド式で。

あんまり物を増やしたくはないのだけれど、タダで貰えるとなると、つい貰ってしまうね。でもまあ、そんなにかさばらないし、気に入ったから結果オーライ。

2013年9月25日水曜日

外出先からゆうパックの再配達申し込み

ゆうパックの再配達をWebで申し込む際に必要なお問い合わせ番号(追跡番号) or お知らせ番号。今までこの番号は、リアル郵便受けに入れられた不在票にしか書いていないものだとばかり思っていた。なので、帰宅してからでないと再配達を申し込めずに不便だったのだが、これは大間違いだった。

通販会社によって呼び名が違うけれど、配達受付番号とか伝票番号とか呼ばれている、荷物の配達状況確認に使う12桁の数字。どうやらこいつが、お問い合わせ番号(追跡番号)と同じようだ。この番号さえ分かれば、帰宅した後に届くよう、外出先から再配達を申し込めるじゃないか。

もっとも、荷物を受け取れるような時間に帰宅できないと意味がないけどね。ダラダラ残業を強いられる前の仕事を辞めて本当によかった。

2013年9月24日火曜日

石井一久引退

http://www.nikkansports.com/baseball/news/f-bb-tp0-20130924-1194248.html

肌寒くなってきたとは思っていたけど、今年ももう、引退の話が聞こえてくる季節になったか。

寂しくないと言ったら嘘になるけれど、40歳まで現役でいられたのだから、プロ野球の投手としては大往生と言ってもいいだろう。荒れ球左腕速球派な若い頃は、正直言って投手としては短命だろうと思っていたけど、投球スタイルを変えてここまで長く活躍したのは見事。

長い間、お疲れ様でした。

所沢〜横浜

西武線ー東京メトロー東急東横線と相互乗り入れしてたのね。所沢〜横浜間が直通ってのは凄いなぁ。ググったら、今年の3月16日から始まってたのか。

東急東横線は地味に東武線とも乗り入れしていて、川越〜横浜間も直通になっていたのか。横浜在住の埼玉人としては結構嬉しい。懐かしい地名を電光掲示板で見つけるだけでも、戻りたければ戻れる気がして、何となく心が安らぐんだよね。

2013年9月22日日曜日

docomoのiPhoneとMVNO

docomo回線MVNOのSIMカードで運用できるiPhoneが欲しかったのだけれど、どうも微妙な感じのようだ。

LTEを使えないのも残念だけど、何よりテザリング不可が痛い。iPod touchとモバイルルータを1台に集約したかったのい…。結局、Wi-Fiしか使えない端末のためにモバイルルータを手放せないのなら、iPod touchのままでいいかなぁ。

2013年9月21日土曜日

SystemCはじめました、その3

放置気味だったSystemCの話を回収。前回は合成可能なVerilogをSystemCで書き直したけれど、そもそも本気で石にするシステムをSystemCで書く気なんて全くない。単にVerilatorを使ってVerilogの検証環境を構築したかっただけなのだ。

…と言うわけで、適当な回路のテストベンチを書いてみる。まず、テスト対象の回路はこのローパスフィルタ(lpf.v)

// low pass filter
module lpf (
    input           clk,
    input           xrst,
    input           i_vld,
    input   [7:0]   i_d,
    output          o_vld,
    output  [7:0]   o_d
);
reg     [7:0]   r_d_1z;
reg     [7:0]   r_d_2z;
reg     [7:0]   r_d_3z;
reg             r_vld_1z;
reg             r_vld_2z;
reg             r_vld_3z;
reg     [7:0]   r_od;
reg             r_ovld;
wire    [7:0]   w_d0;
wire    [7:0]   w_d1;
wire    [7:0]   w_d2;
wire    [9:0]   w_sum;
wire    [8:0]   w_round;
wire            w_ovld;
// valid
always @(posedge clk or negedge xrst) begin
    if (!xrst) begin
        r_vld_1z <= 1'b0;
        r_vld_2z <= 1'b0;
        r_vld_3z <= 1'b0;
    end else begin
        r_vld_1z <= i_vld;
        r_vld_2z <= r_vld_1z;
        r_vld_3z <= r_vld_2z;
    end
end
// taps
always @(posedge clk or negedge xrst) begin
    if (!xrst) begin
        r_d_1z[7:0] <= 8'd0;
        r_d_2z[7:0] <= 8'd0;
        r_d_3z[7:0] <= 8'd0;
    end else begin
        r_d_1z[7:0] <= i_d[7:0];
        r_d_2z[7:0] <= r_d_1z[7:0];
        r_d_3z[7:0] <= r_d_2z[7:0];
    end
end
assign w_d0[7:0] = (r_vld_1z)? r_d_1z[7:0] : w_d1[7:0];
assign w_d1[7:0] = (r_vld_2z)? r_d_2z[7:0] : 8'd0;
assign w_d2[7:0] = (r_vld_3z)? r_d_3z[7:0] : w_d1[7:0];
// filter
assign w_sum[9:0]   = {2'b00, w_d0[7:0]} +
                      {1'b0,  w_d1[7:0], 1'b0} +
                      {2'b00, w_d2[7:0]};
assign w_round[8:0] = w_sum[9:1] + {8'd0, w_sum[1]};
// output
always @(posedge clk or negedge xrst) begin
    if (!xrst)
        r_od[7:0] <= 8'd0;
    else
        r_od[7:0] <= w_round[8:1];
end
assign o_d[7:0] = r_od[7:0];
assign o_vld    = r_vld_3z;
endmodule

で、そのテストベンチがこれ(test_lpf.cpp)。ちと長いけど、そのままペーストしてしまおう。

#include "Vlpf.h"
#include "verilated_vcd_sc.h"
#include <cstdlib>
#include <queue>
#include <iostream>
#define DUMP_VCD
// source
SC_MODULE(Source) {
    static const int N = 10000;
    sc_in<bool> clk, xrst;
    sc_out<bool> vld;
    sc_out<uint32_t> d;
    sc_event done;
    SC_CTOR(Source) : done() {
        SC_CTHREAD(proc, clk.pos());
        async_reset_signal_is(xrst, false);
    }
    void proc() {
        int n = N;
        while (n > 0) {
            vld.write(0);
            wait(10);
            for (int i = 0; i < 100; i++, n--) {
                vld.write(1);
                int v = rand() & 0x3f;
                if (i % 10 == 5) v += 100;
                d.write(v & 0xff);
                wait();
            }
        }
        vld.write(0);
        done.notify();
    }
};
// sink
SC_MODULE(Sink) {
    sc_in<bool> clk, xrst;
    sc_in<bool> i_dut_vld, i_exp_vld;
    sc_in<uint32_t> i_dut_d, i_exp_d;
    int n_errors;
    SC_CTOR(Sink) : n_errors(0) {
        SC_CTHREAD(proc, clk.pos());
        async_reset_signal_is(xrst, false);
    }
    void proc() {
        std::queue<uint32_t> dut_d = std::queue<uint32_t>();
        std::queue<uint32_t> exp_d = std::queue<uint32_t>();
        int cnt = 0;
        wait();
        while (true) {
            if (i_dut_vld.read()) dut_d.push(i_dut_d.read());
            if (i_exp_vld.read()) exp_d.push(i_exp_d.read());
            if (!dut_d.empty() && !exp_d.empty()) {
                uint32_t d = dut_d.front();
                uint32_t e = exp_d.front();
                const char *jdg;
                if (d == e) {
                    jdg = "OK";
                } else {
                    jdg = "NG";
                    n_errors++;
                }
                std::cout << '[' << cnt++ << "] : " << jdg
                          << " dut = " << d << ", exp = " << e << std::endl;
                dut_d.pop();
                exp_d.pop();
            }
            wait();
        }
    }
};
// model
SC_MODULE(Model) {
    sc_in<bool> clk, xrst;
    sc_in<bool> i_vld;
    sc_in<uint32_t> i_d;
    sc_out<bool> o_vld;
    sc_out<uint32_t> o_d;
    SC_CTOR(Model) {
        SC_CTHREAD(proc, clk.pos());
        async_reset_signal_is(xrst, false);
    }
    void proc() {
        uint32_t d[3] = {0, 0, 0};
        uint32_t sum;
        bool vld[3] = {false, false, false};
        wait();
        while (true) {
            d[2] = d[1];
            d[1] = d[0];
            d[0] = i_d.read() & 0xff;
            vld[2] = vld[1];
            vld[1] = vld[0];
            vld[0] = i_vld.read();
            sum = d[1] * 2;
            sum += (vld[2])? d[2] : d[1];
            sum += (vld[0])? d[0] : d[1];
            o_vld.write(vld[1]);
            o_d.write((sum + 2) / 4);
            wait();
        }
    }
};
// testbench
SC_MODULE(Testbench) {
    sc_in<bool> clk;
    sc_signal<bool> xrst, i_vld, o_dut_vld, o_exp_vld;
    sc_signal<uint32_t> i_d, o_dut_d, o_exp_d;
    Source src;
    Sink snk;
    Vlpf dut;
    Model model;
    SC_CTOR(Testbench) : src("src"), snk("snk"), dut("dut"), model("model") {
        src.clk(clk);
        src.xrst(xrst);
        src.vld(i_vld);
        src.d(i_d);
        dut.clk(clk);
        dut.xrst(xrst);
        dut.i_vld(i_vld);
        dut.i_d(i_d);
        dut.o_vld(o_dut_vld);
        dut.o_d(o_dut_d);
        model.clk(clk);
        model.xrst(xrst);
        model.i_vld(i_vld);
        model.i_d(i_d);
        model.o_vld(o_exp_vld);
        model.o_d(o_exp_d);
        snk.clk(clk);
        snk.xrst(xrst);
        snk.i_dut_vld(o_dut_vld);
        snk.i_dut_d(o_dut_d);
        snk.i_exp_vld(o_exp_vld);
        snk.i_exp_d(o_exp_d);
        SC_THREAD(test);
    }
    void test() {
        xrst = 0;
        wait(25, SC_NS);
        xrst = 1;
        wait(src.done);
        for (int i = 0; i < 10; i++) wait(clk.posedge_event());
        std::cout << "#error(s) = " << snk.n_errors << std::endl;
        sc_stop();
    }
};
int sc_main(int argc, char *argv[]) {
    Verilated::commandArgs(argc, argv);
    sc_clock clk("clk", 10, SC_NS);
    Testbench *tb = new Testbench("tb");
    tb->clk(clk);
#ifdef DUMP_VCD
    Verilated::traceEverOn(true);
    VerilatedVcdSc *vcd = new VerilatedVcdSc();
    tb->dut.trace(vcd, 99);
    vcd->open("test_lpf.vcd");
    sc_start();
    vcd->close();
#else
    sc_start();
#endif // #ifdef DUMP_VCD
    return 0;
}

ざっくり説明すると、Sourceが作ったランダムデータを、検証対象とモデルModelに入力。そして、それらからの出力をSinkが受けて比較。そんな環境をTestbench階層で組み上げている。ついでに、SystemCのメイン関数であるsc_main()にて、Verilatorの波形ファイル作成機能を使用してみている。Verilatorを使ってテストを走らせるには、以下のコマンドを実行。

% verilator --sc lpf.v --trace --exe test_lpf.cpp
% cd obj_dir
% make -f Vlpf.mk
% ./Vlpf

う〜ん、何ともかったるい。Verilogなんて腐った言語は早くまともな言語に置き換えられてくれと思っているけど、SystemCはその器ではないかな。…って言うか、C++も言語仕様はかなり酷い部類だと思うし。

2013年9月20日金曜日

さらば組長

http://www.4gamer.net/games/999/G999903/20130919072/
http://jp.wsj.com/article/SB10001424127887324353404579084710742925936.html

間違いなく、世界を変えた人だよなぁ。

ナンセンスは百も承知でたらればを言うと、この人がいなかったら間違いなく、今日のゲームの隆盛はなかった。80年代の金も技術も勢いもあった日本で、ファミコンを作ろうと決断できたトップの下に、最高に面白いソフトを作れるメンバーがいた奇跡。もしもこの機を逃していたら、ゲームの世界は10年遅れくらいで、盛り返してきたアメリカが開拓することになったかもしれない。ゲーム専用機ではなくAT互換機で。そうなっていたら、携帯ゲーム機なんてものは生まれなかっただろうな。

世界を楽しくしてくれて、本当にありがとうございました。

2013年9月19日木曜日

56号の責任?

http://www.jiji.com/jc/c?g=spo_30&k=2013091900147
http://mainichi.jp/sports/news/20130919k0000e050176000c.html

統一球をこっそり変えていた責任を取ってコミッショナーが辞任? このタイミングで?

あくまで一個人の下種の勘繰りだと断っておくけど、これはあの球団にとって大事な大事な55本という記録を、ぽっと出の他球団の選手に破らせてしまった責任を取らされたとしか思えない。そもそも統一球の変更からして、空中戦をやりたいあの球団から大きな圧力をかけられたのだろうから、言われた通りにボールを変えたら、変えろと言った奴に詰め腹を切らされるとは、何と理不尽な。

繰り返し断っておくけど、これはあくまで一個人の頭に浮かんだ陰謀論であって、事実との関連は全く検証されていないので、あしからず。

2013年9月18日水曜日

iCloudのWebアプリが見た感じ変わった

iCloudのWebアプリを立ち上げてみると、なんだか様子が違う。そうか、iOS 7の公開に合わせて、UIを変えてきたのか。

ざっと触ってみた感じ、機能的にはほとんど以前と変わっていないかな。細かいところでは、いちいちアプリ一覧画面に戻らなくても、メモから連絡帳のように別アプリに移るショートカットメニューが追加されたが。

それより、あのひどく重たかったWebアプリの動作が、少し軽くなった気がする。あくまで気がするだけで、正確な比較はもうできないけど。

2013年9月17日火曜日

健康診断

定期検診に行って来た。定期と言っても新しい会社では初だから、まだ定期的に受診してはいないけどね。

結果が出た範囲内では、体重が想定レンジの下限より3kg落ちていたのが結構ショック。土曜日に大福を1kg買ってドーピングしたのに。年を取って痩せてると、凄く貧相なんだよなぁ。

あと、バリウムというやつを初体験。不味い不味いと聞かされていたけど、そこまで不味いか? まあ美味しいとは言わないけど。それより、飲んだはいいけど出て来ない。優先度なしのFIFOだから、まだドーピング大福あたりがつっかえてるのだろうか。

2013年9月16日月曜日

1964年の東京オリンピックの話

http://www.mishimaga.com/gaihu/016.html

こういう話がマスメディアに黙殺されてしまうのは気持ち悪いけど、それをWebで公開できるってのはいい時代になったね。特に1964年の空気なんて、まだまだ生まれていなかった自分からしてみれば、まさにリアルタイムで呼吸していた人だけが肌身で覚えている話。こういう形に残りづらい話を文字にして残すことには大きな意義があると思う。

そこらへんに関しては、戦争の話は大失敗だよなぁ。話しづらい話を濁してうやむやにした結果、終戦から70年近く経った今でもまだ、戦後生まれの世代がやったやらないで不毛な口論をしている始末。敬老の日に年寄りをdisるのはなんだが、自分たちがやったことの始末を付けずに逝き逃げなんて、本当に迷惑な話だよ。

そういえば「新聞を読みませんか」と朝日のサンプルが郵便受けに入っていたけど、こんな編集に金は払えんわな。

2013年9月15日日曜日

停電に思う

今日は朝から停電。いつまで電気が止まっているのか分からないから迂闊に冷蔵庫も開けられず、朝食を取れない始末。よもや大人買いしたおまけ付きチョコが非常食になるとは。どうしようもなく腹が減る前に復旧したので、「1日1個チョコレート」ルールは守れたが。

最近はあってもせいぜい瞬停くらいだったので、こんなにガッツリ停電を味わったのは何年ぶりだろうか。停電と言えば震災後の輪番停電だけど、先月まで住んでいた川崎市内某所はなぜか止まらなかったので、実はあれは未経験。

さて、色々な意図が絡み合って、すっかりスルーされている節電だけれど、エネルギーの問題は全くもって解決していないんだよなぁ。むしろ、景気対策が功を奏するほどガンガン油を燃やすわけで。人間社会の肩書きやら都合やらが物理法則の前では無意味であることは福島で痛感したはずで、ごまかしがきかない相手だからこそ真摯に向き合うしかないはずなのだが…。エラい人は、なあなあでやり過ごせばどうにかなる話だと思ってるんじゃないのか? まあ、今エラい世代なら逃げ切れるかもしれないが。もっとも、子や孫の世代のことを考えていないのは1人で死ぬ覚悟を決めた自分も同じなので、非難できる筋合いは無い。

2013年9月14日土曜日

Gray code

グレイコードって、グレイさんが考えたからグレイコードだったのか。今までずっと、灰色の状態でも白黒のどちらかには転ぶみたいな意味で命名されたのだとばかり思っていた。

ついでに、グレイコードと言えばデジタル回路の非同期処理でしか使ったことがなかったけど、遺伝的アルゴリズムでも使われてるのか。なるほど確かに、ちぎって繋げたり、適当なビットを化けさせたりしたとき、グレイコードで表現されていた方が元の性質を引き継ぎそうだ。

2013年9月13日金曜日

退職金

前職の退職金が振り込まれた。中小企業に9年ちょっと籍を置いていただけなので、定年まで役所や大手企業にいた人とは比べるまでもないが、それでもまあ、金が入って悪い気はしない。

…とは言え、金が入ったから使おうという気にもならないんだよなぁ。先の不安も間違いなくあるけれど、それ以上に引越しをしてから物を増やしたくなくなった。それでは無形の体験に金を払うかというと、これまた出不精だからそんな消費も滅多にしない。

こうやって欲が無くなっていって、もう生きていなくてもいいやと思った頃に死ぬのだろうか? いやいや、ももクリは行きたい。だからチケット取らせてプリーズ。

2013年9月12日木曜日

55号

いよいよ56号に王手。さすがに1か月間敬遠しっぱなしなんて、あまりにかっこ悪いことはしないだろうから、3人目の正直で56号を打たせてもらえるかな?

とはいえ、いまいち盛り上がりに欠けている。統一球のゴタゴタで冷めてしまったのは否めないよなぁ。別に、過去の大打者と比べれば、バレンティンだけが特別飛ぶボールを打っているわけではないのだけれど…。

しかしまあ、55本の呪縛が解かれるのは悪いことではない。ローズやカブレラが56号を打てなかったのは、あまりに歪んでいた。バレンティンが因習を蹴散らしたところで、来シーズン、おかわり君に60本くらい打ってもらいたいな~。

2013年9月11日水曜日

iPhone 5s & 5c発表

iPhone 5siPhone 5c。名前も含めて概ね事前に漏れていた通りだったけど、強いて挙げればA7が64ビットコアを積んできたことがサプライズだったかな。

さすがにまだ4GBオーバーのメモリを積むことはないだろうから、単純にレジスタが増えた分だけメモリアクセスが減ることが、64ビットコアの一番の恩恵だろうか。PalmがARM化したときもかなり速くなったように、OSが新しいコア向けに最適化されていれば、APIのグルー的なユーザーコードは32ビットのままでも、全体としては結構速くなるのだろう。

5cのデザインは、ベースの黒い部分もカラフルにしてほしかった。コストの都合で共通化せざるを得なかったとしても、現行のiPod touchのように白ベースにしてほしかった。ポップな感じが足りない。

それはさておき、家計簿をつけていて気が付いたんだが、今日って911だったのね。911どころか、その後のリーマンショックからも立ち直りつつあり、こうしてAppleの新製品で盛り上がれるんだから、なんだかんだ言ってもアメリカって凄いな〜。

2013年9月10日火曜日

結婚願望

http://www.jiji.com/jc/c?g=soc_30&k=2013091000539

結婚願望は決して低くないって、本当か?

収入が結婚の妨げになっているのは事実だと思うけれど、そんなに単純な話ではないとも思う。収入が減ったこと自体は望ましくはないけれど、牛馬のように働けば誰もが一国一城になれる環境が失われたことで、家庭を築けという同調圧力が劇的に弱まったことを喜んでいる単身者も結構いるんじゃないかな。少なくとも自分は、この点に関してはいい時代になったと思っている。

本当はとっくに結婚する気なんて失せているけど、結婚したくても出来ない体を見せておけば角が立たない。そう思って密かに今を謳歌している単身者は、いくら婚活支援したって乗って来ないだろうよ。

2013年9月9日月曜日

PS4

http://www.4gamer.net/games/990/G999024/20130909037/

年末商戦に間に合わないのか、う〜ん。

今時のGPUとメモリ増量で順当な進歩はしているんだけれど、リムーバブルメディアはBlu-rayのままなんだよな。今までCDからDVD、DVDからBlu-rayと、新世代の光学メディアを採用して新しさをアピールしていたのが、今回はその手が使えない。余程上手くアピールしないと、計算機に疎い一般人には、何が変わったのか分からないんじゃないのか?

ただでさえ遊ぶ人しか遊ばなくなっている据え置きハードが、よりマニア向けになるのは嬉しくないなぁ。

2013年9月8日日曜日

2020年

う〜ん。正直言ってオリンピックは望んでいなかったんだが…。まあ、来てしまうものは仕方ない。石原慎太郎の望み通りになるのが、心の底から面白くないなぁ。

2020年と言えば、半導体プロセスの微細化が止まる時期だという話がつい最近あったっけ。鳩山由紀夫が言ってしまったCO2を25%削減する期限も2020年だったはずだが、これで更に難しくなったんじゃないか?

まあ、7年前に現状を見通せていなかったんだから、7年も先のことなんて分からないわな。7年どころか半年前ですら、まさかこんなことになるなんて夢にも思っていなかったし。

ああ、でも超人オリンピックは見たいな。今シリーズでせっかく未来に繋がる話を描いたのだから、一段落付いたらII世に戻って、おかしなハンデ無しで互いに万全な、万太郎vsケビンを見たい。

2013年9月7日土曜日

大人の力

子供の頃果たせなかったビックリマン箱買いの夢が、よもやこんな形で実現するとは。大人の力ってすげー。

さて、子供だったら全部一気に開封してしまうところだが、分別のある大人なので「1日1個チョコレート」ルールを定めた。1つだけ、2つだけ、もう止まらない。…とはならずに我慢できるのが、ヘッドロココ時代から四半世紀分の成長の証だね。

つい勢いで箱買いしてしまったけど、これから1か月間、何が出るのかドキドキしながら毎日チョコの開封を楽しめるなら、割といい買い物だったかもしれない。

2013年9月6日金曜日

docomoにiPhone!?

http://jp.reuters.com/article/wtInvesting/idJPL4N0H14J320130906
http://www.jiji.com/jc/c?g=ind_30&k=2013090600095

またいつもの日経…、じゃないぞ、おい。

これが本当なら、国内に関してはどこのキャリアのSIMカードでもiPhoneが使えるようになるわけだ。docomoに毎月5~6千円も払う気は全くないけど、docomo回線MVNOのSIMカードで運用できるiPhoneなら欲しい。すごく欲しい。iOSのアップデートが止まる第4世代iPod touchから第5世代iPod touchへの乗り換えを考えていたのだけれど、モバイルルータ+iPod touchよりiPhoneだけで済む方が、そりゃ楽だよなぁ。

噂の5Cが国内にも来たら、docomo縛りの緑を買ってしまうかも。

2013年9月5日木曜日

HDMI 2.0

http://www.hdmi.org/press/press_release.aspx?prid=133

まあ、順当な進化ってところか。4Kで3Dで60Pはできないけど。しかし、今使っている安物ケーブルやセレクタで、本当に18Gbpsも出るものなのだろうか?

まあ、4Kに手を出すのは24インチのモニタが20,000円を切ってからだな。それより先は、たぶん目が衰えてて見分けがつかない。

2013年9月4日水曜日

SystemCはじめました、その2

モジュールの話。

まずは手っ取り早く、記述例を挙げてしまおう。入力データを累積するVerilogモジュールと、そのSystemC版。SystemC版は短いので宣言も定義もごった煮にしてしまった。

Verilog版

module acc (
    input           clk,
    input           reset_n,
    input           i_en,
    input           i_clr,
    input   [7:0]   i_d,
    output  [7:0]   o_d
);
reg     [7:0]   r_d;
always @(posedge clk or negedge reset_n) begin
    if (!reset_n)
        r_d[7:0] <= 8'h00;
    else if (i_clr)
        r_d[7:0] <= 8'h00;
    else if (i_en)
        r_d[7:0] <= r_d[7:0] + i_d[7:0];
end
assign o_d[7:0] = r_d[7:0];
endmodule

SystemC版

#include <systemc>
SC_MODULE(acc) {
    sc_core::sc_in<bool> clk;
    sc_core::sc_in<bool> reset_n;
    sc_core::sc_in<bool> i_en;
    sc_core::sc_in<bool> i_clr;
    sc_core::sc_in< sc_dt::sc_uint<8> > i_d;
    sc_core::sc_out< sc_dt::sc_uint<8> > o_d;
    sc_dt::sc_uint<8> r_d;
    SC_CTOR(acc) {
        SC_METHOD(accumlate);
        sensitive << clk.pos() << reset_n.neg();
    }
    void accumlate() {
        if (!reset_n.read()) {
            r_d = 0;
        } else if (i_clr.read()) {
            r_d = 0;
        } else if (i_en.read()) {
            r_d += i_d.read();
        }
        o_d.write(r_d);
    }
};

SystemCの記述を頭からなめて行こう。

まずはSystemCのヘッダsystemcをインクルードしている。互換性のためにsystemc.hも残されているが、systemc.hはやたらめったらusingしまくるので、これから新規で書くコードではsystemcを使った方がいいかな。

モジュール宣言にはSC_MODULEを使う。これはsc_core::sc_moduleのサブクラスを作るマクロで、SystemCのモジュールとはsc_core::sc_moduleのサブクラス。

入力ポートはsc_core::sc_in<>、出力ポートはsc_core::sc_out<>のインスタンスで表す。FFは単純に、モジュールのデータメンバで表現すればよいだろう。

モジュールのコンストラクタは、SC_CTORマクロを使用して定義している。SC_CTORで宣言・定義できるのは、sc_core::sc_module_name型の引数を1つ取るコンストラクタ。引数を変えたい場合は、普通にコンストラクタを定義する。

コンストラクタの中身では、SC_METHODマクロを使用してaccumlate()メソッドをclk入力の立ち上がりかreset_n入力の立ち下がり毎に呼び出すよう、指示している。

accumlate()の中身では、入力に応じて初期化や加算を行い、その結果を出力している。見ての通り、入力ポートから入力されている値を取得するにはread()、出力ポートへ出力する値を設定するにはwrite()を用いる。

2013年9月3日火曜日

SystemCはじめました

ちょっとSystemCが必要になるかもしれないので、手を出してみることにした。

何はともあれ、まずはインストール。名前とメールアドレスを登録してこちらからsystemc-2.3.0.tgzをダウンロードして解凍。…って、何だこりゃ? .tgzなんてサフィックスを付けておきながら、tarでまとめただけでgzipでは圧縮してないじゃないか。tar zxvfで解凍できないから、何事かと思ったぞ。

さて、いきなりケチがついたけれど、解凍できてしまえば中にあるINSTALLに書いてある通りの手順でOK。昔のバージョンはあれこれ手を入れないとビルドできなかったりしたらしいけど、さすがにもう、そんなことはなくなった模様。LMDE64ビットとMountain Lionで、問題なくインストールできた。

2013年9月2日月曜日

覆面狩り

今週のキン肉マン。

雨はいかんぞ〜って、機械の故障を懸念してるのかと思ったら、精神的な話かい。スグルに敗れて以来マンリキくらいにしか勝っていないウォーズマンが過去の敗戦を一々気にしてたら、アワワしっぱなしだろうよ。

さて、最後まですんなり勝たせてもらえなかったウォーズマンだけど、ここが噛ませ犬から21世紀の強豪へのターニングポイントっぽいな。ちょっとクドかったけど、人気投票1位だからしっかり描いてもらえたのだと、好意的に解釈しておこう。

階段ピラミッド編は来週で終わりかな? そろそろ将軍にも動きが欲しいな〜。

2013年9月1日日曜日

ムーアに7年殺し

http://news.mynavi.jp/column/hotchips25/003/

ロシアのサンボの裏技を食らったわけではなかろうが、いい加減、ムーアの法則も限界が近いだろうという話。

化石燃料の枯渇問題とは違って、小さく作ることに技術的・物理的な限界があるのは、プロセス屋さんでなくても分かる。5nmを50Åと言い換えると、より厳しさが感じられるかな。

シングルスレッド性能の伸びが鈍化し始めたときにも、ソフト屋さんがタダ飯を食える時代は終わったと言われたけれど、マルチコアやGPUだけでなく、動かすトランジスタの数までソフト屋さんが意識しなければならない時代が来たりするのだろうか? FPGA付きSoC(SoC付きFPGA?)は既に存在するけれど、まだまだハードを知らないソフト屋さんでも使いこなせるとは思えないからなぁ。そこらへんが、一山いくらのプログラマとの差別化要因になるのかもしれないが。

2013年8月31日土曜日

Creative D100レビュー

Bluetoothスピーカーが欲しくなって、CreativeのD100を購入。新製品でも何でも無いけど、今更レビューしてみる。

まず音だけど、128kbpsの圧縮音源で十分満足できるレベルの耳には、何ら不満は無い。ミニコンポを捨てた今となっては、間違いなく家の中で一番良いスピーカーだ。

そんなことより、この機種の最大の売りは乾電池で完全ワイヤレス化出来ることだろう。…と言うか、それを目当てにこの機種を選んだのだ。再生したままひょいとつまんで、部屋の中の移動はもちろん、そのまま台所へ持って行けたりするのは非常に快適。無線最高。

ペアリングは複数記憶しておいてくれる。iPod touchとMac miniの2つを接続してみたが、ボタン1つで切り替わる。説明書にはボタンを1秒間押すと切り替わると書いてあったが、実際には長押しではなく、チョンと短く押したら切り替わった。誤訳というわけではなさそうだが…、こっちの方が使いやすいから、まあいいか。

電池の持ちは評価中。果たして、エネループでどれくらい持ってくれるのか?

2013年8月30日金曜日

後悔

後悔について考えてみたら、後悔のほとんどは何かをやらなかったことに対してであることに気が付いた。

当然ながら、これまでの過去が成功の連続だったなんてことはないのだが、結局のところ、何かをやった結果が失敗だったとしても、大抵のことは時間が癒してくれる。ただ、何かをやらなかったことに対しては、どうしても「たられば」で振り返ってしまうから、いつまでたっても後悔が晴れない。

もっとも、何かをやらなくて良かったと思うことも多々あるから、何でもやってみればいいわけでもないんだよなぁ。月並みな結論だけど、バランス感覚と結果を想像する力を磨くのが正道かな。

2013年8月29日木曜日

Nintendo 2DS

http://www.nintendo.com/3ds/new/

う〜ん、これは微妙だな。携帯ハードは形が変わる度に買い足している自分でも、今回ばかりはスルーだ。国内発売は無いと思うけど。

そもそも廉価版を作ろうってのに、どうして液晶がLLがサイズなんだ? 通常の3DSを開きっぱなしのサイズにすれば、もう少し使いやすそうなボタン配置にもなったと思うんだが。

たった数十ドルをケチって2DSを買うくらいなら3DSを買った方がいいと思うんだが、海外市場はそうでもないのかねぇ。

2013年8月28日水曜日

初代Boogie Boardの電池交換とプチ改造

昨日は悩んだけれど、結局100均でボタン電池を調達して交換することにした。よくよく考えてみれば、既存のBoogie Boardを再利用すれば、電池代だけで紙にして数千枚(?)分のメモを取れるのだ。これなら十分ペイするだろう、と。

電池交換の話自体は既に多数ネットに上がっているので、交換したらまた消去できるようになったとだけ書いておく。ただ、何せ安物の電池なので、あまり長持ちは期待できない。そこで、今後の電池交換を楽にするために、ちょっとだけ手を加えた。

本当にちょっとだけだけ。画像のgとrのあたりに穴を空けた。左側も同様。これで何が変わるかというと、こういうこと。

そう。ネジの部分に穴を空けたので、今後はラベルをはがさなくてもふたを開けられるようになったのだ。見た目は少し悪くなったけど。

2013年8月27日火曜日

Boogie Board

Boogie Boardの新型の発表を見て、そう言えば引っ越し後、初代Boogie Boardをダンボールから出してないことに気が付いて、引っ張り出してみた。

…消せない。きちんと数えたわけではないけど、5万回どころか100回も消去してないと思うんだが、もう電池切れ? ググってみると、消去回数より自然放電(?)で切れている人が結構いるっぽい。回数制限があるから何となく消去を控えていたのに、結局切れてしまった人が多いのかな。

さて、分解して電池交換すれば使えそうではあるのだけれど、手間と電池代をかけるくらいなら紙に回帰すればいいかなぁ。なんて思いながらコピー用紙の値段を調べてみると、大量にまとめ買いして1枚0.5円くらい。5万回とは言わないまでも、2万回も消去すればBoogie Boardは紙のコストに追いつけるのか。電池交換できる10.5インチ版が欲しくなってきた。引っ越しのときに大量に発見した未使用の紙のノートを使い切るまで、Boogie Board欲しい熱が冷めてなかったら買ってしまおう。何年後か分からないけど。

NoteSlate? そんな夢は見なかったことにした。

2013年8月26日月曜日

ウォーズマンのパッチ当て

今週のキン肉マン。

フラグを立てたり折ったり忙しいウォーズマンだが、まさかファームウェアアップデートをして再起動してくるとは。しかも、友情の方程式にシンジルココロを足して超友情という、もはや清々しいまでのゆで理論。その勢いでタワーブリッジ・ネイキッドを出されたら、もう細かいことはどうでもいいや。

さて、あとはパロスペシャルで4分以内に落とせるか、か。散々間接を痛めつけてるから力で返されることはなさそうだけど…。

2013年8月25日日曜日

横浜市長選

http://sankei.jp.msn.com/politics/news/130825/elc13082520100000-n1.htm
http://www.47news.jp/CN/201308/CN2013082501001644.html
http://www3.nhk.or.jp/news/html/20130825/k10014019411000.html

誰もが予想した通りの結果。実に盛り上がらなかった。選挙カーの名前連呼も聞いた記憶が無いのは、横浜のはずれだから? 朝から雨が降ってたし、投票率も低そうだなぁ。かく言う自分は引っ越して来たばかりなので、今回は選挙権なし。

個人的にはゴミ問題を争点にして欲しかった。待機児童がどうこうより、生ゴミの収集日をもう1日増やしてくれた方がよっぽど助かる。

2013年8月24日土曜日

量産型ジョン・レノン

http://sankei.jp.msn.com/life/news/130824/trd13082412060010-n1.htm

個人的には、技術的に出来ることはガンガンやってみよう派だけど、これはちょっと…。

大体、ジョン・レノンがああなったのは、ほとんど後天的な環境によるものだろうよ。遺伝的に同一な人間を今の時代に誕生させることに、どれだけ価値があるのやら。ジョン・レノンっぽくなるよう教育をしたとしても、せいぜい劣化コピーにしかならないだろうし。ペットのクローンを作る感覚でやってるんじゃないのか? 技術的な難易度は置いといて、万一出来てしまったら、飽きても簡単に捨てるわけにはいかないことくらいは、分かってるんだよね?

そうは言いつつも、もしも自分のクローンを作れるようになったら、自分には何をどこまで出来るポテンシャルがあったのか、確かめてみたい気がしないでもない。

2013年8月23日金曜日

NANDフラッシュ

http://www.nikkei.com/article/DGXNASDD230HL_T20C13A8TJ1000/

東芝は景気がいいなぁ〜。バンバン求人してるし。

とは言え、記事にもあるとおり微細化の限界が迫って来ている以上、コストダウンでウハウハできなくなる日もそう遠くではないはず。その日までに次世代不揮発メモリを軌道に乗せられているかな? しかしまあ、そこをうまくMRAMに置き換えられれば、東芝は更に強くなりそうな気もするな。MRAMにはフラッシュだけでなく、DRAMを置き換えられるポテンシャルもあるし。

で、主記憶が不揮発になるとコンピュータはどう進化するのか。その答えを見せてくれるのは、結局AppleやGoogleだったりするんだろうな。

2013年8月22日木曜日

4000本

http://sankei.jp.msn.com/sports/news/130822/mlb13082208450001-n1.htm

ただただ凄い。結構名のある選手ですら、引退間際になんとか2000本安打を達成したりするのに、その倍も打ったのだから、これはもう凄いと言うしかなかろう。

普通に考えればチーム事情的にも年齢的にも厳しいのだけれど、それでもイチローがどこまで行けるのか見てみたい。そのためには、年下の自分がへばっていられないな。

2013年8月21日水曜日

消費税

http://sankei.jp.msn.com/economy/news/130821/fnc13082100450000-n1.htm

揺れてるなぁ。まあ、なんだかんだ言っても最後は外圧に屈して、予定通り上げそうな気がするけど。

…と思われているからこそ、代案の年1%ずつアップとかも悪くない気がして来た。景気対策の時間を稼ぎつつ、サプライズで円安に誘導しながらも、最終的には10%にするのもありなんじゃないかな。

ただ、間接税上げは直接税下げとセットにしてくれ。特に法人税を下げて、儲かってる企業にもっと活躍してもらおうや。

2013年8月20日火曜日

ドットファイル

今更ながら、前の職場で使っていたzshやvimのドットファイルをどこかに取っておけばよかった。ある程度色々な環境で使えるようにしておいたはずだったのだが、肝心なときに使えないとは。

世間一般ではこの手の設定の管理をどうしているのだろうか? githubあたりでがっつりバージョン管理するのもありだと思うけど、会社の中からだとそもそもアクセスできない可能性もあるし…。その場その場で抜け道を探しながら設定を同期してるのか。もしくは設定を作り込まずにデフォルトに慣れてしまうか。悩ましいなぁ。

2013年8月19日月曜日

初出社

今日から新しい会社。初出社は…、とにかく疲れた。

新しい環境、2週間ぶりの通勤、初日のみだけど久々のスーツと、疲れる要素はてんこ盛りだったのだが、一番重たかったのは、これから中途採用された者として、それなりの成果を示して行かなければならないというプレッシャーかもしれない。しかも、前の環境よりも間違いなく個々人のレベルが高そうなのに。

まあ、今更引き下がれないから、やるしかないよな。

2013年8月18日日曜日

風と洗濯物

引っ越し前は1階に住んでいたので、洗濯物が風に飛ばされても手を伸ばして拾い上げるだけだったのだが、2階になったらいちいちサンダルを履いて玄関から出て行かないとならなくなった。しかも、2階だからか、もしくはそういう土地だからか、とにかく風が強い。

で、何か手を打とうと100均をぶらぶらしていて見つけたのがこれ。

物干竿にこのピンクのフックを引っ掛けて、このピンクの下部にハンガーを引っ掛ける代物なのだが、これが効果抜群。こんな便利なものがあったのなら、もっと早く使っていればよかった。

2013年8月17日土曜日

ヨコハマごみ出し紀行

横浜に引っ越して来てから1週間と少し。ようやくごみの分別に慣れて来た。川崎と大きく違う点は、プラスチック製容器包装という区分の存在。「プラ」マークが付いているものがここに分類されるのだが、意識してみると大抵の袋や容器には、実は「プラ」マークが付いていた。

面倒ではあるけれど、細かい分別で処理コストを削減できて、税金が高くなったり、ごみが有料化されたりせずに済んでるのなら、まあ仕方ないかなぁ。

21連勝

http://www.jiji.com/jc/c?g=spo_30&k=2013081600807

大記録をライオンズ戦で達成されたのは悔しくないと言えば嘘になるけど、今回は素直に讃えよう。大体、強力打線の援護があっても難しい記録を貧打のチームで達成したのだから、これはもう投手が見事と言うしかないだろうよ。

ライオンズ的には、同年代の偉業を目の当たりにした大石が、これをきっかけに発奮してくれることを願いたい。

2013年8月15日木曜日

8月15日

中村光一の誕生日。…でもあるが、まあ世間一般の認識はそうではないわな。

この件に関しては、過去の人間の過ちから学ぶものは学ぶべきだとは思うけれど、はっきり言って罪の清算は当事者の世代で済ませておいて欲しい。60年以上経った現代にまだ影を落としているなんて、迷惑極まりない。

まあ、きっちり清算せず適当にくすぶらせていたほうが得をする連中が、今なお各国にいるからこその現状なのだろうけど…。小田嶋隆氏のコラムにもあったけれど、右と左の不毛な議論で暇ネタを作れるマスメディアも、既得権益者なんだよなぁ。そりゃ、この問題を右から左から煽るわけだ。

あ~あ、happy birthday to 光一 & myself.