「インスタンス」を含む日記 RSS

はてなキーワード: インスタンスとは

2022-11-21

マストドン移住に関して

mstdn.jpだけはやめとけ

TLを2分眺めるだけで500エラー吐くぐらいなので

このままユーザーが増えるとTwitterより先に死にそうだ

追記

逼迫ぶりを察してるので別インスタンスにも垢作ってます

マストドンを始めて

マストドンの自前インスタンスのことを調べてたら、「画像投稿が多い人をフォローしてるとサーバの容量を埋められがち」みたいなブログを見かけて。マストドンではスマホ写真リサイズしてからあげた方が良さげねと思った。中小規模のインスタンスも多いし、サーバ逼迫させる要素は少ないほうが、そりゃいいよね。

前々からそれほど高画質で残したい写真もないよなーと思ってたので(食べ物スクショとか多いしw)、iPhone解像度下げる方法検索なう

2022-11-18

anond:20221118005322

あれはトピックごとにインスタンスへ参加するものだよね

2ch/5chのスレに近い(板よりも狭くて公式性が低い)

このへんはマストドンアプリを使って複数インスタンス登録するとなんとなくわかるんだがなあ

2022-11-16

Twitter はこのまま消滅した方が良いと思う

イーロン・マスク氏の Twitter 買収は Twitter の終わりの始まり、とか言う意見を見聞きする様になったんだが、

個人的Twitter はこのまま消滅した方が社会的に良いと思ってるので、その点について書こうと思う。

追記: スマホで読み返したら読みづらかったし、文章が雑だと感じたので全面的に改稿しています

ちなみに三行しか読みたくない人に向けて話をまとめておくとこうなる:



あと最期のおまけの話は Twitter の代わりはない。諦めろ と言うのが俺の考えです。

理由1. Twitter は死に追い込む事ができるプラットフォームになっている


まず第一に今の Twitter が無い方が良いと思う理由がこれ。

直近で思い出すと木村花さんの事件代表的だが、今の Twitter での炎上一般大衆DMリプライ

リツイート誰でも簡単 他人に悪意をぶつけられる様になっている。

まり誰でも手軽に集団精神暴力を見ず知らずの相手に振えるようになってる。

そしてこの文脈で言うと、10年以上前の昔は炎上舞台ブログコメント欄とか 2ch だったため、

炎上させるには自分から相手領域へ殴り込んでコメントを残さない限り暴言を吐けなかった。

しかコメント欄当事者が閉じれたから、そうなったらそれこそ 2ch でギャーギャーと騒ぐぐらいしかできなかった。

んでその時代から 10年以上経って今どうなったか

まず炎上現場自分領域自分管理するブログから他人領域(この場合 Twitter)に変わった。

その上、誰が見ても酷い暴言を吐いた連中の IP とか分からなくなったし(とは言え自前ブログだと今でも大体 IP は分かる)、

Twitter は一度ひどく炎上すると二度と社会復帰できない惨事現場になった。

と言うのも Twitterパブリックエネミーとして炎上すると、顔が割れ本名バレしたら就職や進学に影響が出るのが常になったし、

パブリックエネミーではない理不尽炎上でも、 Twitter が他の SNS での関連付けされていたらすべての SNS から丸ごと退場、と言う結果になる。

まり一度追い込まれたら SNS に復帰できないどころか、現実社会でも人を追い込める構造になってしまった。

んでさら性質の悪いことに、一度 鍵垢とかアカ消しなどで Twitter から逃げだしたとしても炎上案件面白半分で拡散するアルファ垢とかが普通にいるし、

そう言うクソアルファツイートを対した思慮もなく拡散するバカがアホみたいに居たりするんだよな。

そしてそう言う連中がいるから、一度炎上で火が付くと余程燃やした側に非が無いと炎上は止まらなくなったし、

その結果として、Twitter は人を追い込んで自死自殺)へと仕向ける事が出来るプラットフォームになった。

まり昔の放牧的で日本語すら通らなかった Twitter は気がついたら無くなってて、人を死に追い遣ることも出来る惨状SNS になった。

なんで俺は死人が出る、と言う理由で今の Twitter は無くした方が良いと思ってる。



理由2. Twitter で死人が出ることが、表現言論の自由に対して規制を掛ける大義となる


次の理由がこれ。

直近のニュースで、複合的な理由が要因となって「いいねlike)」だけで民事名誉毀損が認められた、

