Movatterモバイル変換


[0]ホーム

URL:


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

「config」を含む日記RSS

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

次の25件>

2025-10-09

関数引数が多すぎるという理由Configクラスを作るのはアンチパターンなの?

いいえ、関数引数が多すぎる(「Too Many Arguments」)問題解決策としてConfigクラス(またはパラメータオブジェクト)を使用すること自体は、一般的アンチパターンとは見なされていません。

しろ、多くの場合で推奨されるプラクティスです。

Configクラスが推奨される理由

関数引数が多すぎる状態は「コード臭い(Code Smell)」の一つとされており、Configクラスなどの単一オブジェクト引数をまとめることは、その問題を軽減するための一般的解決策です。

メリット説明
可読性の向上 長い引数リストコードを読みにくくしますが、関連する引数を一つのオブジェクトにまとめることで、関数シグネチャ定義)が簡潔になり、何を受け取っているのかが明確になります
引数の順序間違いの防止位置引数が多いと、呼び出し側で引数の順番を間違えるリスクが高まりますオブジェクトとして渡せば、プロパティ名でアクセスするため、この種のエラーを防げます
変更容易性の向上 新しい引数必要になった場合関数シグネチャを直接変更する代わりに、Configクラスに新しいプロパティを追加するだけで済みます。これにより、関数の呼び出し元すべてを変更する必要がなくなり、マージの競合も減らせます
引数グループ化・関連付け論理的に関連する引数(例:`name`, `lastname`, `city`, `country` → `Address`オブジェクト)をまとめることで、その意図コンテキストが明確になります

このような引数をまとめるためのオブジェクトは、Data TransferObject (DTO) やParameterObjectとも呼ばれます

潜在的アンチパターンになるケース(注意点)

Configクラス自体問題なのではなく、そのクラス使用方法や、そもそも引数が多いという事実がより深い設計上の問題を示している場合があります

1. 「やりすぎているクラス」の兆候

引数が多い関数は、しばしば単一責任原則(Single Responsibility Principle / SRP)に違反している大きなクラス(Large Class)や長いメソッド(Long Method)の兆候であることがあります

Configクラスを作っても、根本的な問題解決しない:引数クラスにまとめただけで、関数クラスが多くの異なる責任を持ちすぎているという根本的な問題解決しません。

対処法: この場合Configクラス作成する前に、関数が実行している処理をより小さな責任を持つ複数関数クラスに分割することを検討すべきです。

2.Configクラスが膨大すぎる

Configクラス自体が、もはや数十のフィールドを持つ巨大な「すべてを持つクラス」になってしまっている場合、それは設計上の問題です。

対処法: その巨大なConfigクラスフィールドを、論理的なサブグループ(例: `DatabaseConfig`, `NetworkConfig`, `LoggingConfig`など)に分割することを検討します。

3. 不必要な複雑さの追加

引数が数個(例: 2~3個)しかない関数に対して、引数をまとめるためだけにConfigクラス作成すると、不必要オーバーヘッドと複雑さが増すだけで、メリットが薄い場合があります

対処法:Configクラス使用は、引数の数が多すぎて(一般的に5個以上が目安とされることが多い)管理が難しくなった場合限定するのが賢明です。

まとめ

結論として、関数引数が多すぎる問題Configクラス解決するのは、有効設計パターンです。

ただし、その解決策を適用する前に、「なぜこの関数はこんなに多くの情報必要なのか?」と自問し、それがより大きな設計上の問題(SRP違反など)の単なる症状ではないか確認することが、クリーンコードを書く上で最も重要です。

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

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

2025-09-10

dorawii@執筆依頼募集中

固定じゃない。最低一度ログアウトして再ログインしたら変わる。configで固定値つかってつっぱねられたか確認済み。

-----BEGINPGP SIGNEDMESSAGE-----Hash: SHA512https://anond.hatelabo.jp/20250910132433# -----BEGINPGP SIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaMD9hgAKCRBwMdsubs4+SF9SAQDR0Uj7bqKI2VmiCoB/WzYfs26+fx0+EnFsgw9durpg1wEAqbMTC6dvCnKGXqMl8PEMwAW3XcJdrtvaIpFa4TjorwY==wMGA-----ENDPGP SIGNATURE-----

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

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

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-09

Mozilla Firefoxレビュー

Mozilla Firefoxは、プライバシー保護ユーザーカスタマイズ性を重視した高機能ウェブブラウザです。独自レンダリングエンジンを持ち、Google ChromeなどのChromiumブラウザ差別化されています特に拡張機能安全設計や詳細な設定(about:config)によって細部までユーザーが調整可能な点が評価されています。また、非営利財団が開発しているため、商業的な利益に左右されにくいことも信頼の一因となっています

2025年には、Pocketレビュー評価機能統合終了といったサービスの整理を行い、リソースブラウザ本体の開発やAI搭載機能強化に集中させる方針を発表しました。これにより「垂直タブ」や「スマート検索」など新しいユーザー体験改善が期待されています

https://onefile.hatenablog.com/entry/2025/08/06/000600

https://ja.taiwebs.com/windows/download-firefox-quantum-501.html

セキュリティ面でも最新バージョン(139.0.4)で重大な脆弱性を速やかに修正し、高い安全性を維持しています利用者から拡張機能豊富さと独立性を評価する声が多く、特にプライバシーを重視するユーザーに支持されています 。その一方で、近年はChromeシェアを奪われているものの、多様なブラウザ環境を守るための重要存在としての役割も注目されています

Permalink |記事への反応(0) | 01:07

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

2025-08-06

Mozilla Firefoxレビュー

