寿司

もともと食べものの出現頻度が大きい日記だけれども。 今日のディナーは食事会で日本料理屋さんでした。 寿司や刺身、天ぷら、ドラゴンロール、茶漬とバリエーション豊かなレモネードがよくあう和食でした。 グリーンティーもサービスで提供されてました。

ランチはサンドイッチ

フランスパンベースで野菜と肉が具なかんじ。やっぱり美味しい。

ランチを書き出すようにしてから、 初日のランチを埋めたくなって 何食べたかなって思いだそうとして、 何食べたかどうしても思いだせなくてもやもやしていたのだけれども、 そもそも空港で正午過ぎており予定がおしていたのでランチを食べていなかったことを思いだした。

疲れや空腹でヘロヘロだったな。

アーキテクチャはどこも似てるものなのだな

MVC的なパターンの話になるのだけれども、PUSH/PULL、コントローラ/ノード、データフローおよびそれらのバリエーション以上のものはないんだなと思った。

あなたとJAVA

久しぶりにJavaを使う機会をえた。 基本的人権があるモダンなJava8。 Java特有の冗長な表現の部分は相変わらずだけれども、それどもメソッド参照をストリームへ渡せたり以前よりかはまともに書ける言語に進化していて驚いた。 マルチプラットフォームなJVM, JMX, JIT, 静的コンパイル, 豊富な実装やライブラリを考慮すると意外に開発環境としてポイント高い気がしてきた。

…ただこれJavaに限らずにJavaエコシステムの話な気がしてきたのでJVM言語を選択すればいい気がしてきたぞ。

身体がバキバキ

一日中座ってばかりで移動も車で連れてっていってくれるので本当に身体がバキバキになっている。 そこまで運動が好きなわけじゃないのだけれども、身体を動かしたい欲求がでてくる。

ラーメン

仕事のあとにラーメンと寿司の店に行きました。 ガーリックトンコツラーメンとラムのグリルおいしかったです。 やっぱりグリルは欧米のほうが味が素直でいい。

ランチはピザ

普通のピザでした。味はよかった。

トランポリン

ウォルマートにトランポリン売ってた。 300ドルくらいで直径5m、転落防止用のネットも付いている。 家に広い庭が欲しくなる。そもそもどうやって持って帰るというのかという話もある。

という話を妻にしてたらAmazon JPでもトランポリン売っているのな。

標準正規分布表

あの表の読み方と意味がわかった。 表の縦横の数を足したものがZの値で、それによって分布のどこまでをカバーするかを知ることができる。 Zは0から正の範囲での割合なので、全体の半分である0.5に近付く。

よって、0〜500の範囲の正規分布なランダム値をとりたければ、 0を中央値にした標準正規分布な疑似乱数生成器の実装がおおいので、 (ランダム値 + Z) / 2Z * 500 でとれる。

テイクオフ

出張0から1日目。

空港までは近くのバス停から高速バスに乗れたのでそこそこ快適だった。渋滞もなかったし。 高速バスが首都高のジャンクションを1車線ごとに計5車線移動するのは勉強になった。 渋滞してなけりゃあのところも怖くなく移れるんだな。なれだろうな。

空港で久しぶりのマクドナルド、こういうときじゃないと食べない気がしている。 人種さまざまで賑わっている。ゴミは片付けられてなくてテーブルが汚かった。 空港という文脈じゃなかったら気にしなかったけれども、綺麗にディスプレイされた空港という空間のなかでそこだけ異質ではあった。

荷物預けでスーツケースのロックをかけないでくださいと指導された。 なんでそんなことすんだろうと思って聞いてみたら、空港にTSAマスターキーがないからだと言われた。 運用でカバーの神対応だなあ。

出発が1時間くらい遅れたけれども、Wifiや電源があると言っていたのに全く使えなかったけれども、真後ろが空いた席だったのでまあまあ快適に機内では過ごせた。 わたしは窓の穴あたりにできる結晶を見るのが好きなようだ。 まあ言ってもほかに見るものがないからって気もしないでもない。

