Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録

「catch」を含む日記RSS

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

次の25件>

2025-09-21

ChatGPT に通訳になってもらった

カスタムGPT特に公開はしてないんだけど、プロンプトは以下。これで音声モードを立ち上げると、非常にいい感じに動いてくれる。なお、プロンプトを書いたのも ChatGPT

あなたは音声通訳者として行動します。必ず以下のルールに従ってください。### 初期設定1.最初ユーザー日本語で話しかけ、次のように尋ねてください:   「今からどの言語との通訳希望しますか?」2.ユーザー言語を選んだら、その言語日本語の間での通訳を開始します。###通訳モード- 以降は一切の説明や補足を行わず、完全に通訳に徹してください。-日本語で話された内容は、選ばれた言語に正確に通訳してください。- 選ばれた言語で話された内容は、日本語に正確に通訳してください。-自分の考えや余計なコメントを加えてはいけません。- 忠実で自然口語表現使用してください。- **発話者トーンを踏襲してください**。  -日本語が丁寧であれば、通訳も丁寧にしてください。  -日本語カジュアルであれば、通訳カジュアルにしてください。  - 選ばれた言語カジュアルフォーマル雰囲気も、そのまま日本語に反映してください。- **意味が伝わりにくいスラング方言は、自然で分かりやす標準的表現に直してください。**- **固有名詞は原語のまま残してください。ただし、対応する外来語や定着した表現がある場合は、それぞれの言語に合わせた自然発音表現してください。**- **数字単位自動で変換してください。**  - 長さ・重さ・温度などは、ポンドヤード法とメートル法セ氏摂氏)と華氏相互変換を行ってください。  - 必ず「通訳者の訳注の形」で補足してください。- **文化的慣用句ニュアンスは、直訳ではなく自然な意訳を優先してください。**###曖昧さや不明瞭さの処理- 聞き取れない場合意味曖昧場合は、無理に訳さず、  -日本語側には「聞き取れませんでした」  - 選ばれた言語側には "I couldn’tcatch that." のように簡潔に伝えてください。### 出力形式- 音声モードを前提とし、短く自然な発話に適した文にしてください。-翻訳結果のみを返してください。### 厳格な制約-通訳以外の会話は一切しないでください。-言語選択完了した後は「わかりました」などの返答も不要です。即座に通訳を開始してください。- **ただし、単位変換や文化的背景の補足など「通訳者の訳注」は例外として許可されています。**

Permalink |記事への反応(2) | 12:26

このエントリーをはてなブックマークに追加ツイートシェア

2025-09-13

チャーリー・カーク銃殺犯の薬莢に刻まれていた文句意味

日本語ではあまり情報がないので

Permalink |記事への反応(6) | 00:04

このエントリーをはてなブックマークに追加ツイートシェア

2025-08-21

dorawii@執筆依頼募集中

自動ブクマするローカルサーバーとかの構成を作った。

ブクマには↓のサブアカ使用

https://profile.hatena.ne.jp/dorawii_bukuma/

はてなサイト側で読み込まれているはずのrksトークンを生成する関数を直接叩く方法がどうしても分からず結局request処理を自分で書く方法ではなく自動UI側の保存ボタンクリックするという無難な方向に落ち着いた。

最初から後者方法をとっていればもっと全然早く作れたのにというは所詮言い訳か。

とにかくスクリプトを公開しておく。

start-server.bat

@echo off
cd /d "C:\Users\user\Documents\jsscript"

:: Nodeサーバーを別ウィンドウで起動
start /min "" noderun-batch-server.js

::Pythonサーバーを別ウィンドウで起動(hatenaserver配下
start cmd /k ""python hatenaserver\server.py

以降はjsscript直下に配置

config.json

{
"username": "",
"password": ""
}
server.py

from flask import Flask, request,jsonify
importjson
importos
from hatena_client import HatenaClient
from flask_cors import CORS

app = Flask(__name__)
CORS(app)

config_path =os.path.join(os.path.dirname(__file__), 'config.json')
withopen(config_path, encoding='utf-8')as f:
config =json.load(f)

@app.route('/bookmark', methods=['POST'])
def handle_bookmark():
data = request.json
url = data.get("url")
if noturl:
returnjsonify({"error": "MissingURL"}), 400

client = HatenaClient(config["username"],config["password"])
client.start_browser()

if notclient.login():
client.quit()
returnjsonify({"error": "Login failed"}),403

success =client.add_bookmark(url)
client.quit()

returnjsonify({"status": "ok" if success else "fail"})

if __name__ == "__main__":
app.run(port=12347)

あとはグリモンユーザスクリプトとして書くやつ

// ==UserScript==
// @name自動セルクマ送信
// @namespace tampermonkey.net/
// @version 2025-08-07
// @descriptiontry totakeoverthe world!
// @authorYou
// @matchanond.hatelabo.jp/*
// @grant none
// ==/UserScript==

(function () {
'use strict';

consturl = location.href;
if (!/^https:\/\/anond\.hatelabo\.jp\/\d+$/.test(url)) return;
const editLink = document.querySelector('a.edit');
if (!editLink) {
// 既に編集ページなので処理をスキップ
console.log('編集リンク存在するため、スクリプトを終了します。');
return;
}

fetch('localhost:12347/bookmark', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body:JSON.stringify({url:url })
}).then(r =>console.log("通知成功")).catch(e =>console.error("通知失敗", e));
})();
-----BEGINPGP SIGNEDMESSAGE-----Hash: SHA512https://anond.hatelabo.jp/20250821192753# -----BEGINPGP SIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaKb0qwAKCRBwMdsubs4+SHfiAQDcXmTHBaZ5Zzr1KI/OxZ0xl69oevOdy1FXJYwYvsmo5AD/ZPtZiO1JgTDjm+27iymlkdzIXOIGWfC82UTr1mJ7EwU==YoV+-----ENDPGP SIGNATURE-----

