「TEST」を含む日記 RSS

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

2022-10-16

NovelAIが重すぎるからローカル環境にNAI環境を構築する(2022年10月16日版)(追記あり)

せっかく課金したのにユーザが増えまくっているのか滅茶苦茶重くなっていて最悪。

から流出したモデルを使ってローカルでNAI環境を構築する。

ネットには情報もだいぶ転がってるけど陳腐化した情報があまりに多いため増田にまとめることにした。

しかたらこ記事もすでに陳腐化しているかもしれないが…単純に間違ってたらトラバで教えてほしい。

もちろん自己責任。この記事を見て導入した結果何かあっても増田は何も保証しない。

英語がわかる人はこっちを見た方が早いと思う。今は導入RTAができるくらい導入は楽になっている。

https://rentry.org/nai-speedrun

推奨環境

VRAMが2GB以上あるNVIDIA製のグラフィックボードがあればローカル環境を構築できる。

GPU世代はGTX700シリーズ以降。なので一昔前のミドル級ボードでも動作するらしい。

IntelオンボードGPUでも実行する方法があるらしい(stable_diffusion.openvino)が今回は割愛する。自分で探してね。

その他の推奨環境は以下の通り。

対応OSWindows7以上(と言うがM1Macでも動作する方法があるとかなんとか)

必要な空きストレージ容量:20GB以上

インメモリ:16GB以上(VRAMもたくさん必要だが起動時にメインメモリも大量に食う。WebUI起動時にタスクマネージャを見ているとよくわかる)

スマホしか持ってないような人やこういうのがよくわからない人はNovelAIを使った方が良いと思う。

今は重いけど、きっとそのうちみんな飽きてサーバも軽くなるかもしれないし。

(追記)NovelAIリソースを確保してサーバが軽くなったかリスクを背負ってまで導入しなくても良いか

手順1:PythonGitを導入する

(追記)Pythonは当然3系。最新の奴を入れれば問題無い。

導入方法はいちいち書かないけど、「python --version」や「git -v」で

正常にバージョン情報が出る(パスがきちんと通っている)ことはちゃん確認しよう。

手順2:Stable Diffusion web UI(AUTOMATIC1111)を導入する

Stable Diffusion web UIはStable Diffusionやそれをベースとした画像生成AIを利用するためのフロントエンド

その中でも特に開発が活発でデファクトスタンダードとなっているのがAUTOMATIC1111版だ。

導入したい適当ディレクトリに対してPowerShellなどで

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

とやってやれば必要ファイルの導入が行われる。

なお、AUTOMATIC1111版は数時間単位コミットが行われるから

定期的に「git pull origin master」で更新しよう。

手順3:BitTorrent流出モデルダウンロードする

クライアントはqBitTorrentが一番楽だと思う。

ここにはさすがにmagnetリンクは書かないか各自ググって欲しい。

結構誤解されがちなことだが流出データ50GBを全部ダウンロードする必要は無い。

必要ファイルはanimefull-final-prunedディレクトリの中身とanimevae.ptから5GBちょっとくらいなんじゃないかな。

もし余裕があるならmoduleディレクトリの中身もダウンロードすればいいけど、ぶっちゃけ必要無いんじゃないか

手順4:ダウンロードした各ファイルリネーム・移動

まずはanimefull-final-prunedの中身のファイルリネーム

model.ckpt」を「animefinal-full-pruned.ckpt」のようなわかりやす名前にして、

「animevae.pt」を例えば「animefinal-full-pruned.vae.pt」のような拡張子以外は同じファイル名にする。

WebUI起動フォルダ配下の\models\Stable-diffusionリネームしたファイルを移動させれば配置はOK

ちなみにmoduleディレクトリの中身は\models\hypernetworksに移動させて使う。

それらのファイルを設定で適用させると画風が結構変わるがNovelAI再現とは関係無いみたいだ。

(追記)moduleディレクトリの中身の.ptファイルはhypernetworksという技術によって画風などを学習したものらしい。

すでに複数イラストレーターの画風を学習したptファイル作成されており議論を呼んでいる。

手順5:webui-user.batの中身に設定を追加する

自分グラボのVRAMが4GB未満の場合は「set COMMANDLINE_ARGS=」の後に

4GB未満の場合は「--medvram」、2GB未満の場合は「--lowvram」とパラメータを追加しておこう。

自分の持ってるグラボのVRAMがわからないときGPU-Zなどで調べよう。

またGTX1600系固有のバグ(単色の画像が出力される)があるらしいので

その場合は「--no-half-vae」もしくは「--no-half」や「--precision full」とパラメータを追加。

