00:24:01 @shibafu528@social.mikutter.hachune.net
icon

grpc++なんもわかんねーーーーー

00:24:54 @shibafu528@social.mikutter.hachune.net
icon

GenericなAPIになると急にやたらプリミティブな部分が顔を出してくる

00:25:13 @shibafu528@social.mikutter.hachune.net
icon

俺たちはprotocが吐いたStubに甘やかされていたんだという気持ち

00:27:13 @shibafu528@social.mikutter.hachune.net
icon

しかしgRPCは普通protocが吐いたStubを挟んで使うものなので、まあ……

00:31:18 @shibafu528@social.mikutter.hachune.net
icon

ライブラリの理解が進まなくなるとシコりたくなってくる

00:33:45 @shibafu528@social.mikutter.hachune.net
icon

ためしにcpp版のexampleをmakeしてみたら、grpc用の生成コードなかなかおぞましいことになってて涙が

00:43:46 @shibafu528@social.mikutter.hachune.net
icon

これもしかしてかなり細かくCompletionQueueのポーリング入れる必要あるか

00:54:49 @shibafu528@social.mikutter.hachune.net
icon

Attach image
00:55:52 @shibafu528@social.mikutter.hachune.net
icon

Unary Call以外だとこの手続がクッソ増えるっぽいAPIしてるんだが……

00:58:30 @shibafu528@social.mikutter.hachune.net
icon

全ての非同期処理は指定したCompletionQueueに完了が報告される、というのはgrpc++では何やっても変わらないっぽいんだけど、GenericかつUnary以外だとその手続きが増える?

01:06:21 @shibafu528@social.mikutter.hachune.net
icon

そうじゃねえよ

01:07:18 @shibafu528@social.mikutter.hachune.net
2020-03-22 01:06:02 チチブの投稿 neso@don.neso.tech
icon

openBD | 書誌情報・書影を自由に
openbd.jp/

openBDがなんか一番楽そう...

openBD | 書誌情報・書影を自由に
01:07:23 @shibafu528@social.mikutter.hachune.net
icon

これ気になる

01:35:24 @shibafu528@social.mikutter.hachune.net
icon

オ、PrepareUnaryCallはやっぱり手続きを簡略化しただけで、PrepareCallから手続きしてもUnary Call処理できるみたいだな

01:35:59 @shibafu528@social.mikutter.hachune.net
icon

言ってしまえばUnary Callはこちらから1発送信して、そのあと1発だけメッセージを待ち受けて終了する手続きなんだな。

01:36:22 @shibafu528@social.mikutter.hachune.net
icon

それはそうという感じだけど、その通りになっていてOK

01:38:07 @shibafu528@social.mikutter.hachune.net
icon

単純に手続きが増えてだるい

Attach image
01:38:32 @shibafu528@social.mikutter.hachune.net
icon

横着してCompletionQueueで何が完了したか判別するためのtagを全無視している

01:46:07 @shibafu528@social.mikutter.hachune.net
icon

CompletionQueue、処理が完了するまでブロックするNextだけでなく制限時間を指定して強制的に戻ってくるAsyncNextもある

01:47:34 @shibafu528@social.mikutter.hachune.net
icon

AsyncNextを使いこなせるほどC++プログラマではないので、まあ大人しくスレッド立ててNextすっかねえ

01:56:14 @shibafu528@social.mikutter.hachune.net
icon

R/Wはそれぞれ別で回せるから、通信種別に関係なく接続完了したらReadは回しっぱなしにして良さそうだな
CompletionQueue共有して問題ないのかなはあるが

01:59:31 @shibafu528@social.mikutter.hachune.net
icon

C++でgRPC、めるぽんさんの記事とか出てくるからヤバイ場所に足を踏み入れてしまった感が強い

02:00:44 @shibafu528@social.mikutter.hachune.net
icon

CompletionQueueはリクエストに紐付くけど、R/Wはそれぞれスレッドセーフらしいしまあ大丈夫なんだろう

02:02:50 @shibafu528@social.mikutter.hachune.net
icon

普通gRPCとかGolangで使うもんやろwwwwwwwww(さまざまな場所に石が当たりそうな発言)

