「Https」を含む日記 RSS

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

2022-09-15

静的な為替取引

普通為替取引と言えば二つの通貨間で金を転がして相場の変動に伴う差額を儲けとして得ることを目的としたものを言うと思う。

これはもし固定相場制だったら成り立たない方法論だ。

相場が変化する中でこそ可能方法という意味で動的な為替取引と言えると思う。

上記のような方法しか為替取引で儲ける方法など存在しないと思われる人たちににとって今ある唯一の方法論を「動的」とまるで別の何かと区別したような呼び方は単なる無駄に映るかもしれない。

しか既存方法論とは志向するところが異なる「静的な為替取引」と呼べそうな方法論を見つけたかもしれないということをこれから説明していこうと思う。

そもそも現在において固定相場制をとっているところはない。

しかし「相場が固定されていたとしても」儲けることができるというのが今回説明したい方法なのだ

しろ相場が固定されていてくれていたほうがありがたいようなやり方なのである

実際一個人市場介入相場を固定することはできないが、相場が大きく動いていく前に一連の取引を済ませてしまうということならできる。

そういう視点で考えれば今自分が行いたい全ての取引を一瞬で終えることが可能ならば大ざっぱに言えばその取引は固定相場制のなかでの取引と同等なものになる(大ざっぱに言えばと断ったのは、自分自身の取引による相場の変動が考慮されるため)。

一瞬のうちに全ての取引を済ませたときに得られる儲けが数学における極限的な意味での、儲け得る金額理想的な値に相当する。

この理想値に近い儲けを手にするためにできるだけ俊敏な取引が望まれるというわけだ。

まり説明していく方法を実行するにあたっては手動ではなくプログラムを組んで行うことが望まれるということには留意してほしい。

またあえてこの時点で両者の為替取引を端的に表現しておくなら、動的な為替取引とは時間経過に伴う相場の変動を利用して儲けを得ること、静的な為替取引とは一時点における相場の「ひずみ」を利用して儲けを得ること、というところになると思う。

具体的に説明するために仮想的な通貨とそのレートを仮定しておこう。

A,B,C,Dの通貨仮定する。

そのレートについての条件は以下の通り。(円に対して100円というように100Aや50Bと表記していく)

1.1C=100A(1.でこれから指し示すための通し番号となっており小数点ではない。以降同様の表記法を用いる)

2.1C=1B

AとBについては以下の2通りのレートを適宜考える(都度どのレートで考えているか示す)

3.1B=1A

4.1B=100A

同様に以下の通り

5.100D=1C

6.90D=100A

7.100D=1B

また取引者として甲、乙、丙、丁を仮定する。

