トップ «前10日分 最新 次10日分» 追記

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|

ToDo:


2020-09-09

_ FUD

トランプのツイターよく見てるのだけど、 FUD ぽさが増してる気がする

https://twitter.com/realDonaldTrump/status/1303558498291245056

https://twitter.com/realDonaldTrump/status/1303292111136190465

主張はともかく、なんというか簡潔でわかりやすい発言が多くて感心するものがある。 Hiden とかうまいこと言うなあ……とか

あとなんか QAnon についてのコメントが、うまいラインの返答な気がするな……とか

https://www.youtube.com/watch?v=GNI553Np__k

(14:17)


2020-09-02

_ peer review

なんかグーグルの日本語でツイートしてる人たちが、ツイターで peer review の進捗を書くようになっているみたいで、面白いなと思った。どういう文化的な背景なのだろう

なんか僕がいた時は hangout の status に乗っけてる人が多かった気がする

(14:45)


2020-08-31

_ why am I so special?

because I'm me

いいはなしだなーと

https://twitter.com/girlmeetsNG/status/1299482563782770688

(18:32)


2020-08-30

_ コロナ第二波

疫病は指数関数に増えるんだよ、てのを信じて、となると最適戦略は増え始めたら最速で厳しいシャットダウンやな、と思ってたのだけど、なんか第二波は増えてる間も指数ぽく見えなかった。どういう理屈で考えると良いのだろう。増え始めると気にする人が増えるから、みたいな PID 制御みたいな考えかたをすれば良いのかな

(11:22)

_ 指数なんだから

人数報道しても意味あんの?と思ってたけど、 PID 制御的なことが自動的に行なわれてるなら、人数報道によって感染率が制御されてたという可能性もあるのかな

(11:24)


2020-08-29

_ 線香花火 quine

https://twitter.com/tompng/status/1299285033908346881

いいねえ

(12:26)

_ ファイアパンチ

読み返してやっぱチェインソーより圧倒的に面白いやろ、と思ったけどチェインソーの方が人気もまわりの評価も高いぽんだよな、不思議

wikipedia の説明読んでると面白くて

https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%82%A2%E3%83%91%E3%83%B3%E3%83%81

長く愛されている「ドラえもん」(藤子・F・不二雄)・「サザエさん』(長谷川町子)・『アンパンマン』(やなせたかし)などの作品を参考にした

主人公のアグニはアンパンマンの頭文字「ア」から、宿敵ドマはドラえもんの「ド」、サンはサザエさんの「サ」から採られた

あたりから興味を持ってインタビューを見たらこれも面白かった

https://natalie.mu/comic/pp/firepunch

(16:52)

_ おとしより

年齢によって採用の可否などを決めてはならない、と思うわけだけど、政治家は80近くとかの人にはやって欲しくない、と思う。これはリベラル的には許される考えかたなんだろうか。言い訳はいくらでもあるとは思うけど。。

(16:57)


2020-08-12

_ 育児したいと言ったら離婚された話

世の中いろんな人がいるんだなぁ……

https://twitter.com/EU_Kummerspeck/status/1293155297456873475

(15:31)


2020-07-13

_ CS 30トピック

https://twitter.com/_ko1/status/1281972384036040704

https://twitter.com/_ko1/status/1281984532971786240

を見て、エンジニアトピックの作ってみる課題30個、ての考えてみると面白そうだなあ、と思って考えてみた。たぶん普通 CS という時よりも、自分の趣味と実務ぽいの多めだと思う

表記は

  • ジャンル / 課題 / コメント

みたいになってる

アルゴリズムぽいやつ

  • データ構造 / 赤黒木など平衡木 / ハッシュでもいいなあという気がする
  • アルゴリズム / diff / 個人的には動的計画法の実用の圧倒的定番
  • アルゴリズム / TSPをGPなり焼きなましなりで / メタヒューリスティクスなんか知ってていいと思うので
  • アルゴリズム / オセロのゲーム木探索 / 再帰する系もなんか欲しいなあと思ったけどいらない気がする

あとダイクストラとか考えた

言語処理系ぽいやつ

  • オートマトンと正規言語 / 特殊記号は .* くらいの正規表現エンジン / まあ定番
  • 型 / intとfloatとtupleくらいの型推論 / 興味持った人は高階関数や多相あたり?
  • パーサ / 四則演算を再帰下降 / まあ定番
  • インタプリタ / add/jmp/print くらいの VM を実装 / 構文木インタプリタは忘れていいよねというのと、CPUエミュレータ的なのを兼ねられるかなと
  • コンパイラ / ↑の VM からアセンブリ生成する / 発展課題として VM コードの方を生成する

S式からVMコード出して実行するとかすると一気通貫で良さそう

