00:39:09 @lo48576@mastodon.cardina1.red
2019-09-18 00:37:56 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

IMFとしてはFcitxがおそらく最も出来が良い、一方でIMとしてSKKはfcitx-skkが最悪

00:42:36 @lo48576@mastodon.cardina1.red
2019-09-18 00:40:24 ゆんたん💉💉💉の投稿 yuntan_t@mstdn.maud.io
icon

このアカウントは、notestockで公開設定になっていません。

00:42:39 @lo48576@mastodon.cardina1.red
2019-09-18 00:41:02 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

skkって名乗ってるからSKKだと思っているレベルで満足できるSKKではない

00:44:50 @lo48576@mastodon.cardina1.red
icon

ちょいちょいバグ残ってたりするので使いづらいのは確かにある

00:45:35 @lo48576@mastodon.cardina1.red
icon

Resolve `$FCITX_CONFIG_DIR` for read-only dictionary paths (!7) · Merge Requests · fcitx / fcitx-skk · GitLab
gitlab.com/fcitx/fcitx-skk/mer

Let lonely modifiers pass through if no command assigned by lo48576 · Pull Request #64 · ueno/libskk
github.com/ueno/libskk/pull/64

fcitx-skk と libskk のおすすめパッチです

Web site image
Let lonely modifiers pass through if no command assigned by lo48576 · Pull Request #64 · ueno/libskk
00:45:48 @lo48576@mastodon.cardina1.red
2019-09-18 00:44:33 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

とりあえず fcitx-skk の問題点で最も深刻だと思われるものは「送り仮名のある単語が登録できない」ですね

00:45:58 @lo48576@mastodon.cardina1.red
icon

これなぁ……

00:47:18 @lo48576@mastodon.cardina1.red
2019-09-18 00:46:13 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

あとなんだっけなあ

00:47:18 @lo48576@mastodon.cardina1.red
2019-09-18 00:46:28 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

ゔ 関連とか?(これはlibskkの問題っぽいが)

00:48:31 @lo48576@mastodon.cardina1.red
icon
Web site image
libskk/util.vala at a910ccdf4829e0686e78aade6ee249ec265884c4 · ueno/libskk
00:49:08 @lo48576@mastodon.cardina1.red
icon

まあ UTF-8 環境だからこそ「ゔ 」できるけど、そうでない状況とか……いや、あるのか……?

00:49:29 @lo48576@mastodon.cardina1.red
icon

ネイティブが EUC-JP な環境とかだとマズいかもしれないけど……

00:51:30 @lo48576@mastodon.cardina1.red
2019-09-18 00:50:45 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

SKK-JISYOのデファクトスタンダードは「う゛」っぽいので辞書はこっちで生成するべきなのかなあ

00:56:20 @lo48576@mastodon.cardina1.red
2019-09-18 00:55:07 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

libskkのjson設定、「vu に対してコンポジションは ゔ を出力する」という設定はできるんだけど「カナ変換で ゔ → ヴ をやる」はできないんだよな、そこがつらい(先のテーブルがハードコードなのが原因ぽいけどこれを可変にするのも骨が折れそうな作業である)

00:56:56 @lo48576@mastodon.cardina1.red
icon

SKK 実装書きてえな……

00:57:15 @lo48576@mastodon.cardina1.red
icon

Rust でゲームっぽい何かを作るときに使えるやろみたいな雑な目論見がある (なおどちらも実装はしていない)

00:58:47 @lo48576@mastodon.cardina1.red
icon

Are we async yet?
areweasyncyet.rs/

async / await が 2019-11-07 リリース予定の Rust 1.39 で安定化されるので楽しみよね

Are we async yet?
01:00:01 @lo48576@mastodon.cardina1.red
2019-09-18 00:59:50 かるばぶの投稿 babukaru@mstdn.maud.io
icon

このアカウントは、notestockで公開設定になっていません。

01:00:20 @lo48576@mastodon.cardina1.red
icon

クロージャ (関数オブジェクト) がわかるか否かで説明のしかたが変わる > async / await

01:02:52 @lo48576@mastodon.cardina1.red
icon

じゃあ前提からで

01:04:52 @lo48576@mastodon.cardina1.red
icon

まず原則として、プログラムは処理 (細かい単位では機械語命令列と考えてもよい) を順番に実行する形になっていて、各処理は必ずしも一瞬で終わるとは限らない。
たとえば、 HDD 上の特定ファイルにアクセスしようとしたり、ネットワークデバイスがパケットを受信するのを待とうとすると、めちゃくちゃ時間がかかる。

で、「HDD のシークやネットワーク越しのパケットを待ってる間に他のことできるやん」となるわけですね

