Diary

@ssig33

デスクトップ Linux を 15 年ぐらい使っている のだが、あまりこの 15 年困ることはなかったと思う。

Vine Linux 2.6 あたりから常用する環境が Linux だったので、だいたい 15 年ぐらいそんなふうであると思う。 GUI にかんしてはいろいろとフラフラした結果、 2005 年ごろから JWM というのを使っていたが、最近いろいろめんどうになって LXDE に引っ越してしまった。

今日常的に起動している GUI なツールは Chrome と Franz と LXTerminal と Steam だけで、まあこれなら OS なんてなんでもいい。昔は Emacs でメールと原稿を読み書きしていた記憶があるのと Skype が必須の時代とかもありましたね。

別段 Linux だから辛いみたいなことはそんなに無かったような気するけど、記録をみると sid 常用してた時代とか 2-3 ヶ月に 1 回ぐらいインストールしなおしとかしてたから、もはや単に記憶が薄れただけかもしれない。

辛いことがすくなかったのは、なんでも Linux でやろうみたいな気持ちがなかったせいかもしれない。ゲームは普通に Windows でやっていた。

やはり革命的だったと思うのは Docker の登場で、これのおかげで「新しい MySQL を使うために sid を使う」「複数バージョンのあれこれを共存させるためにやったものがゴミになって共存させなくなったあと苦しむ」とかが起きなくなった。こういう経験があったので、 Docker とは非常に富豪的なパッケージマネージャーなのだみたいな認識がまずある。

そして なんでも Docker を介して行なわれるようになってきた現代は常用環境が Linux というだけで苦労が減る。

そして Steam Play はかなり革命的な存在で、ゲームもだいたい Linux でやるようになった。

Windows や Mac と比べてこれが使いやすいのかどうかはよく分からない。四六時中 Web アプリを作っている俺にはこれが使いやすいが、非開発者だと Chrome だけ動けばいい時代なんだから ChromeOS のほうがいいんじゃないとか思います。

Linux ずっと使ってるけど「Linux 使ってる、他の環境はクソ」みたいなことを大声でインターネットで叫んでる人みると本当に辛い気持ちになる、これがなぜそうなるのかは自分でもよく分からない。

06 Dec 2018 Thu 13:01

Cloudflare Workers 試してみた

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  if(request.headers.has("X-Testing")){
    return new Response("Hello Peaceful Shit World!")
  } else {
    const response = await fetch(request);
    return response;
  }
}

みたいなクソワーカーをデプロイすると以下のようになる

img

まあこの例はともかくとして Fastly だと VCL でゴチャゴチャ書いてた部分を JavaScript でゴチャゴチャ書けるようになるのはいいですね。契約形態的にも Fastly よりクイックスタートできるのでよい。

この層でゴチャゴチャしたものを書くべきではないという話はあるんですが、この層でこういうことをやらねばならない人達はいて、そしてそれは私のことです。

12 Nov 2018 Mon 12:58

dep から vgo に移行した

$ go mod init
$ go build

とするだけで dep から移行できたので楽でよかった、楽でよかったんだけど dep でいいじゃん感は強いし異常者の異常な思いつきを移行ツールなどで必死にカバーしているという印象は強い。

「ライブラリ作者が URL ベースで互換性を維持しつづければ複雑なベンダリングツールも中央集権ライブラリリポジトリもいらない」という初期の発想が間違っていたことを認めて gogems をはやく作ってほしいですね。

23 Oct 2018 Tue 11:26

最近めっちゃ運用安定してる

16 Oct 2018 Tue 17:26

ママチャリ問題

ママチャリで画像検索するとこう

img

ママチャリ 電動 だとこう

img

ここで問題となるのが、電動のほうででてくるこれが「ママチャリ」という共通認識を得られているのか?ということです。このタイプの小径、低重心、長ホイールベースの自転車、今東京の子育て世代の多くの人が乗っていて、東京では本当にこれを頻繁に見ます。しかし東京以外の都市でこれが氾濫している印象はありません。

ではメーカーがこれを何と呼んでいるかについてですが、

パナソニックは「子乗せ」です。

img

