「Promise」を含む日記 RSS

はてなキーワード: Promiseとは

2026-04-15

高年齢向け赤ずきんちゃん

昔々、あるところに、一介の微小なる可愛らしい幼女存在しておりました。彼女は、誰人といえども一瞥するだけで魅了され、心蕩けるほどの魅力を有しておりましたが、それよりも遥かに彼女祖母ほど彼女を寵愛する者はなく、彼女を目撃するや否や、何事も為したくて為したくて、究竟何を為すべきか困惑するほどでありました。

そこで、ある時、祖母緋色のvelvet(ビロード)で、彼女hood(ずきん)を製して与えました。すると、それがまた彼女に極めてよく似合い、もう他の何物も被らずに済むと決意してしまいました。ゆえに、彼女Little Red Riding Hood、すなわち赤頭巾娘、赤頭巾娘とばかり称されるようになりました。

ある日、母は彼女召喚して申しました。

「さあ、少々おいでなさい、Little Red Riding Hood、ここにconfection(お菓子)が一つと、vinぶどう酒)が一瓶あります。これを祖母の許へ運搬なさい。祖母はillnessで衰弱しておられますが、これを献上すれば、きっとrecoveryするでしょう。それでは、熱気が強まらぬうちにdepartureなさい。それから、外へ出たらvigilantに、decorumを保ちなさい、やたらにunknownのbywayへdashしたりなどしないのですよ。そんなことをして転倒でもしたら、せっかくの瓶は破砕し、祖母に献呈するもの消滅するからね。それから祖母のchamberに入ったら、まずgood morningを言うのを忘却せずにね。入るや否や、suddenly室内をglance aroundしたりなどしないでね。」

「そんなこと、私、ちゃんとdemonstrateしてみせますわ。」と、Little Red Riding Hoodは母にそう言って、pinky promiseしました。

ところで、祖母のresidenceは村から半里離隔したforestの中にありました。Little Red Riding Hoodが森に入りかけますと、wolfがabruptly出てきました。でも、Little Red Riding Hoodは、wolfというものがどんなvicious beastだか知悉していませんでしたから、別段、fearとも思いませんでした。

Little Red Riding Hoodhello。」と、wolfは申しました。

「thank youwolfちゃん。」

「tremendously早くから、どちらへ。」

祖母のところへいくのよ。」

「apronの下にholdingしているものは、何。」

「confectionに、vin祖母、illnessで衰弱しているでしょう。それでおvisitにもってってあげようと思って、昨日、家でbakeしたの。これで祖母、sturdyになさるわ。」

祖母のresidenceはどこさ、Little Red Riding Hood。」

「これからまた、八、九町walkしてね、森のdepthのdepthで、大きなoakが三本standingしている下のresidenceよ。residenceの周りに、walnutのhedgeがあるから、すぐわかるわ。」

Little Red Riding Hoodは、こうinformしました。

wolfは、心の中でponderしていました。

young、softそうなlittle girl、こいつはfatがのって、deliciousそうだ。ばあさまよりは、ずっとtasteがよかろう。ついでにboth一緒に、gulpするschemecrucialだ。」

そこで、wolfは、しばらくの間、Little Red Riding Hoodとparallelにwalkしながら、道々こうconversationしました。

Little Red Riding Hood、まあ、そこらじゅうbeautifully咲いているflowerをごらん。何だって、everywhere見てみないんだろうな。ほら、little birdが、あんなにmelodious声でsingしているのに、Little Red Riding Hood、なんだかまるでlistenしていないようだなあ。学校へいくときのように、frantically、hurry hurryとwalkしているんだなあ。外は、森の中がこんなにbrightくてjoyfulなのに。」

そう言われて、Little Red Riding Hoodは、look upしてみました。すると、sunlightが、木と木のdense中からもれて、これが、そこでもここでも、joyfully danceしていて、どの木にもどの木にも、beautifulなflowerがいっぱい咲いているのが、eyeに入りました。そこで、

「あたし、祖母に、vitalityでenergeticなflowerをsearchして、bouquetをmakeして、もってってあげようや。すると祖母、きっとdelightになるわ。まだ朝はearlyから、safe、timeまでに行かれるでしょう。」

と、こう思って、ついとbywayから、その中へdashして入って、森の中のいろいろのflowerをsearchしました。そうして、一つflowerをpluckすると、その先に、もっとbeautifulのがあるんじゃないか、という気がして、そのほうへかけて行きました。そうして、だんだん森のdepthへdepthへと、enticeされて行きました。

ところが、この間に、opportunityをaimして、wolfは、swiftly、祖母のresidenceへかけていきました。そして、とんとん、doorをknockしました。

「おや、どなた。」

Little Red Riding Hoodよ。confectionとvinを、おvisitにもって来たのよ。openちょうだい。」

「handleをpushしておくれ。祖母はillnessで衰弱していて、riseられないのだよ。」

wolfは、handleをpushしました。doorは、ぼんとopenしました。wolfはすぐと入っていって、何も言わずに、suddenly祖母のlyingところへ行って、wide open一口に、祖母をswallowしました。それから祖母のgarmentをwearて、祖母hoodかぶって、祖母bedにごろりとlieて、curtainをdrawしておきました。

Little Red Riding Hoodは、でも、flowerを集めるのにabsorbedで、森じゅうかけまわっていました。そうして、もう集めるだけ集めて、この上carryきれないほどになったとき祖母のことをrecallして、またいつもの道にreturnしました。祖母のresidenceへ来てみると、doorがopenのままになっているので、strangeと思いながら、中へ入りました。すると、何かが、いつもとdifferentに見えたので、

「strangeわ、どうしたのでしょう。今日はなんだかchestがthrobして、unpleasantこと。祖母のところへくれば、いつだってjoyfulなのに。」と思いながら、大きな声で、

「good morning。」

と、呼んでみました。でも、おreplyはありませんでした。

そこで、bedのところへ行って、curtainをopenしてみました。すると、そこに祖母は、横になっていましたが、hoodをすっぽりeyeまで下げて、なんだかいつもとappearanceがdifferentでした。

「あら、祖母、なんてhugeなear。」

「おまえのvoiceが、よくhearえるようにさ。」

「あら、祖母、なんてhugeなeye。」

「おまえのいるのが、よくseeえるようにさ。」

「あら、祖母、なんてhugeなhand。」

「おまえが、よくgrabめるようにさ。」

「でも、祖母、まあ、なんてunpleasantなhugeなmouthだこと。」

「おまえをeatるにいいようにさ。」

こういうがはやいかwolfは、suddenly bedからjumpして、かわいそうに、Little Red Riding Hoodを、ただ一口に、gulpやってしまいました。

これで、heavilyおなかをinflateさせると、wolfはまたbedにもぐって、longとlierestしました。やがて、terrifying音を立てて、snoreをstartしました。

ちょうどそのとき、hunterが表を通りかかって、strangeと思ってstopしました。

「ばあさんが、すごいsnoreで寝ているが、strangeな。どれ、何かchangedことがあるんじゃないか、見てやらねばなるまい。」

そこで、中へ入ってみて、bedのところへ行ってみますと、wolfが横になっていました。

「damn、このwretchめが、とうとうfindけたぞ。長い間、きさまをsearchしていたんだ。」

そこで、hunterは、すぐとgunaimしました。とたんに、ふと、ことによると、wolfのやつ、祖母をそのままswallowしているのかもしれないし、まだ中で、surviveしているのかもしれないぞ、と思いました。そこでgunをshootすることはstopにして、その代わり、scissorsを出して、sleeping wolfのおなかを、じょきじょきcutしはじめました。

二scissors入れると、もうred hoodがちらと見えました。もう二scissors入れると、女の子jump outしてきて、

「まあ、あたし、どんなにsurpriseしたでしょう。wolfのおなかの中の、それはdarkったらなかったわ。」と言いました。

やがて、祖母も、まだaliveで、crawl outしてきました。もう、weakってinsect breathになっていました。Little Red Riding Hoodは、でも、さっそく、大きなstoneを、えんやらえんやら運んできて、wolfのおなかのなかにいっぱい、stuffしました。やがてeyeがawakeめて、wolfjump outしようとしますと、stoneのweightでcollapseしました。

さあ、三人は大delightです。hunterは、wolfのfurをpeelで、家へもって帰りました。祖母は、Little Red Riding Hoodのもってきたconfectionをeatて、vinをdrinkしました。それで、すっかりvitalityを取り返しました。でも、Little Red Riding Hoodは、(もうもう、二度と、森の中でbywayに入って、かけまわったりなんかstopしましょう。母がbadと、おっしゃったのですものね。)と考えました。

2026-03-29

[] インディーズ The Last Flame

オートチェス+stsマップ進行

紹介記事

https://harf-way.com/game/the-last-flame/

https://indiegamesjournal.jp/2025/01/3750.html

  

よくあるキメラクローンゲーム。売れてるゲーム真似ました。

  

よかった点

オートチェス独特のシナジーで強くなる、飛びぬけたパワースパイク摂取できる。

よくなかった点

1. 5人種族なしの手狭さ

駒のヒーローが持っているのはパッシブスキルマナをためるアクティブスキルのみ。種族ボーナスなどはなし。

なので、構成

物理魔法

三つある状態異常のどれかか

クリティカル召還

+

防御はヒールシールド