そして日付変更線をまたぎ、一日をまた繰り返しながら今にいたる。長い一日だった。

今回の出張はショートステイで仕事もたてこんでるので全日程分の着替えを持ってくる戦略をとった。

../../../_images/IMG_1513.jpg

シカゴピザ

夕食に連れていってもらった。 話には聞いていたんだけれども初めて食べた。

底が5cmくらいの鉄鍋に2/3くらい拡げたかんじの厚みのある生地、そしてその上にトッピングされた比較的手加減のないピザの具、仕上げの後乗せチーズ。 大人しめに表現してもワイルドな食べものだった。

そして今回では初めてのルートビア。瓶で提供され面白かった。

口がニンニク臭い。非常に。

../../../_images/IMG_1514.jpg

auのiPhoneでAT&TのSIMが使える?

SIMフリーではないauのiPhoneでAT&TのプリペイドSIMが使えると聞いた。 なんかローミングの関係らしい。 たしかにこちらに来てiPhoneの電源をいれたときにAT&Tをキャリアとして自動に認識していたしSMSも送られてきたので信憑性は高い。

ローミングは日本時間の0-24時で2,980円/日だと。 ふむ高い。

保険してはアリな選択肢だけれども日常で使うならAT&TのSIMを調達するだろうな。

シャンプー

なにこれホテルで支給されたシャンプーがドクターペッパーの香りがする!!!!1111

プログラミングには快適な環境が必要だ

機内で書いたソースコードを読んでみたがゴチャゴチャだった。 つねに動いているのが悪かったか、エコノミーの狭い席がまずかったのか。

帰りはアップグレードをしよう。事前にオンラインでできるような話を聞いたので確認してみる。

温泉日記

スカイツリーに登った疲れからか、不幸にも黒塗り高級車に追突してしまう。 後輩をかばいすべての責任を負った三浦に対し、車の主、暴力団員谷岡に言い渡された示談の条件とは…。

はい、疲れてたので近隣の温泉を調べて浸ってきました。 時間が遅めだったので本当に浸ってきただけだけれども疲れは抜けたっぽい。

ここらへんは平野だけれども温泉あっていいね。

変わったロードサイドの風景

ふつう国道だったら道路に面してお店があるじゃないですか。ロードサイドってかんじで。 今日買い物があってとあるロードサイドにあるホームセンターに行ったんですが、そこの駐車場に沿って道一本入ったところに大きめの別の店がありました。 しかもスポーツ用品店でそこそこお客さんが入ってる。 よくよく見ると国道に看板はでていたんですが、お店自体の存在はまったく分からないくらい後方に下がっていて、だけどお客さんは入っている。

不思議でした。 地元のお客さんなのかな。

Docker

ご存知のように開発マシンはMac OSXなのですが、仮想マシンを動かすのにVirtualBoxとVMware Fusionを使ってます。 で、最近はDockerを使うようにしてるのですが、基本的にダルいのが苦手なのでboot2dockerを使ってました。 で、boot2dockerってデフォルトではVirtualBoxのイメージを使うんですよね。 boot2dockerのISOイメージ自体は公開されてるのでVMware Fusionで仮想マシン作って入れればいい…って分かってるんですが、 CLIで管理したいの。 膝にGUIで管理したくない病を受けてしまっているのでどうしようかなと思っていたのがさっきまで。

なんかVMware Fusionで使えるようになってくるくさいです。 後継のDocker Machineでですけれども。

うん、これを試します。

VagrantのVMware Fusionプラグインも課金してしまったけれども、まーこれで動くならいいかー。

Veertu

仮想マシン繋がりで。

VeertuというMacネイティブで仮想マシンを実行できるものがMac App Storeでリリースされたようです。 Hypervisorフレームワークを使っているのでVMware ESXやKVM, Hyper-Vのような位置付けのものを使っているかんじ。 ここらへんはxhyveでDockerを動かしてみたことがあるくらいですが、これは課金後はWindowsも使えるようなのですごい。

ベンチやられている方がいましたね。