ちなみにパラメータに「--xformers」を追加してxformersを導入・使用すると

消費VRAMが減って画像生成処理時間も短縮されるので是非導入しよう。

画像からdanbooruタグAI調査するdeepdanbooruを利用する場合は「--deepdanbooru」を追加。

これらの設定は同時に複数適用させることもできる。例えば

set COMMANDLINE_ARGS=--medvram --xformers --deepdanbooru

のようになる。

手順6:webui-user.bat起動、設定変更

ターミナルPowerShellなどでwebui-user.batを起動しwebUIの初期導入と起動を行う。

過去には手動でCUDA等を導入する必要があったが、現在はこの初期導入でだいたいの導入が行われる。

ずいぶん楽にはなったがその分初期導入の時間結構長い。10分~20分くらいかかるかもしれない。

途中で導入処理がエラーで止まってしまった場合管理者権限で実行するなどして対応して欲しい。

起動ができたらSettingで以下の設定を変更してNovelAIに近づける。

Stop At last layers of CLIP modelを2に、

Eta noise seed deltaを31337にする。

これで設定は完了

おまけ:アスカテスト

設定を合わせて完全にNovelAIと同じ内容になったのかを確認するテストがある。

出力結果から海外じゃHallo Asuka Testなんて呼ばれている。

これは初期SEEDをはじめとする設定内容が完全に一致していれば同じ出力結果を得られる仕組みを利用している。

プロンプトの内容:masterpiece, best quality, masterpiece, asuka langley sitting cross legged on a chair

ネガティブプロンプトの内容:lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts,signature, watermark, username, blurry, artist name

サンプリングステップ数:28

サンプリング形式:Euler

CFG Scale(プロンプトの強度):12

初期Seed2870305590

この内容で見事下の画像と全く同じ画像が出力されれば合格だ。

https://i.imgur.com/Bfl5qJB.jpg

なお、このテストはAUTOMATIC1111のバージョンやxformersの適用状態によっては微妙に違う画像が出力されることがあるらしい。

xformersを適用させている増田環境だと確かに二つ並べると間違い探しレベルの違いがあった。

正直このテストクリアしなくても十分だと個人的には思う。

おまけ2:その他便利になる設定や拡張機能

「Booru tag autocompletion for A1111」を導入すればNovelAIのように自動danbooruタグを保管してくれる。

注意

画像生成AIモデルはStable DiffusionOSSのため派生結構多い。

自前で追加学習もできるため自前で学習した追加AIモデル4chanのような掲示板などで共有する人もいるらしい。

しかしそのようなモデルの中にウィルスのような悪意のある動作を行うものもあるらしい。

FBIペドフィリア一網打尽にするためにIPアドレスなどの個人情報を抜き出す動作を行うロリ特化AIモデル掲示板で配布していて

しかもそれには本物の児童ポルノ教師データとして使われている…などという都市伝説的な話が今界隈を賑わせている。

それが本当の話かどうかはわからないが、とにかく変なところからモデルダウンロードするのは危険なのでやめよう。

自己矛盾溢れる注意喚起かもしれないが…

2022-10-12

ワイアスペADSL、ぶじ脂肪

インターネット依存症

