Skip to main content

ログ取得ツール

Category: コンピュータ

DAZN考察

DAZNに勝手なことを言うのが流行りなのかと思うので便乗していこう。

見てると主要なやりとりである動画データ部分はakamai(=当代最強のコンテンツデリバリ屋)を使っていて、たまに挟まってJSONでメタデータをやりとりしているcws.conviva.comはAWSのELBを使っている。これ、対処した後の状態かもしれないが、問題がある構成とは思えません。

あとweb font(?)を置いているcdn.dazn.comは自前のCDNのようなホスト名だが、これもAWSのCloudFrontでレイテンシは10-20msだから国内だろう。Server: AmazonS3だから、スタティックコンテンツとしてS3にwoffを置いてCloudFrontを噛ませているんじゃないかと。常識的。

だから、アクセス集中に対応しきれないとかいう問題ではないと思う。Jリーグ中継というレベルであれば、akamaiに十分なお金を払えば楽にさばけるデータ量。当然、akamaiからのレスポンスタイムはTTFB(Time To First Byte)で見ても10ms未満で明らかに国内から来ている。気になる部分としては、cws.conviva.comのレイテンシが常に100ms以上かかっているが、これはAWSのus-west-2リージョンを使っているため。小さいデータなので問題なさそうにも思えるが、もしレスポンスタイムが効いてくるなら日本向けにはap-northeast-1(tokyo)を使えば少しは良くなると思う。

gogsのバックアップの罠

GitLab.comでバックアップが機能してなかった事件の話を見て、まあよくある話だよね、と思ったんだ。実際に私の人生においても、周囲にいるベテランのエンジニアが機能しないバックアップによってデータロストをする、という経験が複数回あるんだよね。自分はさすがにそういうポカはやってなくて、それはそもそもバックアップしてなかったからだ、という…基本、手で作ったファイルは全部リポジトリかクラウドサービスに入れるようにしてるからね。

そんな私が、その「リポジトリに入れる」ために自宅内gitサーバとしてgogsをRaspberryPiで動かしているんだけど、gogsはgogs backupというコマンド一発でバックアップすることができる。しかし当然のようにgogs restoreコマンドはない。まあその辺はいざとなったら自分で何とかできるだろう。いつの間にかgogs importコマンドができていた。これでいけるのかな? 試してないけど。

github, gitlab, gogs…

github.com, github enterprise, gitlab, gogsをそれぞれ使っているので、それぞれの感想。

  • github.com
    • 公開できる
    • 公開されているプロジェクトが多い
    • プライベートリポジトリも作れる(有料)が、いまいち使いどころが…
      • 隠したいならそもそもgithub.comには出さない
      • そうじゃないならパブリックにするでしょ
    • 新しい(github enterprise=社内の人が計画立ててメンテ、と比べてメンテナンス頻度が高い)
    • GFMとかPRとか何かと使いやすい
  • github enterprise
    • 中でgithubで開発するときは必須
    • GFMの扱いが完璧
    • これでgithubに慣れられるという教育的効果もあるんじゃないかと
  • gitlab
    • issueとPR(merge request)はgithubよりも使いやすいと思う
      • issueのページでボタンを押すだけでブランチを作れる。そのままそこにcommitしていける
      • githubだとissueに対応するブランチをgit checkout -b issue_Nで作ってPRにするときにhubコマンドでhub pull-request -i N
      • (追記) merge requestやっぱり使いにくいかも…WIPの付け外しが簡単なのはいいけどもissueをmerge requestに変換できない! githubみたいにissueとPRの番号が共通じゃないので原理的にできないっぽい!!
    • git-lfsに完全対応
    • githubに慣れているとmarkdownの描画の行間スペースに違和感がある
    • アイコンが気持ち悪い
    • プロジェクトページが見にくい
  • gogs
    • 基本機能はだいたいカバーしている
      • webhookにも対応してる
    • 多少の不便はある
      • git-lfsに対応していない
      • PRをマージしてからブランチを削除するボタンが出てこない
      • gogs dumpはあるけどrestoreがない
    • デプロイが簡単
    • 動作が軽い
    • UIの多言語対応。日本語も完璧に翻訳されている

今のところは、、、

ブックマーク問題