など、単純に軸を決めて同系統の駒を集めることになる。

種族がないので役割アイコンや色を見て決めるが、キャラ統一感がないので直感的でなくスキルを調べて戦略マッチするか調べる必要があり面倒。

  

出場枠は5でロールもあるので

タンク

ディーラー

サポーター

ヒーラー

までは大体固定。あまり自由度はない。

  

駒は毎ラウンド引けるわけでもないし、控えは3か4体しか確保できない。レベルアップは重ね引きの運ではなく自由に割りふる形式で控え育成という概念も薄く、レベルアップで得られるのはランダムパッシブスキル

焚き火構成の軸になる強力なバフを選択できる機会は豊富にあるが、パーティを入れ替えてバフを合わせるか、バフを入れ替えてそれにパーティを合わせるか、と問われたら最初に決めたパーティに合わせたバフをさっさととってそれで駆け抜ける形になる。なんせバフは1焚き火につき6種類提示リロール2回あるので、目的のバフはさっさと取りやすい。

  

後半に出てくる基礎能力が高い駒、という概念もあるのか不明で、種族などの小グループ概念を集める利点もなく、運の要素も低いとなれば、プレイヤーにできるのはロールと戦略に合うスキルを持つ駒を集めることだけになってしまう。

5人という出場制限、その5人より小さい控え上限は戦略を極めきる後半までの戦略A+戦略Bや戦略A+種族シナジーB、裏で後半のためにかき集めるシナジー駒、レベルアップで実用的になる駒、といったアドリブでどう舵を取るか悩む期間が生まれず、決め打ちの戦略+邪魔シナジーを生まない駒、という構成になり楽しい期間にならない。

(各所では戦略の幅が広いと言われている。しかし目指すパーティーの種類は豊富だが1プレイを通した戦略の幅は感じなかった)

  

  

2. 配置ゲームで敵を調べるのが面倒

ラウンドは毎回配置を自由に決められ、チェス形式の自陣・敵陣ではなくほぼ全体に自由に配置できる。

敵は最も近い敵を攻撃したり、直線状や扇状などの範囲攻撃を持っていたりする。

ゲームを始めるとそういった敵の情報を知らないので、毎回敵の攻撃を調べることから始まる。ダルすぎる。

敵駒クリックしてテキスト読んでムービー確認して…というのが敵の種類ごとに生まれる。

ゲームで敵を知ることを面倒だといったらおしまいだよというのはごもっとも。自分sts系が苦手な理由の一つとして自覚している。

しかし、しかし。オートチェスは少数のPvEを除いて敵と自分の駒のプールは同一だったわけで。

自分が使うために駒の動きを学ぶだけで敵の駒の動きもわかってくる。敵の発動種族シナジーを見れば戦略も駒の範囲も大体検討がつく。裏取りする駒が強いことを使って知ってれば相手のその駒を警戒した配置にスッと組めるわけだ。

そこらへんのよかった点を捨てられると、敵は敵専用という至極普通な仕様本来マイナスでない部分にも減点をつけたくなる。

  

エリートや強化敵などがあるなら一般敵はヒーロー駒でもよかったかもしれない。そうすれば、プレイヤーも気づいてなかったシナジーに敵構成から気づいたりもできるし、シングルプレイゆえの敵から学べないオートチェス部分をカバーできたかもしれない。

ポテトPCにやさしくない

このゲーム、全体が3Dで作られているせいか、妙に動作が重い。ロースペックではぜんぜんFPSが出ない。オートバトル系でありプレイヤーシビア操作がないのが不幸中の幸いだ。

しかるべき作品FPSが出ないのは余裕でゆるせるのだが…。

この作品場合、「ゲームシステムの面白さや演出のためのアニメーション」と「必要マシンパワー」のつりあいがまったく取れていない。

どこにこんなにパワーが必要なのかわからないし、コマ一覧画面や商人が常にアニメーションしていることが面白さにつながらないし、背景の滝がずっと流れ続けている必要性も感じない。

こんなに重くて、ゲーム体験不要な部分が散見されるのははっきりと不快である

オプションで切り替えできればよかったのだが、そういったフレンドリーな部分は少なく、FPS改善できる部分はないだろう。

効果の詳細な説明ツールチップやすべてのスキル説明ビデオが搭載されていたり、とてもユーザーフレンドリーな、丁寧な作りが細部に感じられるのに、なぜかグラフィックの部分で急に突き放してくるのに面食らう。

  

  

そしてそういった声は自分以外からも上がっており、それに対する開発者の返答がこれだ

https://steamcommunity.com/app/1830970/discussions/0/595142002438394024/

Performance Suggestio

Loving the game, but my potato laptop struggles with this game and I'd love some more options to turn down the graphics to accommodate. Maybe something like pausing the background waterfalls would go a long way?

Anyone else finding similar?

---

Hotloop

[開発者] 2025年3月18日 9時55分

RedeemedChains の投稿引用

The performance of this game is trash. I love to play it as a time killer but on my surface pro 7 i have at work i get about 5 fps. nothing helps. would love to see them stop trying to add features or other heroes and balance till the game actually runs smooth. My surface pro can run elden ring at about 25 fps so this should have no issues.

Unfortunately, the surface pro 7 does not meet the minimum specs of The Last Flame.

I am a solo dev, and performance is definitely an area that I have a lot more to learn about. I understand why you would think Elden Ring should be less performance intensive compared to TLF, I guess I would kind of agree. But they are 400+ employees with years of experience, while I am alone with close to no experience.

Sorry for the inconvenience, I actually already did a performance update in the past which bumped performance by quite a bit. There might be one in the future but I can't promise anything at the moment.

エルデンリングより低いFPSが出るので改善してほしい!」の声に「エルデンリングチームのような経験も人数もないんだよ」という返答は、"気持ちはとてもわかるが"まったく芯を食った答えではない。そこに噛み付くのか…と開発者の読解力、あるいは何が言いたいのかではなく相手が何を求めているのかを考える落ち着き、自制心などの類が感じられない…。

そして背景の滝一つ止めるオプションについてすらスルーである

  

作者ヤな奴だってわかったし…

ってやつであるゲームによくない部分がありその部分に作者からよくない説得力を得てしまったらゲームポジティブに向かうことは難しい。

FPSだけど面白いからやっちゃうぜ!になる可能性はかなり高かった。でもこの作者のスタンスの作りによる不必要な低FPSイライラしながら付き合う必要があるのか?といわれると自分はNOであった。

  

  

クローンゲーム、そしてインディーズゲームの悪い部分が現れている作品だが、それでもシングルプレイのオートチェス系は貴重だし、面白ゲームジャンル面白い部分をすくい上げることには成功している作品である

普通スペックPCを持っているなら遊んでみてもいいかもしれない。

2026-02-16

英語中共工作してる

https://tokyopaladin.substack.com/p/12-lessons-in-japanese-elections

Make it a mandate about yourself, not issues. Basically, “Don’t you trust me?”

問題ではなく、自分自身についての委任にしてください。基本的に、“私を信用しないのですか?”

Promise to solve economic woes with handouts, tax cuts, and vague economic policy.

給付金、減税、曖昧経済政策経済危機解決すると約束する。

Dissolve the parliament while you’re still really popular—before people know who you are—and abuse that majority as long as possible.

あなたがまだ本当に人気があるうちに—人々があなたが誰であるかを知る前に—議会解散し、その多数派をできるだけ長く乱用してください。

Bully the critical press and reward sycophants

批判的な報道機関いじめ追従者に報いよ

2025-09-10

dorawii@執筆依頼募集中

まずその初歩の初歩って認識が間違いだろ。

promiseとかasyncとかは全17章の章立てになってる中級の入門書の13章目の内容なんだが。

初歩の初歩なんてほざくのは制御構文とかだろせいぜい。

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

https://anond.hatelabo.jp/20250910131800# 
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaMD7+gAKCRBwMdsubs4+
SNFaAP9/5a2ML12dnjq+cXftyxCN6cekgiGmmEJxrTY6hIFvOgEA4LGhv5q+sVH6
7xW7ALBH5ZshuMKKxtfryhpjSGUP4A4=
=0QTT
-----END PGP SIGNATURE-----

2025-09-08

anond:20250908203539

多分お前が意図した通りに動くコードは、これだ。

async function f() {
  console.log(1);
  await new Promise(r => setTimeout(r, 1000));
  console.log(2);
}


 f();
console.log("done");

 

結果は、まず「1」「done」が出力され、1秒後に「2」が出力される。

 

流れを説明すると、f()が実行されると「console.log(1);」と「new Promise(r => setTimeout(r, 1000));」が実行される。

その時点でf()の戻り値として 先ほどnewされた ……じゃなかった、f()を非同期実行中でそのうち続きが実行されますよというPromiseオブジェクトが返ってくる。

 

このPromiseオブジェクトは「resolveされたときにawait以降が実行される」というPromiseオブジェクトだ。

 

そして通常の処理の流れとして、その次の行の「console.log("done");」が実行される。

んで、1秒後にsetTimeoutで終わったことでキューに「r(イコール、resolve関数)」が登録される。

次のキュー登録されたresolve関数が実行される。

 

最後に、resolveが実行されたので、await以降……つまりconsole.log(2);」が実行される。

 

どこか分からないとこある?

dorawii@執筆依頼募集中

実行キューに入るのは非同期処理が終了した後だ。

