00:00:55
icon

デバッグの方法が何も分からん

00:09:52
icon

あああ!!!!やっと分かったぞ原因が

00:10:04
icon

これ、mruby-delayer-deferredのバグだ。

00:12:09
icon

バックトレースが出ないのを不審に思う

少しでも手がかりを増やそうと、mrb_load_string()にファイル名のコンテキストを付けて回った

なぜかクラッシュしなくなる

00:13:48
icon

ずっと NoMethodError で first が無いという怒られ方をしていたのを思い出す

バックトレース情報が増えたことで出なくなったということは、もしかしてcaller.first……?

mruby-delayer-deferredが使ってた!!

00:14:04
icon

こんなん分かるか!!!!!!!

00:17:06
icon

さて、ここで不思議な話があります。これ、PC上のセルフコンパイル・セルフ実行では起きてないです。さーてなんでかな……

00:17:39
icon

これが誤りで、実は原因が違うかもしれない余地が残っている……(つらい)

00:21:26
2020-09-13 00:19:04 Posting Masanori Ogino 𓀁 omasanori@mstdn.maud.io
icon

デバッグビルドとリリースビルドでなんか違う説(コード読んでない)

00:22:04
icon

あ た り で し た

00:22:30
icon

PC上でenable_debugを落としてmrubyをリビルド、実行してみたら再現できました。ハァ〜

00:27:55
icon

あー、まあ初歩的な話と言えば初歩的な話だけど、さー……

00:27:58
icon

あーつらいなこれ

00:54:53
icon

ハァハァ勝った

01:17:48
icon

yukari-exvoice、今更compatibilityをJava 8にした

01:18:28
icon

匿名クラスのあれがちょっとだけ減ってうれしい

01:19:46
icon

当時過渡期でライブラリ側をJava 8にしてビルドを複雑にしたくなかったから耐えてたんだけど、今はすっかりdesugarがいい仕事してくれるので助かるね

01:20:19
icon

yukari-exvoiceをいじるタイミングがなかったので何年も放置しちゃったけど。

01:35:35
icon

y4aでVirtualWorldを定義して、world_currentでそれを返すようにして、あとはKotlinからdefspellできれば勝ちです

01:38:11
icon

こういうの書きたいよなあ!!!!

Attach image
01:40:01
icon

yukari-exvoiceのおかしい所、別にコンストラクタ内でaddEventListener()とか呼んでmrubyと繋ぎこめれば十分だったはずなのに、アノテーション対応しているところ

01:46:56
icon

exvoiceにおいてannotationは速記でしかないので、protected void defspell(String spellName, Object... constraints)をまず作ることになる。そういえばconstraintsはクラスではなくてslugだから、Java Interfaceからmruby classを導出するみたいなこと考えなくていいな……!

01:47:26
icon

ってことは、defspell(String spellName, String... constraints) で済む……あっこれ速攻で作れるやつでは

01:47:48
icon

今、condition procについては意図的に見なかったことにしています

01:52:30
icon

ってことはこう書ければいいんだな

Attach image
01:53:19
icon

メソッド名がなんかObjectiveになってるな…

01:54:59
icon

Android Studioがすねてgitの変更状況をトラックできなくなった

01:59:19
icon

@toshi_a あれもなかなか、名付けで一気にしっくり来るセレクタになったり深いなって思う。

02:07:10
icon

@toshi_a 確かにあれは頻繁に書くとなると…なあ

02:09:47
icon

@toshi_a たしかにそれでええなwww

02:10:35
icon

CocotodonのPostbox optionからの文構築はNSMutableStringに甘えたな

02:15:55
icon

今日はもう布団に入りました

02:18:10
icon

yukari-exvoiceのアノテーションの難点がひとつあるの思い出した。
あれ、速記として簡単に実装するのを取ったからランタイムでメソッド走査してバインディング処理をしてる。

02:19:22
icon

Androidではランタイムアノテーションは(少なくとも昔)嫌われる傾向にあると思うので、コンパイルタイムでやりたい気持ちはちょっとあるよね。

