「NAmE」を含む日記 RSS

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

2022-11-23

ジャーナリスト重要と考えていること・各国比較

https://twitter.com/mizloq/status/1594608637208850434

https://twitter.com/mizloq/status/1594554415045742592

WJSの調査をまとめ直しただけなのだけれど、こういう視覚化が珍しかったのか、たくさんの反応ありがとうございました。

わたしが注目していただきたかたこ

https://pbs.twimg.com/media/FiEvYdVacAIZ4Rg?format=jpg&name=medium

あの表から読み取っていただけることはいくつもある中で、表を作ってTwitter投稿した者として是非注目していただきたかった点は次のとおり。

事実ありのままに伝える」がトップでないのはこの中で(中露も含めて)日本だけであること、「客観的な観察者であること」をきわめて重要/とても重要役割とする回答が少ないこと

この点はあとで少し詳しく書きます

政治的アジェンダを設定する」をジャーナリズムのきわめて重要/とても重要役割という回答が比較国中で異様に突出していること

「いま国民議論対象とするべきものはこれだ」「次の政権はこの論点で選ぶべきだ」を提示するのがマスメディアのしごとだ、ということですよね。この項目が上位に来るのは、世界67カ国調査ざっと見たところ、日本韓国だけです。韓国マスメディアについては詳しくないので触れませんが、日本マスメディアについては、その発祥と発展の経緯がこれに大きく関わっていると思われます

萬朝報が中心となって1901年に「理想団」が結成されて以降の日本マスメディアは、社会主義的な思想ベースに、自分たち役割

「より良い社会建設のために世論を醸成し牽引する」

と任じ、そうやって自らが牽引して作った「世論」にマッチした政治政府によって実施されるかどうかを「監視」していました。したがって、政府がその世論に従わなければ反政府権力的な言論を展開しましたが、政府世論どおりに運営されれば権力と一体化して少数意見封殺する言論展開を躊躇いませんでした。その尻尾がまだ残っているんだなあと、個人的にわりと感動したところです(褒めてません)。

アジェンダ設定のような能動行為は「客観的観察者であること」を大きく損ねますから、それをジャーナリズム重要役割とすることには拒絶ないし躊躇があるのが当然でしょう。日本以外のすべての国で「政治的アジェンダを設定すること」への重要認識が低いのはそのためです。

「人々が意見を表明できるようにする」をきわめて重要/とても重要役割とする回答が少ない

この「人々が意見を表明できるようにする」の原文は "Let people express their views” なので、「人々の意見を表明するツールとして自分たちメディアを使わせる」というニュアンスも含まれます世論を醸成し政策アジェンダ設定が重要と考えているくせに、いや、だからこそかもしれませんが、実際の「人々」の意見を汲み上げて報じることにはあまり重要性を感じていないわけです。120年前と同じように、「自分たちが良いと思う世論を作る」という意識なのだとすれば、そうでないさまざまな意見の表明はあまり好まないのも不思議ではありませんね。

政治リーダー監視と精査」 「時事問題分析提供」 「人々の政治的決定に必要情報提供」については、それらへの重要認識が高いこと単体に違和感はないし、しっかり頑張っていただきたいものですが、「事実ありのままに伝える」「客観的観察者」などを差し置いてそれ以上に重要と感じていることには強い嫌悪を覚えます

特に、「政策アジェンダを設定するのは自分たち重要仕事」とこれら3点がセットになっているのを見ると、吐き気すら催します。

たくさんのご意見に対して

全部に対応するのは無理ですが、いくつか類型化して主な反応にお答えしてみます

日本だけ異様というのはおかしい。各国それぞれなのでは?

はい。「お国柄はあるものの」と書いているとおり、この回答には各国それぞれのジャーナリズム歴史がほんのりと現れていて興味深いものです。大雑把に言うと、

という感じでしょうか。

それでも日本を敢えて「異様」と書いている理由は、この調査で「事実ありのままに伝える」トップにならない』の異常性です。

この項目は、ジャーナリズムを体系的に学んだ者なら誰でも気づく、他の約20の項目とは完全に異質の質問です。他の項目は「お国柄が出ますね」で済むけれど、この項目だけは別格です。

