Movatterモバイル変換


[0]ホーム

URL:


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

「ダイアログ」を含む日記RSS

はてなキーワード:ダイアログとは

次の25件>

2025-09-13

昭和の頃って、インスタント麺の中に入ってるスープとか、かやくの袋ってすごい開封しにくかったんだよ。

いちおう切れ目とか、マジックカットとかそういう感じにはなってはいたんだけど、当時は技術的に稚拙だったから、なかなか素手で切ることが失敗するのが多かった。

でもさ、だからといってインスタント麺に付録としてカッターとかハサミはつけないじゃない?

袋を開けることに失敗するから、ってそれじゃ!ってカッター刃の先っぽみたいなのはつけないでしょ?

それはコスト的な問題とか安全上の問題とか色々とあるけれども、根本的な解決策としてスマートさに欠けるというのが理由だと思う。

で、結局どうなったかって言うと、パッケージ開封技術が向上したんだよ。マジックカットの精度を上げて、手で簡単に切れるようになった。真正から問題解決したってわけ。

お前らが今使ってるスマホでも同じことが起きてる。「文字が小さくて見えない」って問題に対して、虫眼鏡付属品として付けるか?付けないだろ。画面自体を大きくしたり、文字サイズを調整できる機能を搭載したりして、根本から解決する。

ところがIT業界で働いてると、この「カッター付きインスタント麺」みたいな発想をするやつがゴロゴロいるんだよ。

システムが使いにくい」→「マニュアルを厚くしよう」

エラーが多い」→「エラーチェック機能を追加しよう」

「処理が重い」→「サーバーを増やそう」

全部その場しのぎの対症療法だ。根本的にシステム設計を見直すとか、ユーザーインターフェース改善するとか、そういう本質的解決から逃げてる。

特にひどいのが、「ユーザー馬鹿から」って前提で作るシステムだ。確認ダイアログを何回も出したり、警告メッセージを山ほど表示したり。それって結局、カッター付きインスタント麺と同じ発想なんだよ。

昭和インスタントメーカーは偉かった。カッターなんか付けずに、パッケージ技術を改良し続けた。その結果、今の俺たちは何の苦労もなく袋を開けられる。これがイノベーションってもんだ。

でも現代エンジニアは楽をしすぎてる。問題が起きたらとりあえず機能を追加する。設定項目を増やすアラートを出す。それでユーザー負担押し付けて、「解決した」って顔をする。

本当にスマート解決策ってのは、問題のものを消し去ることなんだよ。その努力けが進歩を生むんだよ。

Permalink |記事への反応(3) | 18:56

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

2025-09-08

anond:20250908113048

ありがと window.confirmやwindow.open組み込みダイアログのことらしい

ニコニコ動画でも今だに愛用されてるので気になった

Permalink |記事への反応(0) | 11:33

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

2025-09-05

セキュリティアップデートが原因って言ってたのはなんだったのw

正直これもこじつけに近いな

XPからVistaになったときコピーが遅くなったって喚いていて原因はXPの時はコピー完了する前にダイアログを閉じていたってやつだったけど

Windows11:24H2におけるSSDの損傷問題について、結論&全解明です。FromHDDtoSSD統計スキャンによる測定結果より、原因判明しました。完全にドライブI/Oタイミングが常にずれてい|猫がみる真実

https://note.com/fromhddtossd/n/nd3888c34b108

Permalink |記事への反応(0) | 18:33

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

2025-08-15

そうめんでいい」でブチ切れる人の感情アルゴリズムが、マジで理解不能バグコードなんだよな。

この前ネットスクレイピングしてたらさ、「そうめんでいい」とか「カレーでいい」って発話トリガーしただけで、謎に感情プロセッサオーバーヒートする人間モジュールがいるってデータ拾ってさ。

「これで何様だよ!」って例外スローされるわけ。いやマジで何様もクソもなくね?ただの晩飯インタラクションAPI呼び出しじゃん…。

どこが怒りのエンドポイントなのか、マジで脳内OSデバッグモードで走らせたいレベル

どうやら「そうめんがいい」って出力しろって仕様らしいんだけどさ、それじゃ意味シンタックス全然別物じゃん。

そうめんがいい」って発話は、“絶対そうめん食いたい!他はデリート!”ってコマンドになるけど、「そうめんでいい」ってのは、“特に食べたいデータなし、でも冷蔵庫キャッシュそうめん在庫あるし、それでOK”ってニュアンスじゃん。

それを「軽視された!」とか「テンション下がる!」って勝手パースして例外発生させるの、完全に脳内ファームウェア破損してるだろ。