Mozilla Firefoxは、プライバシー保護ユーザーカスタマイズ性を重視した高機能ウェブブラウザです。独自レンダリングエンジンを持ち、Google ChromeなどのChromiumブラウザ差別化されています特に拡張機能安全設計や詳細な設定(about:config)によって細部までユーザーが調整可能な点が評価されています。また、非営利財団が開発しているため、商業的な利益に左右されにくいことも信頼の一因となっています

2025年には、Pocketレビュー評価機能統合終了といったサービスの整理を行い、リソースブラウザ本体の開発やAI搭載機能強化に集中させる方針を発表しました。これにより「垂直タブ」や「スマート検索」など新しいユーザー体験改善が期待されています

https://onefile.hatenablog.com/entry/2025/08/06/000600

https://ja.taiwebs.com/windows/download-firefox-quantum-501.html

セキュリティ面でも最新バージョン(139.0.4)で重大な脆弱性を速やかに修正し、高い安全性を維持しています利用者から拡張機能豊富さと独立性を評価する声が多く、特にプライバシーを重視するユーザーに支持されています 。その一方で、近年はChromeシェアを奪われているものの、多様なブラウザ環境を守るための重要存在としての役割も注目されています

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

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

2025-07-24

LLMとTypescriptって実は相性悪いよねって話

今時点の使えそうな Sonnet4 を使ってコード生成とか業務でやる時にTypescript は案外うまくいかないことが多い。

UIとかシンプルものであれば結構うまくいくけど、graphql,prisma みたいなところになると、token数すごくなるし結局完成しない。

この辺りが、なんとも小骨がひっかかるからTypescriptの型ってやっぱりあれなのかと思って調べてもらったんだ。

↓↓↓↓↓↓↓

##ソフトウェア工学から見たTypeScriptの3つの根本課題

Web上の専門的な議論論文では、TypeScript課題は主に以下の3点に集約されます。これらはすべて、JavaScriptという土台との不適合性に起因するものです。

1. 不健全な型システム (Unsound Type System)

ソフトウェア工学において、型システムの**「健全性(Soundness)」**とは、「コンパイル時に型エラーがなかったプログラムは、実行時に型エラーを起こさない」という保証を指します。

TypeScriptは、この健全性を意図的放棄しています

設計目標の不在:TypeScript公式ドキュメントには「健全であること」は設計目標ではないと明記されています。これは、JavaScriptとの互換性や開発者利便性を優先した、根本的なトレードオフです。

具体的な不健全さ:

配列の扱い:string 型の変数に (string |number) 型の配列を代入できてしまうなど、配列の扱いに不健全な部分があります。これが原因で、実行時に数値を取り出してしまい、string型のメソッドを呼び出してエラーになる、といったことが起こり得ます

any型と型アサーション:any型の存在や、開発者コンパイラに「これはこの型で間違いない」と強制する型アサーションas構文)は、健全性を根本から破壊する「抜け道」です。

関数引数(Bivariance):関数引数の型チェックが、他の多くの言語(反変)とは異なり、より緩いルール(双変)になっています。これも実用性を優先した結果、理論的な正しさを犠牲にしている例です。

学術的な観点では、この「不健全さ」はTypeScriptの型システムが持つ最大の弱点と見なされています

2.構造的部分型(Structural Typing)の罠

TypeScriptは、クラス名などによらず「構造が同じなら同じ型」とみなす構造的部分型を採用しています。これはダックタピングが主流のJavaScript文化に合わせた賢い選択ですが、ソフトウェア工学的にはいくつかの罠があります

意図しない互換性: 全く異なる目的で作られた二つのオブジェクトが、偶然同じ構造を持っていたために、型チェックをパスしてしまうことがあります。これにより、ドメイン業務領域)の意図とは無関係コードが結合してしまい、予期せぬバグを生む原因となります

過剰なプロパティの許容:constconfig: { port:number } = { port: 8080, host: 'localhost' }; のように、変数経由で代入すると、型に定義されていない余分なプロパティ(host)がエラーになりません。これは仕様ですが、開発者意図しないデータが紛れ込むことを許容してしまい、セキュリティバグリスクに繋がります

これは「TypeScriptの型は、データの『形状』を記述するが、その『意味』や『文脈』を保証しない」という根本的な限界を示しています

3. 「漏れのある抽象化(Leaky Abstraction)」としての本質

Joel Spolskyが提唱した「漏れのある抽象化法則」に倣えば、TypeScriptはまさにその典型例です。

TypeScriptは「静的型付け」という抽象化レイヤー提供しますが、開発者は常にその下にあるJavaScriptの泥臭い現実(undefined, null, thisの挙動など)を意識し続けなければなりません。

抽象化の不徹底: 型を書いているときも、最終的にそれがundefinedになりうることや、thisが何を指すかを常に考えなければなりません。抽象化レイヤーが、下位レイヤーの詳細を隠蔽しきれていないのです。

摩擦コスト: この「漏れ」が、これまで議論してきた「Union地獄」や「境界での型変換の手間」といった、開発上の継続的な摩擦コストを生み出しています

##結論

ソフトウェア工学的な観点から見ると、Web上の専門家議論は我々の対話結論を強く裏付けています

TypeScript課題は、個別機能の優劣ではなく、「健全性を犠牲にしてでも、JavaScriptという動的な土台との互換性を最優先した」という、その成り立ちそのものにあります。その結果として生じる「不健全さ」「構造的部分型の罠」「漏れのある抽象化」といった問題は、この言語を使い続ける限り、アーキテクトが向き合い続けなければならない、本質的なトレードオフなのです。

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

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

2025-05-15