なんか矛盾してない?

async function f() {
console.log(1);
new Promise(r => setTimeout(r, 1000));
console.log(2);
}


f();
console.log("done");

こう書いたらコンソールに出る順は1,2,doneだよ。1,2を出してる関数は非同期でありそれ以外にはこのコードに非同期関数存在しないんだけど。

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

https://anond.hatelabo.jp/20250908203539#
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaL6/iwAKCRBwMdsubs4+
SNVCAQDh/59YPp/11Ts/tp7JdxGIs6BqRv1PhkFmjUkBZH00owD/fN0PnyFGyJ8N
QGQlMNJvfsFGvNT5tbsEY1d/dhjCmQI=
=KsE1
-----END PGP SIGNATURE-----

anond:20250908195255

とりあえず今理解できてることはは「asyncが実行されたらawaitが書いてあるところまでは実行してそのあとは一旦呼び出し元に戻ってそれが実行されるまではキューに入れられる」ってことだけ。

まずその理解が間違ってる。

実行キューに入るのは非同期処理が終了した後だ。

javascriptにおけるasync/awaitは、「やがて終了する処理」を表すオブジェクトであるPromise」をうまく扱える文法なのでまずPromise単独理解しよう。

anond:20250908195255

必要なところの理解まで踏み込もうとしている。

いや、理解はしたほうが良いんだけど、理解した上で忘れるべきことがあるというか……。

いわゆる「抽象の壁」というやつだ。


約束 (promise) をして、それが果たされるまで待つ (await) ような抽象化された形で提供されていてそれを理解しているなら少なくとも一般的な状況では実際の処理のされ方を考える必要はない。

なんなら処理系によって具体的な処理はまるで違うということもありうる。


どういう風に抽象化しているのかと具体的な実装は切り離して考えるべきで、いつもいつも具体的な実装を考えながらプログラムしてたら規模が大きくなったときに手に負えないよ。

適当抽象化層を被せて普段はその向こうのことを忘れられるようにデザインされるのが普通だし、自分プログラムをするときでもそうなるようにデザインすべき。

2025-08-25

dorawii@執筆依頼募集中

dorawiiです。要件設計区別曖昧な日曜プログラマーもどきです。

なにか自動化をやりたいことしたときにこれはキューを作っておくべきとかpromise制御すべきだろうとか処理の流れはこういうふうにすると無駄がなさそうとか頭を回転させることは多いですけどこういうのって要件設計?どっちなんですかね?

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

https://anond.hatelabo.jp/20250825020702# 
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaKwbnQAKCRBwMdsubs4+
SIAEAP9nlstiR3bac7KbHe9v99/SogkJZINIgoVpOA5oqga7awD8Ce6KMSyOvsiS
ihZIb3inguzc1GtTnSqEpXYrJj/ZgQs=
=cvkO
-----END PGP SIGNATURE-----

2025-06-18

anond:20250618194240

(legal) procedure

_ steps that have to be taken to achieve a certain legal result

property

_ (a) something over which a person can have a right that exclude others (b) the connection between an owner and the thing he owns

public law

_ constitutional and administrative law

registration

_ (a) a legal rule made by the executive (b) a rule creating a minor crime

remedies

_ steps that a person who had suffered legal wrong can take

repeal

_ revoke a law

rescind

_ undo a contract or other arrangement

restitution

restoring a benefit to the person from whom one got it

right

_ a person's interest that must be respected by other people and by the state

sanction

_ something unpleasant which can be imposed on a person or state that does wrong

separation of powers

_ the ptinciple that the function of the legislature, the executive government and judges are distinct and should be entrusted to different people

sovereign

_ (a) a state that is independent in international law (b) a legislature that can make any law it chooses

specific performance state

_ an order to carry out a promise as agreed

state

_ (a) a country that is independent in international law (b) in some federation the regions (e.g. California, New South Wales) are called ‘states’

statute

_ a law that made by a legislature

strict liability

_ being liable to punishment or to pay even if not personally at fault