結局はユーザーインターフェース上でご機嫌取りのためにフェイデータ送信しろってことか?マジでUX悪すぎ。

そんな芝居がかったダイアログファミリーサーバー内で毎日やっててよくメンタルリソース枯渇しないな、こいつら。

俺さ、そもそも食いたいデータ特にいから、クエリ投げられても困るんだよ。

「何でもいい」って返すと怒るんだろ?

そうめんでいい」って返しても怒るんだろ?

じゃあそもそもAPIコールすんなよって話だし、エラー回避のために出力文面最適化とか、人生CPUサイクル無駄遣いすぎる。

こんなどうでもいいことでいちいちクラッシュする感情マイクロサービス家族サーバーにいなくて、マジで助かってるわ、ほんと。

Permalink |記事への反応(3) | 15:17

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

2025-07-22

Archicadゾーン求積設定

ベルダイアログシンボルベルカスタム設定>内容

以下2点を確認

測定面積にチェック

分類とプロパティのチェックをはずす

小数点3位を四捨五入

Permalink |記事への反応(0) | 14:53

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

2025-07-04

2.問題点再現方法

問題点再現方法

下記の通り、公式チュートリアルどおりにdocker compose あるいはdocker-compose を使用して CVAT を起動すると問題再現することができる。

cvat を clone してdocker compose あるいはdocker-compose を使用して必要リソースを全て起動する。

git clonehttps://github.com/opencv/cvat.git

cd cvat

#v2.11.1 相当のバージョンをチェックアウト

git checkout bf4089ead320d8f6a80e0a1793c8406ec46daee8

docker compose up -d

https://xemjujutsukaisen.graphy.com/courses/xemphimjujutsukaisenvietsubfullhd

ブラウザを起動してhttp://localhost:8080アクセスする。

Connecting... の状態で 30秒 待たされる。

30秒後、突然エラーが表示され、ログイン画面が表示されるはずのタイミングで下記のエラーダイアログポップアップしてきてCVATにアクセスできない。なお、表示されるエラーメッセージは無意味ものであり、ログイン画面にアクセスできない原因を一切示唆していない。

エラーメッセージ

Cannotconnect to the server

Make sure the CVAT backendand all necessary services

(Database,Redis andOpen Policy Agent) are runningand available.

Ifyou upgraded fromversion 2.2.0 or earlier,

manual actionsmay be needed, see the Upgrade Guide.

https://xemjujutsukaisen.graphy.com/courses/xemphiminventoryprematuredetahfull

エラーダイアログ

error

3.ストレージ不足問題突破してCVATをローカルで実行する方法

以下のとおりの手順でCVATを起動する。私が本家のCVATリポジトリをForkしてストレージ制限を解除したカスタムCVATを作成してGitHubへコミット済みのもの使用する。

Permalink |記事への反応(0) | 17:21

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

2025-07-02

Windows11メモ帳Notepad)のMarkdown対応は「圧倒的コレじゃない感」


なぜなのか

誰も使っていなかった WordPad がWindows11廃止されたが、実は単純な廃止ではなく “Notepad+WordPad の一本化” で、

メモ帳Notepad) は純テキスト路線を捨て去り、RichEditベースに作り直された。

メモ帳は 「社畜ドザーvi」 と揶揄された頃の、かつての素朴なメモ帳ではなくなった。

これがちょうどAIブームMarkdown が脚光を浴びるタイミング より数年早く、微妙にズレた

今回のMarkdown対応はそのうえにのせた 「オマケトッピング」でしかない

Markdown機能の最悪な設計実装

致命的なのはMarkdown機能におけるステータスバートグル

これは「同じプレーンテキストソースの見た目だけ替えるビュー切替」ではなく、

内部でMarkdown ⇄ RichEdit の双方向コンバータを回す“翻訳(round-trip conversion)”

――つまり変換を毎回実行する設計である

ゆえに、モード切り替え行為破壊的になり得て、

テーブルや複雑なネストを書こうものならトグルを押すたびにマッピング不能 → 警告ダイアログが登場。

(未対応であれば、警告など出さずに単純にプレーンテキストのまま表示すれば良いだけ)

使う側からすると「意味不明」と言わざるを得ない。

コレがゴミでなくて一体何なのか

まとめ

メモ帳Notepad) は WordPad の“穴埋め”として肥大化し、

そこへオマケ程度にMarkdownっぽい機能を付け焼き刃したところ、

AIブームMarkdown が脚光を浴びたタイミングと重なり、期待値に対して失望感が圧倒的

