Skip to main content

ログ取得ツール

Golangのcgo呼び出しのコスト

cgoでC言語の関数を呼び出す場合、普通の関数呼び出しの10倍くらいコストがかかりますね。ffiと同じくらいと見ればいいのかな? もっとかかってるのかも。

例えばこんな感じにしておいて、、、

https://gist.github.com/wtnb75/08aefa2a10208ccbf53b5e4cb105a1cc

MBPで試してみると、こんな感じでした。

BenchmarkCSin-4 20000000 106 ns/op
BenchmarkSin-4 100000000 22.8 ns/op
BenchmarkMSin-4 100000000 20.0 ns/op

cgoを使って呼び出すことで5倍のコストがかかる。あとGolangの中で関数呼び出しが1段増えるだけだと3ns程度しか増えないのね。ライブラリ関数の呼び出しは内部関数の10倍、cgoはさらにその5倍…とかいう話なのかなこれは。

Golangはテストコードの中で直接cgoを使うことができない、という制約もあります。最初はxxx_test.goをいきなり作って、そこでcgoを使おうと思ったんですけど…直接cgoで書けないので、main.goを書く羽目になりました。

Golangで処理時間の短いC言語のライブラリを呼ぶのは得策ではなく、移植した方が良いだろうって話。

川崎2-3セレッソ (ゼロックススーパーカップ!)

初出場のゼロックススーパーカップは、カップ戦決勝絶対勝つマンと化したセレッソとの対戦。そして川崎はカップ戦決勝絶対負けるマンなわけで…結果はご覧の通り。もっと弱い相手と当たれば勝てたかもしれないのになー、と腐った考えすら持ってしまうほど。

しかし例えば100回やれば1回くらいは勝てるだろうと思う。もし100回ダメでも101回目で行けることだってある。だからまた決勝を目指して欲しい。

今日の試合は何となくうまくいかない感じで、特に前半はひどかった。相手のシュートミスに何度も助けられ。ネットがちょっと太くなった(そして動きが重くなってた)ように私には見えたけど、気のせいかな?

後半出てきた長谷川や守田は良いプレーをたくさん見せてくれたと思う。特に2点目のシーン、長谷川の狭いスペースでのドリブル突破、同時に中のDFを出し抜く大久保の動き。これは秀逸だったよね。あの一瞬、2人で何人のDFを無効化したのかな。それでもゲーム自体は全体的にセレッソのものだった。

DAZNのB

スポナビをDAZNが引き取るという話。早速Bリーグの中継がDAZNで始まってましたね。 DAZNもサービス開始当初のトラブルもなんの、素晴らしく改善されているのは皆さんご承知の通り。YouTubeがAmazonとのトラブルでFireTV Stickユーザにとってクソと化した今、DAZNこそが動画コンテンツの王者よね。 というわけで、Bリーグも普通に見れました。映像自体はスポナビ制作なのかな? スポナビはいってなかったしちょっと私には判別できませんが。視聴者にとっては、カメラワークの質が良ければあとはどうでもいい話。

大島チャント

選手側に変更を求められてしまえば、そりゃ変更するんだろうけど、これって話の印象よりも慎重に対応しないといけない問題なのではないか。 サポーターは選手に依頼されて歌っているわけではない、というのが一つ。原則の話ではあるが、こっちは大した問題じゃないと思います。誰に言われるまでもなく、フザけた歌詞だったので。変更を求めるのは正論っすよ。サポの中にも違和感あっての今日この日。 もう一つは、チャント変えてから活躍できなくなった選手がいるじゃないですか。こないだ移籍してしまいましたが、随分前に変更されたはずの新しいほうのチャントをもはや思い出せないですし。昔の、「約束だから〜」は今でも歌えますよ。歌えるけど、あれも問題のある歌詞だった。約束って言わなければまだしも。だから今回も変更のタイミングで活躍できなくなられるのは困るという話。 大島の歌自体については、私もあの歌詞は歌いにくいし、場にそぐわないものと思っていた。 だから変えるにしても慎重に選曲すべきで、つまり今シーズンはアッコちゃん対応とかにして、大島の活躍度合いを見つつ、ダメそうなら戻し、行けそうなら新曲って感じ…時間をかけて考えていく、あたりで良いのでは。 サポーター活動から離れて久しいので大したことは言えないが、俺はそう思っている。

年老いた僕が失ったかもしれない、小さな勇気