02:20:31
icon

まあy4a本体では既にコンパイルタイムのAPT処理を自前で書いてやってるので、それを基に書けなくもないが。

02:25:43
icon

command(:report_toshia, name: "としぁを通報する")

02:27:54
icon

時代はnvmeですよ

02:29:44
icon

精液そのものちゃうか

02:30:01
icon

サブドメインあるし

02:31:32
icon

筑波大学あたりにもっと精液臭いやついてほしい、北関東がクソみたいな論調にできるので

02:33:25
icon

乳首大学

09:17:31
icon

うっあさ

09:24:33
icon

Discord NitroやNintendo Switch Onlineが思いがけず継続されていることに気づく

09:28:10
icon

何を思ってかPCに入ってるAndroid Studioがクッソ古いんだけど、y4aはIDEA 2019.2ステイさせてるものの他では困ってないから最新に上げるか

09:28:26
icon

Android Studio 3.5.3っていつのバージョンだよ

09:29:05
icon

y4aも古いバージョンで開発するのやめたいが、腰据えてなんで上げられなかったかから検証するのがだっるい…

09:35:12
icon

先日はディスクフルでbtrfs snapshotからの切り戻しという苦行をやるはめに遭いましたが、どうもめっちゃディスク容量を食ってるのはpacmanのパッケージキャッシュとyayのテンポラリということが分かった。

09:36:09
icon

使ってるSSD、そんなに大きくはないのでこれでも致命傷になりえますね。

09:38:13
icon

使ってねぇVMをエクスポートしてHDD送りにしとくのもしたほうがええな…

09:43:24
icon

🗑️

Attach image
09:49:03
icon

は?

Attach image
10:11:09
2020-09-13 10:10:28 Posting Giraffe Beer giraffe_beer@mstdn.maud.io
icon

This account is not set to public on notestock.

10:11:13
icon

マイクラじゃん…

10:13:28
2020-09-13 10:12:48 Posting 国見小道 kunimi53chi@pl.komittee.net
icon