低レイヤとかUNIXぽいやつ

  • 並列プログラミング / ミューテクス / cmpxchg で作ってみる
  • 並列プログラミング / スレッドプール / ↑のやつ使うと良い
  • シェル / パイプが使えるだけのshell / fork/pipe/exec
  • プロセス制御 / make的なやつ / プロセス制御は実務的には結構役に立つ気がしている
  • OS / qemuあたりにシステムコールを追加 / OS系、あれこれ考えたけど、あまりしんどくない課題が思いつかなかった。ついでに大規模なコード眺めるとかできて良いかなと

あと malloc とかも思ったけどいくらなんでも僕の趣味すぎるかと思った

ネットワーク、Web、分散システム

  • ネットワーク / エコーサーバ / selectとかするやつ
  • HTTP / HTTP喋ってログイン / スクリプト言語使っていいけどHTTPとクッキー喋るのは自力くらいの設定で
  • JSとCSS / 特定サイト専用adblock / あんまほど良い課題が思いつかない
  • SQL / ログイン情報SQLに保持してSQL injectionやってみる / RDB 作るとかの方が良いのだろうかと思ったけど軽くならない気がする……
  • 分散システム / memcached的なKVS / クラウドぽいやつ。できれば DHT 使って

マルチメディアとUI

  • グラフィックス / キャンバスで好きなもの書く / フラクタル書くとかよりはゲームのキャラ動かす的なのが良い気がする
  • 音楽 / ドレミを適当に正弦波と矩形波で合成するくらいのシンセサイザ / 音のAPIはこういう感じになるんだなあと思った記憶がある
  • UI / グリッドレイアウト的なやつ使って設定画面 / UIツールキットみたいなの使ってみるのは良い気がする

まあゲーム作ると良いと思う

統計と機械学習

  • 統計 / 最小二乗 / 簡単すぎるかもだけど有用度も高いと思うんだけど、どうだろ
  • 統計 / k-mean / SVMとかの方が良いのかな
  • DNN / MNISTをnumpyくらいで / 勾配法やってりゃいいよ的な

統計わからん

情報理論と暗号

  • 情報理論 / ハフマン符号 / 定番的なやつ
  • 符号 / UTF8とUCS2の相互変換 / UTF8知らないとつらそう
  • 暗号 / SHA1 / MTとかでも良い気がした。いらない気もするが git とか考えると
  • 暗号 / RSA / 定番的なやつ

未分類

  • 数値計算 / FFT / ルンゲクッタが定番な気がするけど。音楽のとこで合成したのにかけると楽しいはず?
  • ハードウェア / 加算器 / iverilog 的なやつで

おもったこと

全体的に自分の趣味と知ってる領域に偏る。忘れてる領域多そうで、でも数えると既に30越えてる。座学ぽくなる計算量理論は……チューリングマシンとかラムダ計算とかあって良かった気もする。数学は……まあいいかなあ……。定理証明とかは、まあどうかなあ……というのと

なんとなく、わかってる人は1日でできるけど、わかってない人は勉強するのも含めて1週間くらい、1年もかけて一通りやるとなんか一通りわかった気になれるんじゃないの?くらいの内容になった気がする

(10:06)

_ k-mean

よりは wikipedia から言語モデル作る、とかの方が良い気がする

(10:17)

_ 候補

mark & sweep GC

DNS クライアント

(14:41)

_ 候補

ストレージの遅さを実感する系の……

あと mmap とか paging とかは良いトピックだよなあ

(14:43)

_ 候補

satソルバ系のやつ

(18:32)


2020-07-08

_ the future is here

無人球場でロボが応援、おもしろすぎる

https://www.youtube.com/watch?v=G9p9jdmJQOQ

(08:03)


2020-07-03

_ ちょっと難しい問題

人間、ちょっと難しい問題が解けると嬉しくなるので、特に重要性のない、ちょっと難しい問題を見つけて解くのに夢中になってしまう問題がある

でも多くの場合、本当にやった方が良いのは、

  • 重要性のある、簡単な問題をたくさん解く
  • 重要性のある、難しい問題を諦めて簡単な複数の問題に落とす

であることが多い

このへんに僕が趣味と仕事のコーディングが全然違う、と感じてる理由があるように思う。趣味だと僕は属人性全開のコンテストとか大好きなのだけど、仕事の場合、「必要な簡単な問題をたくさん解いてたら、全体としては非自明な、有用性のあるものができました」みたいな開発が好きで、あまり仕事で属人性多いことやりたくないなあ……と思っている

(12:00)


2020-06-30

_ UNIX 哲学

の、直交性のあるツールをたくさん作って、組み合わせて使いましょうてやつ、その哲学そのものは僕も好きだし、学ぶことの多い教えだとは思っている。なんだけど、自分の仕事に適用しようとしない方が良いと思ってるんだよな。というか、仕事で 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)


2024年
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

search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h