ママチャリという用語は性やその役割についての現代の認識からするとアナクロであるので使っていないのかなとも思いますが「ママ」ともありまあママが使うこと前提でいろいろ謎です。単に「これはママチャリではないよな」と思っただけかもしれない。

ブリジストンは「子ども乗せ 電動アシスト自転車」です。

img

ブリジストンはあきらかに男女平等に配慮しています。

ヤマハは「ファミリーモデル」です。

img

  • 「ママチャリ」という用語自体がもともとメーカーや公共団体が使う正式の用語ではなかったこと
    • 「軽快車」のような言葉が使われている
  • 「ママチャリ」という用語が現代の性の問題においていささか不適切であること
    • パナはこのあたり無頓着のようにみえますが、、、
  • 東京周辺でしか本格的に普及していないこと
    • 坂が多く道路環境も比較的過酷、かつ都市が無秩序に広がっており長距離移動を求められるにも関わらず駐車場が不足という東京の環境に高度に最適化している
    • 値段が 15 万円前後と高価であり地方の所得からすると手が出づらい
  • 根本的な問題として日本語およびその文化においてある概念に名前をつけて把握しようという考え方が薄い

などの様々な理由があり「これがいったい何であるのか」という共通の理解が発生していないと僕は考えています。みなさんはこれが何だと思いますか。

27 Sep 2018 Thu 13:59

Docker を用いてソフトウェアをデプロイするとソフトウェアの品質が上がる

http://b.hatena.ne.jp/entry/bonotake.hatenablog.com/entry/2018/09/06/072800 ここをながめていて思ったことなんですが。

Docker はデプロイにのみ関連するツールであって、ソフトウェア開発の本質には一切関係ないものだ、という考えの人をたまに、いや、よく見る。これは全く間違っていて、 Docker を用いて継続的にソフトウェアをデプロイしているだけでソフトウェアの品質は上がります。ソフトウェアの品質のような問題について考えている人は Docker とそのメンタルモデルに興味をもつべきです。

本来こうした問題について僕がなにかを言う必要はなくて The Twelve-Factor App という文章を読めば十分です。あるいは 大切なことはだいたいHerokuで学んだ というこの文章も非常に有用だと思います。いやこれ Heroku の話じゃんとか思わないでください。 Docker はもともと Heroku クローンである dotCloud の実行エンジンとして開発されたものであり、 Heroku は Docker とそのエコシステムが目指すもの、そして乗り越えるべきものだったのです(部分的には乗り越えていますが、 Heroku は未だに有力なプラットフォームです)。

ところで Docker を使っているだけで何故ソフトウェアの品質が上がるかということを簡潔にまとめたものを改めて書いておくのは悪いことではないと思ったので書いておきます。

  • サーバーのファイルシステムなどの「状態」に依存することが出来ないので、ソフトウェアの可用性が上がる
    • よりスケーラブルになる
    • メンテナンス性が上昇する
  • 本番環境、検証環境、 CI 環境、開発環境などで同じコード、同じ環境を使用することが出来るので、不具合が早期に発見される
  • ログの集約が簡単なので、不具合の発見がはかどる
  • いざとなれば簡単にロールバックできるという環境では、大胆な変更も許容されるから、最終的に得られる品質は高くなる

ほかにもいろいろあるとは思いますが、すぐに思いつくこととしてはこんな感じですかね。

19 Sep 2018 Wed 14:06

ここ数年いろんな勉強会でずっとテストの実行に関する話をしてきて 分かったことがあって、やはり多くのソフトウェアエンジニアはテストに興味をもっていない。コストとしか意識していないのだろう。ただし少数のエンジニアが熱烈にこの分野に関心を持っているということもよく分かった。

あんまり健全じゃないよね、これ。

19 Sep 2018 Wed 13:54

ゴリラ

18 Sep 2018 Tue 11:21

ねむい

18 Sep 2018 Tue 11:19

CircleCI あんま好きじゃない

12 Sep 2018 Wed 22:00

Firebase でバックエンドエンジニアがいらなくなるは正しくない と思っている。

