はてなキーワード: スクリプトとは
コンテキストメニュー開いたりリンククリックしたり、なにかするたびにhrefが書き換わって
URLのコピーすらままならないゴミ仕様すぎるのがうざすぎたので、なんとか対策した
対策をうたうuserscriptも入れてみたけど、きちんと対応できていないっぽかったので、スクリプト参考に独自に対応した
公開したらGoogleがまた更になんか余計に対策すると思うので、俺だけ使います
URL書き換えるとか頭いかれてるだろ。なんでみんな平気なんだろう。visited の色が書き換わったり、ブラウザの履歴が https://www.google.com/url?で汚染されたり、右クリックからのコピーとかアドオンへの転送とか気にならないのだろうか
※この記事に池っち店長を誹謗中傷する意図はなく、またゲートルーラーに対して悪意を持って不利益を被らせる意図はありません。
みな様ゲートルーラーを楽しんでおりますでしょうか。私はカードこそ持っていないものの、Twitterでたまに検索をかける等して楽しんでおります。
さて、私は数年ではありますが一応ITエンジニアという肩書で働いており、色々なシステムを見てきました。今回のゲートルーラーのデッキメイカー騒動はエンジニアの視点から見ると大変面白くなっている為、こうして書き残そうとした次第であります。
以下は全て推測となりますので、ご了承ください。
①4/13の状況
ゲートルーラーの公式Twitterから原因の第一報が放たれました。どうやら『DNSの登録・反映に時間がかかっている。』のだそうです。
私個人の感覚ですが、DNSの登録や公開は最後の最後、つまりサーバに資材(プログラム)を配置してTomcat等を起動し、ローカルホストからの接続が確認できた後にやる作業だという認識があります。何故なら、資材の配置をせずにDNSを公開した場合、ユーザが公開されたURLにアクセスしても『404』のエラーを返すだけになってしまうからです。※すみません、一般のWebサイトの公開には立ち会ったことがなく、間違っていれば言ってください。
ですのでデッキメイカーの公開はあと一歩のところまで来ていると認識していた人が多かったと思います。
ちなみに、9/9に公開された『デッキメイカー遅延の原因について、ご説明とお詫び』には資材を『gateruler.jp』にアップしようとしている画像が掲載されていますが、仮にデッキメイカーを『gateruler.jp』を同じドメインのURL、例えば『gateruler.jp/deckmaker』に作ろうとしていた場合は、そもそもDNSの登録は必要ありません。
②4/15~5/19の状況
ゲートルーラー公式Twitterから続報がありました。原因不明の問題でアップロードできず、専門家と解決にあたっているとの事です。
私はてっきり4/13の段階でもうサーバに資材がアップロード出来ていると思っていたので驚きました。
アップロードができないということはファイル容量の問題やネットワークの問題、サーバが起動していない等が考えられます。
③9/9 今回の騒動。
公式サイトに『デッキメイカー遅延の原因について、ご説明とお詫び』がリリースされました。
とても読み応えのある文章と共にスクリーンショットが数枚貼られています。大事な部分はレンタルサーバのサーバパネルと、その下のスクリプトです。
まず、『「アップロードしようとするとエラーを表示する画面が出る」というアプリケーションがAによって仕込まれていました。』とありますが、スクリプトを見るにこれが仕込まれていたのはデッキメイカーのアプリケーション自体ではなく、サーバに資材をアップロードするHTMLファイルです。ですがこれはおかしな話です。ゲートルーラーは『Xerver』と言われるレンタルサーバを利用しているとみられますが、このサーバパネルは『Xerver』が提供しているサーバを管理する画面と考えられるので、そこにスクリプトを忍ばせる余地は無いはずです。スクリプトを忍ばせるなら、このサーバパネル画面のHTMLをローカルに保存し、HTML内にスクリプトを記述して、そのHTMLをブラウザで表示する必要があります。画面にはURLが映っておりませんが、恐らくローカルにあるHTMLをそのまま表示しているからではないでしょうか。
もし仮に解決にあたっている専門家が居たとして、資材がサーバにアップロードできない問題を1ヶ月かけても解決できないのであれば、それは素人と言わざるを得ないです。そもそもローカルのHTMLを直接開いている前提からおかしな話なのですが、雑なスクリプトが仕込まれたこの画面を見て原因の切り分けを行わないエンジニアはほぼ居ないでしょう。
ちなみに『Xserver サーバパネル』で画像検索するともう少しリッチな画面が出てきます。不思議ですね。
※ここに書いている事は推測にすぎません。真実を知っているのはあの人だけです。
彡(゚)(゚)「ちょっと今日は皆にお願いしたいことがあって来たんや」
彡(;)(;)「なんJ民は『なんG』って板に活動の場を移したんやけど 昨日からスレを建てども建てどもスクリプトが湧いてきて実況もままらない状況なんや」
彡()()「しかもそのスクリプトは絵文字を連発するスクリプトで、容量を圧迫してしゃーない…」
彡(●)(●) 「このままではワイら存続の危機や…絶滅してしまうかもしれん」
彡(^)(^)「せやからちょっとの間ここをなんJ民に間借りさせて欲しいんや」
彡(゚)(^)「あんさんら人口減に悩まされとるんやろ?血気盛んななんJ民が流入すれば賑やかになってよりよいSNSになるで!」
彡(^)(^)「そういうことで ええ返信待っとるで!ほな!!」
Vue.jsはhtmlのような一度記述するとファイルを更新するまで記載内容を変えられないようなファイル(静的ファイルと言います)をユーザーがボタンなどの操作を行うことで、Google Chromeなどに表示された後でも、htmlの内容を随時更新させるような仕組みを提供してくれるツールです。
HTMLは構造体と呼ばれる設計図ですが、Vue.jsというのはJavascript(ジャバスクリプトと呼びます。Java(ジャバ)ではありません。メロンとメロンパンくらい意味が違います。)とよばれるスクリプト型のプログラム言語をより書きやすく、かつ使いやすくした新世代のJavascriptの一種です。
諸事情からアカウントを転生しなければならなくなったら、新アカウントにtwitterサークル機能が実装されていた。
テスト実装当時から割とマイナスっぽい意見が目立ってるが、自分は便利に使っているので、雑感を書いておく。
・タイムライン検索からくるアカウントを実質シャットアウトできる
例えば「この先生きのこるには」みたいなツイートにやってくる「きのこ大好きbot」(※同様のアカウントが実在していたら申し訳ない)みたいな、明らかに文脈を読んでないようなスパムやbotアカウントからの反応が来なくなる。ツイログやtogetterではサークル機能を使ったツイートが表示されるみたいだが、そういうアカウントはタイムラインの検索だけのプログラムやスクリプトを組んでいるので、ツイログからわざわざやってくることはない。謎通知が減ってとても快適。
あと、平たく言うと「検索除け」にもなる。自分が所属しているのはちょっと込み入った界隈で、エゴサ及びタイムライン検索が活発なジャンルなんだけど、「エゴサはしてほしいけどタイムライン検索には引っかかってほしくない」ときに便利。エゴサをしていると公称している人間と関係者をサークルにぶち込んでいる。
たまに見るvote垢やビルボ垢(詳しくは各自検索)も検索の邪魔なだけなので、サークル機能で検索除けしてくれないかなと思っている(今は見かけたら全てスパブロ報告している)。
上の理由の派生っぽいけど、一応別立て。該当者がタイムライン検索から来たり、ツイログから来たり、「ツイートと返信」欄を根こそぎ観察していると思しき行動があって、対処にめちゃくちゃ手を焼いた。転生理由がまさにこれ。(これ以上の説明は控えさせてください)
まあこれも同様に、タイムライン検索がシャットアウトできる時点で一定の効果はある。ツイログは取らなければok。取りたい場合は他のサービスを使って、プロフ欄にリンクを貼ったりしないこと。
ただし、ストーカーしてくる人間がこの程度の目くらましで発狂が進むタイプだと逆効果なので、よく見極めて使うこと。少なくとも自分には効果があった。
ストーカーもスパムbotも等しく絶えるべしとは思うが、twitterのバルスには限界があるので、このような機能を実装したのかもしれない。
つまり、サークル機能は「特定の最大150人に向けてツイートする機能」ではなく、「特定の最大150人以外から、タイムラインの指定ツイートを見えなくする機能」として理解した方がいいのかもしれない。
midjourneyはpinterestのような人の目が入っているか、クオリティが高いか、ランキング上位の画像を集めてきているのでは。
Stable Diffusionは単純にスクリプトで集めてきた感じ。玉石混交。
多分ここがワクワク感の差になっている気がする。
ああなんか面白いことないかな?片づけ?断捨離?なんでもいいから執筆すること?分解清掃とか楽しそう。こうやって毎日毎日こちょと書いている中身を元に半自動的にYoutube動画を作るスクリプトかなにか生成したい。それでもって収益化できるところまで持ち込む。ひたすらパン食っているところだけのおっさんYoutubeもおそらく収益化成功しているよだ。それみると、収益化ってそんなに高いハードルでもないような。stable diffusionとかいうの使いこなせるようになると文字だけの情報から適当に描いてくれるのか?大量生成させてそれらを元に紙芝居風の動画(スライドショー)に仕立てればいい。
勝手に 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')); })();
自動で安価をつけて返信するプログラムでもこんなに長く複雑になる(一部抜粋)
/**************************************
以下のCSV_DIR, FILE_PATHS, SETTINGSを書き換えてね。 <h3>o- *************************************/</h3>
//CSVファイルが置かれてるディレクトリのパス。投稿前にエラー出たら大体ここの設定ミス。 例:"C:\\Users\\sakuraimasahiro\\Documents\\iMacros\\Macros\\rentou\\";
'C:\\Users\\USER\\Desktop\\iMacros\\Macros\\rentou\\';
//ファイルのパス。CSVは絶対パスで、拡張子も必要。iimは相対パスでよく、拡張子不要。
const FILE_PATHS = {
textCsv: CSV_DIR + 'textNoAnker.csv',
//レス用投稿文が書かれたCSV。通常とレス用で分けないなら同じファイルを使えばいい。
replyTextCsv: CSV_DIR + 'textReply.csv',
};
baseWaitTime: 5,
//baseWaitTime+0~waitTimeRange(ランダム)だけ待つ
waitTimeRange: 5,
//連投しすぎだと忠告された場合に処理を一時停止させる時間(秒)
waitTimeForAvoidingPunishment: 60 * 30,
//メール
mail: 'sage',
//名前設定
name: '',
//以下、偽装ワッチョイ設定。浪人でワッチョイを非表示にしてるときだけtrueにしてね。
//妙なニックネーム(ワッチョイ、アウアウウーなど)をランダムで決めて付加するかどうか。true=付加する。false=付加しない。
//妙なニックネームの後に付く8桁の文字列をランダムで決めて付加するかどうか。
},
//アンカー無し投稿をするならtrue。しないならfalse。noAnkerPostかreplyPostのどちらかはtrueにすること(両方trueでもOK)。
//アンカー付き投稿(返信)をするならtrue。しないならfalse。もしnoAnkerPostとreplyPostの両方がtrueの場合、投稿は返信が優先され、返信対象が見つからなくなったらアンカー無し投稿をする。
//最初に取得するアンカー無し投稿文CSVファイルの行番号。もし返信用と同じCSVファイルを使うなら-1と入力。
noAnkerPostTextCsvStartRow: 1,
//最初に取得する返信用投稿文CSVファイルの行番号。もしアンカー無しと同じCSVファイルを使うなら-1と入力。
//テキストCSV/返信用テキストCSVの取得行が最終行に達したら最初の行まで戻るかどうか。true=戻る。false=マクロ終了。
//返信する場合、これより小さなレス番には返信しない。返信を投稿すると、この数値は前回の返信先のレス番に更新される。
minAnker: 895,
//返信する場合、名前に以下の文字列を含む投稿にアンカーをつけて返信する(ワッチョイやIPなど名前フィールドにあるものならなんでも可)。配列で複数指定可能。指定無しなら空配列([])。filterNamesとfilterNamesNotIncluded共に無指定ならレス番1から順に返信していく(minAnkerが設定されてればそこから順に)。以下のfilter系は全て併用可能。
//↑とは逆に、名前に以下の文字列を含まない投稿にアンカーをつけて返信する。↑と併用も可能。
//返信する場合、本文に以下の文字列を含む投稿にアンカーをつけて返信する。
filterText: ['自演かな', '自演わらわら', 'スクリプト使うの', '安価ガバ', '>>660', '自演で擁護', '最後' ,'あいうえお', 'かきくけこ', 'さしすせそ', 'なにぬねの', 'はひふへほ', 'まみむめも', 'やいゆえよ', 'やゆよ', 'らりるれろ', 'わいうえを', 'わをん', 'わいうえをん'],
},
//自分のIPアドレスの確認。VPNとかでIPを変更してマクロを動かしてるとき、突然VPNが作動しなくなってIPが元に戻ったときにマクロを止めるためのもの。
//以下の文字列が自分の現在のIPアドレスに含まれている場合、マクロを一時停止する。基本的に自分の本当のIPアドレスを入力。
},
//浪人設定。最後に動作を確認したのは5年くらい前で、今も同じように動作するかは、浪人を持ってないから確認できずわからない。
//浪人にログインしてるかどうかをチェックするかどうか。trueならする。falseならしない。trueにしていてもし浪人にログインしていないことを確認したらログインしにいく。
password: '1234',
},
};
/**************************************
設定箇所終わり。
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>
/**
* ここから始まる。
*/
checkSettings();
var _TextCsvCursors = new TextCsvCursors(
SETTINGS.postSettings.noAnkerPostTextCsvStartRow > 0
? SETTINGS.postSettings.noAnkerPostTextCsvStartRow - 1
: SETTINGS.postSettings.noAnkerPostTextCsvStartRow,
SETTINGS.postSettings.textCsvLoop,
),
SETTINGS.postSettings.replyPostTextCsvStartRow > 0
? SETTINGS.postSettings.replyPostTextCsvStartRow - 1
: SETTINGS.postSettings.replyPostTextCsvStartRow,
SETTINGS.postSettings.textCsvLoop,
),
);
var _LoopStatuses = new LoopStatuses(0, SETTINGS.postSettings.minAnker);
const _MyPosterName = new MyPosterName({
name: SETTINGS.nameSettings.name,
});
const _ThreadUrl = openPromptThreadUrl();
//ループ
while (true) {
SETTINGS.ipSettings.checkIp && checkCurrentIpNotTheIp();
//スレを開く
openUrl(_ThreadUrl.fullUrlHttps());
//浪人にログインする設定なら、浪人にログインしているかどうかを確認し、していなければログインしにいく。
if (SETTINGS.roninSettings.checkLogin) {
}
}
if (SETTINGS.postSettings.replyPost) {
const targetAnkerNumber = createPostDOMList()
.filterPostnumberHigher(_LoopStatuses.currentMinAnker())
.filterByPostername(SETTINGS.postSettings.filterNames)
.filterByPosternameNotIncluded(
SETTINGS.postSettings.filterNamesNotIncluded,
)
.filterByText(SETTINGS.postSettings.filterText)
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) {
//投稿。
nickname: SETTINGS.nameSettings.nickname,
korokoro: SETTINGS.nameSettings.korokoro,
area: SETTINGS.nameSettings.area,
}),
SETTINGS.mail,
p.text,
);
//_TextCsvCursorsと_LoopStatusesを更新。
_TextCsvCursors = p.updatedTextCsvCursors;
_LoopStatuses = p.updatedLoopStatuses.incrementPostCount();
`投稿回数: ${_LoopStatuses.currentPostCount()}`,
`minAnker: ${_LoopStatuses.currentMinAnker()}`,
`今回アンカー無し投稿取得行: ${_TextCsvCursors.currentRows().noAnker}`,
`今回アンカー有り投稿取得行: ${_TextCsvCursors.currentRows().reply}`,
]);
} else {
`返信対象が現われるのを待機中...。`,
`投稿回数: ${_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 メール
*/
serverName,
postMail,
_MyText,
retryTimes = 0,
) {
const r =
retryTimes === 0
? new ValuesOfPost(serverName, _MyPosterName, postMail, _MyText).post(
postTo5chTread,
)
serverName,
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();
serverName,
postMail,
_MyText,
retryTimes + 1,
);
} else if (error.order === 'WAIT') {
wait(SETTINGS.waitTimeForAvoidingPunishment);
serverName,
postMail,
_MyText,
retryTimes,
);
} else if (error.order === 'LOGIN') {
serverName,
postMail,
_MyText,
retryTimes,
);
}
return;
}
/**
* 現在のIPアドレスに、SETTINGS.ipSettings.avoidTheIpの値が含まれていないことを確認する。含まれていたらマクロを一時停止。
* @returns
*/
function checkCurrentIpNotTheIp() {
openUrl('https://www.cman.jp/network/support/go_access.cgi');
const _IpAdress = createIpAdressFromCMan();
if (_IpAdress.includes(SETTINGS.ipSettings.avoidTheIp)) {
pause('現在のIPに指定した値が含まれていることを確認。');
}
return;
}
/**
* @returns
*/
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を受け取る。
*/
function openPromptThreadUrl() {
const url = prompt('スレURLを入力');
}
/**
* 開いてるスレのレス全て読み取ってPostListインスタンスを作って返す。
* 重すぎるので使うのやめ。どうやらインスタンスの大量生成が原因な模様。
*/
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');
for (let index = 0; index < posts.length; index++) {
//HTMLCollectionからElementを1つずつ抽出して配列に。
arrPostDOMList.push(posts.item(index));
}
return new PostDOMList(arrPostDOMList);
}
/**
* 開いてる投稿結果画面に表示されてるエラーを読み取ってPostErrorMessageインスタンスを作って返す。
*/
function createPostErrorMessage() {
window.document
日 | 記事数 | 文字数 | 文字数平均 | 文字数中央値 |
---|---|---|---|---|
01 | 2259 | 238776 | 105.7 | 46 |
02 | 2358 | 272729 | 115.7 | 48 |
03 | 2940 | 332898 | 113.2 | 44 |
04 | 2579 | 301193 | 116.8 | 48 |
05 | 2608 | 246778 | 94.6 | 44 |
06 | 2411 | 235859 | 97.8 | 42 |
07 | 3105 | 286484 | 92.3 | 38 |
08 | 4651 | 362242 | 77.9 | 34 |
09 | 3645 | 303511 | 83.3 | 41 |
10 | 3631 | 325017 | 89.5 | 40 |
11 | 3169 | 296266 | 93.5 | 41 |
12 | 3395 | 321286 | 94.6 | 41 |
13 | 3140 | 315903 | 100.6 | 45.5 |
14 | 3648 | 309128 | 84.7 | 42 |
15 | 2546 | 274823 | 107.9 | 43 |
16 | 2518 | 247686 | 98.4 | 47 |
17 | 2339 | 241855 | 103.4 | 46 |
18 | 2799 | 284198 | 101.5 | 45 |
19 | 2502 | 267449 | 106.9 | 44 |
20 | 2998 | 312061 | 104.1 | 47 |
21 | 2794 | 299714 | 107.3 | 42 |
22 | 2425 | 271356 | 111.9 | 45 |
23 | 2210 | 229472 | 103.8 | 48 |
24 | 2279 | 212924 | 93.4 | 39 |
25 | 2280 | 202621 | 88.9 | 41 |
26 | 2744 | 229695 | 83.7 | 39 |
27 | 2447 | 226366 | 92.5 | 40 |
28 | 2704 | 262568 | 97.1 | 44 |
29 | 2285 | 206652 | 90.4 | 40 |
30 | 3661 | 242072 | 66.1 | 26 |
31 | 2488 | 221778 | 89.1 | 39 |
1月 | 87558 | 8381360 | 95.7 | 42 |
■バンド名っぽいIT用語をたくさん教えてクレークレー /20220724140709(126), ■男の人ってなんで占い嫌いなんだろ /20220719145503(107), ■エロ漫画が性犯罪を助長してた /20220720134218(104), ■配偶者がごはんを食べない /20220728081325(76), ■そろそろ若者が知らなそうなCM /20220731143803(64), ■新築のトイレで揉めている /20220731004837(61), ■レベルという概念のあるゲームが完全に時間の無駄に思えてきた /20220616231129(59), ■京都人ディスりはいい加減うんざりするのでやめて欲しい /20220630133829(56), ■看護師になった妻が泣きながら帰ってくる /20220719173639(54), ■しかし山上は歴史に残るShootingだったよな /20220714231019(54), ■恋愛弱者大学生がなぜ恋愛は無理ゲーなのか書く /20220724042108(53), ■ニートを養えない親って幼稚すぎるよな /20220702233906(53), ■みんなの仕事のやらかしを教えてほしい /20220704213243(52), ■女子スポーツを観る理由について /20220523091700(51), ■「表現自由派」と「表現規制派」の対立など存在しない /20220701074807(48), ■ファッションに興味ない人がダサい服装してるのが意味わからない /20220311005809(46), ■婚活苦戦してるので相談所婚活の楽しくない話もする /20220703110217(46), ■教養を身に付けられる本を教えて欲しい。 /20220720124155(46), ■(追記有)子供の性欲をどうやって解消するか /20220721111925(46), ■フェミ界隈のトランス差別どうにかなんないかな /20220727150950(43), ■妻が聞きにくる夫婦が圧倒的に多い /20220713145909(43), ■男性にピルについて知ってほしい /20220712225602(41), ■婚活で会う整ってない顔の人を好きになりたい /20220711074058(41), ■思い出のゲームあげていけ /20220708135130(41), ■anond:20220719145503 /20220720085631(39), ■誤字報告は有難いけど、チェックは頼んでないんだよなぁ… /20220720110433(37), ■ /20220729194901(37), ■山上はもうヒーローだろ /20220718205658(37), ■「正しさ」に窒息しそう /20220702070421(36), ■戦国時代にドローンとジャベリンがあったら /20220724103302(36), ■はてブは性格が悪い人向けのサービスであることに気付いた /20220712195741(36), ■GAFAMで言えない言葉 /20220726084330(35), ■主人公の初体験が描かれている漫画 /20220723224334(34), ■地獄をナメるなよ /20220724075709(33), ■5chがスクリプト荒らしと運営の無能によって崩壊しそうでヤバい /20220710104348(33), ■結局さ女の人って男が「セクハラ加害者になること」をどれだけ恐れてるかってのがわかってないんだよね /20220727134248(33), ■おばあちゃん死んでくれ /20220704060506(33), ■男だが生理の話がオープンではないという感覚が正直よくわからん /20220728110543(33), ■フェミと喧嘩したレズの日記 /20220725152520(32), ■フィールド変えても2発目当てる漫画家ってやっぱすごいなと思う /20220722101743(32), ■おっさんオタク、共通話題(Vtuber)についていけずしんどい /20220731045836(32), ■イラストで陰毛を描くのをやめろ /20220719163442(32), ■anond:20220712001212 /20220712051434(31), ■シャングリラとかいうとりあえずタイトルにされるよくわからない概念 /20220721102555(30), ■SNSやブコメでの素人の的外れっぷりがひどいと感じたことある? /20220720094615(30), ■自分の周りはみんな投票行ってるのになんでこんなに投票率低いの? /20220710231243(30), ■カルトかどうかよりお布施を制限したほうが良くない? /20220720161035(30), ■30代前半の若者だけど安倍首相には感謝の気持ちしかないよ /20220712182846(30), ■1980年代生まれで90年代後半~00年代前半に若者だった世代だけど今どきの若者からしたらキチガイ人物扱いなんだろな /20220703132033(30), ■消費者金融やキャッシング枠を使った事がある人の体験談が聞きたい /20220720101306(30), ■ガチで日本って終わった?建前とか /20220729060006(30)
S 爆サイ民
B 嫌儲民
E ネトウヨ
現在はなんGがメイン
「最後にレスした方が勝ち」という特殊ルールを採用したフィールドで戦闘を行っているため
屁理屈の王
他では許されない長文を繰り出し論理とお気持ち表明を混ぜて相手への口撃を行う
『チョコエッグ』や『クンニ』等 劣勢になった際の誤魔化し手段も豊富
底辺。
斜陽になってきた日本においては価値観が合致する者が増えてきており
思想も極端な方向で統一が取れておりネトウヨやレイシストが大量にいる
今やすっかり過疎
古いノリを許容しているが故に寛容な部分がありレスバも少なくなってきている
放っといてあげよう
割と好戦的だが根本的な話 思想を管理人に操作されていることに気付いていない
最弱
『レスバが発生し得るのに場がレスバに適していない』という重大な欠陥を抱えている
逆に横から同意するレスを飛ばしたりしても自演扱いされてしまう上 自演を証明できない
これを使用して「俺はこれだけ支持されているんだ」と誇示できたりできなかったりする
スレの流れに沿わない発言をすると複数人から通報されIDが顕になるという謎のシステム
つまり気に食わない意見をとっとと排除してしまう仕組みのためレスバどころの話ではない
そもそもの話ふたばは他のSNSと比べて返信が激烈にやりにくい(文章を丸々引用する必要がある)