昨日歯医者行ったわけですが、歯石取る器具がBig Brotherのイントロっぽいの奏でておったまげました(あさのあいさつ

10:13:30
icon

これは草

10:17:58
icon

茜ちゃんVS虚空 - ニコニコ動画
nicovideo.jp/watch/sm37509915

10:21:52
icon

【初音ミク・結月ゆかり】サイコパスラヴ / cosMo@暴走P - ニコニコ動画
nicovideo.jp/watch/sm37502212

Web site image
【初音ミク・結月ゆかり】サイコパスラヴ / cosMo@暴走P
10:28:02
icon

神経衰弱の仕様も、0匹エンカウントも知らんかったが…

FF2(GBA) RTA_3時間10分2秒_Part2/6 - ニコニコ動画
nicovideo.jp/watch/sm37491110

Web site image
FF2(GBA) RTA_3時間10分2秒_Part2/6
10:51:43
icon

yukari-exvoice-runnableのAndroidX移行をやった。y4a本体は永遠に移行してないのに…
github.com/shibafu528/yukari-e

10:53:36
icon

android.enableJetifierとかいうプロパティがあるの知っておったまげたね。クラス参照をsupport libからandroidxに書き換えるのかな。お前本当にバイトコード変換なんでもやるな。

10:57:04
2020-09-13 10:56:48 Posting メカそーた s0at@social.mikutter.hachune.net

This account is not set to public on notestock.

10:57:12
icon

こいつadminおちょくりもできるのか

11:05:19
icon

JNIのクソ長関数名を省略表示する機能ついてて笑ってる

Attach image
11:06:44
icon

しかも引数のjobjectが何者かのインライン表示も増えとる…

11:06:53
icon

どこに力入れてるんだよw

11:09:04
icon

NDK開発するにはIntelliJ Ultimateは使えなくてAndroid Studio使うしかねんだよなあ

11:12:07
icon

しかし本当にいつからかNDKにちゃんと手入れるようになったよなあ。一時期はGradleベースのビルドシステムにずっと対応してなかったのに。

11:15:00
icon

久々に読むとJNI、メソッドシグネチャのあたりとか全然読める気がしなくなってるな。

11:15:54
icon

そういえばJavaはJNIでネイティブやるときすら、ひしだまさんのJavaメモが役に立つのであのサイトは恐ろしい。

11:24:17
icon

JNIのLocalRef管理めんどいので、これをC++で改善できるならやりたいような

11:35:52
icon

ファイルヘッダーにタイムスタンプかいてあったけど、これ2016年に書いたプログラムなのかー

11:36:06
icon

2016年、暴れてたんだな

11:37:43
icon

Java久々に書いてるけど実家って感じ

11:41:12
icon

失礼な。

11:42:13
icon

ああ、JavaだからPostfix completionが使える、書きやすい!

11:42:17
icon

この書き味だよ

11:42:43
icon

Postfix completionは神

11:45:29
icon

IntelliJならだいたいに入ってそうな気がするけど、Java用の初期設定で慣れてるから微妙にキーワード違うと覚えられねんだよな

11:45:57
icon

PHPだとPostfix completionよりも通常のスニペット展開のほうがよく使ってる

11:47:44
icon

foreachで使うのがすき

11:47:53
icon

拡張for

11:48:05
icon

.for, .foriしゅきしゅき

11:48:33
icon

他にもいろいろ使えますよ!

11:48:40
icon

あんまり覚えてないけど!

11:51:22
icon

ついったーで最後にRTしたのがこれなので頻繁に目に入るんだけど結月ゆかりかわいいな twitter.com/GOD_Razor/status/1

11:53:53
icon

String[]のソートってArrays.sort(Object[])で十分だっけ

11:54:12
icon

いやここList<>で受けるか、どっちでも変わらんけど

11:54:38
icon

OKOK thx

11:57:00
icon

んー、JNIにそのまま渡したいからString[]のほうが楽だな。

11:57:26
icon

JNIにパスする前提だとCollectionは手数が増えて扱いにくい

12:01:44
icon

Collection系は一般のJavaクラスなのであらゆる操作でメソッドIDを得て呼び出しをしないといけないが、配列はご存知の通り特別な存在なのでJNIにおいても操作用の専用関数がある

12:37:27
icon

Java -> C -> mruby -> C -> Javaを書いてウワアアアアつってる

12:37:56
icon

JNIヤバい量のボイラープレートが生える

12:38:39
icon

@d_time ブチらないで

12:58:56
icon

mruby -> C -> Javaでコールバック上げていく時に、Javaでmrubyに例外飛ばして巻き戻したい時にどうするか考えてなかった

13:01:16
icon

Handler(Java) -> /JNI/ -> Delayer(mruby) -> Event(mruby) -> Spell call -> /JNI/ -> SpellListener(Java) みたいにスタックしていくわけですよ

13:02:23
icon

これ、一旦Java例外からmruby例外に変換して、そっからさらにDelayer.run呼び出しでmruby例外が発生したとしてHandlerまでJava例外で巻き戻すことになるのか

13:03:00
icon

さすがに一気にJava例外でジャンプは、たぶんできないしやったらmruby VMの状態がぶっこわれる

13:04:53
icon

既存んコードの例外変換、あんまりちゃんとできてない雰囲気あるな

13:05:23
icon

Plugin.call, Plugin.filteringはちゃんと処理入ってるな

13:10:07
icon

そういえばLocalRefって解放しなくてもいいんですかね どうなんでしょう

13:10:28
icon

最近のAndroidではLocalRefの同時使用数制限もなくなったらしいが

13:44:44
icon

ンッ これは来たかもしれん

13:45:18
icon

来てなかった…

13:49:43
icon

やりました!

Attach image
13:50:06
icon

modelsの順序がおかしいの直さないといけないけど、これは大きな一歩だ

13:53:07
icon

これはほぼ勝ちですわ、昼飯たべます

14:01:36
icon

引数オーダーおかしいのだいぶマズいな

14:13:14
icon

ンッしょぼいコーディングミスだった

14:14:36
icon

よっしオッケー、うまく動いた

14:43:44
icon

こんにちは、雑です

14:44:56
icon

タスクは?

14:57:33
icon

Javaとして自然になるようにdefspellのアノテーションと引数バインド仕様考えるのむずいなw

15:00:01
icon

モデルは一般の引数で受ければいいものの、キーワード引数をどう受けるか。単純に残余引数としてMapで渡すにしても、何番目の引数に?それを明示的に期待するのか暗黙的に期待するのか?とか

15:01:12
icon

名前情報のついたアノテーションをつけたら必須キーワード引数として、残余受け取り用のアノテーションをつけたら残りをすべてその引数に、みたいなのが自然かなと思っている

15:01:28
icon

Webフレームワークみたいだな。

15:12:41
icon

つまり、こうだな

Attach image
15:44:44
icon

やったー! Spellアノテーションできたよー!
@toshi_a

Attach image
15:48:09
icon

うわ、コミットコメントに@使ったらGitHubでメンションリンクになった…これ通知飛ぶやつ?

15:49:56
icon

実装が大変なことになっていて、これをランタイムでやるのは端末に優しくないなという気持ちが少しある
github.com/shibafu528/yukari-e

Web site image
Spell アノテーションサポート · shibafu528/yukari-exvoice@5fec8e6
15:50:40
icon

というか引数名とか取るには新しめのAndroidが必要で、もうコンパイルタイムのAPTでやれよ状態がすごい

15:51:40
icon

引数の誤りとかもランタイムまで検出できないわけだし…

15:51:46
icon

Javaのうまみがない

15:59:18
icon

...Javaにオーバーロードがあるのを完璧に忘れていた

15:59:26
icon

オーバーロードのない言語やりすぎて完全に忘れていた

16:01:47
icon

あ、キーワード引数バインド失敗してるな

16:03:50
icon

アッ

Attach image
16:04:02
icon

やっぱコンパイルタイムでやるか明示指定じゃねーとだめだな…

16:05:30
icon

まあそりゃそうだよなあ、難読化とかもあるし、その手の情報が取れることを期待しちゃいかんよなあ。

16:06:20
icon

明示指定するような作りにしたらうまくいった。

16:06:37
icon

愉快だな

Attach image
16:10:42
icon

これでy4aをspell対応させる準備ができた

16:11:00
icon

Javaからspellを呼び出す手段を用意してなかったが、今のところ必要ないな

16:11:24
icon

あ、これ例外吐かせたらどうなるか見てない 見とこ

16:13:49
icon

...InvocationTargetExceptionを握り潰していたのでここで消えていた

16:14:01
icon

んー…これよろしくないな

16:14:28
icon

ランタイムでinvoke使ってるからこーなってるだけだが、そもそもこの辺を雑に潰してるの想定してなかった

16:14:38
icon

勘違いエラー処理ヤバすぎる

16:14:55
icon

縦になって

16:25:56
icon

InvocationTargetException.cause をちゃんと見るようにした…

16:26:16
icon

見るというか、検査例外ならRuntimeExceptionでwrapしつつ再スローかけるだけだけど…

16:26:51
icon

Attach image
16:28:09
icon

JNI DETECTED ERROR IN APPLICATIONの文字列の圧すごいよな。これ今はわざと起こしたから理由分かるしいいんだけど、想定してない時に引くとマジでだるい

16:32:03
icon

staticだと名前消し飛んでちょっと追いにくい

Attach image
16:45:38
icon

代々木のアゲルヤ、やよい軒を葬ったあげくあっさり潰れたのマジ

16:46:16
icon

なんか結局1回も行かんかったな?

16:56:41
icon

んー、mruby上でjthrowableをグローバル参照で握る例外クラス作るか?

17:02:44
icon

つまりこれが理想だな?

Java ↓ throw new RuntimeException()
JNI ↓ JNIEnv::ExceptionOccured() / mrb_exc_raise()
mruby ↓
JNI ↓ mrb_protect() / JNIEnv::Throw()
Java ↓ catch (Exception e) {}
>虚無<

17:04:11
icon

別にpokemon catchしろってわけではなく、こう流れるようになってればどうにでもハンドルできる

17:04:44
icon

mrubyのレイヤーでJavaの例外?いや知らんわグシャーつってrescueしてもいいし、Javaまで戻ってきてからゆっくりcatchしてもいい

17:46:49
icon

mrubyでC関数でメソッド定義した時、superに相当する呼び出しってどうやるんだ…?

18:12:37
icon

えっまじでmrubyのC関数からsuperコールどうやるんだ、mrb_method_searchでirep or 関数ポインタを得て自分でVMスタックいじって呼び出せっていってる?

18:13:26
icon

レシーバは同じだけど、実行される関数をすげ替えないといけないわけだから、mrb_funcallではどうやっても到達できないんだよな

18:13:49
icon

ンー、Rubyで書くのが穏当か?

18:16:03
icon

マジでC実装してるのが無さすぎるな

18:18:35
icon

mruby-methodの Method#call の実装を見た感じだと、最低限mrb->c->ci->midを差し替えて実行することはできそうだけど、あの辺触りたくないしrubyで書こ…

18:19:00
icon

midすげかえた上でmrb_yield_with_classとかいう見たこともない関数が呼ばれている

18:20:17
icon

yieldの応用として呼ばれてるの、マジ…

18:21:08
icon

vm.cのOP_SUPERをみてもまあまあ似た処理をしてるけど、vm.cにベタ書きでAPIがない…

18:34:02
icon

エッ、そこ補完できるようになったの!!!!

Attach image
18:34:22
icon

ヤバ

18:34:52
icon

メソッドシグネチャのJNI表記を頑張って書かなくて……ええんか!!

19:04:59
icon

Java Spellから例外が上がったときに適切にmruby例外として巻き戻せるよう改良したところ、はて何も起きないぞ?と思ったらサンプルmrubyコードにtrapかいてなかったです

19:05:31
icon

Delayer::Deferred利用の罠、trapしわすれると例外が宙に浮く

19:05:49
icon

Promise一般の話ではある

19:26:43
icon

信じられないスタックが積まれた状態でmrubyからJNI関数を呼ぼうとしてJavaのStackOverflowが発生して自殺するとかいう、よくわからん現象に見舞われている

19:30:02
icon

あー、mrb->excクリアしないままなんかやろうとして死んでた

19:53:04
icon

Delayer.run中にJavaにコールバックしたリスナー内例外が発生した場合、ユーザープログラムではなくYukariの問題であることが明らかなので例外をJavaに戻してクラッシュさせよう

19:53:38
icon

じゃあユーザープログラムなら……どうしようね。

19:55:20
icon

mrubyのオブジェクトからjthrowableが拾い出せるとかいう

Attach image
19:55:31
icon

作りこみをね、していました

19:57:50
icon

ロロナのアトリエか〜

19:59:41
icon

おさけーさんくーちゃん気に入ってるってことは、アメリカに戻る前に箱入り決定やな

20:00:50
icon

@toshi_a 正しい

20:02:29
icon

JNI、Android Studioのサポートが強化されてるから前より書き易いのだけ幸いだな。

20:02:40
icon

いや〜4年前にこれくらい欲しかったな〜〜

20:03:42
icon

キリがないので脳死で500文字カウントすればいい説はある

20:04:09
icon

あーでも結局twitter-text-simpleidnが要る。URLの文字数が固定。

20:04:57
icon

Twitterと違って重みつけカウントはしなくていい

20:06:15
icon

今はy4aいじってるから…

20:06:26
icon

y4aいじる前にexvoiceいじりすぎて満足しかけてる節

20:06:51
icon

目標までが遠すぎるんじゃ。まだTwitter互換Diva Model葬る作業もしてないんだぞ。

20:07:13
icon

mruby-mixのアドオンとして移管したから、y4a側は消すとかがある

20:07:36
icon

つかもっと妥当なDiva Modelを定義するべきっちゅーはなしもあり

20:22:37
icon

完全に疲れてやる気がでねえ

20:22:46
icon

y4aにlibexvoiceをリンクするところまで辿り着いてない

20:39:01
2020-09-13 20:36:51 Posting メカそーた s0at@social.mikutter.hachune.net

This account is not set to public on notestock.

20:39:09
icon

こいつ絵文字を……!

20:44:04
2020-09-13 20:41:17 Posting あっきぃ akkiesoft@social.mikutter.hachune.net
icon

星空のソーシャルディスタンス - ニコニコ動画
nicovideo.jp/watch/sm36660906

Web site image
星空のソーシャルディスタンス
20:46:06
icon

ALFEEのライブはコント以外はソーシャルディスタンス保たれてるな…ということを思い出した

20:47:41
icon

晩飯を買いにいくというタスクがDelayerに積まれたまま、一生runされてない

20:50:09
icon

Laravelまたなんか作ったのか

20:50:26
icon

まあええわ飯買いいこ

21:03:06
icon

ALFEEは母親に履修させられたので

21:03:22
icon

胎教されてた可能性も捨てきれない

21:20:40
icon

見たすぎる

21:22:27
icon

確かに

21:49:21
icon

ある

21:57:51
icon

奇遇ですね今私もJenkinsfileに./gradlew cleanを追記したんですよ

21:58:32
icon

ああああゴミカスうううううビルドまだ落ちてるやんけえええ

22:01:18
icon

ン〜〜〜これたぶんあれじゃな?CMakeListsでglob使ってるのが悪いのでは

22:01:36
icon

ほいじゃま手書きしてみるか…

22:07:39
icon

完勝

Attach image
22:11:10
icon

yukari-exvoiceはお手元のMavenやGradleでBintrayから引っぱれるぞ(使い道がy4a以外にあるか…?)
bintray.com/shibafu528/maven/y

22:13:22
icon

miquireのヘルパー関数をJavaにエクスポートするの忘れてたわ

22:23:44
icon

は……!? こっから補完できんの……

Attach image
22:28:42
icon

美少女になりてえ

Attach image
22:33:04
icon

JNIでmrb_stateのポインタを持ち回るときは、Javaのフィールド変数に持たせるならネイティブに下りる時は引数に持たせておくと便利

22:38:45
icon

RevertのRevertが繰り返されてディスガイアの反撃システムみたいになってるPull Requestなら見たことある

22:43:58
icon

mrb_rescue使って全てのJNIエントリでmrubyの例外のキャッチを保証したほうが良いきがしてきた

22:44:04
icon

mrb_protectだった

22:52:40
icon

mrb_load_string()があれば何でもできる!ってのを改めて、ちゃんとJavaメソッドを作った

22:57:45
icon

依存関係めっちゃ削ってあるyukari-exvoiceになんでguava入ってんやろって思ったら、どうもmrubyオブジェクトプロキシで呼出メソッド名をスネークケースに変換するために使っているだけだった

23:18:06
icon

SocialMikutterHachuneNet refinementsだ

23:18:58
icon

module SocialMikutterHachuneNet
refine Object do
def 出社
:unko:
end
end
end

23:21:15
icon

前職だと単純にタイミングがかぶって辛かったんだけど、現職だと人の数に対してトイレのスケールが足りてないから常時つらい

23:21:39
icon

リモート推進することで問題を緩和してほしい、弊社には。

23:22:07
icon

今のオフィスビルに入っている限りトイレのスケールアウトは困難なので…

23:23:18
icon

お前隣席のオタクが苦しみだしたと思ったらうんこしてたら最悪やろが…流石によぉ…

23:30:42
icon

汎用機にターミナルエミュレータでログインするやつ?

23:30:50
icon

それは別の地獄だね

23:45:20
icon

あーもうexvoiceのx86ビルド、もうy4aからも参照してないしビルドから完全に外すか。ABIのかけ算でクリーンビルドの所要時間が伸びるの大変すぎる

23:46:28
icon

ABIかけ算ビルド、一昔前の32bit並行時代のiOSとかどうだったのだろう