01:07:03 @lo48576@mastodon.cardina1.red
icon

さて、逐次処理を順次実行していくスタイルを「同期実行」 (synchronous execution) と呼びます。
前の処理の終了と次の処理の開始が同期しているわけですね。

反対に、 async というのは asynchronous (非同期) execution のことで、「以前に実行開始された処理が終了する前に、次の処理が開始されるかもしれない」という処理実行スタイルのことです。
概念的には。

01:09:23 @lo48576@mastodon.cardina1.red
icon

たとえばネットワークアクセスだと、データの送受信関数を読んでも、実際に送受信が完了するまでにだいぶ時間がかかる。
そこで、「とりあえず実行は開始しておくけど、完了を待たずに次の処理を始める」という方式でコードを実行したくなるわけで、そこで使われるのが async (非同期) 処理です。
この例だと、「ネットワークでのデータ送受信関数を非同期実行する」という解決策をとると、「ネットワークでの送受信完了を待たずに次の処理を実行できる」ということになります。

01:12:36 @lo48576@mastodon.cardina1.red
icon

とはいえ実行して完全に放置とはいかないもので、ディスク読み書きにせよデータ送受信にせよ、**いつか**結果を確認したくなるわけですね。
同期実行だと前の処理が完了して結果を得るまでは次の処理ができなかったけど、対照的に、非同期実行した処理の結果は実行開始直後には得られないので、本当に必要になってから「さっき実行したやつの結果を教えてくれ〜」というリクエスト (あるいは結果置き場の確認) をしなければならない。
このリクエスト(または確認) が await です。

01:15:07 @lo48576@mastodon.cardina1.red
icon

具体例を書くとちょっと複雑になるなぁ

01:17:45 @lo48576@mastodon.cardina1.red
icon

たとえばメモリ上のデータを3つのリモートマシンに送信したいということを考えるとき、通常 (同期実行) だと以下のような感じになる。

send_data(host0, data);
send_data(host1, data);
send_data(host2, data);

ここで、たとえば host0 への回線がめちゃくちゃ細くてネットワークカードの性能や自分側の回線の帯域が余っている状況などを考えると、 host0 にチマチマデータを送っている間に host1 と host2 に同時にデータを送信できないのは勿体ないわけですね。

01:21:38 @lo48576@mastodon.cardina1.red
icon

そこで非同期処理を使うと、以下のような感じになる。

let result0 = send_data_async(host0, data);
let result1 = send_data_async(host1, data);
let result2 = send_data_async(host2, data);
// 先の例やここでは結果を無視しているが、普通はエラーチェックするよ
await result0;
await result1;
await result2;

こうすると、以下のような感じに実行が開始されます:

* host0 に data を送信処理を開始する
* host0 への送信完了を待たず、すぐに host1 への送信処理を開始する
* host1 への送信完了を待たず、すぐに host2 への送信処理を開始する
* (この時点で、3つの送信処理は交互だったり同時だったり、とにかくマルチタスク的に実行されていると考えてよい)
* host0 への送信完了を待つ
+ (待っている間も host1 と host2 への送信処理は続行されている)
* host1 への送信完了を待つ
+ (待っている間も host2 への送信処理は続行されている)
* host2 への送信完了を待つ

01:24:07 @lo48576@mastodon.cardina1.red
icon

まあ要するに、非同期実行された処理はマルチタスク的になるんですね。

実際にこれがマルチスレッド実行されるのか、シングルコアでのマルチタスクのように時分割で実行されるのか、あるいはその複合なのかなどは、非同期実行環境 (executor) によって制御されるもので、環境によってはユーザが指定できるかもしれない。
また、時分割が強制的 (プリエンプティブ) なのか、ゆずりあい方式 (ノンプリエンプティブ) なのかも環境とか実装次第。
その辺りは非同期の本質ではないのでバリエーションがある。

01:30:23 @lo48576@mastodon.cardina1.red
icon

ちょっと難しい話になるけど。

並列 (parallel) と並行 (concurrent) という概念があるけど、非同期実行は concurrent の方ですね。
マルチスレッドは一般に parallel の方 (特にマルチコア CPU の場合は)。

ちょっと説明が難しいんだけど、並列は「複数の処理が物理的に同時に進行する」もので、並行は「複数の処理が論理的に同時に実行される」とでも言えばいいのかな……「複数の処理の前後関係などが規定されないが、とにかく他の処理の完了を待たずに複数の処理の実行が少しずつ進む」ものです。
parallel な処理は concurrent でもあるけど、 concurrent な処理が必ずしも parallel ではない。