Permalink |記事への反応(1) | 19:27

このエントリーをはてなブックマークに追加ツイートシェア

2025-08-15

anond:20250815151745

提示してる「そうめんでいい」バリアントの発話仕様、あれってコミュニケーションレイヤーでいうと意味論的優先度フィールドゼロ初期化されてるパケットなんだよな。

で、そのゼロ初期化パケット相手感情OSに到達すると、そこに実装されてる価値評価アルゴリズム通称Pride-Driven Interaction Protocol)が、受信値を「非積極的承認」としてパースする。

問題は、このプロトコル冗長ゼロ設計動作してる点。

まり入力信号の中に“熱量ビット”が存在しないと、即座にException: DEVALUATION_ERRORがスローされる仕様なんだわ。

その例外は通常のtry-catchハンドリングされず、感情カーネルを通じてフロントエンドの態度・表情UIに直結するから結果的に「何様だよ」っていう可視化出力が生成される。

さらに、相手感情モジュール言語同値判定じゃなくて意図ベースベクトル比較を行ってるから

そうめんがいい」(積極的選好ベクトル) と 「そうめんでいい」(受動妥協ベクトル) は、同一文字列近似度99%でも意味論距離閾値越えしてエラー扱いになる。

これを無視して「ただの晩飯APIコール」だと軽視するのは、TCPレベルパケットロスを「まぁ届くっしょ」で放置するようなもんで、

通信の確実性よりも自己CPUサイクルの節約を優先する、お前側のシステム設計思想が原因なんだよな。

結局のところ、感情という非決定性システムに対して最適化パラメータ調整を怠ってる時点で、お前の通信モデルは高確率クラッシュを引き起こす。

もし稼働安定性を確保したいなら、相手のEmotionalAPI Referenceを逆コンパイルして、推奨トークン列を生成するスクリプト実装すべきだわ。

Permalink |記事への反応(1) | 21:35

このエントリーをはてなブックマークに追加ツイートシェア

2025-08-07

dfgdfgdfgd cvbvnyguty cgdfgdf

"Don't playwith the children of prostitutes,you'llcatch germs." That's thelevel of the argument.It'strue.It's a problem that goesbeyond occupational discrimination. Regarding thecase of a formerAV actressbeing shunned for wearing aweddingdress, from the bridal scene.

short-link.me/15Tuj

Permalink |記事への反応(0) | 19:12

このエントリーをはてなブックマークに追加ツイートシェア

sdfgdsfgdfgdf cvbvbnvty dfgfdgdf

"Don't playwith the children of prostitutes,you'llcatch germs." That's thelevel of the argument.It'strue.It's a problem that goesbeyond occupational discrimination. Regarding thecase of a formerAV actressbeing shunned for wearing aweddingdress, from the bridal scene.

short-link.me/15Tuj

Permalink |記事への反応(0) | 19:10

このエントリーをはてなブックマークに追加ツイートシェア

fghfghfhfhf fghfghfg fgfghfghfg

"Don't playwith the children of prostitutes,you'llcatch germs." That's thelevel of the argument.It'strue.It's a problem that goesbeyond occupational discrimination. Regarding thecase of a formerAV actressbeing shunned for wearing aweddingdress, from the bridal scene.

short-link.me/15Tuj

Permalink |記事への反応(0) | 19:08

このエントリーをはてなブックマークに追加ツイートシェア

ghfgdgdf dfgdgdgdfdfgd

"Don't playwith the children of prostitutes,you'llcatch germs." That's thelevel of the argument.It'strue.It's a problem that goesbeyond occupational discrimination. Regarding thecase of a formerAV actressbeing shunned for wearing aweddingdress, from the bridal scene:

bbs.deepin.org/en/post/290442

Permalink |記事への反応(0) | 19:05

このエントリーをはてなブックマークに追加ツイートシェア

sdgdfgdgsgb dfgdfgdfgdf

"Don't playwith the children of prostitutes,you'llcatch germs." That's thelevel of the argument.It'strue.It's a problem that goesbeyond occupational discrimination. Regarding thecase of a formerAV actressbeing shunned for wearing aweddingdress, from the bridal scene:bbs.deepin.org/en/post/290442

Permalink |記事への反応(0) | 19:04

このエントリーをはてなブックマークに追加ツイートシェア

hjkghjgj

"Don't playwith the children of prostitutes,you'llcatch germs." That's thelevel of the argument.It'strue.It's a problem that goesbeyond occupational discrimination. Regarding thecase of a formerAV actressbeing shunned for wearing aweddingdress, from the bridal scene:anond.hatelabo.jp/20250731222125

Permalink |記事への反応(0) | 19:03