いわゆる「いいね罪」が発生する様になった、と言う事が表現の自由戦士界隈で話題になってたみたいだが、

俺はこれを当然の結果だと思ってる。

と言うより、さっきも木村花さんの事件言及した様に Twitter で死人や人生破壊される人が出れば出るほど、

司法国家権力は「個人を守る」ために、特定言論一定の圧を掛ける判決規制を出さざるを得なくなる。

なんでかって言えば SNS で死人や被害者が出ている現状を放置する社会、なんて被害者の側からしてみればたまったもんじゃないし、

そう言う社会悪の放置は、往々にして政治現場一定の圧になってくる。んで、この政治側に掛けられる圧が「大義」に化ける。

そしてそう言う「大義」が大手を振って歩ける様になった結果、侮辱罪は厳罰化されたし、それでも SNS個人への精神暴力が止まらず、

より酷い状況を生み出すんであれば、たぶん名誉毀損罪とかも厳罰化されるだろう、と俺は思ってる。

んでそう言う「大義」にかこつけて「言論の自由」を規制したい連中は暗躍するわけで、今の惨事が罷り通る Twitter は既に言論の自由の敵になった、と俺は考えている。

そしてこの手の話が最終的に極まって行けば、極論だけど Twitter みたいな SNS規制省疔直轄の許可制かになりかねないでねーの、と俺個人は思ってます

理由3. 自国大統領(当時トランプ)すら追放したプラットフォーム日本言論を預けるべきではない


これはまあオマケみたいは話ではあるんだけど、Twitter も含め 、例えば Facebook とか Instagram

YouTube とか TikTok とかなんでもそうだが、国外SNS は前提として 日本国における言論の自由は無い

と言うのもこれらの SNS はすべて諸外国法律下に既にあって、その上で日本規制とかが入ってるから

他国規制自国規制、その両方の法規制の元に置かれている。

で、これの何が都合の悪いか、と言うと、例えば日本法律では許されている言論であっても、

サービス提供を行なう本社がある国では違法となる言論があった場合日本に居ながらにして他国法律適用される、とかそう言う事になる。

なんで例えばアメリカでクソったれな言論規制法が出来上がって施行されたとすると、

その法に対し違憲判決が出ない限り Twitter などのアメリカSNS は、日本を含めどの国に対してもそのクソったれな規制下に置かれてしまう。

なのでそう言った意味で、そもそもとしてアメリカ企業が運営する Twitter には日本言論の自由はない。

そしてさら性質の悪いことに、Twitter 社はトランプ大統領が現役だった時、トランプ大統領無茶苦茶を言い出したことに対して、

マニュアル運用トランプ大統領を黙らせようとし、最終的にトランプ大統領が退任した後、アカウントを凍結して Twitter からトランプ元大統領を叩き出した。

んで、自国要人しか大統領にさえ(抵抗権として)牙を向いた Twitter 社が、他国要人が似たような事をしだした時、

同じ様な行動を取らない、なんて保障はあると思うか?思う思わないは個人意見に相異はあるだろうが、俺としてはそうは思わない。

まり Twitter と言う会社は、自社や自国にとって都合の悪い意見政府要人が言い出した場合相手を黙らせた前科があり、

そう言った意味日本政府要人、あるいは公共機関Twitter アカウントが凍結されない、なんて保障は俺は無いと思ってる。

なのでそう言った意味で俺は今の Twitter を信用・信頼すべきではないと思うし、イーロン・マスク氏の暴走がどう影響するか分からんが、

自体がより悪化する方向へ傾くのであれば、俺は Twitter にご退場を願った方が良いと考えてます

おまけ: Twitter の代わりになる SNS存在するか?


そう言った理由で俺は Twitter と言うサービスは、ある面では無くなった方が良いんじゃないかと思ってるんだが、

では Twitter の代わりになるサービスはあるか?と聞かれたら、それはたぶん無い。諦めろ、と言うのが俺の結論

と言うか第二・第三の Twitter もどきが出てきたところで、 Twitter の二の舞になるからそもそもそんなサービス存在すべきではない、と思ってる。

あと Twitter代用、と言う文脈マストドンなどの連合系インスタンス群(Fediverse)が代用候補に上げられるが、

マストドンや misskey 、Pleroma なんかでも同じで、連合系インスタンスであっても、規模がデカくなればなるほどTwitter と同じ末路を辿るだろう、と考えてる。