アスペルガー症候群人物は、インターネット依存症になりやすい。2019年に発表された日本研究によると、インターネット依存度をテストするYIAT (Young's Internet Addiction Test) において、70点以上をインターネット依存症とした時、一般人口と比較してアスペルガー症候群では約3.72倍、アスペルガー症候群に加えてADHDと診断されたものでは約6.89倍もその割合が大きかった[17]。なお、ADHDのみの場合は、約4.31倍であった[17]。


ワイアスペADSL、ぶじ脂肪

2022-09-25

Metaはもうダメです

ザッカーバーグメタヴァアスとか言っとりますがね

まあ元オキュラスハードウェア進歩とかは面白そうなところはありますがね

本業アカンですわ

Facebookはおじさんおばさんしかおらんでしょう

ちゃごちゃしとるし晩年mixi彷彿とさせますいね

Instagramはまだようけ使われてはりますけども

TikTokと比べたら全然ですわなReelとかいうやつ

使ってみたら分りますがReel酷いもんでっせ

そりゃTikTokが勝ちますわという感じで堺に

特にAndroid版のアプリバグだらけでクソですわな

ほんであのアバターなんなんですの?

ZEPETOのほうが999倍くらいちゃんとしとりますわ

ド後発のくせにあのクオリティは酷いんとちゃいますか?

いくらDone is better than perfecttest in production精神のMetaでもあれは酷すぎるっちゅうもんです

あれもメタヴァアスの一貫やおもてるんなら先が思いやられます

ハードウェア機械学習研究には期待してもいいけどまあどれだけビジネスに繋げられるかとちゃいます

ビジネスアカ

ザッカーバーグ退任すべきやなホンマに

2022-09-01

test

クンニ✋(������)��

パンティー

チョコエッグ����

たし��

ネコチャン��

2022-08-15

Webはてブミュー機能作った

勝手に tampermonkey とかに突っ込んで使ってヨロ

スクリプト保守とかするつもりないから、保守とかするつもりのあるパワーの溢れた人が

これ参考とかにしてもっとかっちょよくしたのを greasy fork あたりに公開してくれ

そしたら俺もそれ使う

使い方:

ブラウザの開発環境を開いて、開発コンソールを開く

localStorage.hatebu_ng_word_list に非表示トリガーになる文字列を|区切り登録する。

localStorage.hatebu_ng_word_list = "池田信夫|フェミ|弱者男性|やまもといちろう"

実際のコード

大なり小なり(>)が実体参照で表示されるのはよくわからん。使う人で適宜コードを直してくれ。

// ==UserScript==
// @name         はてブの一覧NG記事非表示
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       masuda
// @match        https://b.hatena.ne.jp/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=hatena.ne.jp
// @grant        none
// ==/UserScript==

(function() {
	'use strict';

	if (!localStorage.hatebu_ng_word_list) {
		return;
	}
	console.log("はてブの一覧NG記事非表示", localStorage.hatebu_ng_word_list);

	/*
	 * 例:
	 * localStorage.hatebu_ng_word_list =
	 * "池田信夫|フェミ|弱者男性|やまもといちろう|togetter.com";
	*/
	let words = localStorage.hatebu_ng_word_list.split('|').map(w => new RegExp(w));

	function entryDelete(els) {
		els.forEach(el => {
			let hit = false;
			words.forEach(w => {
				hit = hit|| w.test(el.textContent);
			});
			if (hit) {
				el.remove();
			}
		});
	}

	// entrylist-header-main li 1つ目のアイテム
	entryDelete(document.querySelectorAll('.entrylist-header-main > li'));
	// 2つ目以降の li アイテム
	entryDelete(document.querySelectorAll('.entrylist-item > li'));
})();

文字正規表現として評価されて、ヒットした記事項目をページから削除する(DOMから要素を削除する)。

際限なくNG登録できるけど、沢山非表示するとつまらない一覧になる

2022-08-01

anond:20220731183342

自動安価をつけて返信するプログラムでもこんなに長く複雑になる(一部抜粋) 

/**************************************

以下のCSV_DIR, FILE_PATHS, SETTINGSを書き換えてね。 <h3>o- *************************************/</h3>

//CSVファイルが置かれてるディレクトリパス投稿前にエラー出たら大体ここの設定ミス。 例:"C:\\Users\\sakuraimasahiro\\Documents\\iMacros\\Macros\\rentou\\";

const CSV_DIR =

'C:\\Users\\USER\\Desktop\\iMacros\\Macros\\rentou\\';

//ファイルパスCSV絶対パスで、拡張子必要。iimは相対パスでよく、拡張子不要

const FILE_PATHS = {

//投稿文が書かれたCSVファイル

textCsv: CSV_DIR + 'textNoAnker.csv',

//レス投稿文が書かれたCSV。通常とレス用で分けないなら同じファイルを使えばいい。

replyTextCsv: CSV_DIR + 'textReply.csv',

};

const SETTINGS = {

//投稿後の基本待ち時間

baseWaitTime: 5,

//baseWaitTime+0~waitTimeRange(ランダム)だけ待つ

waitTimeRange: 5,

//連投しすぎだと忠告された場合に処理を一時停止させる時間(秒)

waitTimeForAvoidingPunishment: 60 * 30,

//メール

mail: 'sage',

//名前設定

nameSettings: {

//名前名無しなら''。

name: '',

//以下、偽装ワッチョイ設定。浪人ワッチョイを非表示にしてるときだけtrueにしてね。

//妙なニックネーム(ワッチョイ、アウアウウーなど)をランダムで決めて付加するかどうか。true=付加する。false=付加しない。

nickname: false,

//妙なニックネームの後に付く8桁の文字列ランダムで決めて付加するかどうか。

korokoro: false,

//IPランダムで決めて付加するかどうか。

ip: false,

//地域ランダムで決めて付加するかどうか。

area: false,

},

postSettings: {

//アンカー無し投稿をするならtrue。しないならfalse。noAnkerPostかreplyPostのどちらかはtrueにすること(両方trueでもOK)。

noAnkerPost: false,

//アンカー付き投稿(返信)をするならtrue。しないならfalse。もしnoAnkerPostとreplyPostの両方がtrue場合投稿は返信が優先され、返信対象が見つからなくなったらアンカー無し投稿をする。

replyPost: true,

//最初に取得するアンカー無し投稿CSVファイルの行番号。もし返信用と同じCSVファイルを使うなら-1と入力

noAnkerPostTextCsvStartRow: 1,

//最初に取得する返信用投稿CSVファイルの行番号。もしアンカー無しと同じCSVファイルを使うなら-1と入力

replyPostTextCsvStartRow: 1,

//テキストCSV/返信用テキストCSVの取得行が最終行に達したら最初の行まで戻るかどうか。true=戻る。false=マクロ終了。

textCsvLoop: true,

//返信する場合、これより小さなレス番には返信しない。返信を投稿すると、この数値は前回の返信先のレス番に更新される。

minAnker: 895,

//返信する場合名前に以下の文字列を含む投稿アンカーをつけて返信する(ワッチョイやIPなど名前フィールドにあるものならなんでも可)。配列複数指定可能指定無しなら空配列([])。filterNamesとfilterNamesNotIncluded共に無指定ならレス番1から順に返信していく(minAnkerが設定されてればそこから順に)。以下のfilter系は全て併用可能

filterNames: [],

//↑とは逆に、名前に以下の文字列を含まない投稿アンカーをつけて返信する。↑と併用も可能

filterNamesNotIncluded: [],

//返信する場合、本文に以下の文字列を含む投稿アンカーをつけて返信する。

filterText: ['自演かな', '自演わらわら', 'スクリプト使うの', '安価ガバ', '>>660', '自演擁護', '最後' ,'あいうえお', 'かきくけこ', 'さしすせそ', 'なにぬねの', 'はひふへほ', 'まみむめも', 'やいゆえよ', 'やゆよ', 'らりるれろ', 'わいうえを', 'わをん', 'わいうえをん'],

},

//自分IPアドレス確認VPNとかでIPを変更してマクロを動かしてるとき、突然VPN作動しなくなってIPが元に戻ったときマクロを止めるためのもの

ipSettings: {

//自分現在IPアドレス確認をする。

checkIp: true,

//以下の文字列自分現在IPアドレスに含まれている場合マクロを一時停止する。基本的自分の本当のIPアドレス入力

avoidTheIp: '133.206.99.224',

},

//浪人設定。最後動作確認したのは5年くらい前で、今も同じように動作するかは、浪人を持ってないか確認できずわからない。

roninSettings: {

//浪人ログインしてるかどうかをチェックするかどうか。trueらするfalseならしない。trueにしていてもし浪人ログインしていないことを確認したらログインしにいく。

checkLogin: false,

//浪人ログインメールアドレス

mailAdress: 'abc@def.com',

//浪人ログインパスワード

password: '1234',

},

//false: run()実行させず(デバッグ用)

run: true,

//true: 投稿処理だけしない デバッグ

skipPost: false,

};

/**************************************

設定箇所終わり。

書き込めない時の早見表 - 5ちゃんねるwiki

https://info.5ch.net/index.php/%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%81%E3%81%AA%E3%81%84%E6%99%82%E3%81%AE%E6%97%A9%E8%A6%8B%E8%A1%A8 <h3>o- *************************************/</h3>

/**************************************

メモ

クラスフィールド宣言できない。

・NULL演算子(??)は使えない。論理積(&&)は使える。

オブジェクトの分割代入はできない。

・importはできない。 <h3>o- *************************************/</h3>

/**************************************

関数 <h3>o- *************************************/</h3>

/**

* ここから始まる。

*/

function run() {

//設定ミスがないか調べる。

checkSettings();

var _TextCsvCursors = new TextCsvCursors(

new TextCsvCursor(

SETTINGS.postSettings.noAnkerPostTextCsvStartRow > 0

? SETTINGS.postSettings.noAnkerPostTextCsvStartRow - 1

: SETTINGS.postSettings.noAnkerPostTextCsvStartRow,

FILE_PATHS.textCsv,

SETTINGS.postSettings.textCsvLoop,

),

new TextCsvCursor(

SETTINGS.postSettings.replyPostTextCsvStartRow > 0

? SETTINGS.postSettings.replyPostTextCsvStartRow - 1

: SETTINGS.postSettings.replyPostTextCsvStartRow,

FILE_PATHS.replyTextCsv,

SETTINGS.postSettings.textCsvLoop,

),

);

var _LoopStatuses = new LoopStatuses(0, SETTINGS.postSettings.minAnker);

const _MyPosterName = new MyPosterName({

name: SETTINGS.nameSettings.name,

});

//スレURL指定

const _ThreadUrl = openPromptThreadUrl();

//ループ

while (true) {

//IP確認する設定なら、それをする。

SETTINGS.ipSettings.checkIp && checkCurrentIpNotTheIp();

//スレを開く

openUrl(_ThreadUrl.fullUrlHttps());

//浪人ログインする設定なら、浪人ログインしているかどうかを確認し、していなければログインしにいく。

if (SETTINGS.roninSettings.checkLogin) {

if (!checkRoninLogin()) {

loginRonin();

continue;

}

}

//投稿に使うテキスト取得。

const p = (function () {

if (SETTINGS.postSettings.replyPost) {

//返信あり設定の場合。返信対象が無いか調べる。

const targetAnkerNumber = createPostDOMList()

.filterPostnumberHigher(_LoopStatuses.currentMinAnker())

.filterByPostername(SETTINGS.postSettings.filterNames)

.filterByPosternameNotIncluded(

SETTINGS.postSettings.filterNamesNotIncluded,

)

.filterByText(SETTINGS.postSettings.filterText)

.lowestPostNumber();

if (targetAnkerNumber !== null) {

//返信対象があったのでアンカー付き投稿文を作る。

const r = _TextCsvCursors.takeNextRowTextAsReply(targetAnkerNumber);

messageDisplay(`返信対象有り。アンカー先: ${targetAnkerNumber}`);

return {

...r,

updatedLoopStatuses:

_LoopStatuses.updateMinAnker(targetAnkerNumber),

};

}

}

if (SETTINGS.postSettings.noAnkerPost) {

//返信対象無し、或いは返信しない設定の場合アンカー無し投稿文を作る。

const r = _TextCsvCursors.takeNextRowTextAsNoAnker();

messageDisplay('返信対象無し。アンカー無し投稿。');

return {

...r,

updatedLoopStatuses: _LoopStatuses,

};

}

return null;

})();

if (p) {

//投稿

postThenCheckError(

_ThreadUrl.serverName(),

_MyPosterName.randomize({

nickname: SETTINGS.nameSettings.nickname,

korokoro: SETTINGS.nameSettings.korokoro,

ip: SETTINGS.nameSettings.ip,

area: SETTINGS.nameSettings.area,

}),

SETTINGS.mail,

p.text,

);

//_TextCsvCursorsと_LoopStatusesを更新

_TextCsvCursors = p.updatedTextCsvCursors;

_LoopStatuses = p.updatedLoopStatuses.incrementPostCount();

messageDisplay([

`投稿回数: ${_LoopStatuses.currentPostCount()}`,

`minAnker: ${_LoopStatuses.currentMinAnker()}`,

`今回アンカー無し投稿取得行: ${_TextCsvCursors.currentRows().noAnker}`,

`今回アンカー有り投稿取得行: ${_TextCsvCursors.currentRows().reply}`,

]);

} else {

messageDisplay([

`返信対象が現われるのを待機中...。`,

`投稿回数: ${_LoopStatuses.currentPostCount()}`,

`minAnker: ${_LoopStatuses.currentMinAnker()}`,

`今回アンカー無し投稿取得行: ${_TextCsvCursors.currentRows().noAnker}`,

`今回アンカー有り投稿取得行: ${_TextCsvCursors.currentRows().reply}`,

]);

}

//短時間で連投しまくると規制されるので一定時間待機。

wait(SETTINGS.baseWaitTime + randomRange(0, SETTINGS.waitTimeRange));

}

}

/**

* 投稿処理と投稿結果を見てリトライしたりマクロ終了したり。

* @param {string} serverName サーバー

* @param {MyPosterName} _MyPosterName

* @param {string} postMail メール

* @param {MyText} _MyText

* @param {number} retryTimes

* @returns {void}}

*/

function postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes = 0,

) {

const r =

retryTimes === 0

? new ValuesOfPost(serverName, _MyPosterName, postMail, _MyText).post(

postTo5chTread,

postConfirm,

)

: new ValuesOfPost(

serverName,

_MyPosterName,

postMail,

_MyText,

).postSubstring(retryTimes, postTo5chTread, postConfirm);

if (r) {

back();

return;

}

//エラーページに飛ばされた。エラー情報取得。

wait(7);

const error = createPostErrorMessage().analyze();

messageDisplay(error.message);

if (error.order === 'KILL') {

kill();

} else if (error.order === 'SKIP') {

return;

} else if (error.order === 'TRUNCATE') {

back();

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes + 1,

);

} else if (error.order === 'WAIT') {

wait(SETTINGS.waitTimeForAvoidingPunishment);

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes,

);

} else if (error.order === 'LOGIN') {

//動作未確認

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes,

);

}