用語定義が曖昧だが、「バックエンドエンジニア」という言葉でなんとなく想像されるものとしては、 Rails とか Laravel とかでデータベースに CRUD する Web アプリケーションを書ける人を指すと思う。違いますかね。そんなに違ってないと思うが。

Firebase でこれらの知識をもつ人が不要か?というとある程度の規模、機能を持つアプリを作ろうと思うとこれは必須になる。 Firebase のデータベースは機能が少なく(とはいえ Firestore はわりと「これで十分じゃん」ではあるが)、なにか複雑なことをしようとすると、すぐに Cloud Functions という機能に頼ることになる。

Cloud Functions はようするに Firebase の Lambda + API Gateway で、 Firestore になにかが保存されたことをトリガーにして「サーバーレス」のコードが起動される。

典型的にこのトリガーを使うのは以下二つの用途であろうと思う

  • 全文検索
    • Firebase に全文検索が実装されていないので外部の全文検索エンジンを使う必要がある
    • 2018 年現在、 Algolia というサービスを使うように推奨されている
      • Firebase の話をあんまり関係ないがこの Algolia は出来がよく大変に便利、 Firebase を使わない人も検討の価値あり
  • BigQuery
    • 集計クエリとかは BigQuery に吐いてもらう必要があるだろう、 Firestore への保存をトリガーに BigQuery にコピーするコードを書くのは簡単

そして Cloud Functions には API Gateway 的な機能が高度に統合されており、 AWS でやるよりも簡単にサーバーレスな API を作成、デプロイすることができる。

典型的にはこれは以下のような用途で使用されると思う

  • 全文検索
    • Algolia で検索行なうときにアプリの設計次第では適切に権限が制限されたアクセストークンを発行する必要があるが、これをクライアントサイドで行なうことは原理的に不可能なのでサーバーサイドで行なう
  • BigQuery
    • BigQuery に実際に SQL を投げて結果を返す API はサーバーサイドに作るほうが何かと楽だし、適切にクオータなどもかけられる
  • 認証
    • Firebase が公式に認証フローを用意していないサービスでも Cloud Functions などを使ってサーバサイドを実装すれば Firebase へのログインに利用可能、これについては前に書いた
  • 決済
    • Firestore への保存をトリガーに決済を行なう形式は危険、なぜならトリガーは「確実に一回実行されること」が保証されない。複数回走る可能性がある。

こうした API を作成するのに必要な知識は、

  • node.js で普通に Web アプリを作る知識
  • HTTP ヘッダーを使って認証をする現代で普通のやり方

などであって、極普通にバックエンドエンジニアの知識であろうと思う。

Firebase で本当に不要になるのは「インフラエンジニア」だが、これも実際にアプリが大きくなってくるとどうなるか分かない。すなわち

  • CI/CD 環境の整備
  • 各種デプロイ、データアクセスの権限の整備
  • Cloud Firestore などのデータベースの運用
  • Cloud Functions 経由で MySQL などを利用する場合はそれらの整備

といったタスクが出てくることは明らかで、これを解決できるのは、その人がその会社でどのように呼ばれていようと「インフラエンジニア」であろうと思う。

しかし、 Firebase を使う場合でもこうした人達が必要で、結局 Firebase を使う意味はなく、従来のとおりのアプリ開発が結局優位性を持つのか、というとそうではないと思う。

  • 多くのことをバックエンドエンジニアとインフラエンジニアに頼らず出来る
    • 彼等は不要にならないが、少なくはできる
  • Realtime Database によるデバイス間同期は極めて強力

といった事情で極めて強力、2018 年に 1 からアプリを作る場合最も有力な選択肢の一つだと思う。

31 Aug 2018 Fri 11:28

ghq で clone したものを peco で検索したあと cd して tmux を開く というようなことをコマンド一発でいけるようにした。

前提となる環境としてはghqを使ったローカルリポジトリの統一的・効率的な管理について - Kentaro Kuribayashi's blogあたり見てほしい。

結論からいうと以下のようにした。