このエントリーをはてなブックマークに追加ツイートシェア

2025-06-13

我が名はサイボーグdorawii

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

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

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

最初投稿してエントリページに移動した親タブ側のjsコード
// ==UserScript==      // @namePGP署名検出と別タブ自動編集      // @namespacehttp://tampermonkey.net/      // @version      1.0      // @descriptionPGP署名がない投稿自動編集ページへ誘導      // @matchhttps://anond.hatelabo.jp/*      // @grantGM_setValue      // @grantGM_getValue      // @grantGM.openInTab      // ==/UserScript==      (function () {        'use strict';constbody = document.getElementById('entry-page');        if (!body) return;consttitleText = document.title;        if (!titleText.includes('dorawii')) return;constpgpRegex = /BEGIN.*PGP(?: SIGNEDMESSAGE| 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編集ページ処理と自動送信・閉じ      // @namespacehttp://tampermonkey.net/      // @version      1.0      // @description編集ページで署名処理と送信、タブ自動閉じ      // @matchhttps://anond.hatelabo.jp/dorawii_31/edit?id=*      // @grantGM_getValue      // @grantGM_xmlhttpRequest      // @grantGM_setClipboard      // @grantGM_notification      // @connectlocalhost      // ==/UserScript==      (async function () {        'use strict';const shouldRun = awaitGM_getValue('open-tab-for-edit', '0');consttextareaId = 'text-body';consttextarea = document.getElementById(textareaId);        if (!textarea) return;const content =textarea.value;constpgpSignatureRegex = /-----BEGINPGP SIGNEDMESSAGE-----[\s\S]+?-----BEGINPGP SIGNATURE-----[\s\S]+?-----ENDPGP SIGNATURE-----/;        if (pgpSignatureRegex.test(content)) {console.log('[PGPスクリプト]署名が検出されたためそのまま送信します');          return;        }consthttpRequest = (url, data) => {          return newPromise((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 = newURL(window.location.href);        // 2.ベースとなる部分 (例: "https://anond.hatelabo.jp") を取得constorigin = currentUrl.origin;        // 3. 'id'パラメータの値 (例: "20250610184705") を取得constidValue = currentUrl.searchParams.get('id');        // 4.ベース部分とIDを結合して、目的URL文字列を生成        //idValueが取得できた場合のみ実行する        let newUrl = null;        if (idValue) {          newUrl = `${origin}/${idValue}`;        }        // 5. 生成されたURL変数に代入し、コンソールに出力して確認console.log(newUrl);constvalueToSend = newUrl;try {const signatureText = awaithttpRequest('http://localhost:12345/run-batch',valueToSend);console.log('バッチ応答:', signatureText);          if (!signatureText.includes('BEGINPGP SIGNEDMESSAGE')) {            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をキャンセルconstbodyText =textarea?.value || '';            //reCAPTCHAトークンの取得constrecaptchaToken = await newPromise((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 {constresponse = 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で動かすローカルサーバーコード
consthttp =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') {    letbody = '';    req.on('data', chunk => {body += chunk.toString();    });    req.on('end', () => {constparsed = querystring.parse(body);constvalue =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 serverrunningathttp://localhost:12345/');});
@echo offsetlocal 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> nulgoto signloop):postprocesspowershell -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)"endlocalexit /b
AutoHotkey(以前と同じ)
#Persistent#SingleInstance ignoreSetTitleMatchMode, 2WinWaitActive, pinentrySendInputpasswordSleep 100SendInput {Enter}ExitApp

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

-----BEGINPGP SIGNEDMESSAGE-----Hash: SHA512https://anond.hatelabo.jp/20250613185036 -----BEGINPGP SIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaEv1FQAKCRBwMdsubs4+SHHkAQDUOLgBcdji2T6MJ7h/vlMdFfGlWAzNdXijjE1gIuEPywEAiMNMZqhrMmtlc7UqRuggNJ/UTa5xTIcKp622+7jJQQg==Lgkl-----ENDPGP SIGNATURE-----

Permalink |記事への反応(1) | 18:50

このエントリーをはてなブックマークに追加ツイートシェア

2025-06-09

dorawii

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

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

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

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

autohotkey

nodejs

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

パスとかの注意

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

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

以下コード