return;

}

/**

* 現在IPアドレスに、SETTINGS.ipSettings.avoidTheIpの値が含まれていないことを確認する。含まれていたらマクロを一時停止。

* @returns

*/

function checkCurrentIpNotTheIp() {

//IP確認ページへ飛ぶ

openUrl('https://www.cman.jp/network/support/go_access.cgi');

const _IpAdress = createIpAdressFromCMan();

if (_IpAdress.includes(SETTINGS.ipSettings.avoidTheIp)) {

pause('現在IP指定した値が含まれていることを確認。');

//ポーズ解除したならもう一度確認しに。

checkCurrentIpNotTheIp();

}

return;

}

/**

* 設定に致命的な問題が無いか検査

* @returns

*/

function checkSettings() {

if (

SETTINGS.postSettings.noAnkerPost === false &&

SETTINGS.postSettings.replyPost === false

) {

return kill('設定エラー。noAnkerPostとreplyPost両方ともfalseになってる。');

}

if (

SETTINGS.postSettings.noAnkerPostTextCsvStartRow < 0 &&

SETTINGS.postSettings.replyPostTextCsvStartRow < 0

) {

return kill(

'設定エラー。noAnkerPostTextCsvStartRowとreplyPostTextCsvStartRow両方とも-1になってる。',

);

}

if (

SETTINGS.postSettings.noAnkerPostTextCsvStartRow === 0 ||

SETTINGS.postSettings.replyPostTextCsvStartRow === 0

) {

return kill(

'設定エラー。noAnkerPostTextCsvStartRow/replyPostTextCsvStartRowの初期値は-1或いは1以上で。',

);

}

}