PS VitaのEnsoインストール詰んだ人へ(2025年版 HENloによるCFW導入メモ

VitaCFWを導入するにあたり、情報が散乱していたのでまとめる

<なぜ情報が散乱しているか

2022年末に革新的進歩があり、VITA単体でCFW導入できるようになった(通称 HENlo)

・にも関わらず古いCFW導入方法を案内しているブログが大量にある

しかタイトルの"20XX年最新"だけ更新し続けているから、最新記事に見える

PC使用が前提になっているブログは全部古いので無視した方が良いです。

<どんな情報採用すべきか>

・『HENlo』について触れている

PC使用が前提になっていない

この2つが押さえられてれば最新情報です。(2025年5月現在

ただし、現状だと実は『PC操作が一部必要』という罠があります

その問題について書いている記事が見当たらないので、ここに残しておきます

超具体的には

「HENkaku、VitaDeploy、VitaShellは導入できた」

「けどEnso導入ができない/つまづいている」  エラー:failed togetfwversion please disableallthe plugins andtryagain

というタイミングの人に一番役に立つはずです

5chでもRedditでも

プラグイン無効しろ』『0syscall6を無効しろ』って書いてあったのですが、実はEnsoのバージョン変えれば解決します。(後述)

CFW導入まで

この記事が役に立ちました

[Vita]2023年最新手順【HENlo】3.65-3.74PC不要CFW(HENkaku)導入

https://re-doing.com/vita-henlo-hack/

(一応魚拓https://web.archive.org/web/20250226111105/https://re-doing.com/vita-henlo-hack/

上記記事を読めば

・HENkaku (カスタムファームウェア 3.65 変革 -2)

VitaDeploy

VitaShell

について理解しつつインストールできると思います

記事の補足

・新型PSVitaPCH-2000)でも問題ない

・最悪文鎮化する可能性があるのでセーブデータバックアップを取ったほうが良い

VITAセーブデータ特殊で、PCと繋ぐだけでは取り出せない

バックアップはいくつか方法があるが、PCコンテンツ管理アシスタントは既に使えないと思ったほうが良い。PS Plusのクラウドバックアップが最も良いはず

記事の内容を実施する前にバックアップ取るのを強くおすすめする


Enso導入 ※本題※

EnsoとはCFWを安定化させるために必要ものです。

これをインストールすることで、電源を切ってからCFW状態を維持できます

VitaDeploy内のApp downloaderメニューからEnsoをインストールできますが、実はこのバージョンが古いです。※重要

そのためVitaDeployからインストールすると先程のエラー(failed togetfwversion please disableallthe plugins andtryagain)が必ず出ます

PC不要になった」と書いてあったので盲点ですが、ここからPC必要です。

正しい方法は以下です

① Ensoインストール

1,PC操作GithubからEnso最新版のenso.vpkファイルダウンロード現在v1.1)

https://github.com/TheOfficialFloW/enso/releases

2,PCVitaUSBケーブルで繋げる ※データ転送対応ケーブルを使うこと。相性もある

3,Vita操作VitaShellを起動する

4,Vita操作SELECTボタンを押す

5,PC操作USBドライブとしてVITAデータが表示されるので、ダウンロードしていたenso.vpkファイルを置く(フォルダはどこでもOK自分ルート直下に置きました)

6,Vita操作:✕ボタンを押してCancelする

7,Vita操作VitaShellでenso.vpkを見つける(さっきルートに置いたなら恐らくux0:にある)

8.Vita操作:enso.vpk上で◯ボタン

9.Vita操作:Doyou want toinstall this package? → ◯ボタン

10.Vita操作:~~~ Wouldyoulike tocontinue theinstall? ※意訳:「失敗したら文鎮化するけど自己責任だけど続ける?」 → ◯ボタン 

11. 進行バーが消えたらインストール完了 ホーム画面に戻ってOK

12.Vita操作ホーム画面にEnsoが追加されている

② Enso実行 ※全てVITA操作

Ensoはファームウェアが3.60か3.65じゃないとインストールできないです。(3.65 変革 -2は3.65扱い)

先程の記事の通り進めていたら3.65 変革 -2 になっているはずですが、実行前に再確認して下さい。

1, ~~~ PressCIRCLE toaccept these terms orany otherkey to notaccept. → ◯ボタンを押す(=CIRCLE

2, Options:

  CROSS   Install /reinstall thehack.

  TRIANGLE  Uninstall thehack.

  SQUARE  Fix bootconfiguration (choose this if taiHEN isn't loadingon boot).

  CIRCLE   Exit without doinganything.

  → ✕ボタンを押す(=CROSS

3-a,問題がない場合

Locking sustem ..

(中略)

Theinstallationwas completed successfully.

suocess.

Pressanykey toreboot.

 →何かボタンを押すと再起動される(Enso導入完了

3-b,問題がある場合 ※自分はこっちでした。Quick 3.65の副作用かも※

MBRwas detected butinstllation checksum dose notmatch.

Adumpwas createdat ux0:data/blocks.bin.

Press X tocontinue,any othekey toexit.

意訳:「ちょい待った。思ってた構成じゃないから危ないかもしれんわ。続ける?」

 →✕ボタンを押す ※結局原因分かってないので自己責任でお願いします※

4,Locking sustem ..

(中略)

Theinstallationwas completed successfully.

suocess.

Pressanykey toreboot.

 →何かボタンを押すと再起動される(Enso導入完了

<Enso導入の確認方法

Enso導入が成功していると

本体起動時にEnsoのロゴが表示される

ファームウェアが3.65 変革 -2のままなっている

お疲れ様でした。

記事の本題は以上です。


雑談VITAセーブデータは未だ檻の中

VITAセーブデータ暗号化されており、吸い出せてもエミュレータで使えないらしい。本体機体とセットで揃わないと使えない仕様

調べたらセーブデータをここまでキツく縛ってるハードは他にない

からメモリーカードデータ管理でもPSPのセーブデータしか項目がなかったのか…

不便すぎる


失敗の備忘録1:VitaDeploy版のEnsoで苦戦していた時に取った行動メモ

当時の仮説

・HENkaku設定が悪さをしているのではないかPSNの偽装有効化、バージョン偽装有効化) →オフにしたが関係なかった

本体にSD2VITAを刺しているのが良くないのではないか →抜いたが関係なかった

・enso.vpkの置き場所ルート(ux0:)が良くなかったのではないか →関係なかった

VITAメモリーカードを刺しているのが良くないのではないか →関係なかったが、データ保護的には抜くのが良さそう

ゴミデータが残っていて悪さしているのではないか(手順を間違えたデータや古いデータなど) →関係ある可能性はある。最後までわから

・Ensoのバージョンが古いのではないか →これが主要因だった


失敗の備忘録2:vita starting taiHENframework対処

ゴミデータを疑った自分正規ファームウェアに戻して、CFW化をやり直したりもした。

その際HENkakuすら入れられなくなってしまったので、抜け方を書いておく。

行った手順:脱CFWからHENkaku再導入時のエラーまで

ENSO実行

~~~ PressCIRCLE toaccept these terms orany otherkey to notaccept. → ◯ボタンを押す(=CIRCLE

Options:

  CROSS   Install /reinstall thehack.

  TRIANGLE  Uninstall thehack.

  SQUARE  Fix bootconfiguration (choose this if taiHEN isn't loadingon boot).

  CIRCLE   Exit without doinganything.

  → △ボタンを押す(=TRIANGLE Uninstall thehack.)

公式ファームウェア3.65に戻る

強制再起動される

ファームウェアアップデートが促され、アップデートしないとメモリースティックが使えない

公式ファームウェア3.74にアップデート

HENloのブラウザアクセスからやり直す

HENloメニュー

Install HENkaku

InstallVitaDeploy

reset taitanconfig

Exit

のうち、Install henkakuを選択

インストールは上手くが、Exitができない。

「Eiting in 3」 の後に、以下のエラーメッセージがでて固まってしま

エラー内容(うろ覚え

vita starting taihenframework

Ifyou are stuckon thisscreen, hold downthe power button untilyourVita turns off, then turnit backon.

原因:恐らく余計なデータと衝突を起こしてる

解決法:reset taitanconfigを先に実行する

(さっきのエラーメッセージ画面で)

電源ボタン10秒長押し

セーフモードが起動する

本体再起動するを選択

HENloのブラウザアクセス

HENloメニュー

Install HENkaku

InstallVitaDeploy

reset taitanconfig

Exit

のうち、reset taitanconfig選択

その後

Install HENkaku、InstallVitaDeployを選択して、Exit選択

追記)より網羅的な補足

この記事を書き終えた後に見つけたのですが、以下の記事の『改造方法』というところに情報がかなりまとまっています

Vita バージョンが低くてもPSNにサインイン&PSストアにアクセス(エラーNW-8942-3回避)&機器認証する方法(2025最新)

https://yyoossk.blogspot.com/2024/10/vitapsnps2024.html

感想

今回VITAセーブデータバックアップが主目的だったから、徒労でしかなかった

せめてこの記事が誰かの時間節約することを願う

指摘、補足、最新情報あれば反応もらえるとありがたいです

Permalink |記事への反応(4) | 03:36

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

2025-05-11

FirefoxサイドバーAIチャットボットを使って翻訳する

サイドバーにChatGPTのようなAIサービスが出せるようになった(自分環境では最近)。

テキスト選択してコピーしてChatGPTを開いてペーストする手間が省けるから場合によっては便利になるかもしれない。

だがクイズを出すとか言われてもそんなのはいらんという人の方が多いだろう。

我々日本人にとって必要なのは翻訳だ。

デフォルトでは提供されていないので設定で追加する。

`about:config` に行って `browser.ml.chat.prompts.5` (すでに.5があれば数字を増やす)に `{"id":"toJapanese", "label": "翻訳", "value": "日本語翻訳してください"}` を設定する。

すると選択した時や右クリックメニューに「翻訳」が追加され、実行すると選択した部分をAI翻訳できる。

同様に日本語から英語翻訳などもできるだろう。

便利なので試してみてほしい。

参考:

https://docs.openwebui.com/tutorials/integrations/firefox-sidebar/#browsermlchatprompts

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

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

2025-04-13

ClaudeにMCP-installerブチ込んで

色々インストールさせてるんだが、指定しないとかならずツール名を勝手に変更するのは何なんだ。

そしてConfigファイル内の書き込みもでたらめだ。

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

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

2025-02-12

anond:20240728023355

ITプログラミングみたいな狭い視野からつまんねとかAIで終わるとかの話になるのよ。

インフラおいでよ。

仕事いっぱいあるよ。

AIなんてクソの役にもたたないよ。

というか早くたって助けてくれよ!

このConfig拠点2個追加しといて。アドレス帯はよしなに。

で、勝手にさっさと書いてくれよ!

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

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

2024-12-24

明治薬品肛門の便」や、ハーブ健康本舗の超うざい広告

GIFアニメで、おばさんがユラユラゆれ続けてたり、黒い背景に足がバタバタとせわしなく動きつづけたりと、

実に鬱陶しい広告が様々なサイト占領している。

IPアドレスを変えたり、ブラウザCookie履歴を全消去してもしつこく出てくる。

気が狂いそうになる。

ふと、GIFアニメアニメーションしない設定はないだろうかと調べたらFirefoxにはそれがあった。

about:configimage. animation_modeをnoneにすればよい。

下品画像は消えないが、それが常に動き続ける状況は解消できたのでかなりマシになった。

それにしてもこんな広告を出す会社企業倫理なんてこんなものだ、不快感しかない。

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

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

2024-12-02

Twitterのウザい広告全部消す(Android限定)

なんでAndroid限定かって言うとiOSでは280blockerで既に全て消えてるはずだから

Twitterモザイクかけたエロ動画を『広告』として流してきてキモすぎる」という声が多く見られたから書く

ちな買収後に付け足されたシステム経由の広告だけ消える

旧来の広告システム悪用してゾンビねじ込んできてるのは消えないから手で報告とブロックしろ

1. 「設定」アプリを開く

2. 「ネットワークインターネット」を開く

3. 「プライベートDNS」を押す

4. 「プライベートDNSプロバイダホスト名」に↓から適当URLを選んで入れる

このリストの中に「正解」が紛れてるからどれが効くかはトラバで聞け

俺は知らん

https://adguard-dns.io/kb/ja/general/dns-providers/から抽出した

なおこのままだと思想が曲がったDNSはてなNHKなど無害なサイトまでブロックしていて実用性が無い場合があるためブラウザだけDoHを使う

Chrome場合

1.Chromeアプリ内「…」から「設定」を開く

2. 「プライバシーセキュリティ」の「セキュアDNS使用する」

3. 「別のプロバイダ選択からGoogleIIJ適当なのを選ぶ

Firefox場合

1.chrome://geckoview/content/config.xhtml を開く

2. 🔎にnetwork.trr.modeと打ち込む

3.network.trr.mode を 半角で「2」か「3」に設定する

Permalink |記事への反応(4) | 18:53

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

2024-07-05

あれは極めて例外的でそういうヤツじゃないからな

『社外へ対策してますアピール求人打っただけ。既に内々で解決済み』とかなら、基本的なことするだけだし、相場では?ってなるが、

万が一にも新しく来る人に解決して貰おうって思ってるなら、もっと必要能力が『政治力』だからな。その上で自分で手が動かせる人

通常、そのクラス起業して自分会社運営してるのですわ

 

例えば、読むセンスがあって仕入れ商品は全てバカ売れし、抜群の接客力があって多くのファンを獲得、その人目当てに来店する客も多い

体力があり、シフトの穴を埋めるだけでなく、そもそもそうならないよう業務とチームを設計

さらに、政治力にも長け、取引先との良好な関係を築き、有名な企業傘下に入っても、店の個性を活かしながら、企業文化の壁を越え、

企業全体にプラスとなる改革を進められる・・・そんな人材を300万円で雇おうとしたら、トンデモない話だと思うんですよね

別にITに限った話じゃないのよ。あと、通常、このクラス店員じゃなくて『店長』だよ

 

何で生徒の個人情報電子保存されてるんだろう

ニコ生配信者「本名バレた」 N高生「闇バイトの標的に…」 KADOKAWAサイバー被害深刻

https://news.tv-asahi.co.jp/news_society/articles/900005126.html?page2

紙にボールペンで書いて金庫に入れ警備員で守ってればデータ朗詠は起きなかったのでは

 

https://anond.hatelabo.jp/20240704213909

 ↓

単純に、アクセス権を適切に設定していない、端末制御を適切にしていない、セキュリティ監査してない上に、

デスクトップにどんなファイルが置かれているかチェックもしてなくて、DLP概念ないだけよね

これどこの会社でも当たり前にやってることだからね。それお金あっても出来ないの、社内政治以外に原因は無いからね

 

このどうしようもない問題解決するために人を採る場合、最も優先すべきは政治力で、その次に技術

整っていない環境技術力の高い人を採用しても、社内政治の壁に阻まれて成果が出せない可能性の方が極めて高い

からと言って、政治けが得意な人を選ぶと、さらに混乱を招くだけだ

 

なので、ちゃん自分で手を動かせる(プログラムconfigを書く、設計などの実務ができる)ことは重要

それから、チームメンバーベンダーが変なことを言った時に、「それはXXだと思うから確認してみて」や「それ○○で実現できますよね」と言える程度の知識技術力は必要

あと、技術に対して変な見栄を持たないことが超超超超超超超超超超重要

困った人、チームメンバーベンダーが変なことを言った場合に、軌道修正できる知識技術力は必要だけど、

それと同時に「今は政治マネジメントをやっているから最新技術を追えていない」という自覚必要なのよ

ボス技術に対する謙虚さを失うとヤベーことにしかならん

以下のような行動は避けるべき

anond:20240705141358anond:20240707092605

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

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

anond:20240704213909

単純に、アクセス権を適切に設定していない、端末制御を適切にしていない、セキュリティ監査してない上に、

デスクトップにどんなファイルが置かれているかチェックもしてなくて、DLP概念ないだけよね

これどこの会社でも当たり前にやってることだからね。それお金あっても出来ないの、社内政治以外に原因は無いからね

 

このどうしようもない問題解決するために人を採る場合、最も優先すべきは政治力で、その次に技術

整っていない環境技術力の高い人を採用しても、社内政治の壁に阻まれて成果が出せない可能性の方が極めて高い

からと言って、政治けが得意な人を選ぶと、さらに混乱を招くだけだ

 

なので、ちゃん自分で手を動かせる(プログラムconfigを書く、設計などの実務ができる)ことは重要

それから、チームメンバーベンダーが変なことを言った時に、「それはXXだと思うから確認してみて」や「それ○○で実現できますよね」と言える程度の知識技術力は必要

あと、技術に対して変な見栄を持たないことが超超超超超超超超超超重要

困った人、チームメンバーベンダーが変なことを言った場合に、軌道修正できる知識技術力は必要だけど、

それと同時に「今は政治マネジメントをやっているから最新技術を追えていない」という自覚必要なのよ

ボス技術に対する謙虚さを失うとヤベーことにしかならん

以下のような行動は避けるべき

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

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

2024-02-04

本日趣味プログラミング

第6回LineIDログインするだけの何かを作る

せっかくだから増田を絡めた何かを作りたいと考えている。

そのためには、はてなIDログインする仕組みが必要だろうと考えた。なんかそういう仕組みあるらしいし。

と思ったら今はもう無理だった。

はてなIDのOpenIDサポート終了のお知らせ

代わりにLineIDログインする仕組みを作る。

参考文献

LINEログインを始めよう

ウェブアプリにLINEログインを組み込む

LINEログイン v2.1 APIリファレンス

で、Lineコンソールなんやかんややって、キー情報をどうのこうのしたらできた。

(半年前のやりかけの続きなので詳細を覚えていない。個人でも無料で出来るんだー という驚きがあった)

出来上がったURLをここに書こうか迷ったけど、フィードバックを得られる状態じゃない(本当にログインするだけ)のと、

見えてはいけないconfig.phpが本当にアクセスできない状態なのか確信が出来なかったので一応やめておく。

で、本当はこれと組み合わせたくてLarabelを触り始めたのだけど、自分の環境ではまともに動かすのは無理そうなので途方に暮れている。

次回があるとしたら「LineID認証してコメントを残すだけの何かを気合で作る」である

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

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

2024-01-31

anond:20240131143125

そのアプローチは非常に効果的ですね。メイン関数内での処理をシンプルに保つことで、コードの可読性と保守性が向上します。以下にその考え方を反映したサンプルコードを示します。

importjson#ビジネスロジック関数def business_logic(data):    #ビジネスロジックの詳細    pass# 設定情報ロードdef load_config(config_file):    withopen(config_file, 'r')as f:config =json.load(f)    returnconfigdefmain():    # 設定情報ロードconfig = load_config('config.json')    #ビジネスロジックの実行    business_logic(config)if __name__ == "__main__":main()

このコードでは、メイン関数は設定情報ロードし、その情報を元にビジネスロジックを実行するだけです。技術的な詳細は関数内にカプセル化されており、メイン関数はそれらの関数を呼び出すだけです。これにより、コード自然言語を読むような形で読むことができ、技術的詳細は隠蔽されます。また、各関数担当者も明確になります。このような設計は、大規模なプロジェクトやチームでの開発に特に有効です。

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

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

2023-10-13

anond:20231013002729

ワイ:

ユーザー入力を待たず、一秒ごとにカウントが増えていって絵が切り替わるバージョンを作ってください。

カウント数字をどこかに表示してください。

エスケープか、クローズボタンで終了するまで永久カウントさせてください。

GPT

了解しました。以下は指定された条件に基づいて動作するPythonGUIアプリコードです。このアプリtkinter使用しており、毎秒カウントが増加し、その数値に基づいて画像が切り替わるようになっています

importtkinterastkfromtkinter import Label, PhotoImagedef update_count():    global count    count += 1    count_label.config(text=str(count))        if count % 3 == 0 or count % 5 == 0:        face_label.config(image=goofy_face)else:        face_label.config(image=serious_face)root.after(1000, update_count)def on_close():root.quit()root.destroy()root =tk.Tk()root.title("Face Display App with Counter")# ふざけた顔と真面目な顔の画像ロードします# 以下の部分は、DALL-Eで生成された画像パスに置き換える必要がありますgoofy_face = PhotoImage(file="path_to_goofy_face_image.png")serious_face = PhotoImage(file="path_to_serious_face_image.png")count = 0count_label = Label(root,text=str(count), font=("Arial",24))count_label.pack(pady=20)face_label = Label(root,image=serious_face)face_label.pack(pady=20)update_count()root.protocol("WM_DELETE_WINDOW", on_close)root.mainloop()

このコードでも、PhotoImageオブジェクト使用して2つの画像(ふざけた顔と真面目な顔)をロードしています。path_to_goofy_face_image.pngとpath_to_serious_face_image.pngは、DALL-Eで生成された画像の実際のパスに置き換える必要があります

このアプリは、毎秒カウントを増加させ、そのカウント値に基づいて画像を切り替えますカウントの数値も表示されますエスケープキーまたはウィンドウを閉じることでアプリを終了できます

ワイ:

どうも有り難うございます

GPT

どういたしまして!何か他に質問サポート必要場合は、お気軽にお知らせください。良い一日をお過ごしください!

こっちの方がいいな。

絵がファンキーから面白いよ。

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

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

anond:20231012213839

ワイ:

真面目な顔の人間の男の人の顔の絵を描いてください。

GPT

イメージ省略*

こちらが真面目な顔の男性イメージです。ご覧いただき、ご意見やご希望の変更点があればお知らせください。

ワイ:

その男の人がふざけて馬鹿になったふりをしている顔を描いてください。

GPT

イメージ省略*

ふざけている男性イメージ作成しました。どのイメージお気に入りか、または変更のご要望があれば教えてください。

ワイ:

PythonGUIアプリを作ってください。

ユーザー整数入力し、リターンキーを押します。

その整数が 3 か 5 の倍数の場合、ふざけた顔の男の顔(一枚目の顔)を表示してください。

それ以外の整数である場合、真面目な男の顔を表示してください。

エスケープボタンか、ウインドウクローズするまでループし、入力を待機してください。

GPT

了解しました。以下は、指定された条件に基づいて動作するPythonGUIアプリコードです。このアプリは、tkinter使用しています。まず、必要ライブラリインストールしてください:

pip installtkinter

次に、以下のコード使用してアプリを実行できます

importtkinterastkfromtkinter import Entry, Label, PhotoImagedef display_image():    num = entry.get()    if num.isdigit():        num = int(num)        if num % 3 == 0 or num % 5 == 0:            label.config(image=goofy_face)        else:            label.config(image=serious_face)    entry.delete(0,tk.END)def on_close():root.quit()root.destroy()root =tk.Tk()root.title("Face Display App")# ふざけた顔と真面目な顔の画像ロードします# 以下の部分は、DALL-Eで生成された画像パスに置き換える必要がありますgoofy_face = PhotoImage(file="path_to_goofy_face_image.png")serious_face = PhotoImage(file="path_to_serious_face_image.png")entry = Entry(root)entry.bind('<Return>',lambda event=None: display_image())entry.pack(pady=20)label = Label(root)label.pack(pady=20)root.protocol("WM_DELETE_WINDOW", on_close)root.mainloop()

このコードには、2つのPhotoImageオブジェクトがあります。これは、ふざけた顔の画像と真面目な顔の画像ロードするためのものです。path_to_goofy_face_image.pngとpath_to_serious_face_image.pngは、DALL-Eで生成された画像の実際のパスに置き換える必要があります

このアプリは、ユーザー整数入力してReturnキーを押すと、指定された条件に基づいて画像を表示します。エスケープキーまたはウィンドウを閉じることでアプリを終了できます

ワイ:

どうも有り難うございます

GPT

どういたしまして!何か他に質問サポート必要場合は、お気軽にお知らせください。良い一日をお過ごしください!

内定ゲットや!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Permalink |記事への反応(2) | 00:27

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

2023-06-15

YAMAHA NVR500 でエキサイトMEC光 に接続する方法

ネットに公開されている情報は、初心者には難しいと感じました。

Yamahaサイトconfigは公開されていますが、exciteMEC光だと、クリアする注釈が多すぎて。

"NVR500 では、tunnel endpointaddressコマンド使用して、AFTR のIPv6アドレス指定してください。"

って書いてますが、exciteMEC光はAFTR公開してないぞ!ってなるので。

正解は[gw.transix.jp]のIPv6アドレス指定する、で

"tunnel endpointaddress2404:8e01::feed:101"です。

以下、全文。

#

# transixのIPv4接続DS-Lite)でインターネット接続

#

#

#ルーターの設定:ひかり電話契約なしの場合

#

#

#ゲートウェイの設定

#

ip route defaultgateway tunnel 1

#

#LANインターフェースの設定 (LAN1ポート使用)

#

iplan1address 192.168.100.1/24

#

#WANインターフェースの設定 (LAN2ポート使用)

#

ipv6prefix 1ra-prefix@lan2::/64

ipv6lan1addressra-prefix@lan2::1/64

ipv6lan1 rtadv send 1 o_flag=on

ipv6lan1dhcp service server

ipv6lan2dhcp serviceclientir=on

ipv6lan2 secure filter in 1010 1011 1012

ipv6lan2 secure filterout 3000 dynamic 100 101 102 103 104 105 118 119

ngn typelan2ntt

#

#トンネルの設定

#

tunnelselect 1

tunnel encapsulationipip

tunnel endpointaddress2404:8e01::feed:101

tunnelenable 1

#

#フィルターの設定

#

ipv6 filter 1010 pass * * icmp6 * *

ipv6 filter 1011 pass * *tcp * ident

ipv6 filter 1012 pass * *udp * 546

ipv6 filter 3000 pass * * * * *

ipv6 filter dynamic 100 * *ftp

ipv6 filter dynamic 101 * * domain

ipv6 filter dynamic 102 * *www

ipv6 filter dynamic 103 * *smtp

ipv6 filter dynamic 104 * *pop3

#ipv6 filter dynamic 105 * * submission

ipv6 filter dynamic 118 * *tcp

ipv6 filter dynamic 119 * *udp

#

#DHCPの設定

#

dhcp service server

dhcp server rfc2131 compliant except remain-silent

dhcpscope 1 192.168.100.2-192.168.100.191/24

#

#DNSの設定

#

dns hostlan1

dns service fallbackon

dns serverdhcplan2

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

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

2023-04-05

あーFirefox最悪

拡張機能止めたらコンテナータブの設定が消えやがった

コンテナータブに依存するから依存する拡張機能有効ならコンテナータブが強制有効になるのはわかる

でも依存する全部の拡張機能を止めたらコンテナータブが無効になるってわけわからん

デフォルト機能として使ってるんですが??????

んで再度有効化したら設定がデフォルトに戻って手動追加したコンテナーも消えてるの本気で意味わからん

どうして強制上書きするんですか??????????設定にリセットボタンもつけとけ

あれやこれやのログイン情報全部消えたんですが???????????????????????????

しょうがいから思い出してコンテナー追加したけどこれ並び替えも出来ないのな

前と順番変わっててすこぶる気持ち悪い

Multi-Account Containersの拡張を使ってたらこいつを無効にしたら設定リセットになるのは百歩譲って…いや一時無効にしただけでjsonファイルデフォルト化って意味不明だけど億歩譲って我慢するわ

でもお前、標準機能だろ?お前を使うかどうかはabout:configで俺が決めさせてくれよ

なに他人拡張機能状態勝手にいじられてるんだよ

お前のその挙動で誰が幸せになるんだよ

せめてどこかに注意書き書いとけよ

書いてた?俺が悪かったその場所教えてくれ。光速ブクマするわ。さっさと出せよ。

もしかして俺の勘違いで別の操作が影響してる???謝罪するから原因を教えてくれよ通知もないか妄想で怒るしかねーんだよこっちは

もうマジで意味不明だわ最近Android版でtampermonkey復活したかちょっと株上がったと思ったらこれだよ。多分何年も放置されてる仕様だろこれマジこんなうっかり地雷しこまれると体験なうんだが

設定消えるなら警告のひとつでもだしてくれ

あとついでにグチるとCookie許可設定を変更できるようにしてくれ

なんで一度消して同じURLを再登録しないと変更できないんだよ

しかも設定画面でURLコピペできないのコイツ

URL覚えて手打ちして消して再登録しないと変更できないの

マジで死んでる終わってる何考えてるのか意味不明

リソース少ないにしても一体何に費やしてるのかまったくわからん

とりあえず年一だったけど寄付はやめるわ実害がデカすぎた

このまま加点なく減点が続くならVivaldiメインにすっから

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

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

2022-07-19

IT業界でおじいちゃんと思われたら終わり

山田祥平のRe:config.sys

ポメラが世に問うポメラミライ

https://pc.watch.impress.co.jp/docs/column/config/1425500.html

興味発想がワープロで、おじいちゃん

自分もこうならないようにしないといけないと思う。

って若者でもそうだと思うけどね。

IT業界はすぐおじいちゃん化する。

匿名ダイアリーでも未だに20年前の技術について考察してる人がいてビビる

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

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

2022-06-27

CoreKeeper Dedicated Server をVPS 上に構築したときの手順メモ

Ubuntu 22.04LTS x86_64 で構築。

CoreKeeper側でapt依存しているっぽいので、Ubuntu でやった方が楽だと思います

Tips

Ubuntu20TLS でやる場合、/home/steam/Steam/ が /home/steam/.steam/ になってたと思うので、環境に合わせて読み替えてください。

Installsteamcmd dependent packages

dpkg--add-architecturei386add-apt-repository multiverseapt-get updateapt-get dist-upgradereboot

CreatesteamcmdUser

useradd-msteampasswdsteamgpasswd-asteamsudo

Steamcmd /CoreKeeper Dedicated Server Install

sudo-usteam-scdsudoapt installsteamcmdln-s /usr/games/steamcmdsteamcmd./steamcmd+loginanonymous+app_update1007+app_update1963720+quit

Runsteamcmd (Install and CreatingCoreKeeper Dedicated Server system drectory )

cd ~/Steam/steamapps/common/Core\Keeper\ Dedicated\ Server/./_launch.sh

Press Ctrl + C for StopCoreKeeper Dedicated Server

World file migration (if thereis an old file)

mkmir-p-m775 /home/steam/.config/unity3d/Pugstorm/Core\Keeper/DedicatedServer/worldschownsteam:steam /home/steam/.config/unity3d/Pugstorm/Core\Keeper/DedicatedServer/worlds

Copy old world file (0.world.gzip) to

/home/steam/.config/unity3d/Pugstorm/Core\Keeper/DedicatedServer/worlds

Copy old setting file (*.json) to

/home/steam/.config/unity3d/Pugstorm/Core\Keeper/DedicatedServer/

chmod664 /home/steam/.config/unity3d/Pugstorm/Core\Keeper/DedicatedServer/worlds/0.world.gzipchmod664 /home/steam/.config/unity3d/Pugstorm/Core\Keeper/DedicatedServer/*.json

Backup setting

vi /etc/cron.hourly/corekeeper_backup#!/bin/bashcp-a /home/steam/.config/unity3d/Pugstorm/Core\Keeper/DedicatedServer/worlds/0.world.gzip /home/steam/worldbackup/0.world.gzip.`date'+%Y%m%d%H%M%S'`cp-a /home/steam/Steam/steamapps/common/Core\Keeper\ Dedicated\ Server/CoreKeeperServerLog.txt /home/steam/worldbackup/CoreKeeperServerLog.txt.`date'+%Y%m%d%H%M%S'`chmod777 /etc/cron.hourly/corekeeper_backupsudo-usteam-scdmkdir worldbackup

StartCoreKeeper Dedicated Server

sudo-usteam-scd ~/Steam/steamapps/common/Core\Keeper\ Dedicated\ Server/nohup ./_launch.shtail-f ~/Steam/steamapps/common/Core\Keeper\ Dedicated\ Server/CoreKeeperServerLog.txt

サーバースペック

利用者問題か、サーバー問題かわかりませんが人数が10人超えるとCPU4コア/メモリ4G/100Mbps で結構ラグかったです。

今はCPU6コア/メモリ8G/1000Mbps で動かしています

不具合 (2022/06/28時点)

6-8人以上で2-3時間サーバー動かしてると、Unityライブラリがsegfault起こして、CoreKeeper Dedicated Server が落ちます

ログ取れたのでバグレポしましたが、改善するまでは不特定多数が好き勝手するサーバーみたいなのを長期運用するのは厳しいかなと思いますタイミングによってはアイテムロストしてしまうので。

遊びで使うなら、ウォッチドック的なサービスを入れて、落ちたら適宜起動しなおすみたいな対応をした方がよいと思います

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

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

2022-02-10

anond:20220210165046

gitコミットされるファイルLFならええねん

gitconfig --globalcore.autocrlf input

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

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

2022-01-13

Firefox96にHTTP3を有効にしているとハングアップするバグがある

https://news.ycombinator.com/item?id=29918052

https://bugzilla.mozilla.org/show_bug.cgi?id=1749908

about:confignetwork.http.http3.enabled を検索し値をfalse にする


不思議なのはycで報告されたのが96がリリースされて十数時間経過した39分前で

俺も午前中仕事している時は普通に動いていたんだ


追記:

CloudflareJST17時に行われたデフォルト設定の変更が原因でFirefoxに以前から存在したHTTP3のバグが誘発されたらしい

なので、それまでは動いていたそうな

Permalink |記事への反応(1) | 17:54

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

2021-12-14

dAのgallery内の画像の一括保存にはgallery-dlだけじゃ使いものにならなくて自分側でAPIを作っとく必要があった。

製作者が公開いてるconfigの中身をコピペしてプログラムと同じ場所コピペしたconfig作成

APIを作ったらconfigでnullとなってるところに交付されてるidsecretを""で括って書き換える。コロンと"の間には半角空白が必須

コマンドラインでspliteなんとかをリフレッシュしたら別のコマンドieかエッジが開く。

エッジならそのまま画面の指示に従ってdAログインして、白い画面に英文でなんか書いてある画面に遷移したら終了。

これで遅延しづらくなりなんとか使えるようにはなる。

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

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

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

[8]ページ先頭

©2009-2025 Movatter.jp