01:31:47 @lo48576@mastodon.cardina1.red
icon

大昔のシングルコア時代はマルチスレッドしても所詮は concurrent だったので「本当に物理的に同時に実行されている CPU 命令はひとつ」だったんだけど、マルチコア時代になってからは「物理的に複数の CPU 命令が同時に実行される」状況が普通になってきたので、昔は気付かれなかった並列バグが発覚したり……みたいなのはまあ余談

01:39:07 @lo48576@mastodon.cardina1.red
icon

本題に戻るけど、じゃあ非同期処理はマルチスレッドでも実装できるけど概念的に何が違うのかという話。

大きな違いは、非同期処理は必ずしもスレッドやプロセスが別である必要がないところ。
スレッドというのは OS が管理していて「メモリ上のリソースは共有しているが、プログラム実行経路 (コールスタック含む) は独立している」というもので、まあまあコストが高い。
100スレッド起動すると、100個分の小さなプロセスみたいなものを OS が管理してやる必要があるわけですね。

一方、非同期処理はそういった OS レベルとは関係ない概念なので、「同じスレッドで時分割で処理を切り替えながら実行する」とか「入出力は専用の別スレッドAに任せて、入出力以外の処理は計算用スレッドBで時分割する」とか、まあいろいろな構成がありえます。

01:41:51 @lo48576@mastodon.cardina1.red
icon

これがありがたくなるのが、たとえば有名な C10K 問題などの状況。

C10K とは 10000 台のクライアント (つまり client 10k) のことで、 web サーバなどが 10000 台のクライアントからのリクエストを同時に捌く必要があるときどうしよう……みたいな話です。

C10K問題 - Wikipedia
ja.wikipedia.org/wiki/C10K%E5%

01:45:10 @lo48576@mastodon.cardina1.red
icon

たとえば 10 台のクライアントからのリクエストを **同時に** 捌きたいとき、素朴に考えると「クライアントごとに fork で子プロセスを生やしてやって処理して、レスポンスを返し終えたら子を終了させる」とか「クライアントごとにスレッドを生やして、レスポンスを返し終えたらスレッドを終了させる」とかになりますね。

これが 10 台とかだと問題にならないわけですが、 10k 規模になってくると、「10000プロセス同時に実行する」とか「10000スレッド同時に実行する」みたいな大変なことになるわけですね。
要するに OS 側のリソースを食いすぎる。
たとえばプロセス番号とかスレッド数の限界とかが先に来てしまうわけです。

01:50:58 @lo48576@mastodon.cardina1.red
icon

さてここで考えてみてほしいんだけど、概念上どんなに「同時にレスポンスを送信」していても、ネットワークデバイスから実際に送れるデータ量には限界がある。
つまり、 10k クライアントを同時に捌くとはいっても、本当に「物理的にほぼ同時に」実行している送信処理はごく少数なわけですね。
しかしクライアントごとにスレッドを起動しまくってしまうと、大多数のスレッドは「ネットワークデバイスが詰まっているので何もせず待っている」状態になってしまって、完全に無駄です。浪費です。

01:54:49 @lo48576@mastodon.cardina1.red
icon

じゃあプロセスやスレッドを 10k も生やさずに 10k クライアントを捌きたいとなったとき、スレッドやプロセスを無限に生やさない非同期実行機構が役に立ちます。

たとえば以下のようにすると、シングルスレッドや少数スレッドであっても、待ちスレッドを無限に生やさずネットワークデバイスをフル稼動させられます:

* ネットワークデバイスに余裕があれば、どれかの非同期関数の送信処理を進行する。
* ネットワークデバイスに余裕がなければ、
+ どれかの非同期関数のデータ送信以外の処理をするか、
+ やることがなければネットワークデバイスが空くのをただ待つ。

まあ端的に言えば「クライアントごとに専属の実行リソースを割り当てる」のではなく、「少数の実行リソースに多数の処理を片手間でやらせる」という解決策ですね。

01:57:31 @lo48576@mastodon.cardina1.red
icon

余談ですが、「デバイスに余裕があればどれかの送信処理を実行」みたいな「空いてる I/O をどれかひとつ選んで処理をする」みたいなのを I/O 多重化 (I/O multiplexing) といいます。
非同期実行で複数の I/O を処理したい場合に重要な概念。

01:59:03 @lo48576@mastodon.cardina1.red
icon

まあ多重化 (multiplexing) は必ずしもノンブロッキングであるとは限らないっぽいので、そのあたりはちょっとまあ複雑ですね (自分の使う言語とかで調べた方がよさそう)。
もしかしたら私も誤解してるやもしれぬ