del.icio.us(旧delicious.com)の運営状況が本格的にダメな感じになっているので乗り換え検討。私には気になったURLを記録してタグとコメントをつけてブログのサイドバーに貼り付けたい、という欲望があるわけですよ。どうするべきか。あとdel.icio.usに貯めたURLとタグはどうしてくれようか。 とりあえずexportは動いたのでデータは抜き出した。どっかに持っていくか? del.icio.usはimportが動いてなかったなそう言えば…ダメだなこいつらホント。 それとも自分で書くか? DBの定義はURL/title/descriptionのテーブルとタグのテーブルとN:Mのリレーションのテーブルだろ? そしてクエリはleft outer joinしてgroup byとgroup_concat(tag.name)/string_agg(tag.name, “,")でviewを作るか。 個人用なら.mhtとか.webarchiveのデータもDBに突っ込んで後で見られるようにもしたいなぁ。スクリーンショットの.png(or .pdf)と.mhtを両方持っておくのがいいのかも。スクリーンショットはphantomjsで撮ろう。.mhtはどうやって取得しようかな。 ブックマークってrailsとかでも最初のサンプルアプリの題材ですよね。さすがに自分で書くのは馬鹿らしい気もする。モバイル対応とかも思えば、ownCloudのブックマークプラグイン? AndroidのshareとかChromeのボタンとかでサクッと登録したいんだよなぁ。del.icio.usはブックマークレットも不安定だし、モバイルアプリもここ数年ちゃんと動いてないという印象(もうずっとモバイル環境ではdel.icio.usを使ってないから分からない)。

Nougat

ルヴァンってプレミアムの後継(?)のクラシカルは割と売ってるんだけど、リッツの後継の無印ルヴァンはスーパーにあんまり売ってないですよね。リッツの後継のほうの味を確認しておきたいんだけどー。 というわけでNougatが落ちてきたのでNexus5Xに入れてみました。入れてみたはいいけど、何が不快かって、FBReaderが遅くなったこと。EPUBでダウンロードした論文を電車の中で読んだりすることがあるんだけど、なんか動きが遅い。設定の問題か、と思って設定を少しいじったりするんだけど、設定のダイアログから文章の表示に戻るのが遅い。図を拡大して吟味した後で文章の表示に戻るのも遅い。これは耐えられない遅さ。要点をメモする気も失せる。以前はFBReaderで読みつつGoogle Keepにメモするというのが割と快適だったんだけど。なんとかならないかな。他のEPUBリーダーを試そうか、それともEPUBをもうちょっと小さいやつに分割したら軽くなるのかな。今は全部を1つのファイルにまとめたやつを読み込んでるんだよね。それとも久々にKoboを引っ張り出してそっちを使うか… 他はまあ普通。利用感覚はだいぶ変わった。全体的には悪くない。画面分割も対応アプリがもっと増えてくればかなり使えそう。ちょっと重くなったと感じる部分は他にもあるんだけどね。 一番問題なのは、Marshmallowの時はこいつは「マーロウ」だと思えて確かにハードボイルドな感じだったんだけど、「ヌガー」はかなり間抜け…というどうでもいい話も。

TB45…その地獄への道

みなさ〜ん、Thunderbird 45使ってますか〜 ひどい目にあってませんか〜

  • まず、Check and Sendが死んだ。ぐぬぬ…
  • 次にQuickTextが死んだ。これは…うんこうんこうんこ…

QuickTextは偉い人がパッチを作って.xpiを配布している→必読 これでどうにか持ち直した。いちいち「(自分の名前)です」「お世話になっております」「お疲れ様です」「ありがとうございました」「よろしくお願いします」なんて心をこめてキーボードで打ちたくねーんだよ! gmailはこれがないからメインでは使えないんだ。TBで使えないなら乗り換え先を検討するレベル。まさにキラーエクステンション。 Check and Sendはどうにもならない。これがないまま、気持ち悪い文字列つきのアドレスをToやCcにつけてメールを送るのが気持ち悪いんだが?

B2移行その後

S3→B2計画のその後。 前回のエントリを書いた時には、手元のローカルディスクがマスターデータであることを忘れていた。データは手元にあって、そのバックアップがS3という位置づけだったのだ。つまりローカルディスクが破損していない現状だとS3からのダウンロードという作業やコストは必要ない。 で、ローカルディスク(HFS+フォーマット)をRaspberry Piにつないでマウントし、だらだらアップロードを繰り返して、家族写真のデータを全部B2に上げた。 結局、B2のマルチパートアップロードは使わずに、大きめの動画ファイルも1本のストリームで送りきった。まあ大きめっつってもそんなに大きくなくて10GBを越えないくらいなので、特に問題はなかった。 キャッピングの機能が割と便利で、$0.5/dayに設定しているが、それでも3TB入る。100GBなんて微々たるものだ。 性能に関してはやはりS3のほうが速いかな。レスポンスも、スループットも。S3と違ってdelimiterを指定できないのでディレクトリみたいな使い方はできないが、自分には関係ない。 当面は両方使って、問題なさそうならS3のほうは消そうと思う。この圧倒的な価格差はでかい。まあ動機の99%は価格だから、S3が価格改定したらまたS3に戻ることもありうる。

Gogs

Gogsなかなかいいですね。githubクローン。この種のソフトウェアではgitlabが最も著名だと思いますが、GogsはGolangで書かれたgithubクローンで、Golangで書かれているだけあってデプロイがシンプルで、割と高速に動作する。webhookもあるから、serfとか使うとpushされたイベントを拾って何かコマンドを実行したりといったことができる。Raspberry Pi用のバイナリも配布している。gitlabはRailsだからRaspiには荷が重いかなと思っていたところ、渡りに船とはこのことか。 Raspberry Pi(宅内サーバとして使っている)のnginxにこんな感じの設定を入れて。

location /gogs/ {
  proxy_pass http://127.0.0.1:3000/;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Host $host;
  proxy_set_header X-Forwarded-Server $host;
  proxy_set_header X-Real-IP $remote_addr;
  client_max_body_size 100M;
}

location ~ /gogs/(assets|css|img|js|plugins) {
  rewrite ^/gogs/(.+) /$1 break;
  root /home/git/gogs/public/;
}

で、systemdのファイルは配布物に入っているやつで。これで自宅内からは http://raspberrypi.local/gogs/ でアクセスできる。 webhookの受け先にはhokoってやつを持ってきて使っている。systemdのファイルはGogsのを参考に作って、gogs dumpしてS3にputするスクリプトを書いて、pushされたらそれが実行されるように設定。自分用であればバックアップは定時実行よりもこのほうが良いだろう。 Gogsはとりあえず、gistがないのと、PRをmergeしたあとにブランチを削除する操作をブラウザからできないというのがちょっと気になるな。自宅用では使わないので不便ではないんだけど。gitlabは知らないけどgithubにはあってかなり便利な機能。これissueにあるかな?

おれ、この戦争が終わったらS3からB2に移行するんだ…

あのBackblazeがいつの間にかオブジェクトストレージに参入していたと聞いて、早速アカウントを作っておいた。B2というのはそのサービスの名前ね。Backblazeはオンラインバックアップ屋さんで、ハードディスクの運用に関しては割と知見を持っているっぽい会社。ディスク故障率のデータを公開していたことが記憶に残っている人も多いだろう。 B2の価格はS3(AWS)の半分以下なんだぞ。それどころか1/4とか1/5くらいの値段に見える。これは安い。こんな値段で儲かるのかこいつらは。中身はRAIDXのY重化みたいなことはしてないと見た。Erasure Codeでも使って冗長度をある程度持ちつつも安上がりにしてるんだろうと思う。たぶん。 https://www.backblaze.com/b2/cloud-storage-providers.html ←圧倒的ではないか… AWSに毎月いくら払ってるんだおれは。調べたら$3-4くらいだった。最近アンケートに答えていくらかクーポンみたいなのを貰ったな。で、これを原資にしてB2に移行しようといま計画している。 いま100GBくらいの家族写真たちをS3にバックアップしているけど、これをB2に移せばなんと月に$1未満で済む計算になる。安い。安すぎる。安すぎですだー。年間数千円かけていたのが、千円切るよこれ。しかもTokyoじゃないから関東が壊滅しても写真データが生き残る! まあAWSでTokyoリージョンを選択したのは私の間違いですが。 で、見てみたんだけど、うーん、APIはS3互換ではない。いろいろ非互換がある。S3はMD5だけどB2はSHA1だったり。あと全体的に後発なだけあってB2のほうが使いやすそうなAPIという気もする。まあ大して変わらないか。分割アップロードもある。普通にコマンドラインツールを使ってアップロードできることまでは確認した。公式クライアントの他に、Golangで書かれたコマンドもあるようだ。S3からの移行を一発で行けるコマンドはないのかな。あとはスクリプトにするか、自作のS3関連コマンドをB2にも対応させて一発で行けるようにするか。私が使うことはなさそうだがCyberduckにも最近(先週?)B2に対応するコードが入った。リリースされたかどうかは不明。 S3 Tokyoからのダウンロード料金は$0.140/GBかかる。つまり100GBなら$14程度。割と安いですね。B2もS3もアップロードの転送料金はかからない。EC2の同じリージョンに送る場合はタダだけど、EC2から外に出すのにやっぱり$0.140/GBかかるので、S3から直接外に持って行ったほうが安い。借りているサーバ(転送量課金がないやつ)を使って移すつもり。転送量の無料枠を使ってちんたらやるというセコいやり方も考えたが、保管料もあるから得にはならんだろう。1GB無料だからって、100GBの転送に100ヶ月かけるのはさすがにないね。 B2は無料枠(10GB)があって、無料枠ぶんはクレジットカードを登録せずにお試しできるという太っ腹なところも見せている。ある程度データを上げてみて、アップロードの快適さでも試してみるかなー。 とは言え、S3はAMRやAMLの入出力にも使うから、B2があればS3を全く使わなくなるっていうわけじゃないんですけどね。

今後起こること

いまのところDeepMind/Googleしか巨大なプレイヤーがいないのかな。でも、だんだん現れて消えて、そしてまた現れてくるんだろう。DeepMindの人は今は無二の天才と称賛されているが、常に上には上がいる世の中、天才はいつまでも一人ではないだろう。今回話題になった囲碁だって1位の打ち手は18才だよ18才。どんどん出てくるんだ。 いずれにしても、私の仕事はなくなるんだと思う。子供が成人する頃までは稼がせてほしいものだが…どうかな。未来人が攻めてくる時代だからな今は。逃げきれると思う? まだ逃げきれると思ってんの?? それで、私の失業までに起きることを当てようかと。 まず、割と難しい理論を使った単純な目的のアルゴリズムの考案というのは機械に取って代わられるだろう。例えば暗号とか圧縮(要はエンコード/デコード系のアルゴリズムね)とかがこれに当たるな。暗号で言えば今は楕円曲線暗号が全盛期なので、いきなりこれを壊すと問題が大きいため、既存の捨てられつつある暗号を破るアルゴリズムを機械に考えさせるという仕事を誰かが実施する。そして、思いもよらないやり方により、かなり安い計算コストで暗号が解読されるようになる。そして次は楕円曲線暗号が解読される。最後に機械が新たに暗号化アルゴリズムを考えだして、しばらく使えるねという判定を下すので人類はそれを使いはじめるだろう。その理論は誰にも説明できないが、既存の説明可能な暗号が全部解かれてしまうので…。 さらに、似たことがいろんな分野のアルゴリズムに適用される。人類は欲望に正直なので、カネが絡むアルゴリズムがその主戦場になる。そして欲張りな賢者に富が集積されていく。人類はそれを受け入れるか、破壊して再分配するかの選択を迫られるだろう。革命が起きるか、抑圧が勝るか。近年のマインドから言えば、貧者ほど抑圧を好み、貧者ほど貧しさを自責と見なす傾向があるから、もはや革命は起きないような気がする。実際に構造を知っている人は不公平だということが分かっているけど、そうでない人にとってはそうでない、みたいなのがあるよね。知的生産者に限って、AIに負けるようなら価値ないじゃん、みたいに考えていそうだ。実際に最初に切られるのが知的生産の分野なのだがね。 ただ経済のしくみってのはうまくできているので、我々のレベルの人間(って何?)が貧困にあえいで困窮するっちゅうことはないんじゃないかなと楽観している。オレ困窮してないっすよ。オレを困窮させたら大したもんっすよ。 残りそうなアルゴリズムは対象データの少ない、一点ものの処理。私なんかは今は割とそういう一点ものの処理をなぜか(無駄に?)自動化する、みたいなことをやっているので、少しは寿命が長いかもしれない。まあこれも少しは、というレベルなんだけどね。 あとはクリエイティブ系なところね。いろんなデザインとか作画作曲作詞作文…まあ、いろいろあるんだろうけど、何か独自に作る系の仕事は軒並みやられるよね。 そして、単純労働というのは意外に機械に取って代わられることが少ない。これはまだまだ人間のほうが単価が安く、故障にも強く、故障しても交換しやすいためだ。従って、ある程度の頭脳を持った階層の人々が最初に仕事からあぶれると思うんだ。例えば工事現場の交通整理みたいな仕事を機械にやらせる必要性が見当たらないでしょ。コンビニバイトだって人間のほうが有利だ。ああでも、力仕事は別か。 となると、単純労働の軽作業で長時間働く…というのが今後の有望な生存戦略なのかな? これならまず失業しない。そのかわり人間同士のパイの奪い合いが今より激しくなって単価はどんどん安くなる。つまり常に給料下げてれば永遠に失業しない。凄い。天才か。 ずいぶんだせー未来だなおい(笑) あとは興行の類。機械と機械の争いを、チケット代を払って見に行く人間はいない。今だって、機械のほうがチェスが上手いからって、機械対機械の試合でカネ取れないでしょ。そのへんの原理は全部同じだよ。相撲ロボットやサッカーロボットができて、例えばそいつのパスが中村憲剛よりも有意に上手いと証明されても、やはり僕は等々力に行って青いチームを応援するだろう。