ToDo:
人間、ちょっと難しい問題が解けると嬉しくなるので、特に重要性のない、ちょっと難しい問題を見つけて解くのに夢中になってしまう問題がある
でも多くの場合、本当にやった方が良いのは、
であることが多い
このへんに僕が趣味と仕事のコーディングが全然違う、と感じてる理由があるように思う。趣味だと僕は属人性全開のコンテストとか大好きなのだけど、仕事の場合、「必要な簡単な問題をたくさん解いてたら、全体としては非自明な、有用性のあるものができました」みたいな開発が好きで、あまり仕事で属人性多いことやりたくないなあ……と思っている
(12:00)
の、直交性のあるツールをたくさん作って、組み合わせて使いましょうてやつ、その哲学そのものは僕も好きだし、学ぶことの多い教えだとは思っている。なんだけど、自分の仕事に適用しようとしない方が良いと思ってるんだよな。というか、仕事で UNIX 哲学的にバラバラなツール群としてデザインされたものを見ると、げんなりするレベルなので、嫌いといっていいレベルかもしれない
なんでかっていうと、それが真に UNIX の10%程度にでもうまくいっているという例をほとんど見たことがないから、という気もする。 djb が例外くらいの気持ち
バラバラのツールでまとまった機能を実現させるのであれば、そのバラバラのツールが何を、どういうふうにやりとりするか、というのを統一しないといけない。 UNIX であれば行指向のテキストファイルをパイプでやりとりする、みたいな
また、どうすれば使いかたがわかるか、というのも統一しないとわけがわからなくなる。 Linux 環境であれば --help か man でまあだいたいわかる……が info とかを見た方が適切なものがあったり、 Linux 環境ですら完全にうまくいっているとも言えないように思う
もっと UNIX ツール群自体が微妙に感じる部分として、コマンドライン引数があると思う。 cp/diff -r と ls/chmod -R など、このコマンドは似た意味だけど違うオプションなんだなあ……となることは結構あると思う
コマンドライン引数の名前に整合性が取れてないけど、普段そんなに困ってないのは、 UNIX ツール群はそうはいってもおおむね整合性があって、単にたくさんの人がすごい回数使っていて、みんなが共通言語として記憶したから、なのかなあと思う。そして、そこに仕事のプロジェクトで UNIX 哲学を適用しようとするのを微妙に感じる理由がある気がする
仕事のプロジェクトだと、使う頻度も、使う人も UNIX ツール群と比べるとそんなに多くなくて、このプロジェクトのオプション体系はこういう感じなんだなー、というのを学ぶコストがペイしないように思う。 API 経由でモジュール群が連結されていても、プロジェクトごとのお約束とかを覚えたりするコストはどうしても発生するけど、プログラム言語がしばっているぶん、任意の文字列が与えられるオプションに比べると、流儀を覚えるコストは少ない、と感じる。 -help なのか --help なのか、複数入力与える場合は --input x --input y なのか --inputs=x,y なのか、構造化データを受け渡しするこのツールはタブ区切りを受けるのか JSON を受けるのか……などなど
あとたぶんもっと重要なこととして、コンポーネントごとにツールを分けて柔軟な組み合わせができるようになったとして、その柔軟性はなんのためなのか、というのがあると思う。特定の組み合わせでしか意味がないような組み合わせにたいして、ツールがわかれていると間違えて使いうる可能性を高めるし、適当なラッパなんかを提供して間違えないようにしたとしても、そもそもツールをわけるために払ったコストはいったい……ということになる
例としては、 uniq なんてのは sort の後で使われることがほとんどなので、 GNU sort には -u オプションがついてたりする。本来の UNIX 哲学的には微妙なんだろうけど。まあでも uniq は -c をつけたくなることがすごく多くて、これが sort に無いのでなんか結局 sort | uniq -c とやっている。話がそれるけど、 UNIX ツールの(たぶんあとづけの)利点として語られるパイプライン並列は sort+uniq の例では適用できなくて、たぶん、 uniq は速すぎて sort の中でやった方が余計な移動が無くて速いと思う
あとまあ C コンパイラのプリプロセッサとコンパイラとアセンブラのバイナリを分ける話。今時はプリプロセッサはコンパイラが内蔵していて、アセンブラも clang とかだとアーキテクチャによってはコンパイラが持っている。これ、 UNIX 哲学的には、合体させない方が良かった、ということになるんだろうか。あと、昔の UNIX のコンパイラだと、コンパイルフェーズすらバイナリがわかれていて、構文木を作るフェーズとコード生成するフェーズで別バイナリだったのだけど、これもそれが良かった、という主張になるんだろうか(当時はバイナリサイズの制約て話だったんじゃないかと思う)
なんか書くのあきてきた
とか言いつつ、最初に書いた通り UNIX 哲学それ自体はそれなりに好きで、 UNIX ツール群は大好きなんだけど。仕事で書くならライブラリたくさん作ってくっつけてく方が良い気がするんだよな
(08:59)
僕は今でも https://reservoir.tumblr.com/post/68943475/971006-%E5%B0%91%E5%B9%B4%E3%81%AF%E8%8D%92%E9%87%8E%E3%82%92%E7%9B%AE%E6%8C%87%E3%81%99-id-indexhtmlv-112 を信奉する中二心を維持しているので、防衛的特許と言われてようがなんだろうが、特許と言われただけで心拍数が上がる感じがある
(11:56)
長年、日本語ではなんというのかさっぱりわからん単語の一つだったのだけど、今日検索したら「水をさす」というのが出てきて、なるほどー!と思った
improve もよくわからんとずっと言ってるのだけど、それは「いや、改善でしょ?」と言われる。まあそうかもしれんのだけど、改善と improve 、割と語感違うくない? improve の方が軽いというか……
(22:26)
大学の時、「セキュリティの人は変わった、気難しい方が多い。やっぱり攻撃とかを考えてると性格が悪い考えかたをしていくことになるのかな」などと先生が言っているのを聞いて、そんなもんかな、と思っていた
会社で働くようになって、多くはないけど、関わったセキュリティ専業の人は、全て良い人だった。グーグルは押しなべて平均より性格の良い人が多い集団だったと思うけど(おかげで僕は「貧すれば鈍する傾向が強い」の確信度を高めた)、その中で見ても良い人達だったように思った。
まあ偶然いい人ばかりと会ってたのかもしれない。実際、プロダクトを作っている人の「セキュリティレビューが厳しくて〜」みたいな愚痴だかなんだかを聞いた記憶も結構ある
けど、僕としては、ローンチを止める強い権限を持つだけに、好ましくないコミュニケーションをしていると仕事にならない、て感じなんじゃないかなあ、と思っていた。というのは、セキュリティというのはどこまでいってもトレードオフで、「薄い確率でセキュリティやばいからローンチできない!」て言い続けると永遠にローンチできないことになるので、そのあたりをちゃんと理解している人は、かなり丁寧に、問題点を整理しつつ、お互いの妥協点を探ってくれる印象があった。
たとえば、このシステムは A と B が良くなくて、 A は簡単だからなおしてほしい、 B は本当は X を使うのがスジなのだけど、それは結構大変でローンチが遅れてしまうから、とりあえず現状でいいけどハック Y を入れてゴマかえば attack surface はだいぶ減るから、ローンチ後に全力で X に置き変えてね、みたいな
逆に、セキュリティ本職でないけど詳しい人がセキュリティのアドバイスをしてくれてたこともあって、まあその人個人の資質が大きいのだろうけど、その人は原則論的な主張が強くて、やりにくいこともあった。その人はとても優秀なのにも関わらず、なかなか昇進できなかったのだけど、まあそのコミュニケーションスタイルのせいだろうなあ……と思っていた
なんだろうな、個人的には、実際のプロダクトに密接に関わる、完璧ではないが、費用対効果のうまい落としどころを探す……みたいなセキュリティが結構好き
(11:47)
https://github.com/systemd/systemd/issues/3302
一行 2k までしか fgets で読んでないから、 2k 越えのぶんが次の行として解釈されるみたいな話だと思う。このレベルの有名&重要OSSでこんなことやってるってすごいなあ、という気持ちがある。 C やめて C++ 使った方がいいんじゃないかな……
(12:07)
https://mofmoffox.hatenablog.jp/entry/2020/06/05/232311
いたときから、選考に時間かかるの申し訳ないなあと思ってた。
ただ、雑に扱われた、は外から見るとそうなるのわかるんだけど、僕の感覚ではむしろ、人事的処理を丁寧にやりすぎてて(採用だけでなく昇進なども)、オーバーヘッドが大きくなりすぎて、遅くなってる、と感じてたかなあ。
やまあそれにしたってもっと早く返事できるのなんかがんばれよ感はあるけど
(11:54)
なんていうかこうMSてもうIT大企業で一番綺麗な企業みたいな気持ちがみんなあると思うんだけど、なんかそれでもこういうの見ると、歴史の動きみたいなのを感じてゾクっとするものがある……素直にスゲエ、と思うというか
https://japan.zdnet.com/article/35153989/
(15:44)
https://gist.github.com/mala/08fdbc680d84bb1b2305688282f26cea
僕はネットの S/N が良いと幸せなので、いいこと言うなあ、と思う。個人的には。けど、まあなんかこういうのは愚行権をみたいなやつで、そして認めないのもなんか違うと感じている気がする。愚行権が何故だいじかというと、僕に取って自明に「愚行」に見えても、人にとっては大事だったりするから。そこは人それぞれだから、人に迷惑をかけない範囲で適当に愚かなことしていいよ、という考えかたは好きだ
例えば腐女子が検索避けに / を入れるとかも、個人的には好きでないというか、嫌悪感を覚えるレベルだけど、まあいいかと思っている。なんで嫌悪感を覚えるかは、正直、自己正当化できないレベルに感覚的な理屈な気がする
あとアイスバケツチャレンジぽさもあるなあとか
なんだろう。インターネットの秩序より「コロナに対して気の効いた注意喚起してる俺面白い」て自己満足(に僕には見える)を重視する、てのはまあアリなのかなあと
実際には、自己満足どころか、かなり広く支持されている行為で、だからこそ苦言を言っているのかな、と勝手に想像したり。そういうかんじ
(21:59)
賢く中立的であるべき、みたいなこと思ってるのかな、とも思う。つまり空白を入れてるくらいなら、共立明民党というのがあったとして、「共、立、明、民、党(※AI注: ソーシャルディスタンスを喚起するために、故意に空白を入れているようです)」みたいな読みあげをして欲しいわけですよね……SF的には。
機械が賢くないから機械の読みやすい表記を取りたまえ、てのは、 SEO のアドバイスとしては良くて。アホだからやめろというのもそれも良くて(たとえば僕はもとの投稿を悪いとは思ってない)。ただなんか、僕自身はなんか、人間は愚かなので、機械が勝手にうまいことやれよって、そういう気持ちになっている気がする。
サイトを以降した時に、明示的に 301 を出してくれればそりゃいいんだけど、「移転しました。移転先はコチラ(コチラが青下線)」みたいなのがたくさんあって、そういうのをちゃんとトラックすることによって、検索会社は利益を増やし、サイト管理者は http を理解せずすみ、検索エンジンユーザは適切なサイトを発見できる、みたいな
なんかでも、「共 和 党」と「民 主 党」を大統領候補がやったとして、前者だけサーチされないことが起きかねない感は今のシリコンバレーにはある、みたいな印象があって、それはなんかさすがにアレかもしれない
(22:34)
前 | 2025年 4月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。