02:04:22 @lo48576@mastodon.cardina1.red
icon

雑にまとめると、こんな感じですかね。

* 非同期実行すると、処理全体の完了を待たないため、 (表面上は) ほぼノンブロッキングに見える。
* 非同期実行した処理の結果はその場では得られず、「将来的に結果と交換できるチケット」みたいなのが貰える。
* 結果が必要になってからチケットを交換する。交換しようとしたとき実行が完了していなければ、完了を待たされる (ブロッキング)。
* 非同期実行はスレッドなどを使って実現できるし、スレッドを使わない実現方法もある。並行実行ではあるが、並列実行かどうかは環境次第。
* 非同期実行は c10k 問題などの解決に有用で、他にも「複数処理を前後関係なく進めたいが、 I/O などのの待ち時間が勿体ない」といった状況全般で有用。

ちなみに「将来的に結果と交換できるチケット」を Promise とか Future とか呼んだりします。

02:04:45 @lo48576@mastodon.cardina1.red
2019-09-18 02:02:38 かるばぶの投稿 babukaru@mstdn.maud.io
icon

このアカウントは、notestockで公開設定になっていません。

02:05:48 @lo48576@mastodon.cardina1.red
icon

これは非同期エンジン (executor) によりけりですね。 Rust とかだとスレッドより遥かに安くできるけど、 go とかだと goroutine はグリーンスレッドだとか。(詳しく知らんけど)

02:08:02 @lo48576@mastodon.cardina1.red
icon

グリーンスレッド - Wikipedia
ja.wikipedia.org/wiki/%E3%82%B

グリーンスレッド (軽量スレッド) というのは、「OS ではなくランタイム (ライブラリ) が独自に管理する実行単位」のことで、概念的にはスレッドなんだけど、 OS から見るとスレッドではない。

Web site image
%E3%82%B0%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89
02:10:02 @lo48576@mastodon.cardina1.red
2019-09-18 02:09:43 かるばぶの投稿 babukaru@mstdn.maud.io
icon

このアカウントは、notestockで公開設定になっていません。

02:10:03 @lo48576@mastodon.cardina1.red
icon

たとえば JS って (Web Worker などを使わなければ) シングルスレッドなんですが、 Web Worker の導入以前から「非同期処理」 (Promise) は存在していたわけです

02:11:52 @lo48576@mastodon.cardina1.red
icon

じゃあこの「非同期」が一体何なのかというと、 JS から見ると「ブラウザに『通信してくれ〜』とリクエストを送ると結果と交換できるチケットが貰えて、ブラウザが通信を完了するとチケットが結果と交換できる」という仕掛けなので、実のところ JS 環境の外側に処理を委託しているんですね

02:13:21 @lo48576@mastodon.cardina1.red
icon

じゃあ JS の外側で通信をする主体が JS エンジンのスレッドの「空いた時間」でやっているのか、それとも共通の通信専用スレッドでやっているのか、それとも各通信ごとにスレッドを生やしてやっているのか、その辺りは実装の細部なので非同期実行を使う JS 側に対しては隠蔽できます。つまり本質ではない

02:13:35 @lo48576@mastodon.cardina1.red
2019-09-18 02:10:24 unaristの投稿 unarist@mstdn.maud.io
icon

このアカウントは、notestockで公開設定になっていません。

02:13:53 @lo48576@mastodon.cardina1.red
2019-09-18 02:12:28 かるばぶの投稿 babukaru@mstdn.maud.io
icon

このアカウントは、notestockで公開設定になっていません。

02:14:57 @lo48576@mastodon.cardina1.red
icon

あれは非同期っちゃ非同期だけど、より適切な用語としては「割り込み処理」ですかね……

02:16:15 @lo48576@mastodon.cardina1.red
icon

その辺りは若干多義性があるけど、 async / await 的な意味での「非同期」と言うとき、一般には「今じゃないけど後で結果が欲しい、結果が欲しいと私が言うまでは自由にスケジューリングしていいよ」というモデルのことを指しているので、 setTimeout は async / await 的ではない

02:16:47 @lo48576@mastodon.cardina1.red
2019-09-18 02:16:11 unaristの投稿 unarist@mstdn.maud.io
icon

このアカウントは、notestockで公開設定になっていません。

02:17:42 @lo48576@mastodon.cardina1.red
icon

XHR もコールバックが割り込み的に実行されるけど、「通信の**結果を後で処理する**」という目的で使われているので async / await に近い意味での「非同期」にカテゴライズされそう

02:18:46 @lo48576@mastodon.cardina1.red
icon