02:05:34 @shibafu528@social.mikutter.hachune.net
icon

Golangとかはなんか言語ネイティブの実装だった気がするんだけど、バインディングしてる言語のgRPCだと変なことすると突然ネイティブクラッシュしてC++のコードのバックトレースでてきて嫌な気持ちになる

02:05:59 @shibafu528@social.mikutter.hachune.net
icon

libgrpc++を完全に理解しておくとこれを回避できる (ほんとか?)

02:06:41 @shibafu528@social.mikutter.hachune.net
icon

誰がスクリプト言語でやってるのに突然reinterpret_castしながら爆死してるバックトレース見たいんだよ(もう見た)

02:08:58 @shibafu528@social.mikutter.hachune.net
icon

村上椎奈がreinterpret_castを投げてる画像、何が元だっけ

02:09:07 @shibafu528@social.mikutter.hachune.net
icon

単行本のどっかにあったんだっけ

02:10:20 @shibafu528@social.mikutter.hachune.net
icon

そっちか

02:10:41 @shibafu528@social.mikutter.hachune.net
icon

先生が符号無し整数になってるけどそれはいいのか

02:11:56 @shibafu528@social.mikutter.hachune.net
icon

単行本漁ろうかと思ったけど、本棚がないからアクセス効率が最悪

02:12:54 @shibafu528@social.mikutter.hachune.net
icon

なんか週明けまでにFloraRPCでStreamingサポートしたいんやけど、うーん

02:12:59 @shibafu528@social.mikutter.hachune.net
icon

やる気唐突に減ってきたな

02:13:11 @shibafu528@social.mikutter.hachune.net
2020-03-22 02:12:59 Masanori Ogino 𓀁の投稿 omasanori@mstdn.maud.io
02:13:15 @shibafu528@social.mikutter.hachune.net
icon

乗ってたのか

02:13:19 @shibafu528@social.mikutter.hachune.net
icon

よく出てきましたね……

02:15:37 @shibafu528@social.mikutter.hachune.net
icon

CompletionQueue、BiDi Streamだとユーザー操作でWriteしたり、ServerからぼこぼこReadしたりでTag管理大変なことになりそうだけど、どうしようね

02:16:22 @shibafu528@social.mikutter.hachune.net
icon

Mutex取ってインクリメント?

02:17:34 @shibafu528@social.mikutter.hachune.net
icon

今実行中のR/Wそれぞれで被りさえしなければいいので、32bitくらいの雑な乱数を作って使用中じゃなければオッケーでもいい……けどこれも結局使ってるかの確認が必要だから最初のと変わらんわ

02:18:41 @shibafu528@social.mikutter.hachune.net
icon

31bitくらいで乱数作ってあと1bitでR/W表現すれば被らないな?

02:19:48 @shibafu528@social.mikutter.hachune.net
icon

R/W同方向が2つ以上別スレで同時に走ることは禁止されているので、ロック取るみたいなことしなくていい

02:21:00 @shibafu528@social.mikutter.hachune.net
icon

乱数せんでも単なるカウンターで符号いじりゃいいだけじゃん

02:25:37 @shibafu528@social.mikutter.hachune.net
icon

これをきれいにラップしてるのが各言語バインディングなんだって思うと、なんか今後突然gRPCが発狂してバックトレースゲロってもグルー層のCコードとか読めるんじゃね

02:25:39 @shibafu528@social.mikutter.hachune.net
icon

いやそれは無理だわ

02:26:40 @shibafu528@social.mikutter.hachune.net
icon

gRPCでチェックインはしない

02:27:29 @shibafu528@social.mikutter.hachune.net
icon

Tissueで使うの一瞬考えたけど、gRPCがHTTP2を要求するせいでクライアントと直接HTTP2セッションで会話できないPHPは自動的に虐殺されてるからおしまい

02:28:46 @shibafu528@social.mikutter.hachune.net
icon

全部PHP上で実装してデーモンとして上げればいいんだろうけど(実際そういうのは見た気がする)、それはもはやPHPだろうか

02:30:18 @shibafu528@social.mikutter.hachune.net
icon

PHPってのはぁ……SAPIレイヤーがいい感じにHTTPリクエストを抽象化してくれてぇ……あとは1回レスポンスするだけ!っていう手続きを実行するもんだルルォ!?

