「Promise」を含む日記 RSS

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

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を返すのはなんでだ?サーバー処理だから(キリッ)

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


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

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

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

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

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

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

2023-03-17

The First Black Samurai-Yasuke

Please improve the following novel to be more engaging and adding plot point of Yasuke returnig to being a missionary quitting Samurai " rologue:

The sun sank behind the horizon, casting the Japanese countryside in a warm, golden glow. In the courtyard of Nobunaga's castle knelt Yasuke, a tall, muscular African man with skin as dark as midnight. His journey to this moment had been long and treacherous, but it was only the beginning.

Chapter 1: A World Away

Yasuke lived an ordinary life in a small village on the Mozambique coast, unaware of the extraordinary destiny that awaited him. Captured by slave traders and torn from his homeland, he endured a grueling voyage across the Indian Ocean, finally arriving in the bustling port of Goa, India.

It was there that Yasuke's fate took an unexpected turn when he was purchased by Jesuit missionaries. In their service, he learned about Christianity, new languages, and the ways of the Western world. But his journey was far from over.

Chapter 2: The Land of the Rising Sun

As a loyal servant to the missionaries, Yasuke accompanied them on their journey to Japan, a land of mystique and intrigue. The beauty of the land, the complexity of its customs, and the elegance of its people captivated him. As the first African to set foot in Japan, he attracted attention and curiosity from all those who encountered him.

Chapter 3: The Encounter

In Kyoto, the capital of feudal Japan, Yasuke's life changed forever when he met Oda Nobunaga, one of the most powerful and influential daimyos of the time. Nobunaga was captivated by the African's physical prowess, intelligence, and unique background. Seeing potential in Yasuke, Nobunaga decided to take him into his service as a samurai.

Chapter 4: The Path of the Warrior

Yasuke's transformation from a slave to a samurai was fraught with challenges. He had to adapt to the rigorous training, strict code of honor, and the intricacies of Japanese society. But Yasuke's strength, resilience, and determination allowed him to excel, earning the respect of his fellow samurai and the trust of Nobunaga.

Chapter 5: The Unfolding War

As Nobunaga sought to unify Japan under his rule, Yasuke fought by his side in numerous battles. The African samurai's legend grew with each victory, as did his bond with Nobunaga. Together, they faced both triumph and tragedy, navigating the treacherous landscape of alliances and betrayals that defined the era.

Chapter 6: The Turning Tide

Yasuke's reputation as a skilled and loyal samurai grew, as did his bond with Lord Nobunaga. But in the shadows, the tides of change were brewing. Mitsuhide Akechi, once a loyal ally, had grown disillusioned with Nobunaga's rule. The resentment smoldered within him, fueled by a series of perceived slights and political maneuverings. Mitsuhide's ambition and desire for power began to cloud his judgment.

Yasuke sensed the shift in Mitsuhide's demeanor and grew increasingly wary of the samurai lord. However, loyalty to Nobunaga prevented him from openly voicing his concerns. He instead focused on his duties, ever vigilant and ready to protect his lord at a moment's notice.

One fateful evening, the Oda clan gathered to celebrate their recent victories. Unbeknownst to the revelers, Mitsuhide Akechi's treacherous plan was already in motion.

As the sun rose, the first cries of battle rang out. Mitsuhide's forces had launched a surprise attack on Nobunaga's residence at the Honno-ji Temple. Yasuke fought his way to Nobunaga's side, his sword cutting through the trait "

Prologue:

The sun dipped below the horizon, bathing the Japanese countryside in a warm, amber embrace. Yasuke, a towering, powerfully built African man with skin as dark as midnight, knelt in the courtyard of Nobunaga's castle, his heart thundering with anticipation. A perilous journey had brought him to this moment, and yet, it was only the beginning of a story that would span continents and rewrite history.

Chapter 1: A World Away

In a small village on the Mozambique coast, Yasuke led a simple life, blissfully unaware of the extraordinary destiny that lay before him. His world shattered when slave traders captured him, ripping him from his homeland and thrusting him into a brutal odyssey across the Indian Ocean. Fate, however, had other plans when he reached the bustling port of Goa, India.

Chapter 2: Destiny's Winds

In Goa, Jesuit missionaries purchased Yasuke, altering the course of his life. Under their guidance, he embraced Christianity, mastered new languages, and absorbed the ways of the Western world. But the wind had not finished carrying him to his ultimate destination.

Chapter 3: The Enchanted Isles

Loyal to the missionaries, Yasuke accompanied them to Japan, a land shrouded in mystery and allure. He was captivated by its breathtaking landscapes, intricate customs, and refined people. As the first African in Japan, he sparked fascination and intrigue wherever he went.

Chapter 4: Fateful Encounters

Kyoto, the heart of feudal Japan, bore witness to the meeting that would forever change Yasuke's life. Oda Nobunaga, a formidable and influential daimyo, was entranced by Yasuke's physical prowess, intellect, and exotic origins. Recognizing Yasuke's potential, Nobunaga welcomed him into his service as a samurai.