いやー最近寒いですね。普段私は坊主にしてるんですけど、今年の冬は実に寒くて、坊主にできないでいます。ここ数年でもっとも髪を伸ばしてるかもしれない。まあ寒いだけじゃなくて少しは複雑な理由もあるんですけど、それは置いといて。

これまでだと、いくら寒くても坊主にするのにためらいはなかったはずなんです。切って寒さに耐えきる勇気がなくなった…これって歳をとって弱気になったということなのかな?

この際、思い切って腰まで伸ばした気持ち悪いオッサンになろうかと思ったりしています。それはそれで別の種類の勇気が必要か。

新曲

先日発表された新曲。 聴き比べると、赤﨑の歌がいいかな。それぞれの原曲もiTunesで買って聴いてますが、赤﨑の曲は原曲も悪くないですね。矢島並みの好選曲。 仕事中に思わず口ずさむ自分を見いだす。あか〜さ〜き、あか〜さ〜き、きば〜れ〜あ〜かさ〜きら〜ら〜らら。 ゴール時や勝利時に、ぜひ歌いたいもんだね。

電話のChromeがアップデートされるたびにリブートが必要になる…

なぜなら、この写真のように、ホーム画面のブックマークが機能しなくなるからだ。

マジすか…何度目か分からないが、世の中的にはどうなんだろう。私の端末だけの問題なら、その世界は光に包まれているんだろうね。

私はブックマークをホーム画面に置くのが好きなんだよ!

アイコンだけならまだしも、タイトルまで隠れたら使い物にならない。

とりあえずリブートします。

新キーボード届いたよ

新しくもレトロなキーボード(PENNA)が届いた。この記事はそのキーボードで打ってますよ。

メカニカルキーボードで、Bluetoothで、タイプライタ風。写真の手前(左側)のやつね。奥にちょこっと写っている黒いものは常用しているARCHISS(?)のやつ。これもメカニカルね。

Cherry MXが出てきてキーボードの勢力が一変(静電容量ナントカ→メカニカルへの大移動)したのが数年前。ただし結局使う機会が一番多いのはMBPの内蔵キーボードなんだけどね。

このPENNAは1年前くらいだったかな、Kickstarterで見てbackして、当初は去年の8月に届く予定だったのだが、ありがちな感じですが色々延びたみたい(大人気で注文を受けすぎたのかも??)で、年が明けてから届いたんだよ。

こいつもCherry MXのスイッチを使っているので打鍵の応答は悪くないし、キートップを触った感覚も悪くない。ただbackした時はもうちょっとツルツルしているイメージでいた。これならダイアモンド型のキートップにしてもよかったな。高級感とまでは行かないが、ペラペラの安物とは明らかに違う。

Pythonの__pycache__

ごく簡単なプログラムをPythonで書いたとして、テストを書くほどでもない…でもちょっと走らせたい部分があるのだが…そういう時はdoctestという仕組みが便利。

関数やクラスのところに文字列で、REPLのところをコピペした感じで書いておく。

"""
>>> 1+2
3
>>> foo("test")
"'test'"
"""
def foo(bar):
    return repr(bar)

↑こんな感じね。で、

  • python -m doctest your-file.py

みたいな感じで実行すると、テストしてくれる。-vとかをつけて実行するといちいち結果を表示してくれるという優れもの。

こういう美味しい話には穴があって、doctestを走らせると、doctestが該当ファイルをモジュールとして読み込むためか、__pycache__ディレクトリができてしまうのだ。

# ls
test.py
# python test.py
# ls
test.py
# python -m doctest test.py
# ls
__pycache__ test.py

これはダサい。

解決法は、.zshrcや.bashrcにこう書いておく。

  • export PYTHONDONTWRITEBYTECODE=1

すると、__pycache__の生成は抑制される。

LEDシーリングライト (3)

(2)で物色するとしていた、新たなLEDシーリングライトが届きました。今度のやつはPanasonicの6000円くらいのやつだ!

今回のは前回のと比べて…

  • サイズが大きい
  • 部品がカッチリはまり、しっかりしている感じがする
  • 普通の家電製品のように、注意書きのシールが貼ってある
  • 色味も自然で気にならない
  • 120fpsの動画ではチラツキが判明しない

といったように、満足できました。もともとは1万円くらいと思っていたので、2000円で失敗して6000円のものを買い直しても8000円しかかかっておらず…実質無料!!

貧乏性なもので、2000円のやつはとりあえず他の部屋につけてしまいました。まーまた気になったらPanasonicのものをもう1台買おうと思います。