02:34:41 @shibafu528@social.mikutter.hachune.net
icon

んまPHPスクリプトは何かしらハンドラを登録するだけで、最後にrun()みたいな関数呼んだらnative extに制御が飛んでその中で諸々リッスンして登録ハンドラへのルートを行う〜とかやりゃできるっちゃできるんだろう……な……

02:35:50 @shibafu528@social.mikutter.hachune.net
icon

でもPHPはスレッドセーフじゃないから色々とひどいことになりそうなもんだが

02:37:08 @shibafu528@social.mikutter.hachune.net
icon

そろそろ寝るか…

02:39:00 @shibafu528@social.mikutter.hachune.net
icon

まだC++とRubyくらいしかAPI見てないから、Golangのやつとかどうなってるか見たいなぁと思いつつ、絶対Golangやりたくねえなぁと思いつつ

02:39:59 @shibafu528@social.mikutter.hachune.net
icon

GolangのほうがRubyバインディングよりは深いAPIありそうだなと予想してるんだけど

02:52:17 @shibafu528@social.mikutter.hachune.net
icon

時間を忘れてたから肉体滅びそうなっとる

09:34:07 @shibafu528@social.mikutter.hachune.net
icon

あさだね

09:46:26 @shibafu528@social.mikutter.hachune.net
icon

拡張性を犠牲にしないスタイリッシュなMini-ITXケース、Fractal Design「Era ITX」 - エルミタージュ秋葉原
gdm.or.jp/pressrelease/2020/03

Web site image
拡張性を犠牲にしないスタイリッシュなMini-ITXケース、Fractal Design「Era ITX」
09:46:49 @shibafu528@social.mikutter.hachune.net
icon

見た目がいい

09:47:06 @shibafu528@social.mikutter.hachune.net
icon

てかこれの話してたのか

10:19:25 @shibafu528@social.mikutter.hachune.net
icon

マスクなあ

10:19:30 @shibafu528@social.mikutter.hachune.net
icon

あと1ヶ月ぶんくらいかな

10:51:46 @shibafu528@social.mikutter.hachune.net
icon

このさもC++かのように居座ってる "signals:" とかやっぱりQtお前……ってなるな

Attach image
10:58:27 @shibafu528@social.mikutter.hachune.net
2020-03-22 10:56:47 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

参考までに Unreal C++ の追加記述はこんな感じですね

Attach image
10:58:52 @shibafu528@social.mikutter.hachune.net
icon

Qtもプロパティ定義マクロがあってな……

Attach image
10:59:30 @shibafu528@social.mikutter.hachune.net
icon

ドキュメントから引用した。

11:01:58 @shibafu528@social.mikutter.hachune.net
icon

QMLへのバインディングにも使うけど、メタデータに刻まれるのでダイナミックアクセスできるようになる

11:02:10 @shibafu528@social.mikutter.hachune.net
icon

どう使うのかは分からん

11:03:05 @shibafu528@social.mikutter.hachune.net
icon

The Meta-Object System | Qt Core 5.14.1
doc.qt.io/qt-5/metaobjects.htm

The Meta-Object System | Qt Core 5.15.11
11:04:16 @shibafu528@social.mikutter.hachune.net
icon

たぶんQ_PROPERTYが後発?

11:06:30 @shibafu528@social.mikutter.hachune.net
icon

まあQt 6ではPropertyだけ進化してQObject依存なくなるらしいですが

11:07:12 @shibafu528@social.mikutter.hachune.net
icon

プロパティバインディングのためのテンプレートとして発展して、Meta-Object Systemに乗らずに処理できるようになるっぽ

11:53:54 @shibafu528@social.mikutter.hachune.net
icon

やったーC++だからやりたい放題だーちゅって治安悪化させてる

Attach image
11:54:26 @shibafu528@social.mikutter.hachune.net
icon

これほんまに動くんか????

11:56:05 @shibafu528@social.mikutter.hachune.net
icon

何が楽しくてvoid*を返す何かを作らないといけないのか

11:57:36 @shibafu528@social.mikutter.hachune.net
icon

運動が発生しているな