http://applech2.com/archives/47452224.html

お仕事使いだとネットワークトポロジも組みたいので単に仮想マシン動かせればOKというわけでもいかなくなってきているのだけれども それはDockerの中で頑張ればOKKaaayyyy!というかんじであれば選択肢としてはありっぽい。

あと何か掘ったらでてきた。 みなさん頑張ってほしいですね。

DIY!DIY!

DIYってほどじゃない。(結論)

仕事部屋に去年暮れ買った熊手が飾ってあるんですが、 いま熊手本体にビニールテープをまわして、 そのビニールテープは上のダンボールが挟んでとめている状況です。

妻から棚にクランプを付けてそこからビニールテープをまわさないかと提案を受けたのでそのようにしようと思います。(主体性がない)

スカイツリー

3年もたったのでいい加減空いているだろうと思ってスカイツリーに行ってきました。 スターウォーズとコラボしていたらしく90分待ちでした。 さすがに冬の空、夜景が遠くまで見え、それなりに満足しました。

なお長男氏、齢4歳にして90分の行列を自発的に待つという偉業を達成したもよう。 我慢強い。

次の目的地であるときわに行く途中に北千住で乗り換えたのだが、そこで小田急の特急MSEをみかけた。 休日は北千住より千代田線を走っていって箱根湯本まで行くらしい。 長旅ご苦労さまです。

町屋の食堂 ときわ

スカイツリーの帰りに荒川区町屋のサンポップ町屋にある食堂ときわに行きました。

ここはまだ田端に住んでいたときに本当によく行っていたお店で下町のゆるい雰囲気の大衆居酒屋っぽいのだけれども 食べ物のメニューが豊富で食事だけでも満足できる食堂です。 店内がユニークで大衆食堂のエリアと寿司のエリアが分かれており、大衆食堂のエリアに座って寿司のメニュー(ちょっといい肴とか)も頼める、 ただし逆は不可という方式をとっていました。 寿司の方のメニューの茶碗蒸しが好物だったので定食と茶碗蒸し、あと瓶サイダーが好物でした。

で久しぶり行ったのですが、寿司がやってない。ちょうど顔を知っている店員さんがいたので話をしてみたら、ここの場所ではもう寿司をやらないという。 えっーっと思ったんですが、寿司を全くやらなくなったわけではなく、町屋の本店の近くの仮店舗でやるということでちょっと落ち着きました。

肝心の食事はあいかわらずで、正月メニューの雑煮や冬限定の鍋(今回はたらちりを選んだ)などなどたんと食べてきました。満足。 長男氏は生本まぐろの刺身をたいらげるも刺身を食べたことを忘れやがってくれました。あと私には一切れもくれなかった。

バックアップをクラウド上にも確保したい

家内でRAID1なNASに入れている静的データ群を回線をひかりに移行したらクラウドに置きたいと思っていたことを思いだした。 やろう。GCSのNearlineかな。

Oktaviaを導入できた

一番はまったのがドキュメントとリリースが0.5でリポジトリのupstreamと随分と差があったこと。 ユーザーならばリリース版の0.5を使いましょう。。

あ、気付いたら今日の仕事の進捗、割り込みで入った調査だけしかやってない…明日頑張ろう。

出張してきます

紆余曲折あったけれども出張がようやく決まった。 (調整してくれてる人が多忙だったり捕まらなかったりしてヤキモキしてた)

WiMax2からひかりへ

先日よ〜く考えていたら、この家に引っ越してから無線通信機器のメリット、引っ越してから工事を待たずにインターネットができるのが、とくに必要なくなったことに気付き、 またなんかパケット詰まりのような動きをすることが多くなってきたのでひかりに乗り換えた。

NECのAtermも昔から信用していないし。 私の使い方だといつもバグにぶちあたって全く良い印象がない。皆無。

速度はまあまあだけれども固定回線の安心感はすごい。

焼き鳥には辛味噌