「実行はすぐに開始、完了を待たず他のことをする、結果は後で使う」の3つが揃うとだいたい async / await とか Promise 的な意味での「非同期実行」であると考えてまず問題なさそう

02:20:09 @lo48576@mastodon.cardina1.red
icon

mastodon.cardina1.red/@lo48576
実際、結果変数 (promise 相当) への参照をコールバック関数から弄ってやれば、 promise 的な仕掛けは実現できそう (JS で本当にできるかは知らんが、一般に概念的にはできるはず)

Web site image
らりお・ザ・何らかの🈗然㊌ソムリエ (@lo48576@mastodon.cardina1.red)
02:25:02 @lo48576@mastodon.cardina1.red
2019-09-18 02:22:29 unaristの投稿 unarist@mstdn.maud.io
icon

このアカウントは、notestockで公開設定になっていません。

02:25:03 @lo48576@mastodon.cardina1.red
2019-09-18 02:23:58 unaristの投稿 unarist@mstdn.maud.io
icon

このアカウントは、notestockで公開設定になっていません。

02:25:04 @lo48576@mastodon.cardina1.red
2019-09-18 02:24:48 unaristの投稿 unarist@mstdn.maud.io
icon

このアカウントは、notestockで公開設定になっていません。

02:25:32 @lo48576@mastodon.cardina1.red
icon

「陰キャオタク同士で会話するんだけど、会話が途切れた合間に Twitter を見る」とかは非同期ですね

02:26:52 @lo48576@mastodon.cardina1.red
icon

「会話しながら同時に Twitter する」 (マルチスレッド相当) でも非同期ではあるし、「会話する人と Twitter 担当を別人にする」 (マルチプロセス / fork 相当) でも確かに非同期ではあるんだけど、「同じ人が合間で別のことをする (ただし同時ではない)」もまた非同期

02:28:45 @lo48576@mastodon.cardina1.red
icon

で、一番最後の非同期については「非同期」としか言いようがないというか、「マルチスレッド」でも「マルチプロセス」でもない「(広義) 同時実行」なので、非同期という言葉は意味が広いけど、文脈によっては指しているものがもっと狭い場合はある

02:29:40 @lo48576@mastodon.cardina1.red
icon

(まあプリエンプティブマルチタスクとかノンプリエンプティブマルチタスクとか表現することはできるけど……それもマルチプロセスやマルチスレッドとの混同がありえるので厄介)

02:35:27 @lo48576@mastodon.cardina1.red
2019-09-18 02:35:13 unaristの投稿 unarist@mstdn.maud.io
icon

このアカウントは、notestockで公開設定になっていません。

02:35:52 @lo48576@mastodon.cardina1.red
icon

Pardon? すると速度が落ちるの、 TCP の帯域制御を感じる (適当)

02:37:56 @lo48576@mastodon.cardina1.red
icon

一度メンタルモデルができてしまえば、あとは例え話を聞いてもセヤナできるので、最初の一歩がな

02:41:16 @lo48576@mastodon.cardina1.red
icon

エッ3時マジ

02:41:41 @lo48576@mastodon.cardina1.red
icon

進捗が楽しくて無限に時間が融ける、ヤバい (進捗が出るとは言ってない)

02:41:50 @lo48576@mastodon.cardina1.red
icon

風呂入らねば……

02:42:59 @lo48576@mastodon.cardina1.red
icon

進捗、生存のための時間 (睡眠、食事、 etc) をナチュラルに食い潰していくので本当に危険

02:47:03 @lo48576@mastodon.cardina1.red
2019-09-18 02:42:51 高菜しんの💪|∵💪|健全作家の投稿 synno@pawoo.net
icon

このアカウントは、notestockで公開設定になっていません。

05:52:28 @lo48576@mastodon.cardina1.red
2019-09-18 05:13:01 Keᷟiͣzᷤoͭuͦ@6ͩ4ͦ0ᷠ0の投稿 keizou@mstdn.guru
icon

このアカウントは、notestockで公開設定になっていません。

05:52:51 @lo48576@mastodon.cardina1.red
2019-09-18 05:00:19 Keᷟiͣzᷤoͭuͦ@6ͩ4ͦ0ᷠ0の投稿 keizou@mstdn.guru
icon

このアカウントは、notestockで公開設定になっていません。

15:28:31 @lo48576@mastodon.cardina1.red
icon

今起きたんだけど面白そうな話しとるやんけ

15:29:41 @lo48576@mastodon.cardina1.red
icon

初学者に教えるかはさておき、「セマンティクス」という概念がもっと明示的であるべきだとは常々思っています

15:29:50 @lo48576@mastodon.cardina1.red
icon

プログラミングの文脈ね

