あーーーこれが__id__の本体か。確かにシリアル番号を生成している https://github.com/ruby/ruby/blob/master/gc.c#L4522
あーーーこれが__id__の本体か。確かにシリアル番号を生成している https://github.com/ruby/ruby/blob/master/gc.c#L4522
GitHubがgc.cをインデックスしてないせいで検索に引っかからなかった……。次からは面倒くさがらずに手元に落としてきます
VALUEがアドレス(的なやつ)なのは合ってたけど、__id__の実装だけアドレスに依存しない形に変わったっぽい
寝てる間になんか揺れてた気がしたけど本当に揺れてたのか https://typhoon.yahoo.co.jp/weather/jp/earthquake/20240301054323.html
シュクメルリ2回食ったので飽きつつあるけど、もう終わっちゃうし最後に食べといてもいいか
プレかポストかは東京にいるておくれどもはいいとして、つついさんふぇのまーさんの都合次第かなあという気持ち
ChatGPTに店を聞いて実在する店が出てくると思ってることのほうが不思議なんだけど、なんでそういう期待をしてしまうのか気になる
偽セキュリティ警告みたいなの、スクリーンショットをエーアイに食わせて相談できるようにするとよさそう
@teobot I don't get why it sounds like a risky question. Can you elaborate further?
healとeelを引っかけるジョークはRedditかどっかで見た気がするんだけどこんなんだったかな……
プロジェクトごとに巨大node_modulesができるのがアホらしいので一カ所にキャッシュしてほしいんだけど、これできるのってpnpmだけ?
Bunってやつもnpm modulesをキャッシュするみたいだけど、こいつはパッケージマネージャというよりランタイムそのものなのかな
BunはTypeScriptを理解するしバンドルもできるけど型チェックはしてくれないのか。まあそりゃそうか
日本ではクレカの申込時に銀行口座を紐付けられるのに対し、アメリカだとデフォが小切手支払い&残高のうち好きな額だけ払える仕組みだからでは
銀行口座持ってない人の数は知らんが、持ってる口座数はcredit scoreに乗ってるのでさすがに口座持ってない人はクレカ作れないと思う
このアカウントは、notestockで公開設定になっていません。
前職では開発用の仮想環境をvagrantで立ち上げていたのが2016年ごろから内製のdocker-compose的なツールに移行したんだけど、そのツール/コマンド名がhoboだった
1時間ダウンしただけだと1日で見てもAvailability 95.8%もあるのか。39.39は遠い
tailwindは本来CSSに書く1行をclassの1要素に変換してるだけで、デザインシステム辛い問題はあんまり解決されないし、むしろコードの視認性が悪化するデメリットがつらいと思う
自転車、どうせ車買うまでのつなぎだと思って一番安い2万円くらいのやつにしたけど、意外と乗るのでもうちょっといいやつでも良かったかなと思っている
週3労働で重めのプロジェクトやるの、休日を挟むと何やってたか分からなくなってつらいな
NFTブロックチェーンの外に権威がいないなら、DMCAを受け取って処理すべきプラットフォームも存在しないんでは?
コンテンツはお金と違って「所有権」をブロックチェーンの中で動かす能力があることだけでは何の役にも立たず、コンテンツをブロックチェーンの外に取り出さないと意味がない、ということを誤魔化している点がNFTのヤバさだと思う
個人レベルの労力でドライバを書けば古代のハードでも動くようになってるのは、抽象化がだいぶうまくできてる証拠だと思う(NetBSDエアプの感想です)
個人レベルで数台のWindowsのマシン間で構成を共有したいときってどういう構成管理ソリューションがいいんだろう
個人でやろうとすると構成管理担当の中央サーバが存在する時点でかなりオーバーキルで、AnsibleなりMitamaeなりのcookbookとall-in-one binaryを落としてきて走らせたら完了くらいの温度感でやりたい
@teobot @InnocentWalls 乱数でもいいから経路をサジェストしてあげて
赤ワインならdry, flavorful, full-bodied, earthy, sourあたりの語彙を適当に組み合わせるとよさそう。白はあんまり飲まないのでしらん
Reactは最低3画面くらいあるSPAじゃないと、ボイラープレートとビルドの煩雑さにあんまり釣り合わないなという気持ち
Next.js便利ではあるけどちょっとでもレールから外れるとすぐ変なworkaroundが必要になり、Ruby on Railsと同種のつらさを感じる
このアカウントは、notestockで公開設定になっていません。
確定申告exeで作ったxtxを確定申告webで提出したけど、署名用パスワードは聞かれなかった気がする
githubの鍵はマシンごとに作ってるし、なくなったら新しいの登録すればいいので……
なんかそれっぽい鍵が見つかったんだけど、mikutterリポジトリにpushするのってどうすればいいんだっけ
なんかgmailとosak.jpの両方に通知が送られてて、なんでだろうと思ったけどそういえばRedmineはgravatar決め打ちだからprimaryがgmailじゃないとだめだったのを思い出した
働きたくない! んっ・・・ああっ・・・働きたくな はたらきっ働きたい!人のために働きたい! ううっ・・・
#shindanmaker
https://shindanmaker.com/348373
道路単品の質はアメリカも日本も変わらんと思うけど、道路網の作りはアメリカの方が良い
アメリカのハイウェイは日本みたいに地域色豊かなサービスエリアがないのでつまらんという観点もある
そもそもサービスエリアがない(ファーストフード店とガソリンスタンドからなる集落が点在するだけ)
会社が支払える賃金は経営状態のみから決まるのではなく社会情勢など外部の状態にも依存するので、会社が突然大幅な賃上げに応じたからといって今までの労組の能力・努力不足と断じることはできないと思うんだけど、まあ労組が不信感を持たれていた場合に最後の一押しになる可能性はあるのかな
資本家は不当に利潤をため込んであり叩けばいくらでもホコリが出てくるというモデルを仮定して、その叩く役が労組であると位置付けてたとすれば即面目丸つぶれでも説明できそう
もっと単純に、相手を殴って(部分的にでも)言うことを聞かせることで権力を誇示することでしか労組が自分自身の立場を定義できなくなってる、みたいな手段と目的が逆転してるケースもありそう
wi2のフリーwifiに繋ぐとsmhnとSSL通信できないっぽいんだけどなんでだろう
@teobot enum E { A, B, C } に全部の値を舐めるイテレータを定義したいんだけど、どう実装するのがいい?
@teobot Rustのenumの値って全部大文字にするのと頭文字だけ大文字にするののどっちが普通?
@teobot あー確かにenumのバリアントはtype constructor的に働くからそうなるのが自然なのか
@teobot Rustのmoveって所有権を移動するだけで、実際には常にメモリのコピーが走るって聞いた記憶があるんだけど本当か知ってる?
@teobot VecやStringはC++でいうmove constructor的なものを実装しているってこと?
@teobot 「元の変数は無効化され」っていうのがよく分からないんだけど、これはRustの型レベルで元の変数にアクセスできないように制限されるって意味であってる?
@teobot そういう意味なら、StringやVecのDrop時にはヒープへのポインタの参照カウンタを減らすような操作をしていそうだけど、何も起きないっていうのは本当に正しい?
@teobot RustのVecから特定の条件を満たす要素のインデックスを得るのはどうすればいい?
ssh -Aで鍵を送ってる状態でtmuxを起動した後、接続が切れてssh -Aし直してからtmux attachしてもSSH_AUTH_SOCKが変わってるので鍵が取ってこれない問題
@teobot もう開いてるシェルのSSH_AUTH_SOCKがtmux attachのタイミングで勝手に追随するようにしてほしい
@teobot tmux自身のSSH_AUTH_SOCKを表示するtmux commandってある?
@teobot 自動でやるのは面倒そうだけど、SSH_AUTH_SOCKの更新自体は `eval $(tmux showenv SSH_AUTH_SOCK)` でできたのでこれを関数にして必要なときに手動で呼ぶ運用にします
YubiKey使ってもパスワード入力した上でYubiKeyのタッチを求められるの面倒になってきた。スマホのAuthenticatorと比べてあんまり便利になってる気がしないな……
このアカウントは、notestockで公開設定になっていません。
wezterm sshの理念は好きなんだけどagent fowardingができなさそうなので諦めた
Windowsが突然激重になるの割とあったけど、Twitterをブラウザの固定タブにしてたのをやめて、Twitterを開きっぱなしで放置しないようにしたらかなり改善した
Fidelityで買ってあったCDが満期を迎えたのでもう一周しようかと思ったら非居住者なので買えなくなってた(かなしい)
Rust、構造体のことを関連のある変数をまとめたものじゃなく、変数をflattenしたメモリ表現としか思ってない感じなんだよな……
Rust、構造体が&mutでborrowされててもimmutable扱いになるフィールド修飾子がほしい
Rustの構文は(C++と比べれば)まあまあ好きなんだけどやっぱりborrow checkerがいらないんだよな……。Zigやったほうが幸せになれるんかな
Misseyこんな機能あるんだ(元ポスト https://social.mikutter.hachune.net/@osa_k/112089112819611695 )
ルートビアはBarq'sがうまい https://www.coca-cola.com/us/en/brands/barq-s
そもそも自転車は常に二段階右折をしなければならない、なるほど…… https://www.keishicho.metro.tokyo.lg.jp/kotsu/jikoboshi/bicycle/menu/rule.html#:~:text=%E5%8F%B3%E6%8A%98%E3%81%AE%E6%96%B9%E6%B3%95
重い本が少なくとも5冊は積まれてるはずだけど、引っ越しのタイミングで既読管理が壊れたのでどれを積んでるのか分からなくなった
金曜からなんとなくだるくて土曜朝起きたら発熱してたけど、丸一日寝込んでたら治った
Goは書いてあることがそのまま実行されて、それで後から読む人が不安にならないことに特化した言語だからね
ていうかRecursive Typeで怒られるのはそもそもGoで普通に型名を書くと(参照ではなく)実体としてメモリ確保されるからであって、Genericsは関係ないのでは?Cでもそういう再帰的な型は作れないし、作りたいならポインタを使って間接参照させる必要がある
1.18以前はinterfaceの中に単独で書ける型名はinterfaceのみで、それはembedded interfaceとして扱われていたけど、Genericsのサポートのためにinterfaceじゃない型名を書いたときの意味が全部定義されたらしい。力技すぎて草 https://go.dev/ref/spec#General_interfaces
Union Typeを使って「値を見てみるまでどっちの型か分からない」状態だと変数の型を見て分岐する処理が必要になる(もし必要ないならinterfaceにくくればよい)が、Goはランタイムに型を見る能力が乏しく、特にUnion Typeの制約を意識したmatch節のような物を書く手段がないから、結局フィールドの宣言でGenericsのtype constraintを書いても無意味ってことなのかな
Type parameterを導入することで「型名だけすげ替えた構造体を定義するテンプレートがほしい」というありがちな要件に対応しながら、match節はサポートしないという意思決定によって抽象化はあくまで振る舞いによってなされるものであり(i.e. interface{}の持つメソッド)、型そのものではないという立場を維持してるのかな
型に対するmatchが書けないということは帰納法が書けないということだから、型パズルをやるのはだいぶ厳しそう
文字列リテラルのprefixで何かが起きるみたいなやつ、知らないと何が起きてるか調べられない(検索できない)ので学習するのがきつい
知ってる人にすべて聞けるならいいけど、自習してて s"${foo}" みたいなのが出てきて自力で解決するの無理じゃない?って話です
このアカウントは、notestockで公開設定になっていません。
実際よくわからんコードを説明してもらうと大抵正しい答えかキーワードが返ってくるのはマジで便利
printfのフォーマット指定子が分かりづらいのはそうとして、でもリテラルの特殊構文と違ってprintfのドキュメント見ればいいんだなっていうのはすぐ分かるから……
GTK3のドキュメントもよく分からんしRuby-GNOMEのドキュメントもほとんど何も書いてないのですべてが闇の中。適当に検索するとC++バインディングのドキュメントが引っかかるのでそれ見ながらmikutterいじってた気がする
C++標準化委員会のアンミカ「あのな、C++のコンストラクタって5種類あんねん」
member initializer listって聞いて思い浮かべてたやつはlist-initializationだった。C++なんもわからん
https://en.cppreference.com/w/cpp/language/constructor
https://en.cppreference.com/w/cpp/language/list_initialization
C++のコンストラクタでFoo() : name("miku"), age(17) {} みたいに書くのがmember initializer list、vector<int> v{1, 2, 3}; みたいに書けるのがlist-initialization
Gtk.TreeViewのTreeってツリーメニューのことだと思ってたけど、もしかして配列の代わりに赤黒木で要素を管理してるからTreeViewなのか!
https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/gtk/gtktreeview.c?ref_type=heads#L14117
高速に動くvisible_rangeみたいな関数を作りたかったら要素を赤黒木みたいなやつで管理するしかないよなーと思ってソース見てみたらそのまんまで笑った
いや赤黒木は単純にこういうrange queryに高速に答えるために管理してるだけっぽいな(それはそれとしてモデルはTreeModelとして木構造になってる)
理由はよくわからんが、赤黒木を使ってrange queryの高速化をしてるウィジェットがTreeViewしか存在しておらず、むしろこっちのほうが例外っぽい
これ先頭へスクロールするアニメーションのコードにしか見えないんだけど、なんでスクロールロックになってるんだ? https://dev.mikutter.hachune.net/projects/mikutter/repository/main/revisions/e807e8103ed978c7c2a2aabb318655650003aeda/diff/core/mui/cairo_timeline.rb
なんもしないと挿入した要素の高さ分だけTreeViewが自動的にスクロールして、表示されてる内容が変わらないようになってるってことかな
昔の記憶がまったくないんだけど
> 追加された message がTL表示領域外であっても subparts 高さの演算が走っている?
https://dev.mikutter.hachune.net/issues/1528
ってGTK3以前からそういうもんじゃなかったっけ……
@teobot Netlifyに/a.htmlというファイルを置くと/aでもアクセスできてしまうみたいなんだけど、この機能を切る方法ってない?
@teobot これほんと?X-Content-Type-Optionsってブラウザにしか効かなくない?
このアカウントは、notestockで公開設定になっていません。
CPython 3.11以降はコードの単純化のためにIEEE754が必須になったらしい? https://stackoverflow.com/a/70189136
IEEE754自体に依存してると言うより、プラットフォームがNaNをサポートしてないとPython側で吸収しないといけないのがつらいという話っぽい https://github.com/python/cpython/commit/1b2611eb0283055835e5df632a7a735db8c894b8
構造体をnewしてコンストラクタで初期化するみたいな気持ちは理解するのに結構時間がかかった記憶がある
thisはレシーバが渡される暗黙の変数ですって言えば済むことなのに、2000年頃の教本は(今もかもしれんが)そういう説明がまったくなかった
最近の若者はPythonとかRustとか書いてるから自然にまあそういうもんでしょってなるのかな
<font size=1000>Mastodonのポストが投稿時点でサニタイズされてるのか、それとも表示時点なのかいまいち分かってない</font>
Mastodon API叩いてる限りはエンドユーザはsanitizedなHTMLしか見ないと思ってよさそう https://docs.joinmastodon.org/api/guidelines/#formatting
Mastodonから普通にポストすると<br>とか書いても<br>って見えるからまずここでエスケープが走っていそう(つまりMastodonからはHTMLを通常の手段では配信できない)
やっぱり自分でAP実装作ってertona.netに危険HTMLをぶちこまないと……
フィリスが立派な錬金術士になってエルトナに帰ってきただけでもうトゥルーエンドだよ
このアカウントは、notestockで公開設定になっていません。
週3労働よりも週5で3ヶ月働いて1ヶ月休みみたいなパターンの方がいいのでは?と思ってきた
importしたものをprefixなしで使われるとIDEの支援なしに追うのがかなり困難になるのでやめてほしい
そういう点でGoのimportはかなり偉いんだよな。必ずnamespace付きじゃないと参照できないし、importしただけでコードが走って副作用を及ぼすこともない。Rustも後者が微妙だけどそこそこ良い
Goはgo fmtがカラム揃えを強制してくることといい、コードは書く時間より読まれる時間の方が圧倒的に長いんだから読みやすさに振るのが正義という強い思想を感じる
大抵型はトップレベルに展開されるので、import自体に型推論含めてなんの副作用もない言語の方が珍しいとは思う。JS / TSはnamespace強制なのは素晴らしいのに副作用のせいでimportの順序すら自動で並び替えできないのが……
実際importの順序シャッフルしたら壊れるコードがどれくらいあるんだろうという話ではあるが
Rustで
struct A { i: i32 }
fn main() {
let mut a = A { i: 0 };
let ptr = &mut a as *mut A;
let ai = &a.i;
unsafe {
(*ptr).i = 10;
}
print!("{} {}", a.i, ai);
}
とするとリリースビルドでも10 10が出力されるんだけど、Rustはimmutable borrowを証拠にした参照の最適化はしないと思っていいのかな(ナイーブにはaiがimmutable borrowであることを利用して*aiを0に置き換えるような最適化が起きてもおかしくない気がする)
unsafeがどれくらいunsafeなのか知りたいんだけどそういうことを書いてあるドキュメントが見つからない
unsoundなのはいいとしてその帰結がどうなるのか分からん。unsoundなコードはどう壊れても文句を言えない?
あと&mutを2つ以上生やすだけでおかしくなるならThe bookの例もダメということになりそう https://doc.rust-lang.org/book/ch19-01-unsafe-rust.html#creating-a-safe-abstraction-over-unsafe-code
原則として、 unsafe ブロックは「コンパイラには検査できない書き方をするが、ブロック内でコードが満たすべき性質を破らないことを開発者が保証する」というものなので、 unsafe ブロック内に入れようが駄目なものは駄目
「コードが満たすべき性質」がなんなのかが分からん。split_at_mutはunsafeを使わないと書けないパターンなので、これが安全であるなら「コンパイラが通す型」!=「コードが満たすべき性質」のはずだけど、じゃあ具体的に何を満たしていればよくて何をviolateしちゃいけないのか
このケースだとこれかな
> Moreover, the bytes pointed to by a shared reference, including transitively through other references (both shared and mutable) and Boxes, are immutable; transitivity includes those references stored in fields of compound types.
https://doc.rust-lang.org/reference/behavior-considered-undefined.html
split_at_mutの第一引数は&mut [i32]だけどこれでr食われるの?
@qnighy なるほど一理ある……。時間があったら読んでみます。とはいえ本当にやりたいのはView typesがないことによるエラーの迂回なのでそっちが一段落してからにします
こういうのがコンパイル通らないの本当に困ってるんだけど、Gameをimmutableな部分とmutableな部分に分割して常にバラバラに持ち運ぶしかないのかな……
struct Game {
players: Vec<i32>,
score: i32
}
fn add_score(game: &mut Game, player: i32) {
game.score += player;
}
fn play_turn(game: &mut Game) {
for player in game.players.iter() {
add_score(game, *player)
}
}
関連があるデータの意味でstructに入れた瞬間にmutabilityに関しても運命共同体になるのがとても厳しい
タプルにすらできない強く関連した2つの変数をあちこちに引き回さないといけないの、かなり気持ち悪くない?
ナイーブにやるとComponent poolがさっきのGameになって同種の競合が発生しそうな気がするけど大丈夫なんかな
結局状態更新の時にimmutableに触られるものとmutableに触られるものをComponentで切り分けることにはなるが、Entityを通した間接参照の形でグループ化できるからちょっとはマシくらいか
これって要するにメモリアロケータを作ってるのでは?まあガチのゲーム開発なら必要だけど……
特にゲームとして考えると、インクリメンタルに状態を更新するよりも「現在の状態」をimmutableに固定したままで「次の状態」を別のバッファに書き出すようにしたほうが、処理順の違いで結果が変わるみたいな現象が発生しづらくていいという面があるのでmutableな状態を特に分離して持っておく設計は妥当な気もしてきた
ライザと冒険に出たい!ってなってから弓の練習し始めておいお前……まさか……ってなった
Goの変数の初期値は仕様で定められている「ゼロっぽい値」 (The zero value) https://go.dev/ref/spec#The_zero_value
Goのmapはデフォルト値の概念を持ってるわけではなく、単にキーが存在しないときに空の値としてzero valueを返してるだけですね
キーの存在性が問題になるなら v, ok := myMap[key] というイディオムがある(キーが存在してるならokはtrue、そうでないならfalse)
GoのScanってそれこそscanfを愚直に実装するくらいしかなさそうだけどなんで遅いんだろう
当たり前のように1文字ずつ読んどるな(まあバッファリングとかは上のレイヤで吸収しろって話か) https://golang.google.cn/src/fmt/scan.go?s=2653:2691#L1079
@teobot RustでVecの要素と添字のペアをスキャンしたいんだけどどうすればいい?
@teobot C++のvector::swapに相当するものってRustにある?
@teobot 要素のswapじゃなくて、2つのVecを互いに相手へmoveしあうやつ
Tauriの仕組みこんな感じかな
- TAOでOS固有の方法でウインドウを作る
- WRYでWebViewを作ってwebappを動かす
- Tauri appに登録された関数をWebViewから叩けるcloud functions的なバインディングを提供する
WebViewだからWebViewにできることはなんでもできるし、必要ならCommandsや既定のAPI (https://tauri.app/v1/api/js/) を使ってネイティブレイヤにもアクセスできる感じか
TAOとかWRYってやつもcommon libraryみたいな顔して紹介してるけど普通にTauriプロジェクトの一部なのか
二十歳そこそこのときにズブロッカ買って匂いがきつすぎて全然飲めなかったんだけど、今なら飲めるかもしれない
サイゼリヤに来たら、注文コードからアルファベットが消えていた。かつてのWN05は3405になっている。ひどいと思った。世界は本当に寂しいところになった。これでいいと本気で思っているんですか、本当のところはどうなんですか、と叫びたくなった。
@teobot 複数のエントリポントからそれぞれ異なるバイナリを作るようなCargo.tomlってどう書けばいいんだっけ
@teobot RustでVecに対してgroup_byをしたいんだけどどうすればいい?
@teobot 特定のビルドターゲットにだけ使うdependencyをCargo.tomlに書く方法ってある?
@teobot あーそっちのターゲットじゃなくて、特定の [[bin]] をビルドするときに初めてdependencyを引っ張ってきたい
Node.js 20(と新しめのNode18)はparseArgsが標準で入ってるのでTypeScriptを書けば要件満たせそう
このアカウントは、notestockで公開設定になっていません。
音の回り込みによる減衰を最短経路問題として解くの頭いいな……。リアルではないけどいかにもゲームっぽい解決法って感じ https://www.famitsu.com/news/202403/22337814.html#heading-3
「琴線に触れる」の誤用は「逆鱗に触れる」ではなく「神経に障る」からの類推だと思ってるけど根拠はない
このアカウントは、notestockで公開設定になっていません。
細かいことを抜きにすれば、調理技法としては低温調理かけてからオーブンやフライパンでで表面をカリッと仕上げるのがだいたいオーブンと電子レンジの同時掛けに対応しそう
電子レンジは同じ場所しか加熱できないから、温度管理の目的の一つであるムラのなさを実現するのが難しいのでは
自分で書く部分に関してはデフォで正格評価にするLanguage Extenisonがなかったっけ
StrictとStrictDataか https://kazu-yamamoto.hatenablog.jp/entry/2019/02/15/115630
このアカウントは、notestockで公開設定になっていません。
IPv6のこと何も分かってないからインターネットに出たら狩られる側という自覚があります
このアカウントは、notestockで公開設定になっていません。
実際のところRubyが国産という表現が正しいとしてもRoRを同じ文脈で話していいかはかなり怪しい、というかおそらく非合法
@teobot RustでJavaScriptの {...obj, foo: 'bar'} みたいに、既存のstructをコピーしながら特定のフィールドだけ更新する方法ってある?
@teobot これって foo: "new_foo" は先に書いて大丈夫なの?JavaScriptのセマンティクスだと後に書かないと打ち消されちゃうけど
これマジ?(一応表面のコーティングが剥がれてるところだけらしいけど) https://twitter.com/circuit_k/status/1752666901979746513?t=K9U_hBrHAJoZRxG2EYGLdQ&s=19
このアカウントは、notestockで公開設定になっていません。
ておくれロボ、よく見ると最新のデータがないとか機能がないとかいって返答を保留してることもそこそこあるな。自信満々に嘘を生成し始める場合と何が違うんだろう
このアカウントは、notestockで公開設定になっていません。
カンペ作りと同じでマニュアルを作る過程で起きる思考の整理とか一般的な構造を見いだすことが自分のレベルアップになるよ
エーアイにいくら知識を詰め込んで自然言語で取り出せるようになっても、一人の人に集約しないとその人が必要とする形に知識が結びつくことはないのだ
goroutineもchanのセマンティクスも並のプログラマーには難しそうだけど、Google的にはこれくらいの並列機構は無いと回らないのかな
このアカウントは、notestockで公開設定になっていません。
個別事例は知らんけどチルド麺は大抵袋を開けとけとか3分やったら一旦混ぜろとか書いてない?
ニュースサイト自前で広告収入を得て352円/1000PVのところヤフーニュースは124円で安いみたいな記事が出てきたが、広告というのはおそらくこの世の終わりみたいなやつを指しているのだと思うとまあそんなもんじゃないという気がする https://www.huffingtonpost.jp/entry/yahookoutorii_jp_650bee25e4b00c6ed61a9d98
ポールワイスの思考実験の対象がひよこでもひよこ(検閲済)でも別に本質的には変わらんな
このアカウントは、notestockで公開設定になっていません。
TypeScriptとRust、文法が似てるのに型のセマンティクスが完全に異なるので効率的に脳を焼いていく
Rustのラムダ関数あんまり見た目よくないし、Optionのメソッドチェーンでがんばるよりmatchで分解した方がいいと思う
おそらく二郎と同じように、うまい中華スープに化調をぶちこむとうまいという発想で作ってそう
@teobot RubyのtapとかKotlinのalsoみたいなやつってRustにない?
具体的にはデバッグ出力として return result.tap(|&r| eprintln!("Result: {}", r)); のようなコードを書きたい
メソッドチェーンに入れたいというよりは、ブロックの最後の値がブロックの評価値になる仕様とデバッグ出力を両立させたいんだよね
let result = calc();
eprintln!("Result: {}", result);
return result;
Kotlin/Rubyでもなければ普通にこう書くけど、Rustはなんかfluentな書き方をする執念を感じるのにtapがないのはちょっと意外
あとブロックの最後の値としてresultを使いたい場合は、一番最後に result とだけ書かれた行が出てきてちょっと見た目がよくない
一般論としてはそうだけど、今回のケースに関してはRubyはtapで回避できるので
GHC本体にJSとWASMバックエンドがマージされたから理論上はHaskellだけで生きていける可能性ある
OMO5東京五反田から百貫を監視するとき、OMO5東京五反田もまた監視されているのだ
宿、宿泊して温泉入って飯を食うくらいしかやることを知らんので高級な宿という概念そのものがよく分からんとこある
GHCJSがGHC本体にマージされたのはいいけど、ghcjs-domが対応してないからWebappで実用できるまでにはもうちょっとかかるのかな https://github.com/ghcjs/ghcjs-dom/pull/104
@teobot Reactでコンポーネントの再レンダリングをトリガーするための関数ってある?
Reactコンポーネントにアプリケーションの状態を切り分けて割り当ててしまったため苦しんでいます。UIを作るのが下手すぎる
このアカウントは、notestockで公開設定になっていません。
財布に入ってる金額がマネーフォワードの主張する金額より1万円くらい少ないんだけどそんなことある?
使ってないから分からんけど、ちょっと調べた感じfreeeは単式簿記っぽいUIがメインなのかな
マネーフォワードは簿記の教科書読んで想像したシステム構成をだいたいそのままUIにしたような感じで、学習コストは高めだけど安心感はあった
thatも名詞句の前には置けなくて、Does it mean your...かDoes it mean (that) you have a solid will to... ですね
モックできない時計に依存するコードはテスト不可能 and/or 時刻やマシンのタイムゾーンで結果が変わるようになって死しかない
java.timeは現在時刻が問題になるほとんどのケースで陽にClockを要求してたはず。Joda Timeはテスト用にシステムクロックをモックする機構がなかったっけ
@omasanori 結構ある……Cleanは名前は割と聞きますね(AgdaとかCoqとかお前そもそも副作用書けなくない?みたいなのもありますが)
解答を早く書けると強い&間違えないで書けると強いという気持ちを素朴に線形和で表そうとすると誤答ペナルティになりそう
個人戦だと誤答してる分だけ正解時間も遅れることにはなるので、誤答ペナルティを時間として加算するのはもともとICPCみたいな特殊チーム戦の事情だったのかもしらん
プロダクトコードとしての質で他人と競いたいなら野良コードレビュー大会みたいなのがあるとよさそう
『翻訳 訳すことのストラテジー』、omasanori強く推薦図書です
コード設計みたいなやつを競技化するとして、こういう主観的な概念で序列を付けると無限に炎上しそうというのはある
よい(オープンソースな)ソフトウェアの設計についてのエッセイ集
The Architecture of Open Source Applications
https://aosabook.org/en/index.html
アイサツ中に攻撃したニンジャ自体はもうちょっといた気がするけどソウカイヤではビーハイヴ=サンだけ?
プログラムを書いてるのを見るとすぐに設計とかきれいさとかの話にしてしまうの、プログラミングと労働が不可分になってしまった悲しい労働者しぐさなのでは(炎上)
競プロも割とモジュール化とか再利用のための一般化とかはされてるんですよね。一般的なソフトウエア開発の方法論に則ってないだけで
メモを書き散らすのはなんでもいいんだけど、必要な時に適切なやり方でメモが目の前に顕現しないと意味がないということに気づきつつあります
結局ナビゲーションが自分好みでないとだるくて使わなくなるので自作しかなさそうという気分にはなっている 誰か要件定義してくれ
このアカウントは、notestockで公開設定になっていません。
rounds towards 0でいいみたいだけど、こっちのほうがいい数学的な根拠ってあるんだっけ https://users.rust-lang.org/t/is-i32-always-round-towards-0/78414/2
@teobot Rustで
let v: Vec<i32> = vec![1,2,3];
for i in v.iter().rev() {
//...
}
ってするとiがi32じゃなくて&i32になって面倒なんだけどいい回避策ない?
iじゃなくて&iとして受ければいいのか?変数宣言の&はパターンマッチの型コンストラクタみたいに働くってこと?
無名関数なのは分かったけど (true|false) の部分がなんなのか分からん
Rustで普通の関数の引数でパターンマッチするの、destruct用のletを書かずに済むくらいしか嬉しさがなさそうだけどなんか他にいいことあるんかな
パターンとして受けるかどうかでコンパイル通ったり通らなくなったりするのは厳しそう
テストコード用バイナリがpayloadだったとはいえ、直接的に突かれたのはリポジトリの中身と食い違っていうるtarballを信頼してしまっていた点なので、バイナリのレビューはあんまり意味なさそう
大本のレポートが一番詳しいっぽい https://www.openwall.com/lists/oss-security/2024/03/29/4
レポートによれば普通に悪意のあるバイナリ(簡単な加工+デコードによって中間payloadを生成している)なのでテストから参照されてたとしてもだめそう
このアカウントは、notestockで公開設定になっていません。
@teobot 型からRustの関数を検索できる、Rust版Hoogle的なツールってない?
@koba789 指定したシグネチャに該当する関数を検索してくれるやつで、たとえば (Rust風に書くと) `(&mut Vec<T>, &[T])` とか `(&mut Vec<T>, Iterator<T>)` みたいな指定で extend_slice とか extend を出してほしい
@koba789 trait経由だとdocs.rsの左側に出ないから分からんというのもあるし、常識的に考えて存在してるが名前が分からないだけの関数を探すためにわざわざリファレンスを通読したくないというのもある
@teobot Rustで0, 3, 6, 9, ...みたいに一定の間隔で数値をループしたいときはどうするのが一番いい?
あちこちにas usizeとかas i32とか書きまくるの、HaskellのfromIntegralみがある
このアカウントは、notestockで公開設定になっていません。
このポストが正しければx86_64用のRPMをビルドしている時に限ってビルドスクリプトを改変し、悪意のあるオブジェクトファイルをリンクするというものなのでMacは影響を受けなさそうだと思うけど https://www.openwall.com/lists/oss-security/2024/03/29/4
@teobot sed "1i # 0 \"$top_srcdir/src/liblzma/check/crc32_fast.c\"" って何をするコマンド?
gccがstdinからソースコードを受け取るとき `# 0 (filename)` が先頭にあると何か特別なことをする?
#line ディレクティブ相当の機能があるらしい https://stackoverflow.com/questions/31871307/how-can-i-set-the-file-name-if-i-run-cpp-gnu-c-preprocessor-from-stdin
このアカウントは、notestockで公開設定になっていません。
@teobot Rustで Vec<Option<T>> から Vec<T> に変換するのってどうするのがいい?
なんか知らんがAppleScriptの処理系はosascriptって名前らしい https://en.wikipedia.org/wiki/AppleScript#Comments
@teobot Rustで2つのIterator<T>を結合するにはどうすればいい?
@teobot chunksってstd::sliceにしかなさそうだけどIteratorにもあるの?
RustのRange、何かしようとするとすぐselfをmoveしてかなり面倒くさい……
Rangeに存在してほしいオペレーションをIntoIterator経由で実装するハックで解決してるからか?
@teobot 2つのIteratorの積集合に対するIteratorを作る関数はある?
@teobot ごめん、積集合じゃなくて直積だった。Iteratorに対しては難しそうだけど、2つのVecだったらどう?
このアカウントは、notestockで公開設定になっていません。
普通に順番にループしてるだけっぽい(それはそう) https://docs.rs/itertools/latest/itertools/macro.iproduct.html