――これが現在Windows11メモ帳Markdown機能が放つ「圧倒的コレじゃない感」だ。

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

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

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-05-23

今すぐChatGPTを更新して再起動しますか?

というウィンドウが出てたので、はいを押したけど、ChatGPTに訊いたら知らんと言ってる。

検索してもYahoo知恵袋だけしか出ない。

ほぇー。

ブラウザダイアログを使ったフィッシングか何かだったのだろうか?

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

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

2025-03-03

原神配信者に対する回避不能荒らし確認される

主に海外圏のユーザーが利用する課金サイトでUID指定課金を代行できるサイトがある。

これを利用して配信者のID宛に最低価格課金を散発的に行うことで、ストーリー中であろうと創世結晶(石)獲得を知らせる全画面モーダルダイアログが出るため、閲覧や操作を妨げることができる。

海外文化圏ではギフトとして配信者に石をプレゼントする意図で行われることもあるようで、有名配信者に突如まとまった石が贈られることはこれまでも見られた。

だが今回確認されたものは明らかに妨害意図のある贈り方で、その日本配信者は困り果てて配信の中断を余儀なくされてしまった。

しかも大型ストーリーイベントの最終日の駆け込み配信だったので悪質で、配信日を改めることもできず残念な事態となった。

もちろん配信していない時も常にこうした妨害は受ける可能性がある。

こうした荒らし行為可能になってしまっているのは原神側の仕様にも問題がある。

・UID指定チャージ拒否する設定がない

・贈答石の場合自動で即時受領されてしまうためにモーダルの表示タイミング制御できない

・仮にメールで手動受領する仕様に変更したとしても散発石爆撃に対してはメール通知音のOFF設定も必要になりそう

・UIDを隠すことが難しい仕様になっている (右下を隠してもEscメニューで見えてしまい、隠す設定もないため、過去配信を漁ればバレる)

・この状況下でUID指定チャージ方法(API?)が第三者の決済業者提供されており公認されている

こうした仕様になっているのは他のHoYoverseタイトルでも同様であり、似たような被害が発生する可能性がある。

解決には運営側が動かないといけないので、ホヨバゲープレイヤー配信を見る/するタイプの人はアンケート時に覚えていたら書いてほしい。

Permalink |記事への反応(1) | 01:57

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

2025-01-23

anond:20250123214430

開いて思ったけど18歳以上ですかのダイアログでるの遅くないか

数秒感画面見れてたんだけど・・・

もしかしてわざとなんだろうか?

真面目な未成年はいを押せないけどリロードを繰り返してちょっとずつ見てるとか

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

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

2024-12-11

ファイルの中身をメモリーにおいていいなら、そこまで難しくはないな。

スクロールやキャレットの画面外の移動の時だけ、レイアウト行を構築すればそれでおしまい

http://s170199.ppp.asahi-net.or.jp/vivi/docs/buffer/edit_buffer.php

ViViエディターの人の記事が書いているような複雑怪奇バッファー管理はいらない。

メモリーを32GBぐらい積んでいれば、ギャップバッファーでも1GB未満の大きさのファイルの読み書きは簡単にできる。

自作エディタでも900MBを12秒ぐらいで読み込むことができた。

(この時のメモリー使用量は2035MB程度)

ただ、この機能実装すると行ジャンプダイアログを出したときに最大行数がわからなくなる。

まともに使いたいなら、ちょっと考え方を変えないと駄目だ。

1GBを超えると何かしらの制限に引っ掛かる。

EmEditorや鈴川エディタ、巨大ファイル対応ログビュアーなど巨大ファイルを扱えるエディターはマジすごい。

最低賃金ウェブプログラマー雑用で、大学受験に落ちた俺にはこれが限界…。

piece_tableとかマジで意味からない。

自作エディターでつかってるgap_vectorもどこかから拾ってきたやつで、スクラッチで書いたわけではない。

こんなことなら、きちんと数学IIICを勉強して情報系の大学に行けるようにするべきだった。

大学に入るためには教科書の基礎問題だけでなく、応用問題みたいな知識の使い方を問う問題まで解けるように努力すべきだったorz

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

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

2024-12-08

アマプラへの導線もどんどんだーくぱたーんが巧妙になってて、素人絶対だまされる感じになってる

カートに移動、をおしたら、まずプライムになるかどうかの画面が表示される時点でevil

んで表示される画面も、プライムになるって選択肢一択しかない部分がモーダルダイアログっぽいデザインになってて、そこおさないと進まないような感じになってる