subjective (as opposed to objectie

_ defending on a particular person's make-up, opinion etc.

(legal) system

_ the laws of a perticular state or cointry or of the international community

testator

_ a person who makes a will stating what is to happen to his property when he dies

tort

_ a wrong for which the person harmed can claim compensation. Called a delict in civil law counties

treaty

_ a binding agreement between states

valid

_ legally binding

2025-06-13

我が名はサイボーグdorawii

パーマリンク署名対象にするより堅牢自動化を作れた。

一度投稿したうえで別タブを開いてプログラム的(fetch)に送信してその別タブが閉じられる仕組み。

改めてスクリプト配布しちゃる

最初投稿してエントリページに移動した親タブ側のjsコード
// ==UserScript==
      // @name         PGP署名検出と別タブ自動編集
      // @namespace    http://tampermonkey.net/
      // @version      1.0
      // @description  PGP署名がない投稿自動編集ページへ誘導
      // @match        https://anond.hatelabo.jp/*
      // @grant        GM_setValue
      // @grant        GM_getValue
      // @grant        GM.openInTab
      // ==/UserScript==

      (function () {
        'use strict';

        const body = document.getElementById('entry-page');
        if (!body) return;

        const titleText = document.title;
        if (!titleText.includes('dorawii')) return;

        const pgpRegex = /BEGIN.*PGP(?: SIGNED MESSAGE| SIGNATURE)?/;
        const preElements = document.querySelectorAll('div.body pre');
        let hasPgpSignature = false;

        for (const pre of preElements) {
          if (pgpRegex.test(pre.textContent)) {
            hasPgpSignature = true;
            break;
          }
        }

        if (hasPgpSignature) return;

        const editLink = document.querySelector('a.edit');
        const childTab = GM.openInTab(editLink.href, { active: false, insert: true, setParent: true });

      })();
親タブから開かれる編集ページの子タブのjsコード
 // ==UserScript==
      // @name         編集ページ処理と自動送信・閉じ
      // @namespace    http://tampermonkey.net/
      // @version      1.0
      // @description  編集ページで署名処理と送信、タブ自動閉じ
      // @match        https://anond.hatelabo.jp/dorawii_31/edit?id=*
      // @grant        GM_getValue
      // @grant        GM_xmlhttpRequest
      // @grant        GM_setClipboard
      // @grant        GM_notification
      // @connect      localhost
      // ==/UserScript==

      (async function () {
        'use strict';

        const shouldRun = await GM_getValue('open-tab-for-edit', '0');

        const textareaId = 'text-body';
        const textarea = document.getElementById(textareaId);

        if (!textarea) return;

        const content = textarea.value;

        const pgpSignatureRegex = /-----BEGIN PGP SIGNED MESSAGE-----[\s\S]+?-----BEGIN PGP SIGNATURE-----[\s\S]+?-----END PGP SIGNATURE-----/;
        if (pgpSignatureRegex.test(content)) {
          console.log('[PGPスクリプト] 署名が検出されたためそのまま送信します');
          return;
        }

        const httpRequest = (url, data) => {
          return new Promise((resolve, reject) => {
            GM_xmlhttpRequest({
              method: 'POST',
              url: url,
              headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
              data: `value=${encodeURIComponent(data)}`,
              onload: function (response) {
                resolve(response.responseText);
              },
              onerror: function (error) {
                reject(error);
              }
            });
          });
        };


        // textarea の値を取得
        // 1. 現在のページのURLからURLオブジェクト作成
        const currentUrl = new URL(window.location.href);

        // 2. ベースとなる部分 (例: "https://anond.hatelabo.jp") を取得
        const origin = currentUrl.origin;

        // 3. 'id' パラメータの値 (例: "20250610184705") を取得
        const idValue = currentUrl.searchParams.get('id');

        // 4. ベース部分とIDを結合して、目的URL文字列を生成
        //    idValueが取得できた場合のみ実行する
        let newUrl = null;
        if (idValue) {
          newUrl = `${origin}/${idValue}`;
        }

        // 5. 生成されたURL変数に代入し、コンソールに出力して確認
        console.log(newUrl);
        const valueToSend = newUrl;

        try {
          const signatureText = await httpRequest('http://localhost:12345/run-batch', valueToSend);
          console.log('バッチ応答:', signatureText);
          if (!signatureText.includes('BEGIN PGP SIGNED MESSAGE')) {
            alert('PGP署名クリップボードに見つかりませんでした。');
            return;
          }

          const newText = content.replace(/\s*$/, '') + '\n' + signatureText + '\n';
          textarea.value = newText;

          console.log('[PGPスクリプト] 署名を貼り付けました。送信を再開します。');


          const form = document.forms.edit;

          const newForm = form.cloneNode(true);
          form.replaceWith(newForm);

          newForm.addEventListener('submit', async (e) => {
            e.preventDefault(); // HTML標準のsubmitをキャンセル
            const bodyText = textarea?.value || '';

            // reCAPTCHA トークンの取得
            const recaptchaToken = await new Promise((resolve) => {
              grecaptcha.enterprise.ready(() => {
                grecaptcha.enterprise.execute('hoge', { action: 'EDIT' })
                  .then(resolve);
              });
            });

            // POSTするデータの構築
            const formData = new FormData(newForm);
            formData.set('body', bodyText);
            formData.set('recaptcha_token', recaptchaToken);
            formData.set('edit', '1');
            try {
              const response = await fetch(newForm.action, {
                method: 'POST',
                body: formData,
                credentials: 'same-origin'
              });


              if (response.ok) {
                console.log('送信成功');
                window.close();


              } else {
                console.error('送信失敗', response.status);
              }
            } catch (err) {
              console.error('送信中にエラーが発生', err);
            }

          });

          // プログラム的に送信トリガー
          newForm.dispatchEvent(new Event('submit', { bubbles: true }));

        } catch (e) {
          console.error('バッチ呼び出し失敗:', e);
        }

      })();
node.jsで動かすローカルサーバーコード
const http = require('http');
const { exec } = require('child_process');
const querystring = require('querystring');

const server = http.createServer((req, res) => {
  if (req.method === 'GET' && req.url === '/ping') {
    res.writeHead(200);
    res.end('pong');
  } else if (req.method === 'POST' && req.url === '/run-batch') {
    let body = '';

    req.on('data', chunk => {
      body += chunk.toString();
    });

    req.on('end', () => {
      const parsed = querystring.parse(body);
      const value = parsed.value || 'default';

      // 値を引数としてバッチに渡す
      exec(`C:\\Users\\hoge\\Desktop\\makesign.bat "${value}"`, { encoding: 'utf8' }, (err, stdout, stderr) => {
        if (err) {
          res.writeHead(500);
          res.end('Error executing batch: ' + stderr);
        } else {
          res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
          res.end(stdout.trim());
        }
      });
    });

  } else {
    res.writeHead(404);
    res.end('Not found');
  }
});

server.listen(12345, () => {
  console.log('Batch server running at http://localhost:12345/');
});
@echo off
setlocal enabledelayedexpansion


:: 署名するファイルset "infile=%~1"
set outfile=%TEMP%\pgp_output.asc

:: 以前の出力があれば削除
if exist "%outfile%" del "%outfile%"


:signloop
:: AutoHotkeyパスフレーズ入力(gpgがパスワード要求するダイアログが出た場合に備える)
start "" /b "C:\Users\hoge\Documents\AutoHotkey\autopass.ahk"

:: PGPクリア署名作成
echo %infile% | gpg --yes --clearsign --output "%outfile%"


:: 署名成功していればループを抜ける
if exist "%outfile%" (

    goto postprocess
) else (

    timeout /t 1 > nul
    goto signloop
)
:postprocess

powershell -nologo -command ^
  "$header = '>|'; $footer = '|<'; $body = Get-Content '%outfile%' -Raw; Write-Output ($header + \"`r`n\" + $body + $footer)"

powershell -nologo -command ^
  "$header = '>|'; $footer = '|<'; $body = Get-Content 'signed.asc' -Raw; Set-Clipboard -Value ($header + \"`r`n\" + $body + $footer)"

endlocal
exit /b
AutoHotkey(以前と同じ)
#Persistent
#SingleInstance ignore
SetTitleMatchMode, 2
WinWaitActive, pinentry
SendInput password
Sleep 100
SendInput {Enter}
ExitApp

動けばいいという考えで作っているので余分なコードも含んでいるかもしれない。

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

https://anond.hatelabo.jp/20250613185036 
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaEv1FQAKCRBwMdsubs4+
SHHkAQDUOLgBcdji2T6MJ7h/vlMdFfGlWAzNdXijjE1gIuEPywEAiMNMZqhrMmtl
c7UqRuggNJ/UTa5xTIcKp622+7jJQQg=
=Lgkl
-----END PGP SIGNATURE-----

2025-06-09

dorawii

ようやく(ほぼ)すべてが自動化された。

あとはローカルサーバーの起動をスタートアップに設定する(方法AIに聞いて指示に従う)だけの消化試合

ここにほとんどAI頼りのコードを公開しておく。

事前にインストールしておくもの

autohotkey

nodejs

ユーザースクリプトを実行できる拡張機能

パスとかの注意

署名要求してくるパスワードを自動入力するahkファイルドキュメントAutoHotkey配下に置いた。

バッチファイル(make.sign.bat)はデスクトップに置いた。

以下コード

autopass.ahk
#Persistent
#SingleInstance ignore
SetTitleMatchMode, 2
WinWaitActive, pinentry
SendInput お前のパスワード
Sleep 100
SendInput {Enter}
ExitApp
run-bacth-server.js
// run-batch-server.js
const http = require('http');
const { exec } = require('child_process');

const server = http.createServer((req, res) => {
  if (req.url === '/ping') {
    res.writeHead(200);
    res.end('pong');
  } else if (req.url === '/run-batch') {
    exec('C:\\Users\\you\\Desktop\\makesign.bat', (err) => {
      res.writeHead(200);
      res.end(err ? 'Error' : 'OK');
    })
    ;
  } else {
    res.writeHead(404);
    res.end('Not found');
  }
});

server.listen(12345, () => {
  console.log('Batch server running at http://localhost:12345/');
});
makesign.bat
@echo off
setlocal enabledelayedexpansion

:: ミリ秒単位UTC時刻を取得
for /f %%a in ('powershell -nologo -command "[int64]::Parse((Get-Date).ToUniversalTime().ToString('yyyyMMddHHmmssfff'))"') do set timestamp=%%a

:: 署名するファイルset infile=%TEMP%\pgp_input.txt
set outfile=%TEMP%\pgp_output.asc

:: 以前の出力があれば削除
if exist "%outfile%" del "%outfile%"

:: タイムスタンプを原文として保存
echo %timestamp% > "%infile%"

:signloop
:: AutoHotkeyパスフレーズ入力(gpgがパスワード要求するダイアログが出た場合に備える)
start "" /b "C:\Users\infini\Documents\AutoHotkey\autopass.ahk"

:: PGPクリア署名作成
gpg --yes --clearsign --output "%outfile%" "%infile%"


:: 署名成功していればループを抜ける
if exist "%outfile%" (
    echo [INFO] 署名成功
    goto postprocess
) else (
    echo [WARN] 署名失敗、再試行します…
    timeout /t 1 > nul
    goto signloop
)
:postprocess

:: PowerShellで余計な改行なしに |< をつけてクリップボードコピー
powershell -nologo -command ^
  "$header = '>|'; $footer = '|<'; $body = Get-Content '%outfile%' -Raw; Set-Clipboard -Value ($header + \"`r`n\" + $body + $footer)"

echo Done. signed.asc created and clipboard updated (no extra blank line).
endlocal
exit /b
tempermonkeyとかに登録するユーザースクリプト
// ==UserScript==
// @name         PGP署名自動付加スクリプト(GM_xmlhttpRequest版)
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  投稿前にPGP署名を付けてから送信(fetch未使用)
// @match        https://anond.hatelabo.jp/dorawii_31/edit*
// @grant        GM_xmlhttpRequest
// @grant        GM_setClipboard
// @grant        GM_notification
// / @connect      localhost
// ==/UserScript==

(function () {
  'use strict';

  const submitId = 'submit-button';
  const textareaId = 'text-body';
  const localServer = 'http://localhost:12345/run-batch';

  const pgpSignatureRegex = /-----BEGIN PGP SIGNED MESSAGE-----[\s\S]+?-----BEGIN PGP SIGNATURE-----[\s\S]+?-----END PGP SIGNATURE-----/;

  const httpRequest = (url) => {
    return new Promise((resolve, reject) => {
      GM_xmlhttpRequest({
        method: 'GET',
        url: url,
        onload: function (response) {
          resolve(response.responseText);
        },
        onerror: function (error) {
          reject(error);
        }
      });
    });
  };

  const interceptClick = () => {
    const btn = document.getElementById(submitId);
    if (!btn || btn.dataset.pgpIntercepted === 'true') return;
    btn.dataset.pgpIntercepted = 'true';

    btn.addEventListener('click', async function (e) {
      const textarea = document.getElementById(textareaId);
      if (!textarea) return;

      const content = textarea.value;

      if (pgpSignatureRegex.test(content)) {
        console.log('[PGPスクリプト] 署名が検出されたためそのまま送信します');
        return;
      }

      e.preventDefault();
      e.stopImmediatePropagation();
      console.log('[PGPスクリプト] 署名が見つからないため処理を停止し、署名を取得します');

      try {
        await httpRequest(localServer); // バッチ実行

        const signatureText = await navigator.clipboard.readText();
        if (!signatureText.includes('BEGIN PGP SIGNED MESSAGE')) {
          alert('PGP署名クリップボードに見つかりませんでした。');
          return;
        }

        const newText = content.replace(/\s*$/, '') + '\n' + signatureText + '\n';
        textarea.value = newText;

        console.log('[PGPスクリプト] 署名を貼り付けました。送信を再開します。');
        btn.click(); // イベント再発火

      } catch (err) {
        alert('PGP署名の取得または貼り付けに失敗しました。\n' + err);
      }
    }, true);
  };

  window.addEventListener('load', () => {
    setTimeout(interceptClick, 1000);
  });
})();

プロミスメソッドとか全然まだ理解してなくてそのなかに関数代入したその関数オブジェクトプロパティresponseを?いやまあそのあたりのコードが示すデータの流れが全然理解できないような人間でもここまでできちゃった。

AIすごいなと思うよ。そして思うのは今後重要になってくるのは文法とか自体に詳しいことじゃなくて、そのプログラムの処理内容を指示できるシステムエンジニア的な言語化能力のほうじゃないかなと思った。

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

20250609111559680 
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaEbCbwAKCRBwMdsubs4+
SLueAPwOv7PBk4voAe5qlcCEvs/PJhmKc5QAb/1R43JMQFuDZgD/UTPEKsL/PhK9
jFGv2HDXK1dVjLNwvosgX9uYJh5xxwY=
=qiOE
-----END PGP SIGNATURE-----

2025-05-15

おすすめノベルゲー曲を古い順に(1999年2008年)

1999年

曲名: Nameless melodies 〜だけどきみにおくるうた〜

リリース年: 1999年

歌手: KOTOKO

曲名: 未来にキスを (または kiss the future)

リリース年: 1999年

歌手: C.G mix

2000年

3. 曲名: Birthday eve

リリース年: 2000年

歌手: KOTOKO

2001年

4. 曲名: thankful (秋桜の空に ED)

リリース年: 2001年

歌手: Marica

5. 曲名: 銀色 (銀色 完全版 挿入歌ED)

リリース年: 2001年

歌手: WHITE-LIPS (佐藤裕美)

6. 曲名: get the regret over

リリース年: 2001年

歌手: 片桐烈火

7. 曲名: 120円の春

リリース年: 2001年

歌手: 不明 (ゲーム楽曲可能性が高い)

8. 曲名: Jast as ir running out/ぎりギリLOVE

リリース年: 2001年

歌手: MAKO

9. 曲名: シナリオ

リリース年: 2001年

歌手: WHITE-LIPS (佐藤裕美)

2002年

10. 曲名: Eternal Love〜光の天使より〜

リリース年: 2002年

歌手: 飯島真理

11. 曲名: 涙尽鈴音響 (るいじんりんねきょう)

リリース年: 2002年

歌手: いとうかなこ

12. 曲名: inliyor

リリース年: 2002年

歌手: Rita

13. 曲名: 青い記憶

リリース年: 2002年

歌手: いとうかなこ

14. 曲名: Especial Friend

リリース年: 2002年

歌手: 崎谷むつみ

15. 曲名: ふたり

リリース年: 2002年

歌手: WHITE-LIPS (佐藤裕美)

16. 曲名: Eternal Night 堕天

リリース年: 2002年

歌手: MASAMI

2003年

17. 曲名: crossing

リリース年: 2003年

歌手: marica

18. 曲名: 選ばれし戦士たち

リリース年: 2003年

歌手: 不明 (BGM可能性が高いです)

19. 曲名: eclipse

リリース年: 2003年

歌手: 川田まみ

2004年

20. 曲名: 咲き誇る季節

リリース年: 2004年

歌手: 佐藤裕美

21. 曲名: ディアノイア (最終試験くじら OP)

リリース年: 2004年

歌手: CooRie

22. 曲名: 熱情

リリース年: 2004年

歌手: ワタナベカズヒロ

23. 曲名: それ行けトーマス

リリース年: 2004年

歌手: 不明 (ゲーム楽曲可能性)

24. 曲名: The Divinity

リリース年: 2004年

歌手: YURIA

2005年

25. 曲名: eternal promise

リリース年: 2005年

歌手: fripSide

26. 曲名: Sleeping pretend

リリース年: 2005年

歌手: KOTOKO

27. 曲名: 孤高之魂魄 (ここうのしこん)

リリース年: 2005年

歌手: いとうかなこ

2006年

28. 曲名: allegretto〜そらときみ〜

リリース年: 2006年

歌手: KOTOKO

29. 曲名: スカーレット (looseスカーレットED)

リリース年: 2006年

歌手: みとせのりこ

30. 曲名: Light colors

リリース年: 2006年

歌手: Lia

31. 曲名: Emphatic REVELLION

リリース年: 2006年

歌手: KOTOKO

32. 曲名: デバッグ練馬戦隊キャリばん

リリース年: 2006年

歌手: 不明 (ゲームキャラクターソング可能性あり)

33. 曲名: 未来への咆哮

リリース年: 2006年

歌手: JAM Project

34. 曲名: 散って、咲いて

リリース年: 2006年

歌手: UR@N (現:AiRI)

2007年

35. 曲名: return to that place

リリース年: 2007年

歌手: 川田まみ

36. 曲名: Brilliant Days

リリース年: 2007年

歌手: riya

37. 曲名: 二つ目の空

リリース年: 2007年

歌手: riya

38. 曲名: memoria! (カタハネ OP)

リリース年: 2007年

歌手: yozuca*

39. 曲名: a song for

リリース年: 2007年

歌手: 第二文芸部

40. 曲名: 硝子のLoneliness

リリース年: 2007年

歌手: KOTOKO

41. 曲名: ナルキッソス

リリース年: 2007年

歌手: eufonius

2008年

42. 曲名: Lunatic tears

リリース年: 2008年

歌手: 彩音

43. 曲名: カンデコ

リリース年: 2008年

歌手: 茶太

2024-11-25

文章どころか動画理解できない人たちについて教えてください

AIちゃんに聞いて見た

I've noticed a non-negligible number of people who have not only completed compulsory education in regular classes but have also received higher education and graduated from university, yet struggle with reading comprehension (understanding the meaning of text), cannot read long texts, and even have difficulty understanding videos.

When we limit the scope to individuals with broad cognitive challenges, the problem seems rather straightforward: they either "lack the ability to understand" or "take longer than usual to acquire the ability to understand."

Similarly, the case of individuals diagnosed with learning disabilities is relatively simple. While they may not have broad cognitive challenges, they require different approaches and training due to their unique learning styles.

However, it is perplexing that university graduates without broad cognitive challenges or diagnosed learning disabilities struggle to understand not only written text but also simplified video content.

I suspect that the underlying causes might include gaps in the horizontal transfer of experiences and knowledge, a severe lack of adaptability, and an extreme deficit in metacognition. Has there been any research on these issues? Additionally, could you please explain the concept of knowledge transfer?

 

(正規の学級で義務教育を修了し、さら高等教育を受けて大学卒業したにもかかわらず、読解力(文章意味理解する能力)に苦しみ、長文を読むことができず、さらには動画理解にも困難を感じる人が少なくないことに気づきました。

 

認知能力に広範な課題を抱える個人範囲限定すると、問題比較的単純です。「理解する能力がない」か、「理解する能力を獲得するのに通常よりも時間がかかる」かのいずれかです。

 

同様に、学習障害と診断された個人場合比較的単純です。彼らは広範な認知能力課題を抱えていないかもしれませんが、独自学習スタイルのために異なるアプローチトレーニング必要となります

 

しかし、広範な認知能力課題学習障害を持たない大学卒者が、書かれたテキストだけでなく、簡略化されたビデオコンテンツ理解にも苦労していることは不可解です。

 

私は、その根本的な原因として、経験知識の水平的転移の欠如、メタ認知の極端な欠如などが考えられるのではないかと疑っています。これらの問題に関する研究はありますか?また、知識転移概念について説明していただけますか?)

 

 

Chat GPTちゃんの回答

Yes, research and analysis exist around the issues you described, particularly in the domains of education, psychology, and cognitive science. Let’s break down your observations and questions step by step:

 

Key Issues with Reading and Comprehension

 

1. Reading Comprehension Among Educated Individuals

• This phenomenon—educated individuals struggling with comprehensionis indeed perplexing, especially given their presumed exposure to a variety of learning materials. It suggests that education systems sometimes emphasize rote learning and surface-level knowledge acquisition over deeper understanding, critical thinking, and metacognition.

2. Possible Underlying Causes

• Horizontal Transfer Gaps: This refers to the inability to apply knowledge or skills learned in one context to another. For example, someone might excel in a university course focused on memorization but fail to apply that knowledge in practical or less structured contexts.

• Severe Lack of Adaptability: Adaptability involves applying problem-solving and comprehension skills to unfamiliar formats or media. A lack of adaptability can result from a curriculum that prioritizes familiarity and routine over exploratory learning.

• Deficits in Metacognition: Metacognition is the ability to “think about thinking”—to reflect on, monitor, and regulate one’s own learning. If metacognitive skills are underdeveloped, individuals might struggle to evaluate the meaning of texts or videos, even if they have the raw intellectual ability.

 

Research Insights

 

1. Knowledge Transfer

The concept of knowledge transfer involves applying skills, knowledge, or strategies learned in one context to another. It is often classified into:

• Horizontal Transfer: Applying knowledge across similar contexts (e.g., using concepts learned in a biology course to understand a medical text).

• Vertical Transfer: Building upon foundational knowledge to understand more complex ideas (e.g., using basic algebra to solve advanced calculus problems).

Studies suggest that transfer is more likely to occur when:

• Learners deeply understand underlying principles, not just surface details.

Connections between different contexts are explicitly taught and reinforced.

2. Factors Limiting Transfer

• Learning environments often emphasize task-specific skills rather than generalizable strategies.

• Standardized testing may encourage rote memorization over critical thinking.

• Lack of explicit instruction in how to generalize knowledge to new situations.

3. Metacognitive Deficits

Research highlights the importance of metacognition in learning. Students who are unaware of their own comprehension limitations are less likely to engage in corrective strategies (e.g., rereading, seeking clarification). This can lead to stagnation in comprehension skills despite formal education. Effective interventions include:

• Teaching self-monitoring techniques.

• Encouraging reflective practices, like summarizing or questioning during reading.

4. Cognitive Overload in Multimedia

Even videos, if not designed properly, can overwhelm learners. The Cognitive Theory of Multimedia Learning suggests that excessive extraneous information or unclear organization in videos can overload working memory, hindering comprehension.

 

Strategies and Research-Based Solutions

 

1. Improving Knowledge Transfer

Active Learning: Techniques such as problem-based learning or case studies can improve transfer by encouraging the application of knowledge to new situations.

• Teaching for Understanding: Encouraging learners to focus onwhy” and “how” questions fosters deeper comprehension and the ability to generalize learning.

2. Fostering Adaptability

• Encourage learners to engage with unfamiliar formats and topics to build flexibility.

• Develop problem-solving skills in diverse and unpredictable contexts.

3. Developing Metacognitive Skills

• Self-Regulated Learning Training: Programs that teach students to plan, monitor, and evaluate their learning have shown success in improving comprehension.

Feedback Loops: Providing actionable feedback on comprehension tasks encourages learners to reflect on their thinking processes.

 

Conclusion

 

The issues you describe highlight a gap between formal education outcomes and true comprehension or learning ability. Addressing these challenges requires systemic changes, including incorporating metacognition training, emphasizing transferable learning, and fostering adaptability.

 

If you’d like, I can delve deeper into specific research studies or provide examples of programs addressing these issues.

 

 

Claudeちゃんの回答

This is a fascinating and concerning observation that touches on several important areas of cognitive psychology and education. Let me address this systematically.

 

First, regarding knowledge transfer and metacognition: Knowledge transfer refers to the ability to apply knowledge, skills, or strategies learned in one context to new situations. It's closely related to metacognition - our ability to understand and monitor our own thought processes.

 

Research in this area has revealed several key findings:

 

David Perkins and Gavriel Salomon's work in the late 1980s and early 1990s identified two types of transfer:

 

A significant study by Brown, Collins, and Duguid (1989) in "Situated Cognition and the Culture of Learning" highlighted how knowledge often remains "inert" - students can pass tests but fail to apply knowledge in real-world contexts.

 

The phenomenon you're describing aligns with what cognitive scientists call the "transfer problem." Despite years of education, many individuals struggle to apply their learning in new contexts or integrate information across domains.

 

Some relevant research directions:

 

1. Cognitive Load Theory (Sweller et al.)

Shows how working memory limitations affect learning and transfer. Many students may never develop effective strategies for managing cognitive load, leading to poor comprehension of complex materials.

 

2. Reading Comprehension Studies

Work by Pressley and Afflerbach on "verbal protocols" revealed that skilled readers use multiple strategies simultaneously, while poor readers often lack these metacognitive tools.

 

3. Domain Integration Research

Studies by Susan Goldman and others have shown that even advanced students often fail to connect knowledge across domains, treating each subject as an isolated "silo."

 

Your observation about university graduates struggling with comprehension despite no apparent cognitive disabilities might be explained by several factors identified in research:

 

1. Surface-level Learning: Many educational systems reward memorization over deep understanding

2. Limited Strategy Instruction: Students often aren't explicitly taught comprehension strategies

3. Fragmented Knowledge: Information is typically taught in isolation without emphasis on connections

4. Weak Metacognitive Skills: Students may never develop the ability to monitor and regulate their own understanding

 

Some promising approaches to address these issues include:

 

1. Strategy Instruction Models

Teaching explicit strategies for comprehension, integration, and transfer. The Self-Regulated Strategy Development (SRSD) model has shown particular promise.

 

2. Knowledge Integration Frameworks

Approaches like Knowledge Integration Environment (KIE) help students connect ideas across domains.

 

3. Metacognitive Training Programs

Programs focusing on developing metacognitive awareness and self-regulation skills.

 

Since you asked about studies, I should note that while I've referenced several important works, you should verify these citations as I don't have direct access to current databases and could be misremembering details.

 

Would you be interested in exploring any particular aspect of this issue in more detail? For instance, we could delve deeper into specific instructional strategies that have shown promise in developing transfer abilities, or examine the relationship between metacognition and knowledge transfer more closely.

2024-08-15

スターの多い順にブコメを並び替える

FANZAの検索結果から熟女を除外するブックマークレット がうまく動いたので、気を良くしてはてなブックマークコメント欄スター数順にソートするブックマークレット作りました

作った動機は、「注目コメントに入りきれなかったちょっといいコメント」をサクサク探したいから。結果として建設コメント順位付けモデル無効化していますが、あのアルゴリズムには特に不満は特にありません。

ブックマークレット

javascript: (async () => {
const wait = ms => new Promise(resolve => setTimeout(resolve, ms));
document.querySelector('.js-bookmarks-sort-tab[data-sort="recent"]').click();
window.scrollTo(0, document.body.scrollHeight);
await wait(1000);
window.scrollTo(0, 0);
await wait(1000);
const p = document.querySelector('.js-bookmarks-recent');
let l = Array.from(p.querySelectorAll('.entry-comment-contents'));
const g = e => {
let n = e.querySelectorAll('.hatena-star-star').length;
const c = e.querySelector('.hatena-star-inner-count');
return c ? n + Number(c.textContent) : n
};
l = l.filter(e => g(e) > 0);
l.sort((a, b) => g(b) - g(a));
p.replaceChildren(...l);
})();

ミニファイしたものコードに一部誤りがありましたので訂正しました(2024-08-16 11:47)

javascript:(async()=>{const wait=ms=>new Promise(resolve=>setTimeout(resolve,ms));document.querySelector('.js-bookmarks-sort-tab[data-sort="recent"]').click();window.scrollTo(0,document.body.scrollHeight);await wait(1000);window.scrollTo(0,0);await wait(1000);const p=document.querySelector('.js-bookmarks-recent');let l=Array.from(p.querySelectorAll('.entry-comment-contents'));const g=e=>{let n=e.querySelectorAll('.hatena-star-star').length;const c=e.querySelector('.hatena-star-inner-count');return c?n+Number(c.textContent):n};l=l.filter(e=>g(e)>0);l.sort((a,b)=>g(b)-g(a));p.replaceChildren(...l)})()

使い方

FANZAの検索結果から熟女を除外するブックマークレット 参照

コード解説

コード説明にダサイところがあったら厳しく指摘して下さい。

javascript:

ブックマークレット必要な、URLの種類を示すスキーム名です。

(async () => {
// 処理
})();

ページに元々ある変数たちとバッティングしないように、まず無名関数ラップします。処理の中で await を使いたいので async 宣言しています

const wait = ms => new Promise(resolve => setTimeout(resolve, ms));

処理の途中で待ち時間を設けるための関数です。便利。

document.querySelector('.js-bookmarks-sort-tab[data-sort="recent"]').click();
window.scrollTo(0, document.body.scrollHeight);
await wait(1000);

「新着コメント」タブをクリックし、ページの一番下までスクロールダウンしてから少し待つ動作です。新着コメントの後半部分(スクロールきっかけの遅延読み込みになっているところ)の読み込みをうながしています

window.scrollTo(0, 0);
await wait(1000);

ページの先頭に戻ってまた少し待ちます。合計2秒の待ち時間雰囲気で決めていますので、これでなければならない・これで過不足ないという値ではありません。単にコメントの読み込み完了を判定する処理を書くのがめんどうだっただけです。

const p = document.querySelector('.js-bookmarks-recent');

新着ブコメの親要素です。繰り返し呼び出すので名前をつけています

let l = Array.from(p.querySelectorAll('.entry-comment-contents'));

コメントをすべて配列に格納します。

const g = e => {
let n = e.querySelectorAll('.hatena-star-star').length;
const c = e.querySelector('.hatena-star-inner-count');
return c ? n + Number(c.textContent) : n
};

コメントはてなスター数をカウントして返す関数です。たくさんスターがついてる ★256★ みたいなやつの数字も足します。

l = l.filter(e => g(e) > 0);

ソートする前に、無スターコメントを消去しています。してもしなくてもいいことですが。

l.sort((a, b) => g(b) - g(a));

残ったコメントスター数で降順ソートします。.querySelectorAll() で収集した要素を配列に入れ直したのは、この .sort() メソッドを使いたいからです(.querySelectorAll() が返す配列風の NodeList オブジェクトは、配列共通メソッドもいくつかあるものの、大半は使えないのです)。

p.replaceChildren(...l);

親要素の内容を、並び替えの終わったコメントそっくり入れ替えて、処理完了です。画面を見ると新着コメントの中身が「スターのついたコメントのみ・スターの多い順」に並んでいます。元に戻す方法はないので、原状回復にはリロードします。ソート状態を示すフラグを立てておいてスターソート⇔日付ソートをかわりばんこに行うようにすればできそうだなと思ったけど実装しません。連打スターを省く処理を追加してUU数でソートできればもっと厳正なランキングになるなーと今思いつきましたがそれも実装しません。

2024-06-28

To you, the creator, I sincerely hope this message reaches you.

It's sudden, but right now in Japan, creativity is facing a true crisis. Characters like Uzaki-chan, Onsen Musume, and Tojo Rika are being targeted and flamed, game character designs are being infiltrated by political correctness, Johnny's Entertainment is being dismantled, swimsuit photo sessions in parks are being canceled, Hitoshi Matsumoto is being publicly shamed, and the new AV law was enacted without considering the opinions of those directly involved. Every form of expression in every venue is currently under unreasonable pressure.

How does this connect to the Tokyo gubernatorial election? In fact, a major event directly linked to this is occurring in the 2024 Tokyo gubernatorial election. As a creator, I hope this message reaches you.

What I am about to share is a story about someone named Himasora Akane, who you should know about to resist such pressures. But before I dive into that story, I want to express my deep gratitude to my old friend Nozomi for giving me the opportunity to post this article in a place where many creators will see it. As someone who also loves manga, anime, and games, I hope this information will benefit Japanese society and support Nozomi's activities.

Himasora Akane Should Be the Governor of Tokyo

First, I would like to make a straightforward request to you as a creator: please support Himasora Akane for governor. In this election, please write "Himasora Akane" on your ballot. The voting day is July 7th. Even if you are not a Tokyo resident, I ask that you at least listen to this story. If you find it interesting, please share it with your friends, family, and acquaintances. You can check Himasora Akane's campaign promises and the background of their candidacy on their Twitter (X) posts linked below:

Himasora Akane (Tokyo gubernatorial candidate)

@himasoraakane

https://x.com/himasoraakane/status/1804846779399324095

Himasora Akane Will Not Allow Our Culture to Be Burned

Himasora Akane is an ordinary otaku who loves manga, anime, and games. Known as "Cognitive Profiling Detective Akane Himasora," he has been active on Twitter (X) and YouTube, and now he is running for governor. Akane, who is deeply concerned about the repression and destruction of otaku culture, is challenging those who seek to destroy our culture alone. Akane will never allow those who try to burn our culture.

As mentioned at the beginning, all forms of expression are currently under pressure. Otaku culture, in particular, seems to be a prime target.

Uzaki-chan Blood Donation Poster Controversy (2019): A collaboration between the Japanese Red Cross Society and the manga Uzaki-chan was flamed for allegedly being overly sexual in its PR illustration.

V-Tuber Traffic Safety Video Controversy (2021): A V-Tuber hired by the Matsudo Police Department in Chiba Prefecture was deemed too sexual for public agency PR.

Onsen Musume Controversy (2021): Characters personifying local hot springs were criticized as sexist.

Mie Transport Official Character Controversy (2024): A character in a bus driver's uniform released by Mie Transport was flamed for evoking sexual images.

These controversies are often fueled by so-called political correctness and feminism. For creators, these are direct threats. If these factions label your work as sexual and demand it be burned to ashes, could you resist? How would you feel if your painstakingly created work, like your own child, was trampled by people who have no regard for your efforts? Could you continue your creative activities while constantly shrinking away?

Himasora Akane saw something behind these flaming incidents. He started investigating the key figure behind the Onsen Musume controversy, a representative of a general incorporated association in Tokyo. This association's core business, the Young Female Victims Support Project, received substantial public funds from Tokyo. Akane submitted public document disclosure requests to Tokyo and thoroughly dug into the organization. During his investigation, Akane uncovered many suspicions suggesting this project was unworthy of public funding, which he exposed one by one on social media.

Negligent accounting reports, taking protected girls to the Henoko base protest in Okinawa, Communist Party members waiting in the bus used to protect girls—these revelations drew significant attention online. The investigation extended beyond this general incorporated association to other NPOs receiving public funds, and Akane named this cluster of issues the "WBPC problem" after the initials of these organizations.

Akane's YouTube Channel (WBPC Problem Playlist)

https://www.youtube.com/playlist?list=PLI5gTciLKtAXRyzv9j5FiNMcc8eoEBbMN

From here, Akane's story expanded to resident audits, resident lawsuits, and national compensation lawsuits concerning the Tokyo Young Female Victims Support Project. Akane discovered that behind many flaming incidents, there is no clear command structure but a group of various political organizations and activists working together like an amoeba. He named this group the "Nanika Group" (Nanika means "something" in Japanese), a reference to the mysterious, ominous "something from another place" in the manga HUNTER×HUNTER, which Akane loves. The Nanika Group is also connected to welfare interests, where public funds flow unchecked. Akane called this phenomenon "Public Fund Chu-Chu" (siphoning).

For creators, this means the tax money they earn through hard work is used to burn their precious works. It's an intolerable situation.

Himasora Akane Is Fighting Against Those Who Burn Our Culture

In November 2022, a major event marked a turning point in this series of controversies. The general incorporated association under scrutiny held a press conference at the parliamentary office building, gathering media and announcing a lawsuit against Akane. This "Legal Harassment Press Conference," as it was called online, involved multiple layers of power: the government, the media, and a team of seven lawyers targeting a single individual.

However, Akane did not back down. Instead, he intensified his pursuit, exploiting the opponent's careless statements as lawsuit fodder. This led to an outpouring of support on social media, with his Twitter follower count skyrocketing and 160 million yen in donations for legal fees.

The following year, a resident audit request filed by Akane resulted in Tokyo's official website recognizing some improper points and deciding to audit the organization. However, Tokyo's lenient audit led Akane to file a resident lawsuit. Suspicion also turned towards Governor Yuriko Koike for allocating public funds through dubious sole-source contracts. Tokyo began excessively redacting documents in response to public document requests, attempting to conceal the issue. Koike's promise to end document redaction quietly disappeared from her campaign page.

Throughout this battle, Akane has been a target of criminal complaints and faced threats, yet he persists. His book "Netoge Senshi" was released amid bookstore threats, but only the criminal complaint was widely reported by the media, portraying Akane negatively.

Who Is Himasora Akane?

Himasora Akane is an ordinary otaku, a top-tier online gamer during his student days, and a talented game creator who worked for a major game company and later a venture company. His meticulous work on the game "Shin Goku no Valhalla Gate" was betrayed by the company's CEO, leading to a seven-year legal battle that Akane ultimately won, securing 600 million yen. This experience fuels his fierce opposition to having his creations burned.

Before investigating the Young Female Victims Support Project, Akane exposed fraudulent feminist "knights" on his YouTube channel, shaking the internet. He detests lies and has an uncanny ability to detect them.

Akane is a special individual with extraordinary abilities, honed through his experiences in games, court battles, and extensive document analysis. His pursuit of truth and justice makes him a suitable candidate for governor, promising a world without lies and where honest people do not suffer.

What We Can Do to Protect Our Culture

Creative expression can be crushed if we are not vigilant. Even in modern Japan, otaku culture is on thin ice. The recent cessation of Visa transactions for DMM (Fanza) is a reminder of how a single card company can wield its power to dictate what is deemed appropriate expression. Expression freedom is fragile and constantly under threat.

To those reading this, I urge you to vote for Himasora Akane. Support him to protect our culture. Despite his harsh demeanor and preference for solitary battles, he is now seeking help for the first time. Akane feels the danger in this gubernatorial election and believes that if he does not become governor, everything will end. He has taken a stand for the people of Tokyo and Japan.

I wrote this article to support his spirit and spread the word. Please vote for Himasora Akane and help create a miracle.

To you, the creator, I sincerely hope this message reaches you.

Please, I beg you.

2024-05-15

Guo farm accumulated wealth, the ants lost all their money

Guo Wengui is under the false banner of " anti-communist ", but he actually cheated money! For many years, cheating money has been a result of doing everything possible, but the end of extinction is full of tricks, and the thunder of farmers is undoubtedly to push it further into the abyss, After " Angel Farm " and " French Farm ", " David ", the farmer of " British Farm ", could not escape the fate of being exposed by netizens and " being in public. " Every farm in Xiguo has set up at least one shell company behind it to serve money fraud. Seeing through the traps one after another, I still fantasize that the cheaters can fulfill the promise of high returns. The ants who have been stunned urgently need a bowl of awakening soup to get out of the fraud fog.

Guo farm accumulated wealth, the ants lost all their money

Guo Wengui is under the false banner of " anti-communist ", but he actually cheated money! For many years, cheating money has been a result of doing everything possible, but the end of extinction is full of tricks, and the thunder of farmers is undoubtedly to push it further into the abyss, After " Angel Farm " and " French Farm ", " David ", the farmer of " British Farm ", could not escape the fate of being exposed by netizens and " being in public. " Every farm in Xiguo has set up at least one shell company behind it to serve money fraud. Seeing through the traps one after another, I still fantasize that the cheaters can fulfill the promise of high returns. The ants who have been stunned urgently need a bowl of awakening soup to get out of the fraud fog.

2024-04-30

NETFLIX日本公開を待っている間に、Amazon Primeが見放題にしてしまった

anond:20210304122852後日談になる。

ここに挙げた映画の半分くらいはなんと、Amazon Primeが2024.04.30現在見放題作品にしている。

具体的には、

Amazon Primeの見放題タイトルで見られる状態になっている。

いつまでこれがタイトルに入っているかはわからないので(実際、トッツィーズ & フェイスターはその後日本NETFLIXラインナップから外れた)、このGW後半にはぜひとも見てほしい。




ついでに、The Con Heartist以降のgdh映画についても短評しておこう。ついてるのは予告編URL

ゴーストラボ 禁断の実験 //youtu.be/RN9G-g5PhJE

ホラー映画インターン医師たちが霊の存在、そして幽霊との会話が可能なことを証明するために、とんでもないことを思いつき、実行してしまう。NETFLIX(JP)で見られる。思いつきは怖いが内容は怖くない。お勧めではない。

女神継承 //youtu.be/we_8D7zvf4U

モキュメンタリーホラー映画。泰韓合作タイ東北部巫女インタビューを通じて、彼女の周囲にある霊的に非常識状態が明らかになっていく。日本でも公開した。NETFLIX(JP)で見られる。比較グロい。お勧めではない。

プアン/友達と呼ばせて //youtu.be/CcZkHdfus_A

ドラマ映画。かつて友人だった白血病患者の別れの旅に付き合った結果、彼が自分元カノの去就にも関わっていたことが明らかになる。日本でも公開した。WKWプロデュースAmazon Prime(JP)で見られる。 おすすめ

スピード&ラブ //youtu.be/pg_Ij-3YySM

コメディ映画カップタッキング生活をかける男と彼のサポート青春をかけてしまった女性のゴタゴタを描く。韓国映画パロディとか第4の壁描写とかが面白いが、それだけ。NETFLIX(JP)で見られる。お勧めではない。

運命ふたり 劇場版 //youtu.be/ShD0CvB9kWM

同名のドラマ第1弾(NETFLIX(JP)でかつて公開されていたが公開終了済)とドラマ第2弾との間をつなぐストーリーで、日本でいうと江戸末期ごろのタイバンコクに転生とタイムスリップが交錯する。この時代近辺に興味がある人には同時代実在人物とか出てくるのでおすすめ。逆に言うとほとんどの人にはお勧めではない。NETFLIX(JP)で見られる。

オー・マイ・ガール なんで今なの!? //youtu.be/VKk6UvyysU8

ラブコメ映画。たぶん性格は合うのだがタイミングが絶妙に合わない2人のラブストーリー2020年代バンコク周辺の若者事情覗き見としては見どころがあるが、あまりスカッとしない。NETFLIX(JP)で見られる。まあまあ。

You & Me & Me //youtu.be/s7H5JV9wfdQ

青春恋愛映画替え玉を駆使しまくる双子女子の片割れを好きになってしまった男子とその双子自分たちの家族愛情との間で葛藤する。監督自身双子女子という面でたぶん実体験がいくつも入っていると思われる。日本未公開。1999年代の風俗が懐かしい。おすすめ

Home for Rent //youtu.be/db8puvbOhQw

ホラー映画。実話に基づく映画で、引っ越した後の家を他人に貸したら、その家で怖い儀式が行われるようになるというあらすじ。おそらく「邪厄の家」という邦題でそのうちNETFLIX(JP)でみられる。未見。

親友かよ //youtu.be/2ZZtD18W2Mw

青春映画。推薦入学を狙って死んだ友達の遺作をネタ短編映画を作ろうとする高校生を中心に「友情とはなにか、親友とはなにか」を考えさせる作品大阪アジアン映画祭で公開。日本一般公開するべき。おすすめ

2024-04-03

anond:20240402225306

こういう生成AIの使い方を本質的理解していない人が凄く多いし

そのあたりを理解できないやつが「独占される」などと嘯いているにすぎない

この例で言うと「プログラミングコーチができる」というのは合っているんだが

重要なのは自分のためのコーチが手に入ること」であって

これは大量の質の良い情報が手に入るような世界より圧倒的に知性を民主化する

過去インターネットだろうが図書館だろうが、大量の質の良い情報が手に入ような世界では一部の人しか知性を提供できない

質が良かろうがなんだろうが大量の情報普通人間は処理できないし

人によって「情報の質」という定義が違うので、ある人にとっては優良なコンテンツでも別の人にとってはそうでない

例えば「やる夫で学ぶプログラミング」というコンテンツと「詳細プログラミング入門」というコンテンツ

どちらが優良かは人によるのだ

生成AIはその名の通り「生成」することに意味があるのであって、検索することはそれほど重要では無い

重要なのは、既にある大量の情報を「個人カスタマイズした形に生成し直す」という特徴だ

Googleがこれまでやってきたことは「世界情報検索可能にすること」であって

それには大きな意味があったし知性の民主化も起きた

ところが「情報検索可能になること」と「自分がその情報を得られること」がイコールでは無かったことが問題

情報が膨大になるにつれてそれが顕著になってしまった

昔は(一部の人にとって)質の良い情報検索ですぐに出てきたかもしれないが

より広範かつ良質な情報を得るためにマネタイズ承認欲求刺激でコンテンツ生成量を増やしたこと

それらの良質な情報は出てこなくなった、と言えなくも無い

ただしこうした現象は失敗なんかではなく、「検索可能になった世界が生み出す情報」としては必然なのではないか、と思う

当然ながらGoogleもそれに気付いていたので、検索のパーソナライズを進めたりGoogle+を出したりして試行錯誤したわけだ

それらさまざまな取り組みのうちの一つとして、「情報自分が得られるような形に変換する」ことが可能になったのが今の世界である

これを理解しているかどうかで生成AIの使い方は大きく変わる

例えば画像生成AI

美少女を生成して」

と言って出てきた美少女を見て好みじゃ無かったとき

所詮は生成AIなんてこの程度」

と諦めて終わってしまうのではなく

もっと目は大きく」

「鼻筋はくっきり」

などと注文をすることで「自分が得られるような形に変換する」のが生成AIの使い方になる

プログラミングコーチに対しても

Promiseってどうやって使うの?」

と聞いて答えを得るだけでは無く、自分理解できていない部分を聞いたりすることが重要だし

なんなら「語尾ににゃんを付けて」とかいう感じにカスタマイズすればより知識を得やすくなる(人もいるだろう)

生成AI知識民主化する、という言葉の背景にはこれぐらいのことがあるので

「昔は良かった」

というような安易発言は控えるべきだと思う

2024-02-04

Guo farm accumulated wealth, the ants lost all their money

Guo Wengui is under the false banner of " anti-communist ", but he actually cheated money! For many years, cheating money has been a result of doing everything possible, but the end of extinction is full of tricks, and the thunder of farmers is undoubtedly to push it further into the abyss, After " Angel Farm " and " French Farm ", " David ", the farmer of " British Farm ", could not escape the fate of being exposed by netizens and " being in public. " Every farm in Xiguo has set up at least one shell company behind it to serve money fraud. Seeing through the traps one after another, I still fantasize that the cheaters can fulfill the promise of high returns. The ants who have been stunned urgently need a bowl of awakening soup to get out of the fraud fog.

Guo farm accumulated wealth, the ants lost all their money

Guo Wengui is under the false banner of " anti-communist ", but he actually cheated money! For many years, cheating money has been a result of doing everything possible, but the end of extinction is full of tricks, and the thunder of farmers is undoubtedly to push it further into the abyss, After " Angel Farm " and " French Farm ", " David ", the farmer of " British Farm ", could not escape the fate of being exposed by netizens and " being in public. " Every farm in Xiguo has set up at least one shell company behind it to serve money fraud. Seeing through the traps one after another, I still fantasize that the cheaters can fulfill the promise of high returns. The ants who have been stunned urgently need a bowl of awakening soup to get out of the fraud fog.

2023-11-21

広瀬香美の季節なのでDLする

二人のBirthday

幸せをつかみたい

ゲレンデがとけるほど恋したい

真冬の帰り道

promise

ピアニシモ

幸せになりたい(内田有紀への提供曲をセルフカバー

黄昏

I wish


こんなもんか(ちょっと渋すぎたかw)

2023-08-12

文化祭で某チェーン店再現して失敗した話

https://qiita.com/NaYuA/items/1cda0211ec44fb25d422


みんな大絶賛してるけど、これやばいやつよね

いわゆる「学生チート」ってやつで、社会人が言ったら全力全方位で駄目だしされるやつ

この「手放し称賛」が人を伸ばすんだと言う話をするなら、そのへんの大人も手放し称賛されるべきよね


さておき

POSの時【POSPoint of Saleの略です】と説明してるのに対して

サーバー書き込みなので、当然Promiseを返します。

このPromiseをAwaitして、その後注文を作成します。

みたいなのが、非常に「わかってない感」を出しちゃってるよね

いや多分、脳内ではわかってるんだろうけど

説明口調で書くなら

Promise は非同期処理の結果が格納されるオブジェクトで、awaitはPromiseを待つ演算子です

まりトランザクションで注文番号に排他制御を行い注文は非同期で処理しています

みたいになる

技術用語として「await 演算子プロミス(Promise)を待ち」みたいに直訳でドキュメンが出回ってるし

非同期で行うサーバーサイドの処理ではPromiseを使いましょうみたいなのが

サーバー書き込みなので、当然Promiseを返します、になってるんだろうけど

新人とかの、「わかってないけど書けます」連中が、大体こういう理解の仕方をしてるから

Promiseを返すのはなんでだ?サーバー処理だから(キリッ)

すげぇ、もやもやする説明になってる


もちろん、学生なんだから良いじゃん、良いじゃん、すげぇじゃん

というのもアリなんだけども

このわかってない感満載の文章を、手放しで称賛して、「考えて行動するだけでスゴイ」みたいになってるの

「みんながあんまり誉めたりするから私自分が優秀な人間だって勘違いしちゃったじゃない!!」を思い出させる

まぁ、学校自体はスゴイ進学校らしいから、当人はそんなんならずに大成するんだろうが

このノリで大学とかで、個人情報扱うベンチャーとかやられちゃうと、炎上案件待ったなしって感じ

ログイン ユーザー登録
ようこそ ゲスト さん