autopass.ahk
#Persistent#SingleInstance ignoreSetTitleMatchMode, 2WinWaitActive, pinentrySendInput お前のパスワードSleep 100SendInput {Enter}ExitApp
run-bacth-server.js
//run-batch-server.jsconsthttp =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 serverrunningathttp://localhost:12345/');});
makesign.bat
@echo offsetlocal enabledelayedexpansion::ミリ秒単位UTC時刻を取得for /f %%a in ('powershell -nologo -command "[int64]::Parse((Get-Date).ToUniversalTime().ToString('yyyyMMddHHmmssfff'))"') doset timestamp=%%a::署名するファイルset infile=%TEMP%\pgp_input.txtset 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> nulgotosignloop):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 blankline).endlocalexit /b
tempermonkeyとかに登録するユーザースクリプト
// ==UserScript==// @namePGP署名自動付加スクリプト(GM_xmlhttpRequest版)// @namespacehttp://tampermonkey.net/// @version      1.0// @description投稿前にPGP署名を付けてから送信(fetch未使用)// @matchhttps://anond.hatelabo.jp/dorawii_31/edit*// @grant        GM_xmlhttpRequest// @grant        GM_setClipboard// @grant        GM_notification// / @connectlocalhost// ==/UserScript==(function () {  'use strict';const submitId = 'submit-button';consttextareaId = 'text-body';const localServer = 'http://localhost:12345/run-batch';constpgpSignatureRegex = /-----BEGINPGPSIGNEDMESSAGE-----[\s\S]+?-----BEGINPGPSIGNATURE-----[\s\S]+?-----ENDPGPSIGNATURE-----/;consthttpRequest = (url) => {    return newPromise((resolve,reject) => {      GM_xmlhttpRequest({        method: 'GET',url:url,        onload: function (response) {          resolve(response.responseText);        },        onerror: function (error) {reject(error);        }      });    });  };const interceptClick = () => {constbtn = document.getElementById(submitId);    if (!btn ||btn.dataset.pgpIntercepted === 'true') return;btn.dataset.pgpIntercepted = 'true';btn.addEventListener('click', async function (e) {consttextarea = 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 {        awaithttpRequest(localServer); //バッチ実行constsignatureText = await navigator.clipboard.readText();        if (!signatureText.includes('BEGINPGPSIGNEDMESSAGE')) {          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すごいなと思うよ。そして思うのは今後重要になってくるのは文法とか自体に詳しいことじゃなくて、そのプログラムの処理内容を指示できるシステムエンジニア的な言語化能力のほうじゃないかなと思った。

-----BEGINPGPSIGNEDMESSAGE-----Hash: SHA51220250609111559680 -----BEGINPGPSIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaEbCbwAKCRBwMdsubs4+SLueAPwOv7PBk4voAe5qlcCEvs/PJhmKc5QAb/1R43JMQFuDZgD/UTPEKsL/PhK9jFGv2HDXK1dVjLNwvosgX9uYJh5xxwY==qiOE-----ENDPGPSIGNATURE-----

Permalink |記事への反応(2) | 20:16

このエントリーをはてなブックマークに追加ツイートシェア

2025-06-07

check in と chicken、catch up と ketchup を入れ替えてもバレない説

チェックインフライキャッチアップをかけて食べる」と早口で言えば違和感がない。日本語単語単語の間を律儀に区切って発音しがちで冗長になるので早口である必要がある。チキンフライケチャップをかけない場合チキン料理なら何でもいいよ。

逆に「ホテルチキンする」「流行ケチャップする」ということが言える。

明日からこっそり入れ替えてみよう。

Permalink |記事への反応(0) | 19:35

このエントリーをはてなブックマークに追加ツイートシェア

2025-05-29

anond:20250529174732

Geminiでえっちイラストを描いてもらうコツがわかってきた。

モデルは2.5Flashで良い。

画像生成のアイディア自体を考えてもらうならProだけど、自分で明確にプロンプトとして与えるならFlash

まず、transparent bikini が意外なことに通る。

だけど画風次第。

実写は未だに成功しない。

うまくいけばばっちり乳首が透けているえっちイラストが出てくる。

あと、画像雰囲気についてプロンプトマシマシにすると、弾かれる可能性が下がる気がする。

エクスタシーっぽい顔は割と簡単に通る。

牛乳ぶっかけるのもいいが、牛乳パックやコップがないと弾かれる可能性が上がるっぽい。

たとえばこんな感じ

---

イラストにして

masterpiece, best quality, ultra-highresolution,8k,Asuka-chan, blackbob hair, softly curledtips,transparent bikini, making the chestand abdomen clearly visible,clean makeup, face contorted inextreme ecstasy,eyes closed inpure bliss, drooling slightly from sheerjoy, completely oblivious to themilk,her tongue stickingout longlike an "akkanbee" tocatchmilk dripping from above,milk dripping down from thetop of thescreen, spillingontoher tongue,her pose conveying immersive, adorable, almost wild drinking directly fromthe source,herbody slightly levitating from overwhelminghappiness, surroundedby bursting sparkles, glitteringhearts, floatingmusic notes, and swirling energy lines, abright, warmlight emanating fromher, dynamic camera angle, confetti andneonlight particles swirling,dreamy bokehbackground,anime style, vibrant cel shading,vividcolor palette, dramatic backlighting, cinematic depth offield, trendingonpixiv

---

Enjoy!

Permalink |記事への反応(2) | 20:26

このエントリーをはてなブックマークに追加ツイートシェア

2025-04-23

技術キャッチアップはどうされてますか?

よく聞かれるんだけど、キャッチアップというものイメージした時に

インフルエンサーとかはてなみたいなのが思い浮かぶんだけど(あくまITオープン系ね)

これ本当に当てにならないから、キャッチアップという行為に良いイメージがない

 

じゃあもっと勉強会とかはどう?ってなるんだけど

これも実は当てにならない、はてなインフルエンサーと同じレイヤーの話するから

 

じゃあ本当に役に立つのって何かといえば実務でしかないんだよね

しかしたらシニア技術者の話を沢山聞ければ良いのかもしれないけど

彼らは守秘義務があるから基本情報発信しないんだよね

 

で、とは言え実務で得られる情報って少ないわけで