いわば、「あなたジャーナリストとして最も基本的動作を正しく重要視していますか?」とほぼ同じ意味の項目です。

無理やり喩えて言えばこの項目は、プロスポーツ選手

あなたにとって『勝つこと』は重要ですか?」

と問うような質問なのです。

「勝つことだけが重要ではない」「ほかに大切なことがある」という選手はいるでしょうけれど、「勝つことの重要性はあまり高くない」と答える選手はかなり少ないでしょう。そう答える選手が1/3も存在するチームを応援する気にはならないし、スポンサーになる気にもトトを買う気にもならないですよね。ほかにどんなに重要と思うことがあったとしても、実際に勝てないとしても、プロスポーツ選手である以上は「勝つことは大切」と思っていて欲しいじゃないですか。

まともなジャーナリズム教育を受けた人であれば誰でも、「事実ありのままに伝えることはジャーナリズムジャーナリズムであるための最も重要要件」と学びます

別の言い方で「ファクトとオピニオンを明確に区別せよ」とも言います

たとえば、40年ほど前に私が専攻していたジャーナリズム学科ジャーナリズム研究と並行してジャーナリスト実務者養成の要素が強く、1年間ずっと報道文の宿題を提出して「この表現客観的でない」「ここはファクトにオピニオンが混じっているからオピニオンを削れ。さもなくば明確に分けろ」と重箱の隅をつつかれ再提出させられ続けるという地獄のような講義がありました。

そういった養成訓練を受けた人なら、あとからどんな思想政治的干渉を受けたとしても「事実ありのままに伝えることはジャーナリストの最も重要仕事」という考えが覆ることはまずありません。だから、中露ですらこの項目はトップになるのです。

日本人にアンケートを答えさせると5段階の5をめったにつけないか・・・」という擁護も来ましたが、今回の表は4と5を合わせて集計したものですからその影響は小さく、現にたとえば「政治リーダー監視精査する」は堂々90%を超えていますから、その考慮必要ないでしょう。ていうかそもそも、仮にそうだったとしてもほとんど条件反射で「5」と回答して欲しい質問なわけですよこの項目は。日本ジャーナリストの1/3が、建前としてすらも「極めて重要/とても重要』と答えない。これは嘘吐きかどうかとはぜんぜん別の「恐怖」です。

そういう思いから、日本ジャーナリズムを「異様」と書きました。

残り35%は「事実かどうかはどうでもいい」「嘘を書いてもいい」と思っているんだな

それは情報誤読です。「事実ありのままに伝える」を重要と思っている度合いの相対的に弱い人が35%いるというだけです。その人たちが日常的に嘘を書いているというわけでもないし、逆に、重要と思っている人が嘘を書かないというわけでもありません。

・・・まあそうは言っても、たとえば「自分が伝えたいことや自分の設定したいアジェンダにとって都合の悪い事実があったときの行動」は違うだろうと容易に想像できますから、信用問題ではありますね。

日本ジャーナリストの65%が「事実ありのままに伝えるのは重要」と考えているなんて嘘っぱちだ。実際はもっと低いだろう》

それは情報誤読です。この調査は「あなた事実ありのままに伝えていますか」ではないので、ご希望の数値はここには表示されません。

米国の98%はただの厚顔無恥嘘吐き
欧米ジャーナリズムだってそんなに言うほど事実ありのままに伝えてなんかいないぞ

さきほどのプロスポーツ選手の喩えでいうと「勝つことが重要だ」と言いつつ練習サボり試合にもボロ負けする選手ですね。「勝つことが重要だ」という建前すら言わないで練習サボりボロ負けする選手よりはずっとマシだと、私は思います。まあ感じ方次第ですけど。

フェイクニュース日本よりも米国のほうが酷い

これは別のデータ等をもとに別に議論されるべきでしょう。もし感覚だけで言うなら、私はそうは感じていません。日本ジャーナリストには「ファクト」と「オピニオン」を厳密に分ける教育も訓練も不十分な人が多く、そのせいか、「ファクトのように読める部分にオピニオンが混じり込んでいる」というフェイクニュースではないけれどフェイクニュースよりもたちの悪い報道が多数見られます