と言うか連合系インスタンス比較平和なのはユーザー数が少なく良識のある面々が多数派からであって、

そうではないクソみたいな連中が雪崩れ込んできたら、あっと言う間に Twitter の様な荒廃した世界になるのがオチしか俺は思えない。

しかマストドンとかは技術的な面倒を見れるのであれば誰でもインスタンス立てられるから

誹謗中傷暴言陰謀論排外主義差別主義、と言った最悪な言動に特化したインスタンス「も」立てられると言う面もあったりする。

とは言えそう言った最悪系のインスタンスは他のインスタンス連合から弾き出せるし、

Pawoo みたいに海外法律的に連合を組めない(主にえっちイラストが原因)もあるから、これが一概に悪いとは思わない。

が、ユーザーが増えれば増えるほど SNS 系のサービス治安が悪くなるから、俺としては大規模な Twitter もどきを増やす利点を見出せない。

なんで俺個人としては、連合系インスタンスは行儀の良い面々だけで運用されるインスタンスでもない限り治安は最悪になるだろうし、

Twitter で誰とでも暴言吐いて論戦出来る場なんて用意すべきではないと考えてる。

そのためこの節の最初の方でも言ったけど Twitter の代わりは無いし用意すべきでもない。素直に諦めろ

と言うのが俺の結論です。なので誰にとっても救いはない。

2022-11-14

anond:20221114173443

それは増田では?というかエアプやろ?キラキラWEB系とか言ってる時点で情弱商法に騙されそう

ひどいお仕事増田の例

RadiusActive Directory も無い世界線どころか、DHCPサーバ側でMACアドレスIPアドレスの組み合わせを予約しておくことすらできない世界線増田

最近でも Azure AD なんか導入している企業ないマン、Microsoft365 や Google Workspace は存在しない+それらと連携させるセキュリティプロダクトは存在しないマン

AWSVMDocker存在しない世界線マンAWS で起動テンプレートを作らないインスタンスを複製しないマンDebian契約するマン

Linus Torvalds を知らないマン資産管理意味理解できないマンフリーデスク基本的運用を知らないマン、基幹システムアクセスしないマン

Teamsなどのコミュニケーションツール存在しない世界線マン、今時は Teams などのコラボレーションプラットフォームに内線を統一する流れなのに

一昔前の BYOD個人携帯アプリで内線を割り当てるどころか固定電話廃止して携帯定額通話ドヤ顔マンユニコーン企業で働いてる設定なのにお局云々マン

AWS年収1000万余裕マンAWSについての歴史改変マン既存不正検知AIプラットフォーム使用せず依頼を受けてサイゲ参考に不正検出システムを作ったマン

Python仕事は無いマンデスクデコるマンリモートワークできないマンMacドヤ顔マン・・・・・ほか、上げたらキリがない

2022-11-13

anond:20221113081203

んなわけない、下記の世界線の人たちがおかしいだけ

RadiusActive Directory も無い世界線どころか、DHCPサーバ側でMACアドレスIPアドレスの組み合わせを予約しておくことすらできない世界線増田

最近でも Azure AD なんか導入している企業ないマン、Microsoft365 や Google Workspace は存在しない+それらと連携させるセキュリティプロダクトは存在しないマン

AWSVMDocker存在しない世界線マンAWS で起動テンプレートを作らないインスタンスを複製しないマンDebian契約するマン

Linus Torvalds を知らないマン資産管理意味理解できないマンフリーデスク基本的運用を知らないマン、基幹システムアクセスしないマン

Teamsなどのコミュニケーションツール存在しない世界線マン、今時は Teams などのコラボレーションプラットフォームに内線を統一する流れなのに

一昔前の BYOD個人携帯アプリで内線を割り当てるどころか固定電話廃止して携帯定額通話ドヤ顔マンユニコーン企業で働いてる設定なのにお局云々マン

AWS年収1000万余裕マンAWSについての歴史改変マン既存不正検知AIプラットフォーム使用せず依頼を受けてサイゲ参考に不正検出システムを作ったマン

Python仕事は無いマンデスクデコるマンリモートワークできないマン・・・・・ほか、上げたらキリがない

2022-11-12

anond:20221112180915

在りし日のVIPがみんなニートという体だったのと同じく、

ワイも増田