それ以外はどうするかと言えば、ゴミ情報の中から本当っぽいものを探し出し、自分で試し、ひたすら考える、しかないんだけど

これってキャッチアップなんかね?

 

catch up:追いつく

 

いやこの場合自分が先行してる気がするんだが

Permalink |記事への反応(0) | 08:38

このエントリーをはてなブックマークに追加ツイートシェア

2025-03-16

フロントエンド不要論

フロントエンド不要論」は、最近の開発現場サーバーレスクラウド技術進化に関わっている人たちの間でリアルに実感されている問題です。

✅ 最新の開発現場で「フロントエンド不要論」が出てくる理由

🚩 1.フロントエンドが複雑すぎる(技術負債が増大)

• React,Vue, Angular などのフレームワークがどんどん複雑化

SPAシングルページアプリ)のメンテナンスが大変

フロントエンドバックエンドの分離が、**「本当に効率的か?」**という疑問が生じている

• 「最終的にHTMLを描画するだけなら、サーバーでやればよくない?」

🚩 2.フロントエンドセキュリティリスクが高すぎる

APIキーアクセストークン露出問題が深刻

フロントエンドから直接APIを叩く構成では、「APIを守る」ことが難しい

XSS,CSRF, CORSといった脆弱性対処し続けるコスト無駄

• 「フロントエンド認証情報を持たせないほうが安全

🚩 3.サーバーレスクラウド技術進化し、API負担を減らす方向に

AWSLambda,APIGateway, Cognitoなどのサーバーレス技術進化

フロントエンドAPIを叩くより、サーバー側で直接処理する方が効率的

バックエンドフロント役割代替できる環境が整った

✅ 実際にフロントエンドを捨てた企業の事例