alias opentmux='tmux -2 new-session -s $(pwd | awk -F "/" '"'"'{ print $NF }'"'"') || tmux -2 a -t $(pwd | awk -F "/" '"'"'{ print $NF }'"'"')'
alias gcd='cd "$(ghq list --full-path | peco)" ; opentmux'
  1. ディレクトリ名で tmux のセッションを作ろうとして、失敗したらその名前のセッションをアタッチするという alias
  2. ghq で検索して cd したあと ↑ を叩くという alias

を登録しました。ぼくは以前から tmux でとにかくぐちゃぐちゃにセッションを作ってしまい、同じディレクトリを開いているセッションが大量に作られたりして破滅していたのだけど、これでかなり便利になった。

30 Aug 2018 Thu 18:00

ConoHa 捨てる作業完了した

26 Aug 2018 Sun 22:35

Lightsail 安くなって ConoHa を捨てる決心がついた

25 Aug 2018 Sat 18:00

2ノードだと落ちるときは落ちるな

07 Aug 2018 Tue 13:15

えび

03 Aug 2018 Fri 19:57

多摩のビル火災が AWS の予定地だったことを報じる必要はないとか言ってる人たちに言いたいことなんですけど

Amazon が普段通販サイト Amazon への納入業者を買いたたく感覚で建設業者を買いたたいた結果無理な工程で安藤ハザマのようなダメ会社に発注することになって、安全管理がずさんになってこの大事故につながったみたいな可能性結構あると思うんですよ。

IT で無理してもせいぜいが精神壊す人がでるぐらいだけど建設で無理すればこういうことになるし、今回はまあ死んだの作業員だけだけど周辺住民にだって被害が出た可能性もある。 Amazon に発注者としてこの事故に責任があるかどうかとか検証し報じる価値のあることだし、第一報でとりあえず「発注者は Amazon らしい」と報じることに意味はある。

自分たちの身の回りの狭い常識だけで話すんなよ、死者出てるんだし。

29 Jul 2018 Sun 09:35

転送量課金で滅んだ

08 Jul 2018 Sun 01:32

かに

06 Jul 2018 Fri 16:29

ここは Heroku に戻した

21 Jun 2018 Thu 08:25

CDN でごまかしつつバックエンドは GKE のヘボいサーバー みたいな構成に急速に移行している。

18 Jun 2018 Mon 15:45

ラーメン

18 Jun 2018 Mon 15:20

ねむい

18 Jun 2018 Mon 15:20

バックエンドを Heroku から GKE に切り替えてみた

18 Jun 2018 Mon 14:51

ねむい

13 Jun 2018 Wed 16:30

記事の読み方 みたいな話なんだけど、こちらの記事をご覧頂きたい。サッカーに興味がないという方もとりあえず見てほしい、僕も一切興味はない。

見出しからいろいろと力強い記述が続くのであるが、結局のところこの記事で意味のある部分は以下のところだけである。

1次リーグ敗退でも2勝1敗など健闘した場合には試合内容などを見た上で判断が下される見通し。監督交代の場合はU―21日本代表監督を兼任する森保一コーチの昇格が有力視される。

「2 勝できれば、現監督は続投で、そうでなければ解任。後任第一候補は手倉森ではなく、森保。」それだけが重要な情報なのであって、あとは意気を示しているだけであろうと思う。しかし、はてなブックマークでも Twitterでもなんでもよいのだが、わりと多くの人がそのように読み取れていないように見える。

サッカー協会としては「善戦してもせいぜい 1 勝」「2 勝できれば奇跡のようなものなので緊急登板の監督に続投の褒美」となどとやる前からハードルを可能な限り下げているのは明らかで、まあある意味彼等は現実を見えてはいるのだが、そのように記事を受け止めている人は少ない。「8 強とか夢見るな」とバカにしている人は多いが「最初から 2 勝で十分とか負け犬の精神」とバカにしてる人はあんまり、というかほとんどいない。

ほんとこういうのどうにかしないといけないと思う。

03 Jun 2018 Sun 22:16

最近 Conoha 不安定

22 May 2018 Tue 00:19

アメリカの安い VPS みたいの探すかー

22 May 2018 Tue 00:19

ようやくムサンナ県の情勢が頭から抜けてきた

07 May 2018 Mon 11:56

Next