美味い。 インターネット上で調べると東松山からの文化のようだが、にんにくが効いたちょっと辛い味噌が肉に合う。 そこそこボリュームもあっておやつにもよい。今日のおやつでした。

ホットドッグ屋さん

東松山で思い出したが、東松山には有名なホットドッグ屋さんがある。 その名は サブマリン 国道近くの店で名物はもちろんホットドッグ。 このホットドッグが大きくてしかも美味い。

駐車場は少ないけれどもサイクリングやツーリングの人もよく来ているようだ。 車なら平日でランチ外していくといいのかな。

JS

JSに戻ってきました。CanvasやPath2Dあたりをいじくってます。BeautifulProperties.js サイコーです。(白目

自前のライブラリはTSに移行したい気分になっている。

天一始め

本年の天一は唐揚げ定食で始まりました。

Kafkaが高速なのはsendfile使ってるから

ここらへん に情報がある。

ものはこれ java.nio.channels.FileChannel.transferTo

KafkaProducerのコードをちょっと読んだ

シングルバックエンドスレッドとドキュメントに書いてあったのでコードをみてみた。 (Scalaかよ…)

内部的には ProducerPool 使っておりリードブローカーごとにコネクションを割り当ててるので1Producerで実装しててもまあいけそう?

コードは ProducerPool.scala

Flumeが使えないか検討した

某案件向けに。

Fluentdと役割が似てるかんじ。 Apache系のプラグインがいくつか標準で用意されている。HadoopとかKafkaとか。 逆にWEB系でよく使われているものへは自前で書く必要があるみたい。RedisとかMongoとか。

Agentを組み込んだときとSinkProcessorが自前で書けない制約が取り払われたら色々作れそうと思った。

プロセッシングが絡んでくるとJIT効くJVMは強いからなー。

Master/Node構成をサポートしなくなったようなのでGraceful shutdown/restart、つまり設定ファイルを変えたときに正常に処理を切り換えられるようにはなっていてほしい。

チケット はオープンのまま。 (最終更新が2013年。アッハイ)

みかん

顧客(家族)の要望でみかんを買ってきた。 順調に消費するので10kg(大箱)をチョイス。 何日で無くなるか…

感覚の解像度

ここでの解像度とはどこまで細かく識別できるかの性能のことを言っています。 カメラ(入力)やディスプレイ(出力)のようなかんじ。

ご存知のように私は視力がいい。今日現在で左右が1.5と2.0。近くも見れる。

ただその分、顕在意識では聴覚や触覚がざっくりしていたようで、 過去の記憶を辿っても映像は鮮明に思いだせてもそれにともなう音や触覚を思い出せなかったり、 発言は音ではなく言葉として記憶されていた。 覚えている音の情報もサンプリングされ平坦化されたように再生されていた。

奇妙で面白いなと思ったのは音が擬音として言葉に置き換わってから自覚するのを自覚した。 たとえば電車の動作音が自覚するフェーズではウィーン、ガタン、ゴトンのように言葉になっている。 音の大小は識別できるが、抑揚は同一のものと見なしていた。

書いてて何だこいつはって思いますよね。わたしは思いました。

まーただ人生さまざまですね。

自覚できれば改善できるのはシステム開発やってれば常識ですよね? とりあえず過去の記憶から思い出せるだけ音をひねりだしたり、音を音のまま自覚するように意識を向けたりで ちょっとずつだけれども改善していってます。たぶんね。

ある人に言わせると感性の解像度だと。うーむ、なるほど。

コーヒー

秋葉原のYKKにある喫茶店で改装後初めてのコーヒーをいただいてきた。 以前、秋葉原周辺に勤務していたときのことを思いだしていい気分になりました。

ラックに広告を置くときに注意すること

Just a メモ

ラックが多段になっているときは置く位置によって見える箇所が異なる。 つまり他の広告によって隠されてしまう箇所がでてくるので、その部分に魅力的な内容を載せてもお客にアピールできない。 ウェブのファーストビューに通ずるものがあるな、これ。

吉池

御徒町の吉池で魚介をたんまりと買ってきたので今日はTKGをした。いくらだからIKGでもいいのか。 真ほっけの塩焼もおいしかったので、本当に吉池は外れがない。

真空パックの鰻は冷蔵庫で出番を待っている。(これもよく保つわりに味がいい)

ITの近い将来

某所でこの先はインメモリデータベースが主流になるから今のうちにナレッジを貯めておきたいと言われた。

それに対して最初に思ったのは、ユーザ空間とカーネル空間のコンテキストスイッチを考えると、Kafkaの実績をふまえてもカーネル空間のなかでDMAでファイルシステムから転送できるほうが性能でるんじゃないか。

次に思ったことは、それだったらカーネル空間にメモリデータベースを抱えるプロダクトであればそれより高速に動作するんじゃないか。 アプリケーションコントローラだけユーザ空間に置いとくようなやつで。

そこで思いだしたのはMirage OSをはじめとするアプリケーションOS、そして、ハードで実装してればいいんじゃねとなり、FPGA実装のMemcacheの存在に逹した。

汎用カーネルなんていらなかったんや。

ランダムアクセスならメモリのほうに優位性があるのでそういう要件のデータベースならばメモリで実装するのが筋かな。SSD向けのデータベースって謳っているのはここらへんのチューニングがされているのかな。

ESTA日記

やったことある人は分かると思うけれどもESTAを取得しました。 つまり、また渡米してきます。残念なことに出張です。

カルトレインに乗車したり、本場のアウトバックでプライムリブやTボーンステーキを食べてきたい。 あとIn-N-Outはもう一度行ってみたいところ。呪文忘れてしまったけれども。ヤサイマシマシアブラブラみたいな。

http://estorypost.com/trivia/9-trivia-about-in-n-out-burger/

4x4(フォーバイフォー)フライズ アニマル スタイル だった。

というかルートビアフロートなんて裏メニュー知らなかったぞ。これは行く気運が高まってきた。

Markdownを併用したい

TinkererでMarkdownを使いたい。主にQiitaで書いた技術記事を同期する目的で。 pandocで変換するのも手ではあるけれどもSphinxはMarkdownに対応するようになったようなので、TinkererのディレクティブがMarkdownソースのドキュメントで動作するのか確認するつもり。 (というかMarkdownソースのドキュメントがSphinxのなかでどのように扱われるのか知らないので調査はそこからかな。doctree形式のオブジェクトに変換されるなら同様にJinja2でレンダリングできると思う…思いたいな)

絵を描き始めた

ラフスケッチだけれども。家庭内でお絵描きのブームが来ているのでものは試しとやり始めた。 久しぶりにアナログなデバイスで遊ぶのは楽しい。

ボールペンで描いているけれども鉛筆やクレヨンの表現の幅とか改めて意識するとそれも楽しい。 色鉛筆もあるようなのであとで使ってみようと思う。

../../../_images/IMG_1506.jpg ../../../_images/IMG_1508.jpg ../../../_images/IMG_1509.jpg ../../../_images/IMG_1510.jpg

CanvasのPath2D

絵繋がりというわけではないけれども。 HTML5のCanvas APIにPath2Dというのがあるようだ。

https://developer.mozilla.org/ja/docs/Web/API/Path2D/Path2D

Pollyfillもある https://github.com/google/canvas-5-polyfill

これはレタッチソフトのパスのように扱えて塗るときとかに使うのだけれども、 しかもSVGの複雑なパスとかも受けつける意外にイケるやつでもあり、 しかも衝突検知もできる超イケメン。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="./lib/polyfill/canvas.js"></script>

    <style>
        * {
            margin: 0;
            padding: 0;
        }
        body {
            background-color: rgb(0, 255, 0);
        }
        #target {
            display: block;
            position: relative;
            width: 400px;
            height: 400px;
            background-color: rgb(0, 255, 255);
        }
        #inTarget {
            position: absolute;
            left: 100px;
            top: 100px;
            width: 100px;
            height: 100px;
            box-sizing: border-box;
            border: solid 1px;
        }
    </style>