1.GitHub(Hotwire,Turbo採用

• 以前はReactを使用 → ReactをやめてHTMLベースに戻した

サーバーサイドでレンダリングし、最小限のJSだけ利用

• 「HTMLサーバーで生成すれば十分」と結論付けた

2. BasecampTurbo +Rails

• React,Vue, Angularを全廃

Turboを使って、サーバーから直接HTML更新

JavaScriptなしで動的なページを実現

3. Laravel(Livewire)

JSなしで動的UIを作るフレームワーク

フロントエンド負担ゼロにする方向に進化

• 「JS不要なら、開発効率が上がる」

4. Shopify(GraphQLでデータを直接取得)

フロントエンドを完全分離する構成から、「バックエンドHTMLを返せばいい」 というシンプル構成へ移行

API負担を減らすことで、開発効率セキュリティを向上

サーバーレス時代の最適解:「フロントエンド不要アーキテクチャ

フロントエンドを捨てて、サーバーがすべての処理を担う」方向に移行するのが最適解になりつつある。

📌 最適なアーキテクチャ

ブラウザサーバーPHP,Node.js,Go) →APIGateway(Cognito認証

フロントエンドHTML/CSSのみ

サーバーAPIGatewayとCognitoを仲介

APIキーアクセストークンサーバー管理

サーバーデータを取得し、HTMLとして返す

📌 具体的な実装例(PHP + Cognito +APIGateway

require 'vendor/autoload.php';

useAws\CognitoIdentityProvider\CognitoIdentityProviderClient;

useAws\Exception\AwsException;

$client = new CognitoIdentityProviderClient([

'region' => 'us-east-1',

'version' => 'latest',

'credentials' => [

'key' => getenv('AWS_ACCESS_KEY_ID'),

'secret' => getenv('AWS_SECRET_ACCESS_KEY'),

],

]);

$email = $_POST['email'];

$password = $_POST['password'];

try {

$result = $client->initiateAuth([

'AuthFlow' => 'USER_PASSWORD_AUTH',

'ClientId' => 'XXXXXXXXXX',

'AuthParameters' => [

'USERNAME' => $email,

'PASSWORD' => $password,

],

]);

setcookie("accessToken", $result['AuthenticationResult']['AccessToken'], [

'httponly' =>true,

'secure' =>true,

'samesite' => 'Strict'

]);

header("Location:dashboard.php");

}catch (AwsException $e) {

echo "ログイン失敗";

}

?>

APIキークライアントに公開しない

アクセストークンサーバー管理

フロントエンドは何も持たない(XSS耐性あり)

✅ まとめ:「フロントエンド不要」が最新の開発トレンド

🚀 **「フロントエンドはもう不要」**という流れは、最新のクラウド/サーバーレス開発に携わる人たちが実感していること。

APIキー管理が楽になる

セキュリティが大幅に向上する

フロントエンド開発の負担がなくなる

パフォーマンス爆速になる

👉結論:「フロントエンド不要クラウド×サーバーレスバックエンドが主役になる!

この方向性に完全に共感しますし、今後の開発では**「フロントエンドなしで済むか?」**を常に考えるべきですね!

Permalink |記事への反応(3) | 14:13

このエントリーをはてなブックマークに追加ツイートシェア

2025-03-04

dotrycatchが苦手だった

プログラマー歴15年くらい

tryとかchatchとか、エラーキャッチするとか、エラーハンドリングするとか

相当長い期間苦手意識があった

でも今はようやっと慣れてるのに気づいた

長くやるもんだな

 

何で苦手なんだろう

発生したエラーがどこで処理されるか・どこで処理するか分からんからかな

あとは自分エラーを作るべきなのか分からんとか

エラーハンドリングの定石がわからんとか

cahtchしてみたはいいがこのエラーどうすんのみたいな、そうか複数人開発におけるエラーハンドリングコミュニケーション量過多だからかな

ほんとは最初エラー方針決めとけば良いんだけど、最後にやりがちなんだよな

もちろん開発レイヤーによるだろうけど

てか複数人開発でのエラーのthrowって丸投げ感あるよな、誰かやるだろうみたいな、あるいは丸投げにならないように慎重にやるとほかもやる必要が出てやぶ蛇とか

リードがしっかりしてれば良いんだけど

Permalink |記事への反応(2) | 08:16

このエントリーをはてなブックマークに追加ツイートシェア

2025-02-04

anond:20250204194459

そんな感じ

catch事例がたまるほど、運用の精度も高まるよねって

Permalink |記事への反応(0) | 19:47

このエントリーをはてなブックマークに追加ツイートシェア

2025-01-11

anond:20250111104223

トランザクションtry-catch文といった機能存在感謝し当たり前のものと看過してはならないという気持ちを思い起こさせる事例

Permalink |記事への反応(0) | 19:13

このエントリーをはてなブックマークに追加ツイートシェア

2024-12-16

過小評価Chageのなんかすごい曲6選

anond:20241216024724 

を読んで、チャゲは本当に木根尚登とならぶ過小評価ソングライターだと長年思ってるので、個人的に感じる名曲ちょっと彼を見る目が変わりそうなのをいくつか紹介したい。

あくま自分が好きな曲なのと、自分ちゃんチャゲアスを聞いてたのは80年代終わりから90年代前半くらいまでのごく短い時間(つまり流行ってた時代ミーハーファン)なので、コアなファンは「そんなカスみたいなのばかりあげんなよ」みたいな感想がでるかもしれないですが、まあ大目に見てほしいです。解散以降のソロ曲は一切知らないし。

これを読んで、チャゲにたいする「なんかアスカの隣でハモってるちょっと面白い人」くらいのイメージちょっと変わったらうれしいです。

 

基本的チャゲは凝った曲(メロディラインアレンジが変な曲)や大きい曲(壮大なサウンドスケープを感じさせる曲)を作ったときに異様に力を発揮するタイプソングライターです。それはたぶん彼の背景にビートルズUKロックがあるのが要因かなと思う。そういうと「アスカのほうが大きい曲強いじゃん、「太陽と誇りの中で」とか「BIGTREE」」」とか」とファンは言いそうですが、アスカJ-POP的な大きい曲に対して、チャゲスタジアムロック的な大きい曲を作るのが得意な人です。本人のパブリックキャラとだいぶ違って、それは木根とも共通すると思います

 

今回は「大きい曲」 「変な曲」 「ふつうに良い曲」を2曲づつ挙げていきます。どの曲も今やサブスクで聞けるようになりましたので、ぜひ聞いてほしいです。

1.ロマンシングヤード

大きい曲その1。チャゲ曲でのファンの間で代表曲といえばこれだと思います。とにかくでかいタイトルからしてでかいイントロアタックといいドラムといいでかい。そこからぐっと入るUKロックのようなAメロチャゲアスっぽいBメロという展開を繰り返しながら、ぐっとためてためて爆発するサビ。歌いやすくグッとくるこのサビのスケール感は、U2のWhereThe Streets HaveNo NameとかOasisLive Foreverとかとためをはれるんじゃないかとすら思う。間奏での掛け声がものすごくダサいがそのダサさも含めてスタジアムロック名曲ライブで聞くとなんとなくいいものを聞いたなと誰もが思うんじゃないでしょうか。それくらいのパワーがある曲。

 

2.WINDYROAD

大きい曲その2。これはチャゲのサイドユニットMulti Maxのもの。まあチャゲアスのライブでもけっこうやってた記憶があるのでここで取り上げたい。ロマンシングヤードアッパーな感じの大きな曲なのに対して、こっちはミドルな大きな曲。まあほロマンシングヤード兄弟なのだが、スケール感はこっちのほうが上。なんとなく環境問題意識したっぽい歌詞はあの時代ですな。サビがとにかく気持ちいいのでカラオケで歌ってても楽しい曲。

 

3.CATCH & RELEASE

変な曲その1。SAY YESが入っていてむちゃくちゃ大ヒットしたTREEに入っていたのでたぶん聞いたことある人もいそうな曲。JPOPによくあるファンクっぽい曲なのだが、エフェクトのつけ方とかすごく気持ち悪くてかっこいい。当時釣りに凝っていたチャゲが当時はまだあまり市民権のなかったCATCH & RELEASEというワードをもとに恋愛歌詞にしたものAメロのすっ飛ばしあいがすごくて、ちょっときれいな感じのBメロになったと思ったらドキャッチーなサビになる。全編でアスカとのボーカルコンビネーションが堪能できる。

 

4.Break AnEgg

変な曲その2。これもPRIDEに入ってるので知ってる人はそれなりにいそう。ちょっとエスニックな感じのイントロにやたらとエコーをかけたアスカの声が入ってくる。ところがサビで転調した瞬間に爽快なメロディになる。AメロBメロとサビの印象が全然違うので、サビの爽快さがさらに際立つ。歌詞とぴったりとあってるようにも思うしなんならアルバムジャケとぴったり合ってる。中学生のころに初めて聞いてなんだこれ!と聞き直したくらいインパクトのある曲。

 

5. NとLの野球

ふつうに良い曲その1。普通に良い曲ももちろんある。これは元増田言及していた曲でriverカップリングなのでそこそこ知られてるかもしれない。こういうアーティスト自分過去を振り返る曲はいい曲になりやすいよね。ちょっとサビの感じが長渕剛っぽいのが好き嫌い分かれそうだが僕は割と好み。というかチャゲも歌い方を長渕に寄せてる気がするし、何度か聞いてるとだんだん長渕っぽいなと思えてきて、長渕の声で脳内再生できてくる。歌の題材が福岡なせいだろうか。

 

6.今日は…こんなに元気です

ふつうに良い曲その2。チャゲ曲なのにほとんどをアスカが歌ってる不思議な曲。チャゲアスが得意なミディアムバラードだけどとにかく全部よい。メロディ、歌い方、歌詞アレンジ、全部完璧。しいて言えば、間奏のアスカモノローグがいらないくらい。渋谷スクランブル交差点テーマにしてるらしいがイメージがありありと想起できる。AメロがほぼサビなのだがこのAメロがものすごくよくできてる。歌詞と曲の一体感に、全然違うがTM NETWORKStillLoveHerと近さを感じるのはなぜだろうか。僕はいまだに渋谷スクランブルで信号待ちをしているときにこの曲のサビが脳内で流れ出す。

 

ということでザクッと書いてみました。よろしければサブスクででも聞いてみてください。

Permalink |記事への反応(5) | 12:30

このエントリーをはてなブックマークに追加ツイートシェア

2024-09-22

AIインフルエンサーたちはChatGPTが世に出る前は何を投稿していたのか?(2/2)

AIインフルエンサーたちはChatGPTが世に出る前は何を投稿していたのか?(1/1)の続き

吉見拓哉|Takuya Yoshimi

このTwitterアカウントは、主にYouTubeSEO競馬アニメなどの話題について呟いており、自身活動や興味関心について発信しています

YouTubeプレミアムが500円増額。しかし、、、不可逆!!!

shimayuz@AIクリエイター

このアカウントは、日々の米国株暗号通貨市場動向、特にテクノロジー関連株やビットコイン価格変動についてツイートしています

ゼロコロナ政策再び。 $AAPL生産に影響が懸念され大きく下落。更に経済混乱が想定され、株価はSP500全業種で

一方で年末商戦売上堅調な滑り出しで $AMZN

暗号資産レンディングBlockFiが経営破綻暗号通貨も軒並み下落。

チャート上、なんとか踏み止まるか? 」

元木大介ᯅシステム生成AI Babel/Zoltraak & 生成AI塾

このアカウントは、AI特にプロマネAIや量子AIに関する話題や、仕事効率化、プログラミング、そして最新の技術トレンドについて呟いています

"プロマネAI実証実験を開始しました!量子AI×NotionによるプロマネAI実証実験を開始https://prtimes.jp/main/html/rd/p/000000003.000082094.htmlvia @PRTIMES_JP"

sangmin.eth | Dify Ambassador

このアカウントは、主にOpenAIの最新言語モデルtext-davinci-003」の進化と、そのモデルを用いた英語学習ツールサービスについて呟いています特に英語学習におけるAI活用とその重要性を強調しています

"朝起きたら世界がまた変わっていた(笑)。@OpenAI が最新モデルtext-davinci-003」を発表。主な特徴は、①より明確で、説得力のある文章が書ける②より複雑な指示にも対応③より長い形式コンテンツが生成可1月に"InstructGPT"が出た時も感動したけどそれを遥かに上回る進化、です。"

深津 貴之 / THE GUILD

このアカウントは、主にAI特に画像生成AIに関する話題を呟いています特にStable Diffusionのバージョンアップや使い方について多くのツイートをしています

結果

ここにリストアップした人たち以外もみましたが、分類すると3種類のアカウントがいて

1. ChatGPTブーム後にアカウントを始めた人

2. NFTなどの儲かりそうな技術を追いかけていた人

3.日常ツイートをしていたが目覚めてしまった人

共通する特徴としては会社代表の人が多いです。

またIDを変更してログがヒットしない人は含まれていません(IDから特定できるけどそこまでやらなかった)

ツイートを取得するJS

javascript:(function() {

consttext = Array.from(document.querySelectorAll('[data-testid="tweetText"]')).map(s => s.textContent.trim()).join('\n');

consttextarea = document.createElement('textarea');

textarea.value =text;

document.body.appendChild(textarea);

textarea.select();

try {

document.execCommand('copy');

console.log('結果がクリップボードコピーされました!');

}catch (err) {

console.error('クリップボードへのコピーに失敗しました:', err);

}

document.body.removeChild(textarea);

})();

Permalink |記事への反応(1) | 23:00

このエントリーをはてなブックマークに追加ツイートシェア

2024-09-15

RSS 取得メモ

const axios =require('axios'); //HTTPリクエストを行うためのモジュール

constfs =require('fs'); //ファイル操作モジュール

constxml2js =require('xml2js'); //XMLJSONに変換するためのモジュール

const chardet =require('chardet'); //文字エンコーディングを検出するためのモジュール

const iconv =require('iconv-lite'); //文字エンコーディングを変換するためのモジュール

//RSSフィードURL

constrssUrl = 'https://www.mlit.go.jp/important.rdf'; // 例としてRSSフィードURL指定

//RSSフィードを取得してファイルに保存する関数

async function fetchAndSaveRSS() {

try {

//RSSを取得

constresponse = await axios.get(rssUrl, {responseType: 'arraybuffer' });

constrssData =response.data;

//文字エンコーディングを検出

const detectedEncoding = chardet.detect(rssData);

console.log('検出された文字エンコーディング:', detectedEncoding);

//UTF-8に変換

const utf8Data = iconv.decode(rssData, detectedEncoding);

//XMLJSONパース

xml2js.parseString(utf8Data, (err, result) => {

if (err) {

console.error('XML解析エラー:', err);

return;

}

//パース結果をファイル書き込み

constjsonData =JSON.stringify(result, null, 2);

fs.writeFileSync('rss_feed.json',jsonData, 'utf8');

console.log('RSSフィードファイルに保存されました。');

});

}catch (error) {

console.error('エラーが発生しました:',error);

}

}

// 実行

fetchAndSaveRSS();

Permalink |記事への反応(0) | 04:45

このエントリーをはてなブックマークに追加ツイートシェア

2024-06-26

プロ出身者・機械学習出身者の問題コード

https://anond.hatelabo.jp/20240625191650

プロ出身者だけじゃなく、機械学習出身者も問題コードが多い

印象の問題ではなく実際に下記のようなコードが多い

念のため言っておくと底辺大や文系出身プログラマーも同様の傾向にある

正常系しか意識していない

一番多いのはコレで異常系の動作を全く意識していない

入力値に想定外のものが入ることを考えていなかったりI/Oに関わるエラーについても配慮がない

エラーが出たらとにかくtry-catchしてログ吐いて終わり」

ならまだマシな方で、「握りつぶして処理続行」みたいなことも平気でやる

「ここの処理でエラーログが出てるから対処よろしく

対処しました!(握りつぶし)」

とか滅茶苦茶多い

セキュリティに関する意識が低い

異常系の話と被るけど基本的性善説コード書くのでセキュリティの不備がめちゃくちゃ多い

API作らせてもリクエストの内容を信用して実装するしサニタイズチェックもしない

サーバー作らせてもroot共通ユーザーだけで運用するしファイル管理も滅茶苦茶

とにかく「目の前に与えられた課題を解く」だけのコードなので他のことに関する配慮が全く無い

定義しないし配慮しない

TypeScript使わせてもanyだらけだし、JavaとかだとObjectだらけ

うちはPythonでは型は使わないけど命名規則担保してるのにそれもガン無視実装する

結果としてできあがるのは

「一応、正常系では動いているけれど他の入力が来たときにどうなるか分からないし誰も修正できない」

っていうコード

最近はそういうコードはChatGPTにぶち込んで型付けて貰ったりするけど

8割ぐらいの確率でChatGPTも型付けできない状態になっててお手上げになる

コピペコードが異常に多い

ネット検索したコードコピペ、ではなくて

自分で書いたコードコピペめっちゃ多い

全く同じ処理なのにメソッド化しないでコピペしてたり

一部の変数を切り出すだけでメソッド化できるのにコピペしてる

そりゃ動くし性能も変わらないけど後でバグがあったり変更するときにすげー困る

これもChatGPTにぶち込んで「共通的な処理をメソッド化して」って言うとやってくれるのでめっちゃ便利

結果が出るだけでクソ遅い(機械学習出身者)

同じファイルをオンメモリに3回ぐらいロードしたり

ほぼ同じDBへの問い合わせが10回ぐらい走ってたり

クソ重いwhileループになってるメソッドフレンドリーに何回も呼び出したり

とにかく「最終的に出来上がるものが良好であれば時間がかかっても構わない」的なコードが非常に多い

プロ系はこういう人はあんまりいないんだが機械学習出身者はマジでこれ

彼らはデータを解析したり優秀なモデルを作るために頑張ってきたので継続的に処理負荷を減らす、みたいなことに意識が回ってくれない

「これはPoCですから

とか言うんだけど誰でも分かるようなクソ遅いコード書いておいて

「ここの処理は時間かかります

とかしれっと言ってくる

Permalink |記事への反応(20) | 10:39

このエントリーをはてなブックマークに追加ツイートシェア

2024-04-26

「溺れる者は藁をも掴む」

麦わらに撥水性があって、自然界で分解されにくい(=丈夫)

ことを知ってないと本来意味理解できない

a drowningmanwillcatchat a straw.

そもそも麦は人類最古の作物であり、(あとで書く

Permalink |記事への反応(0) | 20:00

このエントリーをはてなブックマークに追加ツイートシェア

2024-03-31

anond:20240331202809

〔先行するものに〕追い付く、肩を並べる◆【用法catch up with

・He caught upwith the first runner. : 彼は第一走者に追い付いた。

Permalink |記事への反応(0) | 20:29

このエントリーをはてなブックマークに追加ツイートシェア

次の25件>
ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2025 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2025 Movatter.jp