MMMO (M 無教養で M 無能で M 無収入な O オタク) か

MMMM (M 無教養で M 無能で M 無収入な M マン) で

それ以外はフェイ!!!でええやろとは思いつつも、

 

年がら年中、就職できないとかやってるし、ひどいお仕事増田見るから

RadiusActive Directory も無い世界線どころか、DHCPサーバ側でMACアドレスIPアドレスの組み合わせを予約しておくことすらできない世界線増田

最近でも Azure AD なんか導入している企業ないマン、Microsoft365 や Google Workspace は存在しない+それらと連携させるセキュリティプロダクトは存在しないマン

AWSVMDocker存在しない世界線マンAWS で起動テンプレートを作らないインスタンスを複製しないマンDebian契約するマン

Linus Torvalds を知らないマン資産管理意味理解できないマンフリーデスク基本的運用を知らないマン、基幹システムアクセスしないマン

Teamsなどのコミュニケーションツール存在しない世界線マン、今時は Teams などのコラボレーションプラットフォームに内線を統一する流れなのに

一昔前の BYOD個人携帯アプリで内線を割り当てるどころか固定電話廃止して携帯定額通話ドヤ顔マンユニコーン企業で働いてる設定なのにお局云々マン

AWS年収1000万余裕マンAWSについての歴史改変マン既存不正検知AIプラットフォーム使用せず依頼を受けてサイゲ参考に不正検出システムを作ったマン

Python仕事は無いマンデスクデコるマンリモートワークできないマン・・・・・ほか、上げたらキリがない

2022-11-09

anond:20221109151719

今のmastodonって集団ごとに立ててるから似たようなもんなのでは

最初流行った当初はどこかの会社管理して今のTwitterみたいなごった煮運営してるインスタンスもあったと思うが

そのタイプ運用をしているインスタンスはことごとく不採算で閉じて現存しないと思う

2022-11-05

「【初心者向け】第2回 クソコードを書かないためのテクニック4選」という動画の内容がひどい

https://www.youtube.com/watch?v=yhDLmGpjdms

これよりもっとひどい動画ごまんとあるが、ここまでタイトルで煽っている以上指摘するわ。

全体を通じて

個別

プロフィール見るとCTOを経て独立してプログラミングスクール会社やっているっぽいけど、すごい時代だな。

晒しなっちゃったけど、他にも有名(と思われる)プログラミングYouTuberが実際にコードを書いている場合でひどいのはザクザク見つけられるから、見つけてため息をつくといいと思います

2022-10-24

インスタンスダンジョンしかないんだったらMMOじゃなくてMOだよなあ

いやダンジョン内での沸き待ちとかが好ましいことだとは1ミリも思わないけども

2022-10-08

知識を得ることは不幸

データベース勉強してたらインスタンスが落ちる恐怖を覚えてしまった😡

2022-09-09

オブジェクト指向ってこういうこと?

これまでいろいろな書籍サイトから情報を得てきて、オブジェクト指向プログラムを、「知識スキルを持った職人をいっぱい雇ったプロジェクト」というように理解している。

極論を言えば、オブジェクト指向擬人化思考というように捉えているけれど、この理解はどの程度あっているのだろうか?

会社プログラマー

職人=ありとあらゆるオブジェクト

知識データプロパティ

スキル関数メソッド

マニュアルクラス

職人マニュアルを読ませる=インスタンスを生成する

よその会社職人=外部ライブラリとか

とすると、

職人は、会社の指示によって働き、持っている知識スキルを使って仕事をする。

知識スキルは、各職人会社に指示されたマニュアルを読んで覚える。

とか

オブジェクト指向特に有用なのは特に複数会社と協力して作業する場合である

そのような大規模なプロジェクトであるならば、各企業職人一人一人に指示するよりも、マニュアル一つで指示した方が簡単だし、間違いが少ない。

かに置き換えて理解できて、(自分的には)理解やすい。

オブジェクト指向の三大概念として、いろいろな媒体で紹介されている「継承」「ポリモーフィズム」「カプセル化」も、それぞれ「一つのマニュアルを用意して、職人に利用してもらいやすくする」「各職人は、自分にとって必要マニュアルの一部を読んで知識スキルを手に入れる(ここの理解は自信がない)」「マニュアルは、職人によって勝手に書き換えられないようにするべき」みたいな感じでなんとなく理解している。