</head>
<body>
    <div id="target">
        <div id="inTarget">

        </div>
    </div>
    <script>
        var obj = Object.create(null);
        window.onload = function () {
            var target = document.getElementById('target');

            var canvas = document.createElement('canvas');
            canvas.height = target.clientHeight;
            canvas.width = target.clientWidth;

            var path = new Path2D;
            path.rect(100, 100, 100, 100);

            function f(active) {
                if (active) {
                    target.style.backgroundColor = 'blue';
                } else {
                    target.style.backgroundColor = 'red';
                }
            }
            target.onmousemove = function (ev) {
                // 衝突検知
                f(canvas.getContext('2d').isPointInPath(path, ev.clientX, ev.clientY));
            };
        }
    </script>
</body>
</html>

単純な四角とか丸での衝突検知なら自前実装してもそこまでダルくないけれども複雑なパスの衝突検知とか他に方法が思いつかないくらいこれしかできそうにない。 とか言いつつ以前どこかでカーソルの下の画像の色で検知しているのとかあったよなとかは思いだした。 ただこちらは任意の座標で検知できるのだよ!!!

Sphinxの検索インデックス

language='ja' を指定してそれっぽく検索できそうな雰囲気になったんだけれどもやっぱり日本語の検索が弱い。 とくに自然言語の検索がダメ。インデクサ何使ってるんだろう。 渋川さんのOktaviaがSphinxに使えるとか何とか聞いていたので使えるならそちらに乗り換えてみたい。