15:31:09 @lo48576@mastodon.cardina1.red
icon

たとえば 0 + "12" が 12 になろうが "012" になろうが "12" になろうが "0" になろうが 1 になろうが、そこに一貫した理屈を与えることはできる。
問題の本質は「人々が直感で想像する結果が共通であるか」ではなく、「特定のコードについて特定の挙動が自動的に導けるか」であって、それこそがプログラミング言語がセマンティクスを必要とする理由なので

15:32:33 @lo48576@mastodon.cardina1.red
icon

だから「○○なコードは『意味がないから』禁止されている」というのはナンセンスというか因果が逆で、「特定のプログラミング言語において○○なコードは『意味が割り当てられなかった』」という説明になるべきなのよね、本来は。
人間が言語を設計するときに「意味を割り当てなかった」理由として、不自然だからとかややこしいからとか、そういう人間サイドの思惑がある。

15:32:57 @lo48576@mastodon.cardina1.red
2019-09-18 15:32:35 そすうぽよ :poyo: :sabakan:の投稿 prime@mstdn.poyo.me
icon

このアカウントは、notestockで公開設定になっていません。

15:34:21 @lo48576@mastodon.cardina1.red
icon

計算機科学の少なからぬ部分 (特にプログラミングそのもの) は自然科学ではなく人工科学なので、「ただあるものを観察し理解する」姿勢だけではなく「そのように定義された理由や都合を推察し理解する」というフェーズは結構大事だと思う (知らんけど)

15:35:04 @lo48576@mastodon.cardina1.red
icon

というか std 語彙で言うところの工学よな……

15:35:17 @lo48576@mastodon.cardina1.red
icon

寝起きなのであたまがぽやぽや (それはいつもでしょ)

15:36:44 @lo48576@mastodon.cardina1.red
icon

@tacumi マトモなプロダクトだと「それがいいと思った」の背景に苦悩の経験とか人々の共通認識とか理論的・機械的限界みたいなものがちゃんと存在するので、そのデザインの根拠 (rationale) が説明できるデザインは「良いデザイン」であるとは思います。
(もちろん残念なことに全てのデザインが良いデザインではないけど……)

15:37:03 @lo48576@mastodon.cardina1.red
2019-09-18 15:36:44 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

@tacumi マトモなプロダクトだと「それがいいと思った」の背景に苦悩の経験とか人々の共通認識とか理論的・機械的限界みたいなものがちゃんと存在するので、そのデザインの根拠 (rationale) が説明できるデザインは「良いデザイン」であるとは思います。
(もちろん残念なことに全てのデザインが良いデザインではないけど……)

15:37:35 @lo48576@mastodon.cardina1.red
icon

ちゃんとね、仕様の裏に理由がある場合があってね、そこをちゃんと知るのも情報工学徒としての学びよ

15:39:49 @lo48576@mastodon.cardina1.red
icon

動的型言語のふわふわ感 - Togetter
togetter.com/li/163331

不気味なものを見てしまった……

Web site image
動的型言語のふわふわ感
15:40:42 @lo48576@mastodon.cardina1.red
icon

まだ最後までちゃんと読んでないけど、もしかしてここで動的型付き言語勢が言っている「静的型」って C 言語のプリミティブ型レベルの話しかしてなかったりする?

15:43:01 @lo48576@mastodon.cardina1.red
icon

やはりプログラマは型理論を勉強すべきという気持ちになったゾ

15:43:50 @lo48576@mastodon.cardina1.red
2019-09-18 15:43:22 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

そういう範囲ですらなく型とは何ぞやレベルの話だと思う><;
TaPL日本語版が出る前はこういう議論わりと頻繫にあったのに、出たらぱったりなくなったのおもしろい><

15:45:41 @lo48576@mastodon.cardina1.red
icon

人類、型理論をせめてさわりだけでも知ってくれ〜 (クソデカ語法)

15:50:40 @lo48576@mastodon.cardina1.red
icon

静的型が「サイズ上限のある整数」とか「整数と文字列を混同できない」程度の認識でやっているの、完全に「静的型付き言語は C しか知りません」と言っているようなものでしょ

15:52:20 @lo48576@mastodon.cardina1.red
icon

型の話、鉞で炎上するならまあ自業自得なんだけど、トンチンカンなオレオレ型理論 (型理論ではない) を振り翳してやってくる人々をいなす光景があまりに不毛すぎて、不特定多数に向けて喋りたくないトピックの上位

15:52:47 @lo48576@mastodon.cardina1.red
icon

「さんすうができるからといって自分が数学を知っていると思ってんのか」みたいなやつですね