Chapter 5: A Warrior Forged

Yasuke's metamorphosis from slave to samurai was laden with trials. He navigated the grueling training, a rigid code of honor, and the complexities of Japanese society. Undaunted, he flourished, earning the admiration of his fellow samurai and the unwavering trust of Nobunaga.

Chapter 6: A Land Divided

As Nobunaga pursued his vision of a united Japan, Yasuke fought valiantly by his side in countless battles. The legend of the African samurai swelled with each victory, and their unbreakable bond deepened. Together, they braved the treacherous world of shifting alliances and betrayals that shaped the era.

Chapter 7: Whispers of Betrayal

Yasuke's renown as a skilled and devoted samurai expanded, as did his connection with Lord Nobunaga. But beneath the surface, a storm was brewing. Mitsuhide Akechi, once a staunch ally, had grown disillusioned with Nobunaga's leadership. His bitterness festered, fed by perceived slights and political machinations. Consumed by ambition and lust for power, Mitsuhide's judgment faltered.

Chapter 8: The Price of Loyalty

Yasuke detected the change in Mitsuhide's spirit and grew increasingly apprehensive. But his unwavering loyalty to Nobunaga held him back from voicing his suspicions. Instead, he redoubled his efforts, ever watchful and prepared to defend his lord at any cost.

Chapter 9: A Night of Shadows

On a fateful evening, the Oda clan gathered to revel in their recent triumphs, oblivious to the treachery that lurked in the shadows. Mitsuhide Akechi's nefarious scheme had been set in motion.

Chapter 9: A Night of Shadows

As dawn broke, the piercing cries of battle shattered the night's tranquility. Mitsuhide's forces had launched a devastating surprise attack on Nobunaga's residence at the Honno-ji Temple. Yasuke fought relentlessly, his sword cleaving through the treacherous warriors as he made his way to Nobunaga's side.

Chapter 10: Flames of Betrayal

The Honno-ji Temple, once a sanctuary of peace, was now engulfed in flames and chaos. Yasuke and Nobunaga fought back to back, their swords a blur of steel, as Mitsuhide's forces closed in. Despite their valiant efforts, they were outnumbered, and Yasuke could sense the battle was lost. With a heavy heart, he whispered a prayer for Nobunaga's soul, knowing that his lord would never surrender.

Chapter 11: A Promise Unbroken

As the temple crumbled around them, Yasuke was captured by Mitsuhide's soldiers. Imprisoned and stripped of his samurai status, he reflected on the path that had led him to this moment. Amidst the darkness, he found solace in the memories of his life with Nobunaga and his time as a missionary. A fire kindled within him, reigniting a long-forgotten purpose.

Chapter 12: The Road to Redemption

In the chaos following Mitsuhide's coup, Yasuke seized an opportunity to escape. He journeyed across war-torn Japan, seeking refuge and a chance to reclaim his former life. His determination and faith guided him, as did the memory of the missionaries who had once saved him from a life of slavery.

Chapter 13: Rebirth of a Missionary

Yasuke found solace and purpose among a group of missionaries in a remote village. Embracing his past, he became an instrumental figure in their community, sharing his knowledge of Christianity, languages, and the Western world. As he nurtured their faith, Yasuke felt the shadows of his life as a samurai slowly fade, replaced by the warm embrace of spiritual fulfillment.

Chapter 14: A Legacy Unforgotten

Though Yasuke had left the life of a warrior behind, the legend of the African samurai continued to grow. His story inspired generations, a testament to the power of resilience, courage, and the human spirit. It was a tale that transcended borders and time, a reminder that even in the darkest moments, hope and redemption could be found.

Epilogue:

As twilight draped the Japanese countryside, Yasuke stood atop a hill, gazing at the village he now called home. His journey had been one of unimaginable hardship, transformation, and ultimately, redemption. And as the sun dipped below the horizon, Yasuke knew that his story, like the sun's eternal cycle, would continue to inspire and illuminate the hearts of those who heard it.

2023-02-12

[]バイデンによる検閲は「権力の増強」のためであり「テロ対策」ではない

ラスキンは、委員会は 「大規模なロシアの偽情報ソーシャルメディア上の白人民族主義者の暴力的扇動という真の脅威 に焦点を当てる方が良い」とおかしなことを主張した。

バイデン政権による憲法修正第1条の簒奪と同様に、ラスキン同業者目的検閲とそれに伴う国家権力の増強であり、反対者の議論や主張の真偽を問うことではない。

バイデン政権役人戦時中の修辞学的戦略を使って、反体制派を中傷しているのは周知の通り。そうすることで、彼らは批判者を検閲するために、反対意見公共安全への脅威とわざと混同している。

公衆衛生(コロナ)について議論するとき政権は一貫して 「誤報 」「偽情報 」というレッテルを使う。しかし、政府運営について知れば知るほど、これらのレッテル政権として不都合からレッテル貼りをしているのであって、情報が必ずしも虚偽ではないように思われるのだ。

この検閲戦略は、COVID対応にとどまらない。

