はてなキーワード: BBSとは
ここもBBSみたいなもんだな
を書いた増田です
sds-page 一意性が担保されてればリアルと結び付ける本人証明は不要かな。匿名性も実現できるし。ガス代も登録時に100回くらい発言できるだけ配布すればあとは自身の発言NFTを売って稼ぐとかでもいい
少し考えてみた感じ、そのプラットフォーム自体に本人証明が無くても、発言した本人が任意で他のプラットフォームと紐づけて「誰がそれを言ったか(議論においては当面重要な要素だと俺は思ってる)」が分かるようになれば俺としてはオッケーな気もするので、ちょっと検討してみるよ
まあとにかく検討はする
発言NFTで稼ぐっていうのも最初は「ん?」ってなったんだけど、やりようによっては書籍とかでクローズドに主張を展開して稼がれるよりよっぽど健全かもしれないし、人も集まるかもな
正直個人的にはNFTまわりと元記事の要件絡めると(本人証明無いとしても)実現可能性が全く見えなくてすげえハードル上がるんだけど、要件は絶対じゃないし、面白そうだしやるよ
cinefuk 議論と言いつつチーム戦でワーワーやって、荒らし行為や恫喝・脅迫も出て「皆が立ち去ったあと最後まで立っていたものが勝利者」みたいなBBSが大多数。議論には公平な調停者・司会者が必要で、そのモデルは裁判所では
個人的にはプラットフォームの作り方・在り方次第かなと思うので、細っちょろい腕の見せどころ
法曹とかの専門家じゃないので間違ってたら本当に申し訳ないしボロクソに指摘して欲しいんだけど、裁判所は議論の場として参考になるところとならないところがあって、一概にモデルにはできない
なんかは参考になる
なんかは参考にならない
一応補足しとくと、裁判所を悪く言ってるわけじゃないし、参考にならないところも「じゃあどうしよう」って考える材料にする
公平な調停者・司会者を獲得するには、まず「公平な調停者・司会者とは?」の議論をちゃんとするところから始めなきゃいけないと思う
それは議論の場を作った次のフェーズの話になるので、現状のフェーズでは個人的には不要
そもそもモデルって言葉自体がすげえ多義的だから、俺の解釈違いで「参考にできるところだけ参考にすればいいんだよ」っていう話なら承知した
俺みたいな色んな方面で素人な奴が一人で作るより、色んな人がそれぞれの立場で各々の考える「みんなに議論を促す場」を作って欲しいと思ってずっと増田に書いてる
なんでそんな議論させたいの?みたいな話は↑の元記事の方に書いてるので読んで欲しい
そんでツッコミどころあったら教えて欲しい
俺は大昔に自作小説サイトを運営してたことがあって、こう言ったらあれだが、結構人気があった
という謎の自己肯定感の源になっていた
……が!
つい先日なんか胸騒ぎがして、昔のパソコンを漁って当時の小説を発掘して読み返してみた
それで、あ〜…ってなってしまった
文章自体は学生としてはまあまあよく書けていると思う、問題は内容だ
いや内容自体に罪はないのだが、もしやこれ、BLとして人気だったんでは!?、と今更ながらに気づいた
サイトのメインだった学園ミステリーも、長期掲載してたラノベっぽいやつも、いずれもバディもので
主役の男たちが深い信頼に基づいて助け合い、尊重しあい、関係を深めていた
こちらの意図としてはもちろん、彼らをヘテロ男性として描いている
この直感を裏付けるものがないかと、当時のBBS(懐かし…)のログを探して感想をピックアップした
実は俺は腐女子の妻と結婚しており、今ではそちら方面への理解が深まり、アンテナも磨かれている
その上で当時の感想を読み返した
「これからの2人の進展が楽しみ」
「このシーンの〇〇の反応が可愛い」
ストーリーへの言及はとても少なく、キャラクターの関係性についての感想がほとんどだった
恋愛や性愛に関する直接的な発言は少なかったが、今の俺にはこの当時の女性ファンたちが濃厚なBL愛好家だということが手にとるようにわかった
妻と同じ匂いがするのだ
そういう意図じゃないんだけどな〜とは思うけど、作品を好きになってくれたのは嬉しいことだ
ただちょっと怖いのは、俺はもしかして当時チヤホヤしてくれた腐女子の雰囲気が脳裏に染み付いたまま生活し、10年後に腐女子と出会ったらそのイメージが爆発して恋に落ち、そのまま結婚までしてしまったのではないかということだ
自動で安価をつけて返信するプログラムでもこんなに長く複雑になる(一部抜粋)
/**************************************
以下の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
↓てな具合なのでそういうプログラムが作れるだけでも社会の平均?中央値から見れば立派立派
500動け動けウゴウゴ5ちゃんねる2020/06/14(日) 12:57:52.17ID:6qfdYEVd0>>501
規制が有効なBBSでスマホからアクセスするとsmartphone_idなるjavaが存在する。
501動け動けウゴウゴ5ちゃんねる2020/06/14(日) 20:35:49.18ID:gDZ1+EG90>>505
https://www.applican.com/tutorial/p11/index.html
こういうのね
偽装もし放題なんだが
505動け動けウゴウゴ5ちゃんねる2020/06/16(火) 21:36:47.88ID:KpWEJQvH0
脳をもっとオーバードライブすれば尾ひれがくっつきまくった文章であっても読めるようになるはずだし俺はそういう文章に向き合い理解しようとする胆力こそが現代人に欠けているものだと考えている節もあり一言二言の短文で済んでしまうネットのコミュニケーションは他人の意図を深く斟酌するということがなくなった呼吸の浅い上っ面しか理解できないコミュニケーションによって空気が支配されていく世間に傾いていくことを深く危惧するものであってそのような脊髄反射的なものではなく深い呼吸の末やりとりされる非チャット的な言わば返信が遅いBBS的なスローな文字コミュニケーションこそ人間の知性を育み冷静で建設的な議論を可能にするものだと思うのでこの無駄にクソ長ったらしい嫌味な文体がその能力の改善に寄与するという根拠はまったくないものの少し複雑なものを理解しようという心構えのようなものを芽生えさせる意義が2.5ミリくらいはあるのではないかあるいは文章中にぶち込まれたくっだらない思考停止を誘発するワードにひっかかってそこに囚われて本論を見失ってしまうような悪癖を修正するきっかけになるのではないか(例えば無駄に意識高そうな横文字が入ってくると拒否反応レスばかりで埋まるブコメなどを見たことがあるだろう)とそのように考えているからこのように書いているといっても過言ではないというのは半分以上冗談である、アンダスタン?
ベランダに出たら鳥の声が聞こえたの。
ギャギャボッボッボッチギャッギャッ!パパポーチ!
みたいな。
なんかずーっと鳴いているから気になってそうだインターネットで調べてみよう!ってなって。
鳥 鳴き声検索
その中に最初の鳴き声は?みたいのがあって
「ギ」
って入力したの。
そんな馬鹿な。言語化できない適当な言葉でまさかヒットしないでしょう。
こんなんsiriも困るよ。
と思っていたら出てきた。
ページの下部にある鳴き声の音声を再生してみたら、これだ。
ビックリした。
ダイヤルアップやテレホ時代からインターネットに関わり、BBSの放牧的なやりとりやブラクラを踏んだ怖さまで経験し慎重になっていた。
SNSは基本見る専。発信する時は文章を推敲し写真は周りが特定されるものはアップしない。
めんどくさくなっていた。
特に嫌だったのが検索上位に出てくる意味のないページ。いかがでしたか?系。
それからは主に買い物やお店の情報を調べるだけの使用になっていた。
でも今回久しぶりにインターネットすごい!ってなった。
インターネットがなかったら図書館で図鑑を片っ端から開いたり、地元の鳥に詳しい人に聞いたり。
詳しい人を見つけたとしても
ギャギャボッボッボッチギャッギャッ!パパポーチ!って鳴く鳥はなんでしょ?とかはずかしくて言えない。
すごい!
やっぱりインターネットすごい!
よくいってくれた!!
いらんのよ、その情報
たとえば
昨日スーパー行ったら7時なのに総菜売り切れてびっくりした。
仕方なくしばらく行ってないラーメン屋に行ってみたら値上がりしてた上に具の量も減ってて萎えた。
これもインフレの影響なのかな?
てきな趣旨のコメントをするときにいちいち具体的な店名や地域を書くのが東京の奴ら
昨日桐のデリシア行ったら7時なのに総菜売り切れててびっくりした。
仕方なく高宮の凌駕に行ったら値上がりしてた上に具の量も減ってて萎えた。
征矢野から移転して以来行ってなかったからかなり久々だったんだけど。
これもインフレの影響なのかな?
それを平然とやるのが東京の奴らなんだよ
いいか?
これが許されるのはまちBBSか、近所のリア友としか繋がってないTwitterだけだ
全世界のだれでも見れるグローバルインターネットで無駄にローカルな地名をいちいち入れるんじゃねえ
契約してる1つのサーバで個人ブログとか昔ながらのBBSとかブラウザゲームとか種類が違うサービスをいくつも運営しているけど、サーバの運用方法が流石にレガシーすぎるからもうちょっとモダンな感じにしたいと思ってる。
でも中々抜け出せない。
まず前提としてAWS,GCP,Azureは高いから使えない、同スペックなら適当なVPSの方が圧倒的に安い。
最近流行りのコンテナ構成みたいなのもいくらDockerが昔のVMに比べるとリソース食わないと言っても例えば
「1つのサーバで10個のサービスを相乗りで運営しなければならない」みたいな場合に1サーバ内で何十コンテナ起動みたいなの運用すると流石に相当重くなっちゃうよなぁ。。。
あとnode.jsとかginみたいに1サービスごとに常駐プロセスが増える技術スタックも多分あんまりよくない、必要ポートを管理するのも大変
結局自然と行き着くのは格安VPS借りてLAMP構成作ってVirtualHostで相乗り設定して昔ながらの方法で運用する方法になっちゃう
php+apacheの構成ならアクセスの少ないサービスを何十個運用しようとアクセスがないならそれにリソース食われることがないんだよね、何気にLAMP環境の結構な強みだと思う
もっと良い方法見つけたいし、多分お金かければあるんだろうけど
月2000円以内くらいで多くのサービスを運用したいってなった場合に結局これ以外の選択肢ってなくない?
綾野辻子というアカウントのツイートが自分のTLにまわってきた。
【驚愕】オタクくんたちが大絶賛するサイゼリヤ、勉強のために行ってみたら...(4年ぶり) ヴィーガンが注文できるメニューが一切なし。私への配慮ゼロ。15分メニュー表見ても何ひとつ頼めない。なにこれ?もう怒りでお腹いっぱいになったので店員さんにメッセージ付き注文用紙だけ渡して帰宅した。 https://t.co/2lwYoK5bhe
https://twitter.com/FeminiVjp/status/1492453148807811077?t=WDhVHvnSB39FDkb50MuKXA&s=19
ダイヤルアップでインターネットを始めBBSでこてんぱんに論破された中学生の時から早25年。齢40になるおじさんからしてみると引用ツイートでも触りたくない垢。
ひょっとして、今の世代(15-30)位の子達のインターネットの行動範囲って狭いのでは?
我々(主語大きくしちゃうけど)はBBSから始まり、スタービーチ、mixi(初期)魔法のiらんどの様な個人サイト、2ちゃん、ニコニコ、テキストサイト、ブログ全盛期等の様々なインターネット経ているが、全てTwitterだけで完結しているインターネット弱者が多いのではないだろうか。