11:58:28 @shibafu528@social.mikutter.hachune.net
icon

構文お気持ちクラスタ、絶対関わってはいけない

12:00:09 @shibafu528@social.mikutter.hachune.net
icon

キューに何かしらぶっこんだら、結果ができ次第メインスレッドにsigするやつ書きたいけど、Qtの非同期全然分からんな

12:00:36 @shibafu528@social.mikutter.hachune.net
icon

別にPromiseの形してなくていいんだよな

12:31:06 @shibafu528@social.mikutter.hachune.net
icon

ひたすら外部ライブラリのブロッキングキューをpollして結果に応じて処理するの、これは素のThreadの出番ではいう気持ちになってきた

12:31:36 @shibafu528@social.mikutter.hachune.net
icon

高レベルな非同期APIの出番ではない気がする

12:33:11 @shibafu528@social.mikutter.hachune.net
icon

最近普通のクライアントアプリ書いてないから、こういう時どうするんだっけみたいな引き出しが開かないな

12:58:33 @shibafu528@social.mikutter.hachune.net
icon

アタマがフットーしそう

12:58:53 @shibafu528@social.mikutter.hachune.net
icon

久々にマルチスレッドやることになったが人類の頭はマルチスレッドプログラミングができるようにはなっていない(クソデカ主語)

13:18:13 @shibafu528@social.mikutter.hachune.net
icon

おぉ、pimplのためにcpp内でQ_OBJECT使った場合、自分で自動生成ファイルをincludeしないといけないのか。

13:21:46 @shibafu528@social.mikutter.hachune.net
icon

Qtがきゅーっと首をしめてくる

13:21:56 @shibafu528@social.mikutter.hachune.net
icon

最悪かよ

13:22:16 @shibafu528@social.mikutter.hachune.net
icon

あぁもう俺はC/C++プログラマじゃねえんだなってのがよくわかる

14:14:51 @shibafu528@social.mikutter.hachune.net
icon

ワーカースレッドからUIウィジェットが参照されて爆発した

14:15:03 @shibafu528@social.mikutter.hachune.net
icon

様式美

14:18:33 @shibafu528@social.mikutter.hachune.net
icon

敗因: 所属スレッドの異なるオブジェクトのsignalを無理やり呼び出したのでイベントキューシステムが無視されて崩壊した

14:21:18 @shibafu528@social.mikutter.hachune.net
icon

Window[slot] ←[signal] Wrapper [slot]←(スレッド跨ぎ) ←[signal] Worker
で上げていけば上手く動くはずなんだけど、横着して
Window[slot] ←[signal] Wrapper ←(ただの関数呼び出し)← Worker
した

14:34:59 @shibafu528@social.mikutter.hachune.net
icon

アッsignal/slotはQtが認識できてる型じゃないといかんのか

Attach image
14:35:07 @shibafu528@social.mikutter.hachune.net
icon

めっちゃ怒られた

14:35:56 @shibafu528@social.mikutter.hachune.net
icon

QObjectに乗っかるなら、あまりstd型とかライブラリ型露出させないで取り回すほうが良さそうだなー

14:44:41 @shibafu528@social.mikutter.hachune.net
icon

Qt、invokeMethodとかいうメソッドでスレッド跨ぎメソッド呼び出し一応できるのか……なんかWinFormsのInvokeを思い出すんだが

15:30:24 @shibafu528@social.mikutter.hachune.net
icon

なんでQMapはconnectデフォルト対応なのにQMultiMapはできないんだよwwwwe

15:30:29 @shibafu528@social.mikutter.hachune.net
icon

ふっざけんなwww

16:11:58 @shibafu528@social.mikutter.hachune.net
icon

地獄みたいなコード書き換えをやって非同期処理化できた

16:16:49 @shibafu528@social.mikutter.hachune.net
icon

このコードめっちゃしんどいな、正気度減ってきた

16:30:40 @shibafu528@social.mikutter.hachune.net
icon

半日もこんなんやってたら気が狂うわ >> 非同期処理化 · shibafu528/florarpc@90545fb
github.com/shibafu528/florarpc

16:32:38 @shibafu528@social.mikutter.hachune.net
icon