ただ、根本オブジェクト指向がよくわかっていないため、これが合っているのかもわからない。

のだけれど、なんとなく色々勉強してきて、複数人とプログラムを組むとか、大きなプロジェクトとかでもない限り理解していなくても問題なさそうなので、回収率100%を超える競馬プログラムが出来上がるのを夢見て寝ます

(書いたのを読み返してみると、「会社プログラマー」よりも「プログラマー会社」の方が一般的な気がする)

2022-09-08

「Paperspace」を利用したVRChatの始め方

MacユーザーがOculus Questだけ買って、PaperspaceというクラウドゲーミングサービスPCVRChatを1年やってみたらかなり良かった。やり方を書き置きしておきたい。


2022年9月時点でのHow to・セットアップ方法記事がなかったので、先人のブログ引用しながら、変更点注意点などを書き残しておきます

使い始めた経緯

コロナ禍で好きな音楽現場へ行く事が難しくなり悶々としていた2021年夏頃、友人に「VRChatのVRクラブがおもろいから、騙されたと思ってOculus Quest2一緒に買って始めてほしい」と言われ、4万空中に投げたと思って、ノリだけでOculus Quest2を買う。

元々VRChat自体に憧れはあったが、家にはMacbookオフィス向けWindowsしかなかった為環境がなく、諦めていた。しか

・Paperspaceなるクラウドゲーミングサービス (つよつよグラボを積んだPCネット通して借りれる)

・Virtual Desktop(\2000) (Questと接続されてないPCを繋ぐQuestアプリ)

・Oculus Quest2(当時4万弱)