/**

* 入力フォームを表示して入力されたスレURLを受け取る。

* @returns {ThreadUrl}

*/

function openPromptThreadUrl() {

const url = prompt('スレURL入力');

return new ThreadUrl(url);

}

/**

* 開いてるスレレス全て読み取ってPostListインスタンスを作って返す。

* 重すぎるので使うのやめ。どうやらインスタンスの大量生成が原因な模様。

* createPostDOMListを使う。

* @returns {PostList}

*/

function createPostList() {

const posts = window.document.getElementsByClassName('post');

return new PostList(Array.from(posts).map((e) => new Post(e)));

}

/**

* 開いてるスレレス全て取得してPostDOMListに格納して返す。

* @returns

*/

function createPostDOMList() {

const posts = window.document.getElementsByClassName('post');

var arrPostDOMList = [];

for (let index = 0; index < posts.length; index++) {

//HTMLCollectionからElementを1つずつ抽出して配列に。

arrPostDOMList.push(posts.item(index));

}

return new PostDOMList(arrPostDOMList);

}

/**

* 開いてる投稿結果画面に表示されてるエラーを読み取ってPostErrorMessageインスタンスを作って返す。

* @returns {PostErrorMessage}

*/

function createPostErrorMessage() {

return new PostErrorMessage(

window.document

.g Permalink | 記事への反応(0) | 15:40

DIポリコレではない

Dependency Injection(依存注入)はinjectionがエロいので使ってはいけない。Penetration Testペネトレーションテスト)もpenetrationがエロいので使ってはいけない。

2022-07-30

安倍射殺関連不謹慎スレッド大賞ノミネート会場

悲報】「あああ!弾が外れた…」悪政に沈んだ魂たち「大丈夫、落ち着いて。次は必ず当たるよ🧚」⇨結果

greta.5ch.net/test/read.cgi/poverty/1657364677/

長らく成蹊出身馬鹿にされていた安倍晋三、きょうICU入りか。

greta.5ch.net/test/read.cgi/poverty/1657268770/

山上ショットガン「ドーン」聖帝「意味のない攻撃だよ(体クルンッ」山上ショットガン「ドーン」聖帝「銃死ー(ここで死ぬ)」

greta.5ch.net/test/read.cgi/poverty/1657326553/

国内最高齢のア○○○ゾウ死ぬ 57歳

greta.5ch.net/test/read.cgi/poverty/1648896562/

悲報安倍晋三奈良の鹿と間違えられて撃たれたか

greta.5ch.net/test/read.cgi/poverty/1657250376/

心臓が悪い」と5月退職していた山上徹也 まさかそういう意味だったとは、誰も気づかなかった

greta.5ch.net/test/read.cgi/poverty/1657457857/

ちゃん火葬大賞

greta.5ch.net/test/read.cgi/poverty/1657497941/

安倍晋三(骨壷26cm)「お前ネットで俺のことバカにしてたよな?」

greta.5ch.net/test/read.cgi/poverty/1657973352/

【LIEJAP】安倍晋三さん 体重を97%カットするダイエット成功

greta.5ch.net/test/read.cgi/poverty/1657613251/

上司「何回同じミスすんの?」俺「スワセン...」心の中の安倍意味のない説教だよ」俺「フフッ」上司「何泣いてんの(怒)」

greta.5ch.net/test/read.cgi/poverty/1657462457/

【速報】安倍晋三、死亡届を改竄し無事生還

greta.5ch.net/test/read.cgi/poverty/1657270888/

朗報投票用紙に「安倍晋三」と書く人が続出。当選で復活か

greta.5ch.net/test/read.cgi/poverty/1657422008/

SP「シンゾー、君と僕は同じ方向を見ている」

greta.5ch.net/test/read.cgi/poverty/1657270072/

悲報自民党 サタンオールスターズだった

greta.5ch.net/test/read.cgi/poverty/1657965318/

安倍晋三人生最後の1日でICUに入り100単位取得し居士になった事実人間死ぬ気になればなんでもできる

greta.5ch.net/test/read.cgi/poverty/1657606023/

2022-07-07

[][][][][][][][][]

バカクズゴミハゲチビデブ、使えない、キモイDQN、頭おかしい、アホ

秘密録音 - Wikipedia

侮辱罪は、具体的な事実を示さずとも、「バカ」クズ」「ゴミ」「ハゲ」「チビ」「デブ」など公然と人の社会的評価を下げるような言動をし、侮辱すれば成立する。

きょうから侮辱罪を厳罰化、懲役刑も選択可能に ネット中傷の捜査への影響は?(前田恒彦) - 個人 - Yahoo!ニュース

例えば「ハゲ」「デブ」「使えない」などの暴言不特定多数面前で言われた場合は、侮辱罪が成立します。

名誉毀損罪と侮辱罪の違いは? | 弁護士の選び方 | 弁護士がおすすめする東京・千葉・埼玉・神奈川の法律事務所

誹謗中傷侮辱罪に当たる言葉とは?5つの種類に分けて解説

侮辱罪とは「バカ・アホ」などの具体的な事実を示さな誹謗中傷のことを指します。

ttps://blitz-marketing.co.jp/column/4277/

あほ」「ばか」「くず」くそ」「非国民」「(差別用語)」

ttps://twitter.com/masaki_kito/status/1544914748453830656

侮辱罪が適用された事例集

集合住宅において、計3名に対し、被害者について、「今、ほら、ちまたで流行りの発達障害。だから人とのコミュニケーションちょっと出来ない。」などと言った

科料9000円

インターネット上の掲示板に「○○(被害者名)って金も無いし女も居ないし友達もいない童貞だろ?裏で悪口言われまくりなの知らないのは本人だけだ ワキガ口臭どうにかして接客しような?」などと掲載

科料9000円

https://www.moj.go.jp/content/001375709.pdf



掲示板誹謗中傷疑い、男を逮捕 元同僚女性への書き込み津山

不特定多数が閲覧できる掲示板サイトに、元同僚の女性について「誰もみたくない。キモイキモイ」などと書き込んだ疑い。

ttps://bit.ly/3ap9DXa

インターネットに「同僚がキモい」と書いた●●、侮辱罪で逮捕される

ttps://leia.5ch.net/test/read.cgi/poverty/1634641420



J-CASTニュース : 「バカ市長」は名誉毀損 週刊新潮に賠償命令

「DQN」は名誉毀損 2ちゃん語が危ない : J-CASTニュース

警官「頭おかしい」の侮辱に1万円賠償命令 東京高裁 - MSN産経ニュース

女性への「デブ」発言で拘留29日の判決 - nikkansports.com > 社会ニュース

慰謝料70万円

「年が離れており女として見たことはない」

ttp://news.5ch.net/test/read.cgi/newsplus/1021632303/

ネット中年女性を「BBA(ばばあ)」呼ばわり、法的問題はないの?

デブ妖怪BBA」という投稿違法としつつ、「欲求不満ババア」は違法ではないとしたものがあります

ttps://www.bengo4.com/c_23/n_15422/



ポリコレ】「オタクバカにしてる!」…ネタ批判芸人を蝕む“ルッキズム” 「ハゲデブ、ブス」も自粛ムード★2

ttps://asahi.5ch.net/test/read.cgi/newsplus/1640584796/

胸が大きい・小さいはセクハラ、髪が多い・少ないはセクハラ!?

「胸が大きい」と職場女性に…男性職員処分 女性「やめて」と言うも、スマホわいせつ画像を見せてきた

ttps://www.saitama-np.co.jp/news/2022/03/31/06.html

「はげ」発言セクハラ認定 英雇用審判所が判決

2022-07-03

ワクチン推進派さ。いい加減にしろ

https://www.buzzfeed.com/jp/naokoiwanaga/covid-19-taiwan-1

まーたワクチン推進派の君たちの反応には驚かされたよ。「ワクチン未接種者の多くが亡くなっています」この記事に出てくる医者バズフィードも製薬利権側だからこうゆう事言うのは分かる。

ただ良く見てみろよ。全くうっていなかった人が79人、1回うった人は9人、2回うった人は21人、3回うった人が43人。だ・け・ど、死者のうちの152人中83人が80歳以上なんだよ。

君たちさ80歳以上のご高齢の方は弱毒化してるとはいえ、オミクロンに罹ったらひとたまりもねーの分かるよね?しかも、この83人の80歳以上の未接種者達全員が、なんの持病も抱えてない健常者だったと本当に思いますか?少なくとも、そんな細かいデータは、ここには無いな。

https://vdata.nikkei.com/newsgraphics/coronavirus-vaccine-status/

https://ourworldindata.org/explorers/coronavirus-data-explorer?zoomToSelection=true&time=2022-01-10..latest&facet=none&pickerSort=asc&pickerMetric=location&Metric=Confirmed+deaths&Interval=Cumulative&Relative+to+Population=true&Color+by+test+positivity=false&country=JPN~TWN

ちょっとワクチンを疑いながらデータ見ろよ。台湾は2回接種が82%で3回目が69%だ。「打てば打つほど感染してる」って見方もできるわけ。100万人あたりの死者数で見たら台湾日本を越えてるってデータもある。

これだけ見ても、ワクチンに原因がある可能性が高いの分からいかな?

https://www.sciencedirect.com/science/article/pii/S027869152200206X

https://www.medrxiv.org/content/10.1101/2022.04.18.22271936v1.full

医学的にも考えてみる。この二つの論文mRNAワクチンを打てば、自然免疫抑制されることを示しているし、mRNAワクチンを接種するとコロナ感染してもNタンパク質抗体ができにくくなる事も示してる。免疫抑制されるし変異の早いSタンパクのみの抗体しが作られないってことだよ。つまりワクチンに頼る限り永遠にイタチごっこが続くことが示唆されてるわけ。

何がデマ情報だよ?君達4回目も5回目も喜んで打つわけ?

何度も言うよ。変異の早いスグに消えるような、Sタンパクのみの抗体を君たちは作り続けてるわけ。それどころかmRNAシュードウリジンによる免疫抑制効果弊害を打つたびに受け続けてるわけ。今若くて、なにも問題ないように見える人でも3回接種してる時点で随分と細胞破壊が進んでるんだよ。抗体依存感染増強(ADE)の可能性も打つたびに上がるわな。

ちょっとはてぶの、ワクチン推進派にはうんざりしてる。何も調べてねーだろ?2020年から今まで、免疫学の教科書すら開いたこと無いだろ?今回のCOVID-19は間違ったことを言ったら恥をかくとか、そのレベルの話じゃないんだよ。このまま信じたいモノを信じ続けたら、待っているのは死だぞ。マジで

漫画みたいな話で信じられないかもしれないけど、今随分ヤバイこと起こってるよ。

2022-06-26

家具マップ

約 19,500 件 (0.79 秒)

”カグマップ

約 19,500 件 (0.72 秒)

次の検索結果を表示しています: ”家具マップ

元の検索キーワード: ”カグマップ


”カグマップ

1 件 (0.18 秒)

もしかして:家具マップ

ポ ッ ト ベ ト ル - 5ちゃんねる

http://hibari.5ch.nettest › read.cgi

53 :以下、名無しにかわりましてVIPがお送りします:2011/08/27(土) 00:36:56.01 ID:lMg5FcTp0: カグマップ; 54 : 忍法帖Lv=13,xxxPT】 :2011/08/27(土) ...

ふふっ

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