うどんウマー
ボンクラプログラマー
頭とお腹が弱い。
最近は個人鯖の @shibafu528 がメインです。
⚠️ CW設定のない下品な発言が非常に多いです。これは仕様ですのでご了承下さい。
ℹ️ spam対策でフォロー承認制にしています。上の一文が構わないという方ならお気軽にどうぞ。
FINAL FANTASY XIV 関連の著作物は
(C) SQUARE ENIX CO., LTD. All Rights Reserved.
セブンのやつ、うまいけど難点として関東人として醤油系の味のやつを食いたくなること
mruby-mixにはWorldとかSpellみたいな、インフラを提供するプラグインを何とかして入れなきゃいかんなあ
一方TwitterとかMastodonみたいな、Worldプロバイダーは入れる必要が無い
Worldプロバイダーは提供しないので、ホストプログラムがWorldの実装やトゥートみたいなメッセージのModelを提供しないといけない。
メッセージモデルの実装がなかなか面倒かも。mikutterプラグインは大抵Twitter::MessageかMastodon::MessageあたりのAPIを期待しているので、互換を取るようにしないと突然の死が待っている
mruby-secure-randomが出してるエラーか…
urandomから十分な入力が得られなかった場合にこのエラーメッセージ出すっぽいな
Diva::Model()なんてのが定義されてるの初めて知ったんだが、これを使うには Diva::Model@slug に適切な値を設定する必要があって、それはmikutterではDiva::Model.registerなんだな
Diva::Model()、ObjectSpace class使ってるからこれmrubyにあるか……?って思ったが、あるらしい。ただしObjectSpace.each_objectはEnumeratorを返してくれない
でも我々にはEnumerator.newがあるから、こういう問題は簡単に解決できる
Enumerator.new {|y| ...} はマジで便利、これがあることを覚えておくと救われるケースがある
/dev/urandomからの読み出しめっちゃ失敗するからもう寝ろってこと?
夕方に4時間ぐっすりしてしまったのでおめめぱっちりなんだよなあ
urandomの読み出しエラーとSpellのLocalJumpErrorにボコボコにされてる
Enumerator.new { |y| ObjectSpace.each_object(Diva::Model.singleton_class), &y.method(:<<)) }.find
から
Enumerator.new(ObjectSpace, :each_object, Diva::Model.singleton_class).find
にしたらパタリとLocalJumpError起きなくなった
spell呼び出しもDelayer::Deferredの動作も見れた
結局spell plugin自体は何もコード直さずに動いたな。コアライブラリを移植するだけで終わった。
ホストプログラムから提供されたWorldインスタンスは関知すべきではない、という話はまず当然あるにして、さらにファイルシステムを直接使えない前提で設計しないといけない
直列化くらいまではmruby上でやってもいいけど、それを書き出すのはホストプログラムに依頼しないといかんな。
あ〜いや、永続化のための処理まるごとホストプログラムに任せたほうがいいな。mikutterのPlugin::World::Keepは直列化・暗号化までやってるがそんなんホストプログラムに任せたらいい。
そのほうが、ホストで何かしらのkeychainにぶっこむとかできるし
イオンとトライナリーの女達は等身大作らないと思う(マジ顔)
「トライナリーの女達は向こうに実在している」から等身大フィギュアにはしないだろ
年次報告.txtで遠距離恋愛してるんだからねえ、そんないきなりねえ…まさか
$はお金っぽいからここに給料を入れよう→グローバルにどこからでも給料を差し引けるシステム完成
MiniTest::Assertions、refuteとか名前使ってるの嫌がらせだろ Fしか覚えられないから多分fuck_equalとか書いちゃう
assert_notを定義したActiveSupportは正しい
フィギュアキュー、先日空になったのでようやくオタク卒業できた
まあソースコードはmikutterのものをコピーしてるわけですが…
あ〜やっぱGitHubよりmikutter.gitのほうがpull速いわ〜
Worldを移植するため、まず Kernel._ のスタブを書いた
ホストプログラムがKernel._を再定義してもええんやで
開かせてはいけない財布がある、開かせてはいけない口座がある
どうすっかな。Androidだとシステムのlibcryptoは使用禁止だったはずなので、mruby-digestを雑リンクできないな
@toshi_a なんかプラットフォーム非依存でテキトーに解決したいところだが。
Plugin[:world]#world_order_hash -> Digest::SHA1
Plugin::World::KeepのほうがどうPlatform independedにするかよ
@toshi_a 実際に欲しいのはWorldが担当しているcollectionだけという説はあるね
ユースケース的には……ホストアプリケーションのアカウントが仮想Worldインスタンスとして提供されて、Spellパターンマッチに使えれば十分ですね…
こっちはなあ、イベントがコロナでコロって配れてない大量のポケットティッシュあんねん
このタイムスタンプが採番される以前は、完全に俺が手でmasterにマージして直接document rootにrsyncしてたので…
あ、違う。思い出した。masterにマージしてpushしたら、本番サーバのdocument rootでgit pullしてたんだ!!
オープンベータテストの時間だオラァッ!!!!(各位よろしくおねがいします、何かあったら連絡ください)
ぶるん!!!!!!!!!ぶるん!!!!!!!!!ぶるん!!!!!!!!!ちんちんです!!!!!!!!!!!!!!!!!!!!!!!!!
夏稀の彼氏 さんのチェックイン (8月30日 16:05) - Tissue https://shikorism.net/checkin/14445
WebUIチェックイン以外にマーカーが出るのはspam対策です。
Tissueのコントリビューターになると変なレイヤーの残ってるTissueロゴSVGとかが貰える
クソ映画見てたらクソみたいなSentryが飛んできたので泣いてる
あーまじ/dev/urandomから読み込み失敗するのなんや
1. 作業が捗らない
2. /dev/urandomから16バイト読み込めない
最小手で上手くやった感じがあるのは良いんだけど、なんかなーという感じなのでmruby-secure-randomをカスタマイズするか…?
mruby-secure-randomが悪いのか、mruby-ioが悪いのか判断付かない
SecureRandom.uuidしか使ってないし、libuuid使っていい?と思ったが、これだとAndroidで困るんな
弁当はセブンが好みだけど、サラダコーナーがローソン一択みたいな難儀な感じなので微妙につらい
エビフライを飼育する茜ちゃん / やかた さんのイラスト - ニコニコ静画 (イラスト)
https://seiga.nicovideo.jp/seiga/im10590523
Q. あなたはどこでミスキーを見つけましたか?
A. ツイの鍵垢のオタク
完全にそのオタクの知り合い方面が身内運用してるやつなんだろうなって思ってたから、今の姿がやや信じられない節がある
このアカウントは、notestockで公開設定になっていません。
PHPのrandom_bytesの実装とか、CRubyのRandomの実装をみて、へぇ〜プラットフォームごとに面倒くせえなあってなった
PHPのrandom_bytesひとつとっても
Windows: CNG
Linux: getrandom syscall
FreeBSD: getrandom()
[NO]BSD: arc4random_buf()
他: /dev/urandom
うわ〜〜つらそ〜〜〜www
でもWindows向けでちゃんとCNG使ってるのまあまあえらいな
このアカウントは、notestockで公開設定になっていません。
Linuxならgetrandom syscall実装以前とか、まあなんか色々なフォールバックで最後に/dev/urandom読みになってる
CRubyだとだいたい同じだけどmacOSならSecRandomCopyBytes()使ってるんだけど、PHPはやってなさそうだな
クソバカ情報なんですが、このサンプルが指すURLをTissueに食わせると不具合でクラッシュする
https://mstdn.maud.io/@kb10uy/104777418143390211
Tissue側の問題なのでサンプルはまあ、そのままでいいです
Sentry見張ってて何か変なの来てるなあとは思ってたんですが
具体的には checked_in_at のパラメーターに subsecond を含む RFC 3339 (ISO8601) 形式の文字列を投げるとエラーが帰ってくる
"2020-07-21T19:19:19.451+0900" みたいなやつってこと?
chrono crateだと秒未満9桁吐くけど、PHP new DateTime()は6桁までしか実質入力できず9桁では死ぬ了解!
まあどうせシステム仕様として秒すら切り捨てるので、ms以下を入力する意味はマジで無いし回避もしやすそうなので回避でお願いしたい
Rust Playgroundと3v4lを見比べる日が来るなんてな
Pluggaloidに対してuuidと大嘘をついてidentityとして使える値だけ返す関数、Cで実装できちあ
UnsecureRandomとかいうクソmodule名、これでSecureRandomにalias張るんですお
Pure Ruby実装を最初使おうとしたんだけど、mrubyのFixnumが32bit integerだったりでちょっと計算に向かないので、Cで結局書き直した
最初に見た実装はCRuby向けで、BigNumを前提としていたから…
あこれmrubyに返すときにuint64_t->int(処理系int)_tキャスト発生してるな…
ってことは64bit以上のダイジェストは全部おかしなreturnか
常にhex string化して返すくらい割り切ったほうが良さそうまであるな
んいや別にrubyのstringは任意chatだからそっちでいいのか
Stringで返して、Rubyコード上ではhexにしたけりゃunpack("H*")すりゃいいって話はあるな
10問中、8問正解です!kb10uy マニア|~kb10uyオタクは誰だ~ #kb10uyに関する様々なクイズ #kuizy
https://kuizy.net/quiz/154057
「ん〜〜〜〜〜日下さんの乳たぶんそんな大きいはずがないんだよな、kbそういう趣味ではなかったと思うんだよな〜〜〜う〜〜〜〜ん(日和って外す)」
アホ面下げてにぎやかしていたが、座席移動で前より厳かな場所に飛ばされてしまったの借りてきた猫になるしかねえ
しゃあねえSlackで怪文書流す係になるか 仕事しろ はい
俺が騒がしい以上に俺のキーボード打鍵が騒がしいという話もあって、安倍辞める前にもう10万円配ってほしかった
このアカウントは、notestockで公開設定になっていません。
4.1.0出てから「なんか4.1でやり忘れあったっけ?いや忘れてるし無いかも」ってなってる
mruby-mix、よくよく考えると今のコードだとmrb_initした瞬間にdefault Delayerが生成されて勝手にコアプラグインが全部ロードされてる、これは驚きが大きいのでは……?
必要なものだけ依存でロードするみたいな戦略が取れないからよくないな、普通にmrbgem上でPlugin.createするとこうなるから、Plugin.autoloadみたいなのが要る
単にautoload(&block)みたいなAPIで、block内でPlugin.createする感じで十分なはず。Miquire Treeとしてこれを評価する仕掛けを用意すればいける
ここでmruby版Miquireの「ファイルシステム以外からでもロードできるように抽象化されている」が活きるんやな…
もへもへ、もしかして俺の思考はチンポでやってると思ってない?
絵を描いてたら、思ったよりWorld Pluginとして移植する分量ないなってやっと飲み込めてきた
Pluggaloid Collectionに対するadd/delete/rewind指示はRuby上でやったほうが楽なので、on_world_createとかその辺をインターフェースにしてHostからイベントコールで指示する感じだなあ
ガッとCコードを書けばまあCからでもできるんだけど、ひたすら面倒臭いだけ
mruby worldはほぼCollectionの調停が仕事で、他にやることがねえ
mrb上のオブジェクトポインタさえ存在できてしまえば、current_worldは必要なら自ずと作成できるわけだし
mikutterを作ることでmikutterを追体験している
VirtualWorldとして(大抵のプラグインからTwitterやMastodonのWorldを期待して)求められるビヘイビアを整理する作業はある
まあそういう部分もModuleとしてMix-inを作っておいて、実装サボれるようにできたらいいね
週間mikutterをつくるマジで悩ましくて、俺の頭はまだまだなんやってなる
PS3の背景、キラキラしてない版とキラキラしてる版どっちがすき?
PLAYSTATION 3時代のゲーム起動時のSEがわりと好き
MastodonだとWorldの情報にアクセスするのは多くなさそう、どちらかというとTwitter時代のプラグインのService.primaryかな
mruby-mix、Service.primaryエミュレーションをなあなあにしながらSpellを入れたので、極端に現行プラグインしか動かん可能性がある
@toshi_a わかる〜〜ww 実際exvoiceの既存実装そんな調子だしな
spellをディスパッチするだけのmix-inありじゃね?