実際はモーダルじゃなくてほかのところもおせるしそこに会員にならないって選択肢もあるんだけどすげー目立たなくさせてまじでクソだなって思う

会員にならないって選択肢がないようにみせかけてるのが極悪

Permalink |記事への反応(1) | 12:04

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

2024-11-27

クロームデフォルトブラウザにしてくださいねダイアログが出るけど

IEがそういううざいことしてたからおまえもかよという気持ちしかならんわ

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

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

2024-11-15

年末調整が難しすぎる(令和6年度版)

感想

XMLファイルダウンロード

QRコード証明書PDF作成

プリントアウト

ボールペンで記入

スマホ撮影

HEICからJPEGに変換

年末調整システムアップロード

原本経理に提出

この流れなんなん?誰がうれしいの?

【やったこと詳細】

e-Taxログインする

・「通知書等」をクリックする

・「通知書等選択」プルダウンから住宅借入金特別控除証明書」を選択する

・「切替」をクリックする

・表示された表の「令和6年分」あたりをクリックする

・「住宅借入金特別控除証明書一覧へ」をクリックする

住宅借入金特別控除証明書一覧の「確認」をクリックする

・「この「年末調整のための住宅借入金特別控除証明書」を印刷したもの使用できません。」の文言を見つけて絶望する

・「QRコード証明書作成システム」でGoogle検索する

・「QRコード証明書作成システムについて」ページにたどり着く

・「QRコード証明書作成システムを利用する」をクリック

・「環境チェック」モーダルブラウザ欄の「推奨環境外です」の表示に絶望する

Safariで開き直す

Macintoshをご利用の方の「事前準備セットアップ(Macintosh/safari用(dmg形式:約2MB)」をクリックする

ダウンロードフォルダの「cpsMac.dmg」をダブルクリックする

・QRInstall.pkgをダブルクリックする

インストーラーの「続ける」をクリックする

・「インストール」をクリックする

・「アクセス許可要求していますダイアログで「許可」をクリックする

・「Safariブラウザが起動されているため、インストール完了することができませんでした」の表示に絶望する

インストーラーの「閉じる」をクリック

・「ゴミ箱に入れますか?」で「残す」をクリックする(危ないやろこれ)

Safariを終了して再びインストーラーを起動してインストール完了する

・「QRコード証明書作成システムについて」ページを表示する

・「QRコード証明書作成システムを利用する」をクリック

・「環境チェック」モーダルブラウザ欄の△表示を無視する(Safari 18.0は対象外らしい)

・「次へ」をクリックする

e-Taxからダウンロードしておいた「令和6年分住宅借入金特別控除証明書_2024mmdd.xml」をアップロードする

・「読み込み」ボタンクリックする

ファイル読み込み結果ダイアログの「次へ」をクリックする

・「表示・印刷」をクリックする

・帳票イメージの表示ダイアログの「はい」をクリックする

PDF作成完了しましたダイアログの「表示」をクリックする

PDFファイルダウンロードする

PDFファイルプリントアウトする

MoneyForwardクラウド年末調整ログインする

・左メニューの「年末調整」をクリックする

・「5.住宅ローン」をクリックする

・「2年目以降の住宅ローン控除(住宅借入金特別控除)の申告はありますか?」で「はい」を選択し「次へ」をクリックする

・「+住宅ローンを追加」をクリックする

・「直接入力する(自動計算対象外)」を選択して「次へ」をクリックする

・「住宅借入金特別控除区分」で「◯年中居住者・認定住宅(等)用」を選択する

・「特定取得区分」で「記載なし」を選択する

居住開始年月日を入力する

住宅借入金等の金額年末残高)を入力する

・(特定増改築等)住宅借入金特別控除額に入力する値が不明

・アッ、これ(住宅借入金特別控除申告書)、自分計算してボールペンで書かないといかんの?

ボールペンで書いた

・(特定増改築等)住宅借入金特別控除額を入力する

住宅借入金特別控除申告書の上部をスマホ撮影する

住宅借入金特別控除申告書の下部をスマホ撮影する

住宅借入金残高証明書スマホ撮影する

撮影した画像AirDrop転送する

画像アップロードしようとするがHEICなので選択できない

Preview> File> ExportからPNGに変換する

アップロードするが「ファイルサイズは最大5MBです」エラーになる

Preview> File> ExportからJPEGに変換する

アップロード成功する

次回「証券番号がわからない」「保険料控除証明書電子ファイルXMLファイル)取得に1日待たされる」

ぜってぇ見てくれよな!!!