読者・視聴者の側の問題もあるのではないか

現状の「原因」としては大きいと思います。ただ、読者や視聴者と異なりジャーナリストはそれを職業とする人々であり、現状への「責任」を同列に語るのは適切でないと考えています。原因と責任は別物です。

マスコミ左翼のすくつ
マスコミネトウヨの手先
マスコミ政府イヌ
マスコミ中韓下僕
マスコミ米帝下僕

ぜんぶ来ましたw どれも当たっていてどれも間違っているんだと思います

これらの評価罵倒)を言ってしまうのは、ご自分たちの考えと合致した世論喚起政策アジェンダを設定していく役割もっとからさまに言うと、ご自分たちにとって都合の良い機関紙としての役割ジャーナリズムに求めているからです。ジャーナリズム本来そのようなものではありません。「事実ありのままに伝える」を重視して「客観的観察者」の実践を続け「政策アジェンダを設定する」から遠ざかっていけば、ジャーナリズムがそういう評価対象になること自体もっと減るだろうと考えています

日本ジャーナリストが「報道自由度が低い」と言っているのと今回の表を見比べると興味深い

私もそう思います世界一般的ジャーナリストにとって「報道自由度が低い」とは「事実ありのままに伝えることや自由表現を阻まれる」を意味します。日本ジャーナリスト世界一般的ジャーナリストと異なり、自分たちによる政治アジェンダ設定や世論形成重要視している度合いが強いので、それを言いっぱなしにさせてくれず邪魔されたり反論されたりそのとおりに世論形成されなかったりするのを「報道自由度の低さ」と勘違いしていると思います

日本ジャーナリズム他国と異なり政治的中立性を求められているしその評価も高いから一概に日本ジャーナリズムが異質・粗悪というのはいかがなもの

これはいろんな考え方があるでしょうが、私は、「事実ありのままに伝える」というジャーナリズムというもの普遍的存在意義にかかわる話は、法律等の要請メディア運営指針に過ぎない「政治的中立性」と同列に語ることは全くできないと思っています。また、たとえば日本マスメディアがよくやる両論併記政治的中立性の名のもとに行われますが、科学的知見に基づくコンセンサスと大きく異なる異端論をいつまでもいつまでも書き続けるような形で現れることが少なくなく、「政治的中立性」はあまり褒められたものではないと思います

2022-11-16

長井秀和創価だったのに創価寄付金感覚おかし

https://www.dailyshincho.jp/article/2022/11161131/

まず長井秀和の家が個人会館と呼ばれる拠点だったのが感覚狂ってる原因。

個人会館っていうのは創価学会が建てる拠点じゃなく、個人金持ちが「学会拠点遠いなあ。せや!でかい家建てて拠点として提供したろ!」というようなやつ。

普通の家で仏壇2個も3個も買わないので一千万なんか無い。

俺が一人暮らししてた時は4千円のやつだった。

https://kongodo.co.jp/products/list.php?category_id=9&source=type

一般家庭用でも50万円くらい?

https://kongodo.co.jp//products/list.php?mode=search&name=tradition-type

まあ仏壇に50万もかけてらんねえよ!とは思うけど、他宗の仏壇と値段はそんなに変わらんのじゃないかな。


仏壇と壺を比べるのは変な比較だと思うが「100万の壺なんて安過ぎてピンとこない」は嘘だよ。

普通に100万の仏壇でも「ヒエ〜」ってなるよ。買う人はそれでも買うという所に違いは無いのかもしれないけど。

財務(寄付)で言うと一年の終わり頃に案内が来て一口1万円から義務では無い……ということになっている。おれは1万円だけ入れている。

ここで100万円の財務というのがどうも一つの目標のようになっているらしく、会合の発表とかで「新人頑張ったら仕事頑張ったので100万円財務達成しました〜」「うお〜すご〜い!!」みたいなのはあったりする。

ただ皆がそんなことしてるわけではない。わざわざそれ自慢するってことはむしろやってる人が少ないからであり、「学会からしたら100万の壺とか目じゃないっすよ笑」みたいなのは完全な胡乱話。