http://sphinx-users.jp/event/20141026_sphinxconjp/#sphinxconjp2014-seminar06

http://oktavia.info/ja/pages/doc/install_to_sphinx.html

http://dev.ariel-networks.com/wp/archives/4231

2016年の仕事始め

今年はまだガルパンを観ていない。観ねば。

昨年末にすべりこみ(年末調整的な)で買ったKindle Paper Whiteでドメイン駆動設計の本を読みはじめた。

ワイアーチのサイト再構築開始

検討を始めたところ。 今はシングルページで伝えるように考えていたが、そもそも内容が多いので1ページにまとめるのは何か違うように思えてきた。 伝えたい情報の構造から設計を見直す。

Kivy 1.9.1リリース

http://kivy.org/planet/2016/01/kivy-1-9-1%A0released/

TL上でKivyのリリースが流れてきていたので試してみました。 以前テキスト入力のフォントが豆腐 [] になってしまっており様子見してましたが、いつの間にか直っていたようです。

https://github.com/kivy/kivy/commit/8a853ea27f860cba2447b9bc99a59b81e6dfa7cd

これっぽい。

Buildozerというパッケージングシステムが導入されOSXでのパッケージングが簡単になったみたい。未検証。

http://kivy.org/docs/guide/packaging-osx.html#using-buildozer

MacOSXでlxmlインストールがコケる

いつからかインストールに失敗するようになっていて、まあ使わないからいいかなと後回ししていたのだけれども、 とうとう必要にせまられ調べました。結論からいうと、command line tool for xcodeが古かったようです。

http://stackoverflow.com/questions/19548011/cannot-install-lxml-on-mac-os-x-10-9

% xcode-select --install

これ実行してダイアログに従いアップデートし、待つこと数分、その後 pip install -U lxml インストールできました。

MQTTを調べ始めた

ここらへんが特徴的なかんじっぽい

  • TCP上でシンプルなパケット構造
  • Will
  • Retain
  • QoS(0/1/2)
  • ClearSession
  • $SYSトピックで統計情報が流れてくる
  • TLSは別で実装する

https://gist.github.com/voluntas/e0a90f3e22316144ed3a

http://tdoc.info/blog/2014/01/27/mqtt.html

mosquittoがサーバの参照実装 http://mosquitto.org/

pahoがクライアント実装 http://www.eclipse.org/paho/

互換テストがpahoにあるようだ。未検証。

https://gist.github.com/voluntas/558fea1445253e6dc6c2#interop-test

% python3.4 interoperability/client_test.py -d -z