Permalink |記事への反応(13) | 17:48

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

anond:20241115151637

そういうアプリダイアログの開閉みたいな瞬間的にニュッニュッと素早い動きをするUI要素みたいなのを意識すると確かに120fpsは違いが分かるが

ゲームの画面なんて実はそんなに素早い動きをしているもの存在しない

せいぜいシューター系や3Dアクションカメラを大きくマウスで動かす時くらい

カメラを動かしまくってない限りは画面上の物体の動きを追うのに120fpsは必要ない

映像的には厳密にコマ送りすると違うけど、脳が十分補完してくれるから操作上の差はでない

Permalink |記事への反応(0) | 15:22

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

2024-10-13

増田文学勝手添削ストロングゼロを飲んだ』

 2回目。今回はこれ。

https://anond.hatelabo.jp/20171207223625

 まず、間延びしてないし、コンパクトにまとまっててよかったとおもう。ネットのノリをすこし捻って(離れさせて)、普通のよくある文章と混ぜ合わせる。それら二つともよく知られているものから、お互いが邪魔しない。というのがどうやら増田文学スタンダードみたい。だから、考えるのはネットのノリをどうネットの外に持ち出せるかということだけ。それができれば増田文学ぽくできる。

ここから問題点の指摘。

多くの日本人作家がやっているのと同様に、モノローグがうるさすぎる。最初のほうにある辞表あたりで喋りすぎてるとおもう。最後ダイアログから間を置かずに淡々とおわっているので、そっちに合わせるべき。

 おもってることがあるなら、Sさんとのダイアログでそれとなく出したらいい。

以下が書き直したやつ

ーーーーーーー

昨年の冬、十年勤めた会社を辞めた。上司と揉めて、最後辞表を書いた。

しばらく保険で食いつないだあと、近所の倉庫バイトを始めた。そのとき33才。そんな段階はとっくに越えてしまった。おれは学歴コネも才能もないが、別にそれもどうってことはない。

〜中略〜

Sさんプルトップをあけてくれた。

一口飲むと、舌全体に甘美な絶望が広がった。

2026年 冬のことだ。

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

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

2024-10-04

はてブアプリ、繋がる?

はてなブックーマークiOSアプリ、みんな使えてる??

「表示ができません」ってダイアログがでて表示されないんだけど。。。

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

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

2024-10-03

anond:20241003230504

こんなダイアログ絶対余分だわと思いながら、

そのダイアログ発注者利益に直結するから追加せざるを得ないとかね。

そういう話もある。

Permalink |記事への反応(0) | 23:09

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

2024-09-21

anond:20240921221159

Fラン大学就職チャンネルコミュニケーションロボ「ダイアログ」っつー動画に出てくるAIと同じようなレスバばっかりやってるから

GやJやおんの奴ら

Permalink |記事への反応(0) | 22:21

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

2024-06-27

anond:20240626233939

んなことねえよ

エラーが起きたときダイアログ出すのかエラー画面に飛ばすのか普通は決まってるわ

お前の客がクソなだけだろ(俺がまともな客としか仕事したことがないのかもしれんけど)

Permalink |記事への反応(0) | 02:42

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

2024-04-22

anond:20240421152743

⇒★を付ける方のボタンは、早く押しても、長押ししても、ひたすら★が付くだけ。

⇒付けられた★が並んでいる部分は、長押ししなくても、マウスオーバー状態にして暫く待っているだけで、削除しますか?ダイアログが表示される。

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

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

2024-03-13

Mac向けアプリを作っている某アプリ作家さんが、X(Twitter)で

「〝これでいいですか?OK/Cancel〟のようなダイアログを出そうかなあ」

のような事をつぶやいてた。文章はボカしたが、「OK/Cancel」の箇所だけは原文ママ

UIデザインを厳密に考えていたわけではないようで、本当に何気ないつぶやきのようだった。

やはり人間の頭としては「OK / Cancel」の順に並ぶのが自然なんだろうか。

「Cancel /OK」の順ではなく。

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

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

2024-02-24

anond:20240224102616

デザイナーに「顧客会社Windows使ってるんでヨロシク」と伝えておいたのに

ダイアログボタンを 左:No系 | 右:Yes系 にデザインしちゃって

事故がちょいちょい発生してクレーム来て手動でデータ修復したりして

辛い

早い段階でボタンの左右くらい入れ替えてればよかったんだが

さら左右を変えるのも怖くて、誰も言い出せない

本当に辛い

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

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

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

[8]ページ先頭

©2009-2025 Movatter.jp