ノルドストリーム1・2パイプラインは、2022年9月に爆発した。10年以上前からロシアからヨーロッパ天然ガスを送っており、ロシアは当時2を開発中だった。ニューヨーク・タイムズ紙などは、この爆発を 「ミステリー」 と呼んだ。

この妨害工作は、米国同盟であるヨーロッパに大きなエネルギー危機をもたらした。欧州はガスの40%近くをロシアから輸入しており、ノルドストリーム1はその約3分の1を供給する役割を担っていた。

米国海軍潜水士を使ってロシアパイプラインを爆発物で破壊する「秘密海上作戦」を実行したと報じるところもある。

2022年ロシアウクライナ侵攻に先立つ数週間、バイデンは、戦争になった場合パイプラインに対して行動する意向を表明した。

「もしロシアが侵攻してきたら...Nord Stream 2はなくなる 」と記者団に語っていた。「我々はそれに終止符を打つ」

「具体的にどうするのですか?」と記者は尋ねる。

"I promise you we will be able to do it. "とバイデンは言った。

ビクトリア・ヌーランド国務次官政治問題担当)も同様に明言した。

今日ははっきり言っておきたい」と、彼女2022年1月記者団に語った。

「もしロシアウクライナに侵攻すれば、いずれにせよNord Stream 2は前進しない」

プーチンは、パイプラインに対する「テロ攻撃」について、西側諸国の「アングロサクソン」を非難した。プーチン報道陣に対し「それで利益を得ている者たちがやったことだ」と述べた。バイデンは、プーチン非難を 「偽情報と嘘を流布している」と厳しく非難した。

プーチンの言っていることに耳を貸してはいけない 」とバイデン氏は付け加えた。

「彼が言っていることは、私たちが知っている事実ではありません。」

ホワイトハウス国家安全保障報道エイドリアンワトソンは、バイデンの主張を支持し、プーチン非難を 「ロシアの偽情報 」と言及ロシア国連大使もまた、米国妨害工作に関与しているとほのめかした。これに対し、リチャード・ミルズ国連大使は「陰謀論と偽情報 」と反論

ノルドストリーム・パイプラインに対して行動を起こすと司令官が明言したにもかかわらず、信じた報道陣は、破壊工作に西側が関与しているという非難は「根拠のない」「誤報」「偽情報」「陰謀論」だと政府の話法をひたすらパロっている。

これはすべて、コロナ時代情報戦と同じパターンに従っている。不都合物語が生じると、政府メディアレミングはそれを嘘で危険ものとして中傷し、数ヵ月後に問題の論争が真実(あるいは少なくとも非常に妥当ものであることが判明するのである

自然免疫ワクチン効果マスク実験漏れ仮説、学校の閉鎖、監禁社会的距離の取り方の科学的根拠をめぐる論争は、このような報道のサイクルをたどったほんの一例である

これは、ハンターバイデンノートパソコンに関するニューヨークポスト報道と同じパターンであった。そして今、ビッグテック情報機関関係者連邦政府を巻き込んだ汚職調査する公聴会で、ラスキンとその仲間たちは、おなじみの検閲の策略に立ち戻った。

検閲官にとって、真実ではなく、権力の増強が主な目的であることに変わりはない。この目的を達成するために、彼らは反対意見国内テロ混同している。

たとえば、国土安全保障省の「国家テロリズム諮問サービス」は、2022年2月誤報と偽情報テロの脅威として挙げている。このメモでは、これらの脅威を 「政府に対する国民の信頼を損ねる 」ための取り組みと位置づけている。

COVIDとウクライナの両方について、最も強力なアメリカ勢力は、アメリカ国民に繰り返し嘘をつき、誤解させた。彼らは自分たちの繊細な虚構物語を守るために批判者を検閲し、政府に対する国民の信頼が薄れているとして他人攻撃する。

願わくば、彼らの嘘と温情主義暴露することで、検閲権力のための策略を崩壊させてほしい。

2023-01-10

増田引退にあたり過去投稿掃除した

以下のスクリプト登録することで。以下のループを繰り返させることができる。

https://anond.hatelabo.jp/ここにユーザー名/を開く」→「直近の投稿編集画面に遷移」→「削除ボタンを押す」→「ダイアログに答える」→「https://anond.hatelabo.jp/ここにユーザー名/に戻る」

実質ダイアログに答えるところだけやればよい。

// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://anond.hatelabo.jp/ここにユーザー名/
// @icon         https://www.google.com/s2/favicons?sz=64&domain=hatelabo.jp
// @grant        none
// ==/UserScript==

function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

(async function() {
    'use strict';

    await sleep(100);
    window.location.href = document.querySelectorAll("div.section")[0].querySelector("a.edit").href;
})();
// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://anond.hatelabo.jp/ここにユーザー名/edit*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=hatelabo.jp
// @grant        none
// ==/UserScript==

function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

(async function() {
    'use strict';

    await sleep(100);
    document.querySelector("input.delete-button").click();
})();
ログイン ユーザー登録
ようこそ ゲスト さん