gRPCの着信がイベント駆動になったのは良い

16:32:53 @shibafu528@social.mikutter.hachune.net
icon

それを実現するために書いたコードがカス

16:34:28 @shibafu528@social.mikutter.hachune.net
icon

service CheckinService {
rpc checkin(net.shikorism.EjaculationRequest) returns (net.shikorism.Ejaculation);
}

16:35:32 @shibafu528@social.mikutter.hachune.net
icon

マルチスレッドプログラミングのせいで今クロックが上がってる

16:35:42 @shibafu528@social.mikutter.hachune.net
icon

16:46:37 @shibafu528@social.mikutter.hachune.net
icon

Qtとstdの板挟みしんどすぎるなあ

18:03:15 @shibafu528@social.mikutter.hachune.net
icon

grpc-rubyちょっとだけ眺めてるんだけど、grpc++のせいでマジで1mmくらいアレルギー減ったな

18:03:20 @shibafu528@social.mikutter.hachune.net
icon

そんな単位ある?

18:03:50 @shibafu528@social.mikutter.hachune.net
icon

CompletionQueueのポーリングしてる時はちゃんとGVL外してるんだなあとか

18:28:33 @shibafu528@social.mikutter.hachune.net
icon

マウントを取るのが下手

Attach image
18:35:10 @shibafu528@social.mikutter.hachune.net
icon

FloraRPCのRESとmikutterのRESを並べたらこっちの線が床ペロする

18:36:17 @shibafu528@social.mikutter.hachune.net
icon

解放漏れしてもヤバいペイロードの通信を繰り返さない限り全然増えるきがしない

18:36:53 @shibafu528@social.mikutter.hachune.net
icon

gRPCでUnary RPCだとそもそもヤバいペイロードとか無いしなぁ…

18:38:47 @shibafu528@social.mikutter.hachune.net
icon

一旦寝たほうがいい気もしてきた(連休終わりにして生活崩壊の音)

18:44:16 @shibafu528@social.mikutter.hachune.net
icon

zgockさん……いいひとだった……

18:50:54 @shibafu528@social.mikutter.hachune.net
icon

死にかけてるんだけどコンビニいかな

18:51:12 @shibafu528@social.mikutter.hachune.net
icon

Qtにころされた

18:59:54 @shibafu528@social.mikutter.hachune.net
icon

だーめだ寝るか…今から寝たら何時になるやら

20:46:58 @shibafu528@social.mikutter.hachune.net
icon

1時間半寝たらめっちゃ楽になった

22:29:57 @shibafu528@social.mikutter.hachune.net
icon

3時間仮眠した、悪夢ガチャでつれえ

22:30:39 @shibafu528@social.mikutter.hachune.net
icon

zgockさん生存ルートだったか

22:36:00 @shibafu528@social.mikutter.hachune.net
icon

寝ただけで何も体が楽になってない、詐欺か?

22:37:23 @shibafu528@social.mikutter.hachune.net
icon

本当は4時くらいまで寝たかったんですけど

22:39:14 @shibafu528@social.mikutter.hachune.net
icon

観念して晩飯でも買ってくるか

22:40:09 @shibafu528@social.mikutter.hachune.net
icon

生活習慣壊しただけじゃんよ〜ww

23:24:46 @shibafu528@social.mikutter.hachune.net
icon

酒がなければ普通の女、京町セイカ

23:25:02 @shibafu528@social.mikutter.hachune.net
icon

暴言が過ぎる

23:25:47 @shibafu528@social.mikutter.hachune.net
icon

インスタンス麺とかばかりの時に生野菜食うと生きてる感じがする

23:26:20 @shibafu528@social.mikutter.hachune.net
icon

なんでインスタンスになってるの

23:26:25 @shibafu528@social.mikutter.hachune.net
icon

もうだめや

23:27:41 @shibafu528@social.mikutter.hachune.net
icon

ここに1日分の野菜をプラスすることで、1.3日分くらいの野菜を摂取したことにできそう

23:27:50 @shibafu528@social.mikutter.hachune.net
icon

ほんまか??

23:59:48 @shibafu528@social.mikutter.hachune.net
icon

寝て回復した人 寝ても回復しなかった人