15:52:58 @lo48576@mastodon.cardina1.red
icon

まあどの界隈でもあるんだろうなぁ……

15:56:04 @lo48576@mastodon.cardina1.red
icon

大学の授業は大変なんだろうなぁ……

15:57:25 @lo48576@mastodon.cardina1.red
2019-09-18 15:55:48 そすうぽよ :poyo: :sabakan:の投稿 prime@mstdn.poyo.me
icon

このアカウントは、notestockで公開設定になっていません。

15:57:27 @lo48576@mastodon.cardina1.red
2019-09-18 15:55:55 そすうぽよ :poyo: :sabakan:の投稿 prime@mstdn.poyo.me
icon

このアカウントは、notestockで公開設定になっていません。

15:57:28 @lo48576@mastodon.cardina1.red
2019-09-18 15:57:00 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

"oge"

15:57:32 @lo48576@mastodon.cardina1.red
icon

これすき

16:00:31 @lo48576@mastodon.cardina1.red
icon

puts("hoge!!!"+1);
       ___
    ___/   ヽ
   /  / /⌒ヽ|
  / (゚)/ / /
  /   ト、/。⌒ヽ。
 彳   \\゚。∴。o
`/    \\。゚。o
/     /⌒\U∴)
     |  ゙U|
     |   ||
         U

16:04:32 @lo48576@mastodon.cardina1.red
2019-09-18 16:04:04 そすうぽよ :poyo: :sabakan:の投稿 prime@mstdn.poyo.me
icon

このアカウントは、notestockで公開設定になっていません。

16:04:35 @lo48576@mastodon.cardina1.red
2019-09-18 15:58:46 Yavit :verified:の投稿 8vit@gs.yvt.jp
icon

このアカウントは、notestockで公開設定になっていません。

16:16:51 @lo48576@mastodon.cardina1.red
2019-09-18 16:14:15 めたの投稿 metalefty@social.mikutter.hachune.net
icon

このアカウントは、notestockで公開設定になっていません。

16:16:53 @lo48576@mastodon.cardina1.red
2019-09-18 16:15:59 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

誕生日を公開する場合はそのほうが都合がよいから…とか?

16:16:53 @lo48576@mastodon.cardina1.red
2019-09-18 16:16:04 あっきぃの投稿 akkiesoft@social.mikutter.hachune.net
icon

京橋のツイッタージャパン本社のビルも公式ツイッターアカウントがあるのを昨日みたけど、ビルができた日を誕生日にして凍ってほしすぎるなとおもってしまった

16:16:56 @lo48576@mastodon.cardina1.red
2019-09-18 16:16:40 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

でも誕生日設定していないときのメッセージが「このアカウントがたとえネコのものでも誕生日を設定してください」みたいな文言なのはどうなんだと思っている

16:38:11 @lo48576@mastodon.cardina1.red
2019-09-17 18:39:40 🐕masainu🐩の投稿 masainu@mstdn.jp
icon

このアカウントは、notestockで公開設定になっていません。

16:39:04 @lo48576@mastodon.cardina1.red
2019-09-18 16:36:27 とりごんの投稿 trigon@mstdn.jp
icon

このアカウントは、notestockで公開設定になっていません。

16:40:33 @lo48576@mastodon.cardina1.red
icon

そんなことしなくても数が多ければ生き残るとか? (知らんけど) (全く知らんけど)

16:51:52 @lo48576@mastodon.cardina1.red
icon

s/持ってしても/以てしても/g

16:52:10 @lo48576@mastodon.cardina1.red
icon

なろうとかでそういうの気になってしまうタイプの人なので

16:52:42 @lo48576@mastodon.cardina1.red
icon

誤字報告が無効化されている作品でそういう漢字の間違いを発見してしてしまうと得も言われぬ悲しさを覚える

17:37:02 @lo48576@mastodon.cardina1.red
2019-09-18 16:51:37 ひかげの投稿 binboushadow@mstdn.jp
icon

このアカウントは、notestockで公開設定になっていません。

17:37:03 @lo48576@mastodon.cardina1.red
2019-09-18 16:52:51 ひかげの投稿 binboushadow@mstdn.jp
icon

このアカウントは、notestockで公開設定になっていません。

17:37:05 @lo48576@mastodon.cardina1.red
2019-09-18 16:38:15 みもりんかの投稿 mimorinka@mstdn.jp
icon

このアカウントは、notestockで公開設定になっていません。

17:37:06 @lo48576@mastodon.cardina1.red
2019-09-18 16:39:46 ひかげの投稿 binboushadow@mstdn.jp
icon

このアカウントは、notestockで公開設定になっていません。

17:37:47 @lo48576@mastodon.cardina1.red
icon

すげえな……どっちが野蛮かわからんぞ

17:38:17 @lo48576@mastodon.cardina1.red
icon

大陸の猿も島国の猿と大差ないのね

17:48:40 @lo48576@mastodon.cardina1.red
icon

TVアニメーション『アズールレーン』本PV
youtu.be/bRFVIQRv1gY

艦これ2期、次クールか

Attach YouTube
19:08:47 @lo48576@mastodon.cardina1.red
2019-09-18 19:06:11 ももんがちゃんの投稿 momongachan@mstdn.jp
icon

このアカウントは、notestockで公開設定になっていません。

19:08:51 @lo48576@mastodon.cardina1.red
icon

くにたち

19:09:12 @lo48576@mastodon.cardina1.red
icon

都立国立高校の話は……

19:09:36 @lo48576@mastodon.cardina1.red
icon

いつもパブリックスクールを思い出す

19:17:29 @lo48576@mastodon.cardina1.red
2019-09-18 19:15:40 辺境領主(マストドン)の投稿 glorificatio@mstdn.glorificatio.org
icon

このアカウントは、notestockで公開設定になっていません。

19:17:50 @lo48576@mastodon.cardina1.red
icon

これ、進捗用アカウントを分離しておくとなんとかなることが知られている

21:38:43 @lo48576@mastodon.cardina1.red
2019-09-18 21:38:32 きーすとの投稿 keasti@mstdn.maud.io
icon

このアカウントは、notestockで公開設定になっていません。

21:38:49 @lo48576@mastodon.cardina1.red
icon

光漏れとるやんけ

21:39:27 @lo48576@mastodon.cardina1.red
2019-09-18 21:36:54 戸羽川 ゆず@氷期の投稿 EchigawaX41TX230T@misskey.io
icon

このアカウントは、notestockで公開設定になっていません。

21:39:34 @lo48576@mastodon.cardina1.red
icon

新しいフォルダー (11)

23:12:07 @lo48576@mastodon.cardina1.red
2019-09-18 23:11:47 なちか@ダイエットサプリは食前に飲めの投稿 nacika@oransns.com
icon

このアカウントは、notestockで公開設定になっていません。

23:12:28 @lo48576@mastodon.cardina1.red
icon

首の骨をポキッとやって頭を引っ張ると脊髄がスルスルスル〜っとですね (猟奇)

23:13:16 @lo48576@mastodon.cardina1.red
icon

まあ実際いろんなところに分岐したりくっついたりしてるんだろうし、そう簡単には抜けないのかもしれないな (知らんが)

23:13:46 @lo48576@mastodon.cardina1.red
2019-09-18 23:13:22 なちか@ダイエットサプリは食前に飲めの投稿 nacika@oransns.com
icon

このアカウントは、notestockで公開設定になっていません。

23:14:10 @lo48576@mastodon.cardina1.red
icon

骨を折っても最終的に治るから非破壊検査扱いできるマジ!?!!??

23:15:35 @lo48576@mastodon.cardina1.red
2019-09-18 23:14:38 神楽坂 凪の投稿 Nadja_tirol@oransns.com
icon

仮面ライダーシンかな…(見たことないけど知ってる)

脊髄ぶっこ抜き (せきずいぶっこぬき)とは【ピクシブ百科事典】
dic.pixiv.net/a/%E8%84%8A%E9%A

23:15:49 @lo48576@mastodon.cardina1.red
icon

背骨引っこ抜きマン結構おるんやな……

23:20:40 @lo48576@mastodon.cardina1.red
icon

そういえばておくら久しくログインしてない…… (というかマイクラそのもの最近起動してない)

23:21:25 @lo48576@mastodon.cardina1.red
icon

マイクラとかのマルチ、つよい人たちがいつのまにか鉱石とかのリソース無限に入手していて共用にしていたり、気付いたらインフラが整っていたりして、クソザコ勢の私は完全にフリーライドしている気分になってくるので厄介

23:21:59 @lo48576@mastodon.cardina1.red
icon

厄介というか、実際フリーライドするか原始人生活を送るかの二択みたいなところがある

23:22:23 @lo48576@mastodon.cardina1.red
icon

建築とかのセンスが皆無なので創造性もないし、マルチ向いてない

23:25:19 @lo48576@mastodon.cardina1.red
icon

s/永遠と/延々と/g

23:38:22 @lo48576@mastodon.cardina1.red
2019-09-18 23:35:31 tamainaの投稿 aqz@yuzulia.xyz
icon

このアカウントは、notestockで公開設定になっていません。