考えてみて欲しいんだけど、お前の周りの創価のやつにそんなに100万ジャブジャブ課金できるほど金持ってるやついるか

総じて長井秀和の家が余程金持ってるせいで金額インフレしてる印象。

2022-11-12

はてなのやべーやつ

はてなのやべーやつって、たぶんほとんどの連中が増田はてブ上であばれているときが本人も見てる人も一番楽しいときだよな。 <h3>o- ****とか?????_????とか本人は1ミリおもしろいとこなさそうだもんな。</h3>

そのことが書いてる内容のヤバさよりよっぽどヤバイ気がする。

2022-11-10

anond:20221110125844

日本語だって

NAME

 名前です。

BODY

 問い合わせ本文です。

みたいな説明あるだろ

珍しくないじゃん

2022-11-06

a

Such a feeling is coming over me

There is wonder in most every thing I see

Not a cloud in the sky

Got the sun in my eyes

And I won't be surprised if it's a dream

Everything I want the world to be

Is now coming true especially for me

And the reason is clear it's because you are here

[All](You're) the nearest thing to heaven that I've seen

I'm on the top of the world

Looking down on creation and the only explanation I can find

Is the love that I've found ever since you've been around

[You ???](Your love's) put me at the top of the world.

Something in the wind has [learnt](learned) my name

And it's telling me that things are not the same

In the leaves on the trees and the [churchs](touch) of the breeze

There's a [pleasant](pleasing) sense of happiness for me

There is only one wish on my mind

When this day is through I ??? (hope that I will find)

That the tomorrow [would](will) be just the same for you and me

All I need will be mine if you are here

I'm on the top of the world looking down on creation and the only explanation I can find

Is the love that I've found ever since you've been around

[You ???](Your love's) put me at the top of the world

I'm on the top of the world looking down on creation and the only explanation I can find

Is the love that I've found ever since you've been around

[You ???](Your love's) put me at the top of the world

2022-11-03

623無念Nameとしあき22/11/02(水)12:50:05No.1030902066+

いろんなやつがいるんだけども

男は夢っていうのかロマンっていうのか太く短い爆発的快感を望んでて

女は幸せっていうより長く持続的な快感を望んでる傾向があるような気がするようになんとなく思う

2022-10-26

<META name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 10.0.0.0 for Windows">

http://7n3gks.o.oo7.jp/bus/newpage10.htm

ほーむぺーじびるだー10

anond:20221026121422

調べた。結構調べた。めっちゃ調べた。

ちなみに、Gmail前提の話。

GASGmailのonCreateDraft的なトリガーとかイベントがあれば楽だったんだけど、無かった。○uck!!

Googleコンタクト敬称を設定できるんだけど、スマート作成とかスマートリプライとかで候補に出てくるかっていうと出てきたり出てこなかったりする。○uck!!

テンプレート変数埋め込みとかもできないみたい。○uck!!厳密にはできるんだけど、結構workaroundな感じですぐ使えなくなりそうだし他人お勧めできない。

てかそもそも、こんなことのためにわざわざGAS使うのがおかしい。

ここまでで1時間くらい使った。まあ勉強にはなったけどそんな回り道をした俺に○uck!!

とりあえず、あなたコピペしてるってことなんで、それ前提でちょっとした効率化を考えてみた。

下準備が面倒だけど。

まず、Googleコンタクト敬称会社役職などを設定する。

https://contacts.google.com/

連絡先がたくさんあるなら、CSVエクスポートしてExcelかスプシで開いて、「Name Suffix」(敬称)「Organization 1 - Name」(会社)「Organization 1 - Title」(役職)の列を一括変更してインポートするのが楽。ちなみに「Name Prefix」はSirとかMr.とか入れるところ。

これで下準備は終わり。

Gmailメール作成するときなど、宛先メールアドレスの脇にそのアイコン名前が出てくる。

で、アイコン名前カーソルを合わせて1秒ほど待つと、↓みたいなポップアップが(Googleコンタクト登録されていれば)敬称付きの名前会社役職と一緒に出てくる。

https://ferret-one.akamaized.net/images/623a863585ad34000174a1e6/large.png

これをコピペすればおk

Googleコンタクトに姓名をどっちも入れると「田中太郎様」ってなるので、そこは名を抜かすなど臨機応変に。

連絡先を全部変更する前に、1件だけ試しでやってみるのをオススメする。

Thunderbird知らない子ですねえ。

Thunderbirdの方も、Googleコンタクトを同期させれば似たような使い方ができるかもしれない。

俺はThunderbirdまともに使ったことないので、有識者に指示を仰いでください。

今は、これが精一杯。

追記

一回のコピペで済ませたいならGoogleコンタクトメモって項目があるので、それでも良いかもしれない。

ただ、ポップアップを表示させた後「詳細表示を開く」ってボタンを押して出てきた右ペインを一番下までスクロールしないとメモが出てこないので、一長一短という感じ。

まああとは色々やってみてくれ。




俺の仕事の話。

メールは俺の方からは全く使わない。

俺にメールしてくるのはお客さんじゃないので、「この度はお世話になります。〇〇社△△部xxと申します」とか「お忙しい中大変恐縮ですが、何卒ご検討のほどよろしくお願い致します」とかかましてきやがったら「自動差し込みとかでない限りそういうのいらないんで。俺からは一切しません」って開口一番に言う。

そういう仕事をしてる。

相手には多分ヤバい奴だと思われてるけど、その方が俺にとっては都合がいい。

2022-10-18

人間網膜って

https://pbs.twimg.com/media/FfWPP7GVsAATydw?format=jpg&name=medium

物理的には上下左右が逆になった像を捉えてるけど脳でまた正常な映像補正してるわけだよね。

すごいね

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

It was around 2006 that the ex-wife of Google founder Sergey Brin started a company on biogenomics.

For some time after that, we did not hear the name 23andme, but there was a Japanese doctor who had been following it.

We have now learned of its latest findings.

2022-10-06

anond:20221006214750

そうなんだ。

ちょっと調べたわ。

本筋と関係ないけど、戻り値

If MultiSelect is True, the return value is an array of the selected file names (even if only one file name is selected). Returns False if the user cancels the dialog box.

https://learn.microsoft.com/en-us/office/vba/api/excel.application.getopenfilename

ダイアログキャンセルするとFalseが返ってくるからIsArray()とかでガードした方が良いかもな。

あとは、用途に合うようならFor文じゃなくてFor Each文使うのも良いかもね。

2022-08-31

国葬反対勢力ってジジババが中心なんだな

https://pbs.twimg.com/media/FbewPWnVEAAuWJ7?format=jpg&name=large

というか爺さん婆さんしかいない

若者世代が多いんじゃなかったの?

ああ、元若者世代か。

2022-08-28

anond:20220828100258

Code Name: Wandering Swordというオクトラのパクリ中華が作ってるぞ

2022-08-25

アナザーガンダムは飛行出来るガンダムが少ないか否か?」という話題で悔しい思いをした。【要点を追記

発端はとある掲示板ガンダムに付いて語るスレ

そこでは今の所シリーズ最新作らしく未だに鉄血のオルフェンズ叩きが盛んな文化があるんだけど

その中でこういう流れがあった

197無念Nameとしあき22/08/25(木)19:31:57No.1005924634+

バエルは空飛べるというあの世界では割とレア機能があるが他だとあまりないな

アスタロト滑空できるくらいか

201無念Nameとしあき22/08/25(木)19:36:03No.1005926311+

>バエルは空飛べるというあの世界では割とレア機能があるが他だとあまりないな

アスタロト滑空できるくらいか

実はブースター飛行は鉄血ガンダムみんなできるんだよね…

203無念Nameとしあき22/08/25(木)19:41:24No.1005928621そうだねx1

>実はブースター飛行は鉄血ガンダムみんなできるんだよね…

設定考えた奴馬鹿じゃねえのか

205無念Nameとしあき22/08/25(木)19:45:13No.1005930244+

>実はブースター飛行は鉄血ガンダムみんなできるんだよね…

宇宙自在に動けるなら当たり前の気がする

207無念Nameとしあき22/08/25(木)19:46:58No.1005931048そうだねx2

>>実はブースター飛行は鉄血ガンダムみんなできるんだよね…

宇宙自在に動けるなら当たり前の気がする

重力下ではまた違うだろ

クスィーの機体のアドバンテージというかアイデンティティがなくなってしまうじゃないか

ガンダム新作叩きのスレなんて毎回こんな物だけど改めて見て酷い物だと思う

しかしこの一連の流れで個人的に凄く気になった所がある。

207無念Nameとしあき22/08/25(木)19:46:58No.1005931048そうだねx2

>>実はブースター飛行は鉄血ガンダムみんなできるんだよね…

宇宙自在に動けるなら当たり前の気がする

重力下ではまた違うだろ

クスィーの機体のアドバンテージというかアイデンティティがなくなってしまうじゃないか

鉄血のオルフェンズの話をしている所にいきなり宇宙世紀のΞガンダムを持ち出して

「鉄血のガンダム重力下で飛べたらΞのアドバンテージアイデンティティが無くなってしまう」って何言ってんだこいつ?と思った

そんな事言い出したらWのガンダムもXのガンダムも∀もSEEDも00もGレコのガンダムも皆重力下で飛べるけどΞのアイデンティティが無くなってんのか?

Ξガンダム名前を持ち出して鉄血を叩きたい悪意がプンプンしてるこのレスに内心イラッとしたのもあってこう返信を飛ばし

212無念Nameとしあき22/08/25(木)19:49:31No.1005932232+

重力下ではまた違うだろ

>クスィーの機体のアドバンテージというかアイデンティティがなくなってしまうじゃないか

アナザーだとガンダム自由飛行出来ない世界の方が少ないです

そしたらまあこんなレスが返って来るわ来るわ

225無念Nameとしあき22/08/25(木)19:57:17No.1005935743そうだねx1

アナザーだとガンダム自由飛行出来ない世界の方が少ないです

しろアナザーガンダムだと1作品ごとの登場ガンダム数が多いか重力圏で飛行できないガンダム割合多くないか

228無念Nameとしあき22/08/25(木)20:00:48No.1005937365+

>むしろアナザーガンダムだと1作品ごとの登場ガンダム数が多いか重力圏で飛行できないガンダム割合多くないか

出来る方の割合が多いか関係ないな

↑これは俺のレス

236無念Nameとしあき22/08/25(木)20:03:24No.1005938591そうだねx1

>出来る方の割合が多いか関係ないな

種とかも初期五体はエールストライクイージス以外飛べないし意外と意外と飛行能力アドバンテージになってる奴多いぞ

257無念Nameとしあき22/08/25(木)20:11:49No.1005942479+

>種とかも初期五体はエールストライクイージス以外飛べないし意外と意外と飛行能力アドバンテージになってる奴多いぞ

バスターとか重力下で普通に浮いて無かったか

261無念Nameとしあき22/08/25(木)20:14:03No.1005943537そうだねx2

バスターとか重力下で普通に浮いて無かったか

宇宙空間以外だと戦艦の上で戦ってたりするぐらいだな

空中戦できたら砂漠で苦戦してないよ

289無念Nameとしあき22/08/25(木)20:24:52No.1005948763+

なんだよ…結構飛べないアナザーガンダムいるじゃねえか…

293無念Nameとしあき22/08/25(木)20:27:00No.1005949774+

適当知識アナザーガンダムガンダム自由に飛べない世界のほうが少ないって言ってた奴が恥かいただけだったな

299無念Nameとしあき22/08/25(木)20:29:23No.1005950897そうだねx7

適当知識アナザーガンダムガンダム自由に飛べない世界のほうが少ないって言ってた奴が恥かいただけだったな

こういう無知無能な奴が鉄血擁護してるんだろうな

…はあ?いやマジで…は?お前らマジで何言ってんの?って感じで

アナザーガンダム自由飛行出来るガンダムの方が多い」って話題

「いやSEEDバスターとかは飛べないぞ」「適当知識で恥かいたな」「こういう無知無能な奴が鉄血擁護してるんだろうな」って

G・W・X・∀・SEED・00・AGE・Gレコ・鉄血と色んなアナザーガンダムが居る中でSEEDの前期ガンダムが飛べないだけで俺の主張論破

マジでバカじゃねえのお前ら?鉄血(とそれを擁護する奴)が叩きたくて何が何でも難癖とレッテル付けたいだけのクズって事は何年も前から重々承知だけど

SEEDの前期ガンダムデュエルバスターブリッツあたり)が飛べないだけでアナザーガンダム自由に飛べない世界の方が多いし無知無能な奴が鉄血擁護してるって事になるのか?

言いがかりも大概にしろよ。他人レッテル貼りして自分無知を恥じないお前らの方が無知無能だろ。

314無念Nameとしあき22/08/25(木)20:38:06No.1005955003+

Gのガンダム→飛べる

Wのガンダム→飛べる

Xのガンダムレオパルド除いて飛べる

∀のガンダム→飛べる

種のガンダム→初期の数機を除いて飛べる

00のガンダム→飛べる

Gレコのガンダム→飛べる

しろアナザーで飛べないガンダムの方が少ないって

こんな事書いても煽られるだけだろうなって思ったけど悔しかたからこう反論した。

そしたら帰ってきたのはこういう返信だ

318無念Nameとしあき22/08/25(木)20:38:47No.1005955369そうだねx2

>Gのガンダム→飛べる

>Wのガンダム→飛べる

>Xのガンダムレオパルド除いて飛べる

>∀のガンダム→飛べる

>種のガンダム→初期の数機を除いて飛べる

>00のガンダム→飛べる

>Gレコのガンダム→飛べる

>むしろアナザーで飛べないガンダムの方が少ないって

キモ

320無念Nameとしあき22/08/25(木)20:39:11No.1005955581そうだねx2

>Gのガンダム→飛べる

>Wのガンダム→飛べる

>Xのガンダムレオパルド除いて飛べる

>∀のガンダム→飛べる

>種のガンダム→初期の数機を除いて飛べる

>00のガンダム→飛べる

>Gレコのガンダム→飛べる

>むしろアナザーで飛べないガンダムの方が少ないって

飛べない方が多いだろ

325無念Nameとしあき22/08/25(木)20:40:24No.1005956175+

>種のガンダム→初期の数機を除いて飛べる

カラミティも飛べないしガイアガンダムも飛べないぞ

333無念Nameとしあき22/08/25(木)20:42:01No.1005956955+

種でピンで飛べそうなのって自由正義だけだろ

334無念Nameとしあき22/08/25(木)20:42:19No.1005957111+

また無知と無様晒してらこの馬鹿

何故か、こっちが無知と無様を晒した事になりました。

アナザーガンダムは飛行出来るガンダムが少ないか否か?」という疑問なら「飛べる機体の方が多い」という主張の方が正しい事には変わりないのに

主にSEEDを中心に何機かのガンダムが飛べないというだけで「アナザーは飛べないガンダムの方が多い」という明らかに誤った意見の方が正しい事になりました。

325無念Nameとしあき22/08/25(木)20:40:24No.1005956175+

>種のガンダム→初期の数機を除いて飛べる

カラミティも飛べないしガイアガンダムも飛べないぞ

333無念Nameとしあき22/08/25(木)20:42:01No.1005956955+

種でピンで飛べそうなのって自由正義だけだろ

ちなみにSEED系ならガイアガンダムは作中で飛行しているし、ストライクイージスストライクルージュレイダーフォビドゥンも作中で飛んでますカラミティ微妙だけど。

【要点】

1.「鉄血のガンダム重力下で飛べる」と誰かが言う。

2.「Ξガンダムアドバンテージアイデンティティが失われるからそれはあり得ない」と他の誰かが言う。(はあ?って感じ)

3.「アナザーだとガンダム自由飛行出来ない作品の方が少ないです」と俺が言う。

4.「そんな事は無いSEEDガンダム重力下で飛べないぞ」とまたほかの誰かが言う。(そもそも飛べる機体の方が多い)

5.「アナザーガンダムガンダム自由に飛べない世界のほうが少ないって言ってた奴は適当知識で恥かいた。こういう無知無能な奴が鉄血擁護してるんだろうな」という結論が出る。(???

こっちは間違った事を言っていないのに何故か適当知識で恥をかい無知無能な鉄血信者というレッテルを貼られてイラつきました、という話。あームカつく。

追記

ウイングウイング系とエピオン以外のガンダムは飛べないという意見結構あったんだけど

重量7.5t推力74,760kgのアルトロンガンダムウイングゼロと互角の空中戦を繰り広げられる時点であの世界のガンダムは飛べるんだろう

他にも重量7.9t推力72,030kgのサンドロックカスタムが重量8.1tのサーペン複数機に組み付かれてジャンプするなどその性能の高さを見せるシーンが多い

追記2】

yajicco SFSなしに長距離飛行できるやつはほとんどおらんやろ。ある程度なら滞空できる、ならそこそこいるイメージだが。

July1st2017 設定で飛べる奴と演出やノリで飛んでる機体やブースター一時的に滞空してたり、可変で飛べたりする機体が混じってるな。それを混ぜるならファーストガンダムも飛べるぞ。/突然の・∀・で和んだw

runa_way いったんレスバ負けのレッテルを貼られたら聞く耳持ってもらえないから外部で討論するのは良いけど、ブースター吹かして無理矢理長めに滞空してるっぽいのを「飛べる」と認識するのは違和感あるわ

飛行出来るMSがSFSを使ってるのは推進剤の節約のためであって飛行・空中戦が出来ないという訳ではないんだよ。

Gレコで見事な空中戦披露したカットシーが長距離移動の際にはSFSを使ってたけど、だからってカットシーは飛行出来ないとか言わんでしょう。

初代ガンダムは素の状態だと大ジャンプは出来るけど単独で長時間滞空していた覚えはない。設定だとガンダムMAモードなら飛べるのかもしれないけど。

ブースター吹かして長めに滞空する」のを「飛べる」と言わないなら慣性制御MS飛ばしてる00以外のアナザーは飛んでるとは言わずウイングゼロやフリーダムでも「ブースター吹かして滞空してるだけ」って言えるのでは。

2022-08-15

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

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

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

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

そしたら俺もそれ使う

使い方:

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

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

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

実際のコード

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

// ==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 =&gt; new RegExp(w));

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

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

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

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

2022-08-01

anond:20220731183342

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

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

以下のCSV_DIR, FILE_PATHS, SETTINGSを書き換えてね。 &lt;h3&gt;o- *************************************/&lt;/h3&gt;

//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: ['自演かな', '自演わらわら', 'スクリプト使うの', '安価ガバ', '&gt;&gt;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 &lt;h3&gt;o- *************************************/&lt;/h3&gt;

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

メモ

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

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

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

・importはできない。 &lt;h3&gt;o- *************************************/&lt;/h3&gt;

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

関数 &lt;h3&gt;o- *************************************/&lt;/h3&gt;

/**

* ここから始まる。

*/

function run() {

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

checkSettings();

var _TextCsvCursors = new TextCsvCursors(

new TextCsvCursor(

SETTINGS.postSettings.noAnkerPostTextCsvStartRow &gt; 0

? SETTINGS.postSettings.noAnkerPostTextCsvStartRow - 1

: SETTINGS.postSettings.noAnkerPostTextCsvStartRow,

FILE_PATHS.textCsv,

SETTINGS.postSettings.textCsvLoop,

),

new TextCsvCursor(

SETTINGS.postSettings.replyPostTextCsvStartRow &gt; 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 &amp;&amp; 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 &amp;&amp;

SETTINGS.postSettings.replyPost === false

) {

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

}

if (

SETTINGS.postSettings.noAnkerPostTextCsvStartRow &lt; 0 &amp;&amp;

SETTINGS.postSettings.replyPostTextCsvStartRow &lt; 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) =&gt; new Post(e)));

}

/**

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

* @returns

*/

function createPostDOMList() {

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

var arrPostDOMList = [];

for (let index = 0; index &lt; 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

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