以降、文章だけで伝わるように努めたが、一応解説図のようなもの作成したので適宜imgur投稿した画像へのリンクを貼る(増田では1つの記事に貼れるリンク数には限りがあるためhttps://は省略させていただく)。

核心の部分を説明するまでの準備的な説明が多いので回りくどく思われるかもしれないが、読み飛ばしたりしてはおそらく理解できないはずなので辛抱強くついていってほしい(もちろん直截簡明に説明できない私の文章力不足もある)。

では具体的な説明をしていこう。

3つの通貨場合

まずA,B,Cの三つだけで考える。

甲が100A、乙が100B、丙が100C持っていたとしよう。

まず甲と乙の間での取引が起こる。

レート3(1B=1A)の関係により、100Aと100Bがそのまま交換されることになる。

これにより甲は100B、乙は100A、丙が100C持っていることになる。

次に甲と丙で取引が行われる。

レート2により、今度は100Bと100Cの持主がそっくりそのまま入れ替わるわけだ。

これにより甲は100C、乙は100A、丙が100B持っていることになる。

ここで今甲が持っているお金価値の変化に注目したい。

甲は100C持っているわけだが、これはレート1により10000Aに相当する。

まりお金100倍になったわけだ。

通貨Aに戻してから同様のことをサイクルとして繰り返すことで100倍ずつ資産の増やせるというわけである(厳密には甲と乙が行う取引自体によって取引中にレート3がAの価値が下がる方向に変化していく効果考慮されることになるので、1サイクルにおいて変換させようとする通貨AとBの量の多いほどぴったり100倍にはならずそれを下回る成果となる)。

反面、乙がこの1サイクルで最終的に得たお金通貨Cに換算すると、レート1により、1Cになっていることになる。

最初持っていた100Bはレート2により100Cに相当するのだったから、資産100分の1に目減りしていることになるのだ。

これらのことはレート1とレート2が相場として確かにあることから起こることだ。

レート1とレート2の関係を知っていて、誰がレート3のような100分の1目減りする取引を行うだろうか。

まりこの情報社会ではレート1とレート2が既にあるときレート3のような相場は発生しない。

ここで早速簡易な表を添付しておく。これを見ながらの方が俯瞰的に状況を見ることができ分かりやすいかもしれない。

i.imgur.com/GAPemA3.jpg

結論としてはレート1とレート2であるときはレート4の相場相場全体がこなれることになる。

これらの等式はまとめて1C=100A=1Bとすることができることから明らかなように、これら3つの相場が成り立っているときにはこの3つの通貨の間でいかお金を転がそうとも損も得もしない。

まりAのような一人勝ちできる勝者は発生し得ない。世の中そう上手い話はないというわけだ。

一応レート1,2,4のときの表も添付しておく。

i.imgur.com/R6asCyk.jpg

ここまで分かりにくく感じるところがあったという人は、通貨A,B,Cをそれぞれ円、ビットコインドル、に具体的な通貨に置き換えてみるといいかもしれない。

このときレートも具体化すれば1ドル=100円、1ドル=1ビット、1ビット=1円または1ビット=100円となる。

今まで円をビットコインを経由してドルにしてから円に戻すだけで資本が増やせるなんて話を聞いたことがあるだろうか?仮にそんな話があったとしてそれは確固たる成功例だったろうか?

そういうわけで、1ドル=100円、1ドル=1ビットのようになっているときは1ビット=1円のような誰かに都合のいい相場ではなく、1ビット=100円のようになっているはずだということである

具体化した表も付しておく(レート4の場合)。

i.imgur.com/X936BcL.jpg

これは当然レート1とレート2のような相場に限ってしか言えないものではなく、ドルと円あるいはドルビットのレートがどのようになっていても残りのビットと円のレートについて必ずそうなるということである

ただしこれらの話は3つの通貨間での話である

4つの通貨で考えると「ひずみ」が見えてくる

ここから考える通貨取引者を一つ増える。

ただしAとBの関係についてはレート4が成り立っているものとする。

表を見ればより一目瞭然かと思うが、上に書いたサイクルで甲が通貨Cを通貨Aに戻す直前には甲は持っている。

ここで甲と丁による通貨Aと通貨Dの取引を考える。丁は90D持っているものとする。

このとき甲と丁の取引が行われるとレート5により甲に100D、丁に1Aが渡ることになる。

今甲が持っている100Dを通貨Aに換算するには、レート6により、90:100=100:xという比例式を解く計算をすればよい。

x=10000/90ということで、もともと持っていた100Aより資産が増大しているのだ。

レート7があまりにも恣意的な設定なだけではないかと思われるかもしれない。

しかし肝心なのは、レート6であってはならないという必然性がないということだ。

丁が通貨Aなど念頭になく、通貨B,C,D間での取引しか興味がない(そして多くの人もその傾向である)ならば、少なくともその三者間の相場を表すレート2,5,7は先ほどと同様一つの式にまとめられる関係にあるので、丁はこの取引において損も得もしていない。

丁(あるいはその他多数)にとっては安心して支払いなどと用として通貨を替えることができる環境にあるわけだ。

自分がした取引によってその取引相手である甲という一個人が得しているかどうかなどあずかり知らぬこである、ということだ。

同様に乙や丙にとっても通貨Dなど念頭になく、またそのような人々が多数派なのであれば、レート4を含む今のレート状態で乙や丙のようなA,B,Cの三通貨間の取引を期する人々にとって損も得もないことは表も交えて先述した通りだ。

レート6がどのようであっても先ほどの甲が100倍得したときに乙の資産100分の1に目減りするような状況にはならないので、乙やその他通貨Bを持っている人たちの投資家心理はレート6には干渉しない・独立しているということなのだ。

概念図では念頭埒外蚊帳の外という様子を破線で示している(図中の数字はレートの通し番号に対応)。

i.imgur.com/tp78LuJ.png

為替取引に「キルヒホッフの法則」は成り立つの

私はレート6のような状態相場のひずみとでも呼ぶことにしたい。

相場が固定するなかでは二通貨間の取引は言うまでもなく、一つのサイクルの間にどれだけ多くの通貨を噛ませても損も得も起こらないと考えるのが普通だろう。

いわば電気回路で一周すると電圧が元に戻るというキルヒホッフの法則のようなもの為替においても(手数料を抜きにすれば)成り立つはずだというのが素朴な考えとして多くの人に支持されるはずだ。

次々と自国貨幣よりもより価値の高い通貨に替えていっても最終的に自国通貨に戻したときには最初と全く同じ価値に戻ってしまうということである

しかし大半の投資家心理とは独立した通貨ペアがあれば、そのレートも投資家心理の束縛を受けず、場合によっては誰かが得できる状況もあり得るのではないかという説を上では具体的に例示したわけだ。

ここでそのような通貨ペア=ひずみを生じる根源が成立条件について自信は無いが挙げておこうと思う。

さら

条件として挙げたのはどれもAとDの為替を含む取引になっている。

逆に条件に挙げた取引がある程度存在するとAとDの相場であるレート6にも投資家心理が影響していくので誰も損得しない方向にレート6のひずみも解消されていくのではないかということだ。

また余計な条件があるのではないかという懸念もある。

たとえば1番目と2番目の条件はようするに金の流れが逆なだけなので、いずれか一つを挙げれば事足りる同値な重複した条件なのではないかということだ。

また別の条件として、この方法論は3通貨では不可能に思える。

4通貨でひずみが生じる例を示したわけだがこの場合のひずみも解消され得るものである

しかしそれ以上のある数以上の通貨間の関係のなかではそれらに内包されるそれぞれの二者間の相場いかなるものであろうとも、どこかしらにひずみが生じてしまものなのかもしれないと直感的に感じられる。

まりある数以上の通貨を介せば必ず儲けを生み出す為替の経路が存在しているのではないかという主張であるわけだが、その通貨数がいくつであるのか、私にはそれを数学的に証明する技量はないのは悔やまれる。

話を戻せばこうしたひずみがあると、一見成り立ちそうな為替版のキルヒホッフの法則でも相殺しきれない差額が生まれ、それを儲けとして得ることができるかもしれないということだ。

これらの概念図を示しておく。

i.imgur.com/DB22Ef7.png

今までの話はこのようなごく単純な話に置き換えられるかもしれない(ただし以下は知人が見出したたとえ話なので語弊もある恐れがあり正しさは保証しない)。

プレステ3の卸値が日本で3万円、アメリカで280ドルだとする。このとき100円=1ドル相場である

手持ちが29000円しかないなら日本プレステを買うことは不可能だが、この相場ならドルでなら買える。

それどころかこのプレステ3日本で売れば売ればお釣りが来るかもしれない。

ただし日本で売るにはアメリカで買ったそのプレステ3日本まで運搬してもらう配送料がかかる。

この配送料次第では損かもしれないが、ここが先ほどまで説明してきた方法論の手数料負けするというおそれに相当するわけだ。

実践するには

効率よく上記の条件を押さえた通貨ペアを探すなら、通貨ペアの相関係数表をチェックする方法検討される。相関表の例:https://prtimes.jp/main/html/rd/p/000000299.000003206.html

まず日本円の列か行の中で相関係数絶対値が0に近いものを探す。

0に近いものを見つけたら、今度は前の時点で列の中で眺めていたなら行を、行を眺めていたなら列を探して、同様にその通貨にとって相関がほとんどない通貨を見つけ出す。

こうして行から列、列から行と渡っていくことを繰り返し、最終的に日本円に戻ってくるループを見出す。

ただしこのループの中に同じ種類の通貨が二度以上あってはいけない。

もし同じ通貨があればそこで一つの完結したループができてしまっていると思われる(もちろん始点と終点として円だけは必ず二度登場しているはずである)。

そのようなループが今回の方法論を適用するのに優先的に試すべき候補であるが、実際にそのうちに手数料込みで儲けを生み出すひずみが生じているのかどれかといった計算や、このようなループを探し出す作業自体プログラムで行なったほうが良いと思われる。

計算から取引完了までの間に人力でもたもたしていると、その間にひずみの状況が変わり、行なっていた計算適用できなくなるはずだからだ。

そもそも通貨の組み合わせも膨大であり、為替で利用できる通貨10個だったとしても、順列の概念うろ覚えで自信がないのだが、ひずみが発生し得る通貨数が4つ以上だと仮定してもその組み合わせ10P4+10P5+・・・+10P10のようになり、その中から候補ループを探すというのは人間が人力で行うべきことではないように思われる。

ともすれば量子コンピュータ実用化を待った方がいいぐらいかもしれない(なんとなくNP問題匂いがする)。

ただしそれだけの組み合わせ数があるというのは良いことでもある。

プレステ3のような規格化された工業品はさておき具体的な物においてはひずみが生じやすい、しか原油貨幣統一されたものなのでそのようなひずみは起こらないだろうというようなことを知人は言っていた。

しかしこれだけの数の組合せがあるなら、やはりそのなかにはまだ見出されていない、得できるような通貨ペア、ループが眠っていてもおかしくないと思うのだ。

終わりに

頭の中で考えても俺の脳内スタックでは何か行ったり来たりするような状態を繰り返すばかりになっていたので埒が明かないと感じたし、また自分の中でも判然としないところが多いので、批判を乞う目的も兼ねて今回言語化を試みた。

そういう経緯ゆえに直観に頼ってごまかして書いたところもある。

ただし増田で間違ってると言われてもそれを鵜呑みにするようなことはしないつもりだ。

それを参考にはしながらも、今後金融や経済学の専門的なことを学び、もっと理詰めで考えられるような頭になった後で、この方法論が理屈として間違っているかどうか、また机上の空論ではなく有用あるいは実効性があるといえるかどうか確かな理解のもとで判定させていきたい。

2022-08-27

anond:20220825182210

ブラウザで打つのhttphttpsしか打たないけどネットワークトラフィックhttp以外のアプリケーションの方が多いみたいです。

チャットリモートデスクトップトンネル掘った別なリモート接続メール時間サーバ動画配信音楽配信http://じゃないプロトコルで飛んでくるので。

ブラウザアドレスバーに毎回http://を打ち込んでるなら確かに無駄ですが。打たなくても推測してくれますもんね。

2022-08-26

どうでもいい知識披露しま

HTTPプロトコルだけど

HTTPSはプロトコルではないんやで。

anond:20220825182210

httpsはどうするんだ?

プロトコル名を2文字拡張したいって話になって、下手をすると他のプロトコルまでhで始まる2文字になるよう被せてきて、別の辛さが生まれそう。

2022-08-25

anond:20220825182421

httphttpsの区別さえ自動でしてくれるんだから

それは、

のどれかにゃーん。

anond:20220825182210

事実上そうなってるだろ

それ以降だけ入力してもhttphttpsの区別さえ自動でしてくれるんだから

httpsのページをhttp://と初めてもちゃんアクセスできるし

猫も杓子もStable diffusion

単なる車輪の再発明メモ

M1 pro Macにて。ここ参照:https://github.com/magnusviri/stable-diffusion/tree/apple-silicon-mps-support

git clone https://github.com/magnusviri/stable-diffusion.git

cd stable-diffusion

git checkout apple-silicon-mps-support

conda env create -f environment-mac.yaml

うまくいかないのでRustをインストール

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

conda activate ldm

mkdir -p models/ldm/stable-diffusion-v1/

https://huggingface.co/CompVis/stable-diffusion-v-1-4-original から`sd-v1-4.ckpt`をダウンロードして、

ln ~/Downloads/sd-v1-4.ckpt models/ldm/stable-diffusion-v1/model.ckpt

以下のパッケージを追加した。https://twitter.com/hevohevo/status/1562364961481162754?s=20&t=KxNXNB9fz99fbosZ8TfnvQ を参考に。

conda install onnx

pip install invisible-watermark

それで実行

python scripts/txt2img.py --prompt "a photograph of an astronaut riding a horse" --plms

するとエラーになる。https://qiita.com/hevo2/items/e646148a05118074fecf に従い、下記ファイルの2511行目を書き換え。

vi /opt/homebrew/Caskroom//miniforge/base/envs/ldm/lib/python3.10/site-packages/torch/nn/functional.py

2022-08-19

ポーランドブルマーメモ

画像はたくさん見つかるのだが、肝心の文章が見当たらない。

当時の学校歴史だとかそんなことばかりである

https://www.google.com/imgres?imgurl=https%3A%2F%2Frolniczylidzbark.files.wordpress.com%2F2013%2F12%2Fpani-basia-9-6.jpeg&imgrefurl=https%3A%2F%2Flidzbarkrolnicza.pl%2Fgaleria%2Fz-nauczycielskich-archiwow%2F&tbnid=32oxkCAs8oM9VM&vet=12ahUKEwiersq15cj5AhUWRvUHHQ4oCbIQxiAoAnoECAAQHw..i&docid=RWpEv5eKX3DILM&w=1387&h=2136&itg=1&q=wf%201960%20%20dziewczyna&ved=2ahUKEwiersq15cj5AhUWRvUHHQ4oCbIQxiAoAnoECAAQHw

https://www.google.com/imgres?imgurl=https%3A%2F%2Fkrasnikfabryczny.files.wordpress.com%2F2020%2F01%2Fimg_0001_1.jpg&imgrefurl=https%3A%2F%2Fkrasnikfabryczny.wordpress.com%2F2019%2F12%2F29%2Fhistoria-szkoly-podstawowej-nr-6-1-2%2F&tbnid=iFM73I3qnwagYM&vet=12ahUKEwiersq15cj5AhUWRvUHHQ4oCbIQxiAoB3oECAAQIQ..i&docid=LM9BesICBreoAM&w=900&h=613&itg=1&q=wf%201960%20%20dziewczyna&ved=2ahUKEwiersq15cj5AhUWRvUHHQ4oCbIQxiAoB3oECAAQIQ

https://www.google.com/imgres?imgurl=https%3A%2F%2Fkrasnikfabryczny.files.wordpress.com%2F2020%2F01%2Fimg_0001_1.jpg&imgrefurl=https%3A%2F%2Fkrasnikfabryczny.wordpress.com%2F2019%2F12%2F29%2Fhistoria-szkoly-podstawowej-nr-6-1-2%2F&tbnid=iFM73I3qnwagYM&vet=12ahUKEwiersq15cj5AhUWRvUHHQ4oCbIQxiAoB3oECAAQIQ..i&docid=LM9BesICBreoAM&w=900&h=613&itg=1&q=wf%201960%20%20dziewczyna&ved=2ahUKEwiersq15cj5AhUWRvUHHQ4oCbIQxiAoB3oECAAQIQ

https://www.google.com/imgres?imgurl=https%3A%2F%2Fwww.pks.gdansk.pl%2Fwp-content%2Fuploads%2F2018%2F11%2Fpks-gda%25C5%2584sk-historia-58-1024x704.jpg&imgrefurl=https%3A%2F%2Fwww.pks.gdansk.pl%2Fo-nas%2Frys-historyczny%2F&tbnid=HuXHxPQnCr4muM&vet=12ahUKEwjilNSw5cj5AhU0gMYKHSdGB7wQMygHegQIARBE..i&docid=bXT1xISFC74WiM&w=1024&h=704&q=wf%201960%20%20dziewczyna&ved=2ahUKEwjilNSw5cj5AhU0gMYKHSdGB7wQMygHegQIARBE

https://www.slowopodlasia.pl/galeria/175,kobiety-w-czasach-prl-u

https://dziennikzachodni.pl/22-lipca-w-prl-narodowe-swieto-odrodzenia-polski-archiwalne-zdjecia/ga/3513293/zd/4025633

https://www.dziennikwschodni.pl/galeria.html?gal=999678015&f=3

https://krasnikfabryczny.wordpress.com/2019/12/09/tluste-lata-siatkowki-zenskiej/

https://sp42.waw.pl/historia/

なぜなんだろう。

ttps://krasnikfabryczny.home.blog/2021/11/30/halina-wojtanowska-wielka-osobowosc-siatkowki/

2022-08-14

anond:20220814195229

平文で保存というか、平文に戻せる形で暗号化して保存しているのかもしれんね。

httpsなので経路中は盗聴できないとはいえ、適切ではない。

今はパスワードは保存せずにハッシュ化したりして元に戻せない形で保存するのが一般的なので、

何かあった時に流出する危険性はある。

というか、ここで書いちゃったのでハッカーに狙われるかもね。あーあ。ご愁傷様。

2022-08-13

フリーWi-Fiってどこが危ないの?

盗聴される危険性があるとかhttpsを使わないと危険とか書いてあるけど具体的に何が危ないのかわからない。

httpsを使わないと通信内容暗号化されないか機密情報漏れる恐れがあると言うことはわかる。

でも最近じゃあ機密情報を扱うサイトhttps化されているのが前提だし。

httpsサーバー側の秘密鍵がないと復号化できないわけでしょ?

と考えると盗聴されても暗号を解読できないわけだし問題ないように思える。

フリーWi-Fiってどこが危ないの?

盗聴される危険性があるとかhttpsを使わないと危険とか書いてあるけど具体的に何が危ないのかわからない。

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

2022-07-22

○○漫画が××を助長していた

なんぞこれ

 

念のため補足しますが、誰か/何かを非難攻撃する意図はなく、僅か数日で全く異なる傾向を見せたブックマークに「えぇ~」という感情吐露です。

それでも、あえて非難先を指定するなら、傾向が一定しないスターを付けた人※ と現状のトップページと人気ランキングの仕組みのままにしている運営です。

両方にブクマした人は分かるのですが、両方にスターした人の比較は困難なので、スターの傾向が一定しない人がどこまで居るかは不明です

2022-07-22

言うだけ言って消す無責任野郎

何故消すのかというと、意図的誤読するxevraみたいなのがいるから。

https daydollarbotch.hatenablog.com もそうだね。

意図的誤読テクニックオウム真理教にいた石井久子が開発したものだそうだ。

誤読することで、相手に訂正させるんだよね。非常に卑怯でしょ。カルトからね。

カルトのみならず、普通宗教普通会社勤めでも、意図的誤読する人は少なくない。

日本人中国人韓国人に知能で負けている以上、誤読する悪い人は増える一方になるだろう。

そんな誤読を防ぐためにトラバを定期的に消すことをおすすめするよ。

https://anond.hatelabo.jp/20220722120958

意図的誤読意味がよくわからん

2022-07-21

鳩山山田統一とは関わりません」

https://hatenatools.herokuapp.com/diff/?url1=https%3A%2F%2Ftaroyamada.jp%2Fcat-other%2Fpost-23290%2F&url2=https%3A%2F%2Ftwitter.com%2Fhatoyamayukio%2Fstatus%2F1549658544861216769&filter=1&star=

上 山田太郎

下 鳩山友紀夫

id:quick_past

なんのいみもない駄文 

あてつけのようにひろゆきエントリを貼り付けてるアホより、よっぽど誠実。ひろゆきなんて統一教会みたいな連中のノイズを、増幅しまくってきた存在。 

このひと党派性以外に存在意義ないねスタンダード存在しないの可哀想

id:cha9

踏み絵踏んだつもりが足浮いてるで。「今後関係を持つつもりない」は嘘で統一協会とズブズブの自民を離党しない限り不可能統一教会表現規制派なのに統一教会と徹底的に戦いますと言えないあたり山田は真っ黒やで 

この際知ってる情報あるなら過去含め洗いざらい出してほしい。デマが飛び交うのは正しい情報が少ない上に与党批判の矛先をそらそうとするから。いつものように野党責任転嫁し煙に巻いて逃げ切ろうとしてる 

党派性以外に存在意義ない人その2

id:cinefuk

これを3年間「自主規制」していたわけだね。すでに『山田太郎問題視してないなら、統一教会は悪い組織ではない』とシンパシー抱く支持者が出ている状況で、もっと強くオタク統一教会から立ち去れ」と言える筈 

『一方で、統一教会イベントへの出席や祝電の事実はある。政治家として、一部の国民を苦しめるような宗教団体規制すべきだったがその責任を果たさず、無思慮にかかわったことを大変反省している』 

アンチ狂いのあまり妄想妄想を呼ぶ危ない人

id:fops

なんか微妙だな。知らなかったとしても関係は持ったわけで、その上で反省なんじゃないの?最初問題になったのも、もっと前だし。 

他の人も謝罪しよう。謝罪必要な関わりだとすることがまず第一にやるべきこと。 

第一にやるべきことにグチグチいうんだ

id:securecat

知らなかったかデマだみたいな論法で通じると思ってるのか? まあ今後は一切の関わりをせず、むしろきっちり統一教会規制なり宗教法人剥奪なりに尽力してくれたらええが。関与否定の表明だけで終わるなよ? 

謝ったのは偉い。元首相でも素直に謝るのに、自民議員って 

ずいぶん態度違います

haha64

問題の多い団体であり政治家が関わるべき団体ではない」と明言したのは好印象だが、同じ自民議員統一教会賛同会員・井上義行あたりに言うことはないんですかね。問題の多い団体に深く関わってるけど。 

与党議員なら流れないようなデマも上乗せで誹謗中傷されてる。

野党議員なら流れないような中傷は見ないフリ

はてなで狂ってんなーって人はやっぱやばい

2022-07-13

anond:20220713152927

ネットで出てきた文章そのまま貼る、真偽は知らん

https://六マリア悲劇.com/%E9%9F%93%E5%9B%BD%E3%81%AB%E6%B8%A1%E3%81%A3%E3%81%9F%E7%B5%B1%E4%B8%80%E6%95%99%E4%BC%9A%E6%97%A5%E6%9C%AC%E4%BA%BA%E5%A5%B3%E6%80%A7%E4%BF%A1%E8%80%85%E3%81%AE%E5%AE%9F%E6%85%8B/

日本人はみな、朝鮮半島植民地支配したこと遺伝罪や連帯罪として背負っているとされ、韓国に嫁いだ日本人女性信者は夫や夫の家族に尽くすことでその罪を清算しようとする。統一教会日本だけで霊感商法を行うのも贖罪させるためである

2022-07-04

ガーシーが当選しそうだしもう何でもアリなのでは?

NHKの最新世論調査が出た

どうもN国の支持が伸びているようだ

社民党を追い越しれいわに追いついている

https://www3-nhk-or-jp.cdn.ampproject.org/v/s/www3.nhk.or.jp/news/html/20220704/amp/k10013701781000.html?amp_js_v=a6&amp_gsa=1&usqp=mq331AQKKAFQArABIIACAw%3D%3D#aoh=16569313249504&referrer=https%3A%2F%2Fwww.google.com&amp_tf=%E3%82%BD%E3%83%BC%E3%82%B9%3A%20%251%24s&ampshare=https%3A%2F%2Fwww3.nhk.or.jp%2Fnews%2Fhtml%2F20220704%2Fk10013701781000.html

N国の比例順位は1位ガーシー、2位山太郎(偽)、3位久保田まなぶ(ポリフェノール秋山)という予想なので、1議席取ったらほぼガーシーが当選するだろう 知らんけど

知り合いの有名人暴露しまくれば掴み取れる実績

これこそが議席だったのだ

そう思うと何だかアホらしくなってきた

もう選挙には行かずシコって寝るかフォーガイズでもしてようかな

2022-06-27

anond:20220626151746

最初に作ったもんなんて、めっちゃさいもんだし、もう残ってない・・

とりあえず初心者は、リビドーに頼るのがいい。

Webを探せば、ドスケベ写真を集めて無断で転載して「ドスケベ画像30枚」とかやってるサイトあるから

その画像を全部まとめてDLするプログラムでも作ってみればいい。

ちょっと昔は、BSDソケットは大体のOS提供してくれてるが、HTTPの部分は自分プログラムする必要があって

まあ落ち着いて考えれば大して複雑な仕様でもないし、いい勉強になった。

今はどこもかしこhttpsだから、低レイヤ勉強は諦めてSSL/TSL対応オールインワンHTTPライブラリを使わないと

カウパー液がパンツについて乾いてガビガビになるくらい時間がかかってしま・・・

2022-06-18

feed-filter add --url-prefix "https?://qiita.com/" --title-contains "もう\\w+ない" --never

2022-06-05

seleniumとやらを体験したい。

dockerubuntu:20.04でchromeDriverにchromium-browserとか入れればいいんだろ?

誰か「chromium-browser? それなら apt-get install lsb-release libappindicator3-1 の次に

  wget https://dl.goo略/_amd64.deb して dpkg でインスコや」

何やそれ。コマンドひとつじゃ入らんのか。

ってか、これじゃchromeDriverが動かない。chromium-browser も無いし、インスコ出来てなくない?

別の誰か「ちゃうちゃうapt-get install chromium-browserシンプルでええやん」

まあ、そうやろな。インスコしとくれ。

ターミナル「色々DLしとるが、どっかの https://archve.略/foobar で Bad Request が返ってきたでw」

何やそれ・・1回くらい自動リトライしてくれていいんやない?自分リトライしたら通ったで。

しかしこれも動かない。

別の誰か「apt-get install default-jre いるみたいやで。ドキュメントどこにも書かれてないけど」

何やそれ?なんでJREが出てくるの。

まあJRE入れれば、確かにchromedriverの出すエラーは変わった。

chromium-browserプロセスが居なくなったし、クラッシュしたんじゃね?」と。

何やそれ。。。

chromium-browser --version をやってみると

ターミナルsnap install chromiumsnap版入れてくれw」

何やそれ!apt-getの時に何が入ったんや!

まあよく知らんが、やったるか。snap install chromium っと

ターミナルあかんhttp://localhost/v2/snaps/chromium に繋げられんのやがw」

なんでlocalhostに繋げようとしてんの。

いまだにLinuxくんと仲良くできない。

追記

なるほど、Ubuntu 20.04 からsnappyに移行しとるんだと。しかしWSL2ではsystemdが動いてないんでsnapdも動いてない。だからアカン。

わいが仲良くできていないのは、LinuxくんではなくWSL2くんと言うべきなのか?

Ubuntu18.04ならapt-get動作する事が分かったので、もういいや。

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