・Paperspaceを起動する端末(MacでもWindowsでもスマホでもOK

の4つが揃うだけでプレイできるらしい。価格は1$前後/1h。手元に必要ものブラウザが立ち上がるPCとQuestのみ。初期投資必要金額は4万前後

まぁちょっと旅行行ったと思って4万払ってみよう、体験版と思ってやってみるか〜 と思って始めたが、これが思いのほか快適で結局1年間使い続けてしまった。

もし「Quest版のVRChatをやってみたけど全然おもしろくなかった」「PC版でガッツリやってみたいけど家にあるPCスペックが足りない、或いはMacしかない」という人がいればぜひ参考にしてもらいたい

海外鯖の為、pingは100msほどあり軽度のラグが生じ、FPS系のゲームには向かない。

ただ、昔のSkype程度のラグのため、VRChatで会話コミュニケーションを行うにはほぼ不便を感じなかった。




やり方(準備・セットアップ


基本的方法は以下のブログ参照。

https://suna.hateblo.jp/entry/2019/06/30/015730

とりあえずP5000インスタンスを借りる承認が降りるまでは、やや時間がかかる(多分手動で承認作業をしてもらっている)のでSubmitのところまで記事に従ってやっておくが吉。

※この申請が通るまでは待ちなので、インスタンス構築手順は進められません。また、お金はこの時点ではかかりません。

[追記]上記ブログ内「3. 鍵がついているけどP5000をクリックする」の工程の画面が、2022年9月現在と大きく異なるようです。

Machine Type からP5000(鍵マーク付)を選択

→ 上記ブログの内容を参考にRequest Approvalへ申請理由を記入

→ Addを押して申請完了してください。

---

注意点

上記ブログについて、2022年9月現在では記事内8番の工程より先は大きく内容が異なる。そのため一旦無視を推奨する。

また、設定方法でも異なる部分が多くあるため、6点ほど注意点を書き残しておく。



①paperspace導入時(インスタンス構築手順)の最初の画面が現在ブログのものと大きく異なっている。

最初の画面でcore選択 → Help us~~ の画面で 利用目的を「hobbyst」「gaming」「just me」にしてcontinue を押し、マシン作成の画面に移行してください。

インスタンス構築の手順に入る前に、先にクレカ情報登録する。(P5000の申請を行うための必須作業登録のみなので支払いは発生しません)

ページ右上の■から「Billing」を選択して、「Payment Method」の項目に名前と住所(英語表記)・クレカ情報入力して、Addしてください。

③設定内容は変わらないが、選択部分の文字表記等が異なる部分がいくつかある。

ブログと同じマシン設定の場合の、項目名および選択・変更するもの表記は以下(参考にしてください)。

Machine Type P5000

OS Licensed のWindows10 

Region WEST COAST(CA1)

Desksize 100GB ※デスクサイズの変更については後述

Advanced options オン → ブログを参考にPublic IPAuto-Shutdown、 Auto-Snapshotを設定。

記事内9番の工程「VirtualDesktopインストールする」は ”Oculusから” 購入・インストールする。

SteamでもVirtualDesktop販売しているのだが、こちから買えるものは今回使う用途のものではありません。買っても無駄金になります。気をつけてください。(自分と友人らはここでしっかり詰んだ

⑤この記事11番「サイドロード版のVirtual Desktopインストールして起動する。」

この工程現在必要なし。飛ばしOK

⑥月額の課金額が変わるが、HDD容量が足りなくなるのでDesksizeは100GBに増やしておく。

※もし50GBでマシン作成してしまった後であっても"Upgrade Machine"の項目からワンクリックで増やせます



---



8番の工程まで完了したら

①OculusからVirtual Desktopアプリを購入(\2000)

※繰り返しになるが、Steamで売っているVirtual Desktopは、今回の環境時では使わない。間違って買ってしまった場合には返金をお願いしましょう。

②paperspaceのマシンに以下の順でインストール

※Virtual Desktopストリーマーを先にインストールすると不具合が出るパターンがあるようなので、なるべく最後インストールすることを推奨


これでセットアップ完了です

使用スタート


ブラウザでpaperspaceにログインクラウドPCマシンを立ち上げる

②paperspaceのマシンの起動を待っている間に、手元のOculusを起動

③OculusでVirtual Desktop起動

④Virtual DesktopからpaperSpaceのマシン接続(うまくOculusアプリインストールID連携が済んでいれば、Virtual Desktopを起動するだけで自動でつながる)

⑤Oculus左手の 三 のボタンを押して、VirtualDesktopメニューからVRモードVRChatを立ち上げる

以上でPC版のVRChatが開始できます

西海岸クラウドPCと繋いでゲームをするため、お使いの各家庭の回線環境依存する部分はあるかと思うので注意。

※ただ、iphoneのテザリングでもギリ使えたという話もあるので、相当回線速度が低くなければ意外といける可能性あり


まとめ ~MacユーザーでもゲーミングPCがなくてもVRChatが楽しめる~

上記の手順を踏めば、家にWindowsゲーミングPCがなくても、PCVRChatをVRモードで遊ぶことができる。

個人的感想だが、ことVRクラブにおいては、デスクトップモードVRモードでは体験が全く別物で、

デスクトップモードDOMMUNETwitchを見ている感覚と大差はない +マビノギとかのネトゲをやっている感覚って具合で

20%くらいしか面白くない。

ぜひ上記記事を参考にして、クラウドゲーミングPCを導入してみてください。

マジでNVIDIAGeForce NOWとかがVRChatに対応してくれたらコスパも良くてちょうど良いんだけどな・・・

2022-08-28

anond:20220827183403

そもそもオンプレミスシステムクラウドに載せ替えてコストダウンできるという発想が間抜けだ。頭が悪いクラウドオンプレミスよりも高コストだと、ガートナーすら指摘している。クラウドにするのであれば、クラウド適応したシステムに再構築すべきだ。例えば、静的ファイルは S3 + Cloudfront にして配信サーバーを少なくするとか、アプリケーションサーバーは需要に応じてインスタンススケールするようにして省力化するとか、データベースサーバーAurora か RDS にしてバックアップの手間暇をなくしたりするとか、でもしないとクラウド化で高コスト化しちゃうよ。

https://www.sbbit.jp/article/cont1/35846

2022-08-11

anond:20220811220258

クチンは「来週までにAWSEC2インスタンスVPC でつないで、グローバルIPをとって公開する方法勉強してきてね」「フロントエンド不要になったから、来週までにスプリング勉強してきてね」「なんか Python必要になるから勉強してきてね。だいたい Ruby とおんなじだから週末でいけるよね?」という感じだったな。

2022-08-08

やっぱ Throwable はきちんと catch() して、ログくらい出してもいいと思うんだよ。

Throwable 派生インスタンス作って、スタック巻き戻して、catch() に処理を移す、程度の余裕はあったって事でもあるわけでしょ。

ログくらい出していいじゃん。

その後は exit() するべきだろうけど。

「そんな状態で出るログなんて信頼できない」「他の部分まで破壊されて問題解析をややこしくする」という意見もあるけども。

しかしだね、今もう既にログが出てないせいで、顧客に「原因これです、ログにも出てます」と報告できなくて、ややこしい問題に陥ってるんだわ。

ログ出さずにいたら、結局原因が分からないんだわ。

単なる一時的メモリ不足かも知れないのに。

てかメモリの様子診てる限り、これ落ちてるのメモリ不足でしょ。どこでリークしてるのか知らんけど。

てかredisメモリ食いすぎじゃね?こんなにいるんだっけ?知らんけど。

色々と問題点は挙げられる。解決方法も挙げられる。

でも「そんな問題解決はいやだ、もっと他に無いか」と言われる。

やってられん。。。

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

anond:20220723005653

インスタンスをインスタ、

コンストラクタコンスト、

って略して質問されたときにはさすがに言ってやろうかと思った。

しかし言えなかった。

2022-07-05

anond:20220704213243

社内のクラウドインフラを使って社内向けの数十PJ管理するアプリケーション提供していた。

管理者権限があったので、結構自由にいろいろできる状態だったんだけど、

ゴミインスタンスが増えたことに気づいて削除するスクリプトを書いて実行した。

次の瞬間DBを含むすべてのインスタンスが消えた。

手に汗どころじゃないくらいの冷や汗がでた。夢だといいなって本当に願ったけど現実だった。

なんでスクリプトで削除するなんていう危険作業動作確認もせず、ダブルチェックもせずにやってしまったのか。。。

すぐにエスカレーションした後、復旧できないか調査した。

30分ほど調べたらどうやら削除コマンドは本当の削除ではなく、インスタンスの停止になっていて1週間後くらいに本当に削除するなんていう

仕様になっていることがわかった。削除フラグを消してインスタンスを全部立ち上げることで半日くらいの停止で済んだ。

それ以降大きなやらかしはしていない。この失敗からかなり学んだんだと思う。

失敗からいろいろ学ぶから小さい失敗はたくさんしておいたほうが良いなと思ってる。

2022-06-27

anond:20220627104914

オブジェクトとかエンティティとかインスタンスとか、ふんわりした概念をみんなよくわからないままルー語でしゃべってるの草

2022-06-23

anond:20220622231602

この議論には相互性がない。あなたと同じように、相手のほうも相手でメインルーチンを走らせており、時にあなたを含む他者サブルーチン的に利用しているのだから

まりあなた側の視点だけで関わり合いのある他者機能的に命名してしまうと、あなたというドメイン内での局所的な命名のような命名が、同時に動作しているメインルーチン数だけ存在することになり、命名管理コストが爆発する(というか、事実上、できない)。他者あなたにとってのサブルーチン)が、あなたが定めた局所的な命名規則によって呼び出されることを保証できないのなら、それはプログラム的な意味での「呼び出し名」として成立していない。

よって、一意性がある命名を用いて、どのようなドメインからでもおおむね目的サブルーチンの呼び出しを可能にしていることには、合理性がある。増田のような視点で言えば、会社役職である「総務課長」や「営業主任」などは、相手が司る機能性に着目した命名とも言えるが、そうした役職は同時に複数存在しうるので、個別インスタンス指定して呼び出すには、やはり一意性がある命名を利用することが合理的だ。

また、他者の「機能」は自分との関係で変化する。機能が変わるごとにサブルーチンとしての他者呼び方を変更することは、両者がドメイン(たとえば家庭)を共有している場合は低コスト可能だが(たとえば子供ができたあとに互いを「パパ・ママ」呼びするなど)、そうでない場合は、機能が変わるたびに命名を変えるのは、メインルーチン側から見ても合理的でない。

人間他者との相互通信コストを最小化するには、「他者機能命名して、変更があった場合は頭の中でテーブルを書き換える」より、「お互いにユニークに定められたマシン名を直接叩く」ほうがよいのだ。

2022-06-22

vrchat飽きてきた

始めたときにpublicで会った人たちの輪に入れたが、慣れてきてもずっとpublicにいるから毎度毎度初めましてのユーザーが多くて会話を新しく始めるのに疲れた

他の輪に入ろうにもユーザーランクが上がってしまって腰が上がらない

日頃から適当に話せるフレンドが決まってきたしpublicインスタンスから移動したいが、フレンドにその声をかける勇気もない

真のコミュ障仮想現実でもコミュ障

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