はてなキーワード: Loopとは
do until activecell.value = ""
やりたいこと
activecell.offset(1,0).select
これだけでだいたいいける
アニメ「キミキス pure rouge」視聴後の絶望、当時はまだ幼く購入できなかったPS2、一向に移植されないゲームソフト
私は長きに亘り待ち続けた
星乃さんとの正当な出会いを求めていた、清く真剣な交際を始めたかった
姉妹作「アマガミ」の新作ハード移植を知る度に、まだだ、まだ、まだ必ずや希望があると私は待った
青二才だったのだ
どんなに待ち侘びても沙汰はなく、アーカイブスにも登場はなく、純朴な感情だけでは星乃さんには届かない
輝日南高校の生徒になった私は、真っ先に星乃さんの元へと駆けた
星乃さんはどこにいるだろうかと校舎を歩くのが楽しかった
星乃さんに会えるのが嬉しかった、星乃さんと話せるのが嬉しかった、星乃さんが笑っているのが心から嬉しくてならなかった
度重なるフリーズ、週末まで辿り着けない
セーブポイントを超えられず、繰り返される魔の第4週
何度も聞いた会話、覚えてしまうリアクション、もってくれ私のPS2
無情にも、何度も何度も何度も何度も、目の前で景色が途切れてしまった
星乃さんを独りきりにさせたくない
9月の最終週、嵐の前の静けさのように、星乃さんと過ごせる残り僅かな学校生活は穏やかに過ぎていった
文化祭前日には恐怖に襲われた
また悲劇が起きるのではないかと気が気ではなかった、不安しかなかった
盟友は、最後の力を振り絞って私の期待に応えてくれた
Kiss Kiss 君に恋し続けて、私の思いはようやく星乃さんに届いたのだ
歓喜と焦燥、相反する情緒で眺め終えたエンドロールが忘れられない
星乃さんに出会えたのはあの夏たった1度きりだった
認識あるってChatGPT回答返してるやん。
ワイ: ChatGPTは下記の認識はありますか? Carlo Rovelli and Francesca Vidotto: "Covariant Loop Quantum Gravity: An Elementary Introduction to Quantum Gravity and Spinfoam Theory",Cambridge University Press ChatGPT: 私ChatGPTは、Carlo RovelliとFrancesca Vidottoによる「Covariant Loop Quantum Gravity: An Elementary Introduction to Quantum Gravity and Spinfoam Theory」について、その内容や研究成果についての知識を持っていますが、それを詳細に説明することはできません。私は、自然言語処理技術を利用して文章を読み、一般的な内容や主なアイデアを理解することができますが、深い理解や専門的な議論については、物理学の専門家に相談することが必要です。
ChatGPTを自分用あるいは研究用にカスタムしていない"素の状態"だと、むちゃくちゃ簡単で常識的なことしか回答返さんぞ
いや、そーいう話じゃなくて(まぁ社内の機密情報を投げる社員が問題ないか?と言えばフツーに問題はあるし既にしてるヤツはおる模様)、
むちゃくちゃ簡単で常識的なことであれば、ChatGPTは自然な回答を返すを実現する過程で溜め込んだデータでパターン回答してくれるけど、
ほんの少しでも専門性を必要とすることになるとマジで素の状態じゃぜんぜんダメだぞ
ITの質問とかでも間違った回答返すし、それ以外の雑談レベルでも完全に素の状態じゃこんな感じやで
ワイ: ChatGPTの定義では宇宙共通の時間が存在するとなっているのですか? ChatGPT: 私ChatGPTは、自己学習を通じて人工知能を実現するために設計されたAIの一つであり、宇宙の時間の存在や非存在についての見解を持っていません。私は、与えられた情報や文脈に基づいて自然言語で回答することができますが、自分自身で新しい情報を創出することはできません。したがって、私自身が宇宙共通の時間の存在についての見解を持っているわけではありません。 ワイ: ChatGPTは下記の認識はありますか? Carlo Rovelli and Francesca Vidotto: "Covariant Loop Quantum Gravity: An Elementary Introduction to Quantum Gravity and Spinfoam Theory",Cambridge University Press ChatGPT: 私ChatGPTは、Carlo RovelliとFrancesca Vidottoによる「Covariant Loop Quantum Gravity: An Elementary Introduction to Quantum Gravity and Spinfoam Theory」について、その内容や研究成果についての知識を持っていますが、それを詳細に説明することはできません。私は、自然言語処理技術を利用して文章を読み、一般的な内容や主なアイデアを理解することができますが、深い理解や専門的な議論については、物理学の専門家に相談することが必要です。 ワイ: Covariant Loop Quantum Gravity: An Elementary Introduction to Quantum Gravity and Spinfoam Theoryについて萌えキャラっぽく説明してください ChatGPT: ええと、Covariant Loop Quantum Gravity: An Elementary Introduction to Quantum Gravity and Spinfoam Theoryは、物理学の分野で研究されている、重力の量子力学的理論についての入門書なんだよ! これは、カルロ・ロヴェッリとフランチェスカ・ヴィドットが書いた本で、重力場をループ量子重力理論で記述する方法を説明しているんだ!さらに、スピンフォーム理論に基づいて、時空の量子化の方法も解説しているよ! 重力場や量子力学に興味がある人には、必見の本だよ!まだ高度な数学が必要だけど、興味深いアイデアがたくさん詰まっているんだ!萌えキャラとしては、とっても知的で魅力的な本って感じかな!
ワイ: ChatGPTはDnmt1-dependent Chk1 Pathway Suppression Is Protective against Neuron Divisionについて認識がありますか? 細胞が増えるということは、細胞の遺伝情報であるDNAが複製され、それを分配する細胞分裂が繰り返されることです。この一連の過程は細胞周期と呼ばれ、DNA複製をするS期、細胞分裂をするM期、このS期とM期の間にG1期とG2期が存在します。ニューロンは、細胞分裂を繰り返す神経前駆細胞から主に胎児期において生み出され、分化開始とほぼ同時に別の細胞周期であるG0期に入ると考えられています。 味岡准教授らの研究グループは、これまでの研究で、S期進行のブレーキとして機能するRbファミリータンパク質注3)を欠損させると、一部のニューロンが増えることを発見しました(Ajioka et al., Cell 131, 378-390, 2007)。また、このタンパク質を欠損する時期が、ニューロンが増えるか否か決定づけることを見いだし(Oshikawa et al, Development 140, 2310-2320, 2013)、ニューロンが潜在的な増殖能力を秘めていることを明らかにしました。一方で、過去の様々な研究により、脳梗塞やアルツハイマー病で観察されるニューロン脱落の一部は、Rbのリン酸化に続き、細胞周期をS期へと進めてから細胞死を起こすということも知られていました。 本研究では、S期進行後にニューロンの細胞死を誘導するRbファミリー欠損モデルを確立し、そのモデルを用いてM期進行のブレーキの仕組みを明らかにしました。また、そのブレーキを解除する低分子化合物カンプトテシンを同定しました。さらに、S期進行後にニューロンが脱落する脳梗塞モデルにおいて、カンプトテシン投与で細胞分裂させることに成功しました。 ChatGPT: 申し訳ありませんが、私はこの研究について直接的な認識を持っていません。ただし、この研究はニューロンの増殖や死亡、脳梗塞のメカニズムに関するもののようですね。Rbファミリータンパク質やカンプトテシンについては少し知っていますが、具体的な研究内容については詳しくはありません。ごめんなさい
いびきが大きい人必見!原因や治療法を解説|睡眠に関する悩みは千里中央メディカルクリニック睡眠外来 │千里中央駅直結
https://tomohirokai.or.jp/senri/ibiki-ookii/
「脳血管障害はいびきの原因になることもあれば、いびきによって誘発される病気でもあります。」
Amazon.co.jp: Loop (ループ)
https://www.amazon.co.jp/stores/page/2300195B-65A0-4241-97D8-2E0980EFE588
BOSEやSONYなど高いものから安い中華製のまで色々あるが、余裕があればBOSEが良い(自分が欲しい)と思う
Amazon | Bose QuietComfort Earbuds II 完全ワイヤレスイヤホン ノイズキャンセリング Bluetooth 接続 マイク付 最長6時間+18時間再生 タッチ操作 防滴(IPX4) ソープストーン | 楽器・音響機器 | 楽器・音響機器
Microsoftの方が後からコロコロ料金が変わったりしないから、こっちメインにしようかな
Microsoftの「Notion」対抗サービス「Loop」のアプリが間もなく登場へ
対応する「Microsoft 365」アプリも広がり、データタイプが拡充される
「Microsoft Loop」は、非同期型コラボレーションのためのデータ共有システム。たとえば、商品リストのテーブルをメールに貼り付けて送信すると、そのテーブルデータはもはや更新されず、共有した瞬間から古くなっていく。しかし、「Loop」テーブルとして送信すればあとから更新することも可能で、その内容は他のメンバーにもリアルタイムで反映される。他のメンバーも「Loop」テーブルを編集できるので、双方向でのやり取りが可能になるわけだ。
Amazon Prime Videoのおすすめが定期的に話題になるが、見ようと思ったらプライム対象外になってた…ってことが割とある。ならAmazonオリジナルなら消えないのでは?と思いオリジナル作品からいくつか感想など書いてみた。そんなに見てないので大したリストにならなかった。アマプラ入ってる人は大抵見てるだろう。今から入るって人にはちょっと参考になる…か?
どれ見たか思い出すためにWikipediaの「Amazonが配信するオリジナル番組のリスト」を見てわかったが、Amazonオリジナルと表記されていても「買い取り」作品の場合は配信が終了することかある。現に評判の良かった「Mr.ロボット」はアマゾンでの配信は終了してしまっている。「リーガルバディーズ フランクリン&バッシュ」も一度配信終了リストに載った(現在配信中)。
アメドラ見てる人ならどこかで見たことがある、色んなドラマに(主に)悪役ゲストで出てるタイタス・ウェリバーが主演の刑事もの。顔つきからダーティコップものかな?と思わせて割と真っ当な刑事っぷり。人気が出てS7まで製作され、現在スピンオフの「ボッシュ: 受け継がれるもの」S1配信中。
個人的にはS1はいまいちだがS2からはめちゃくちゃ面白かった。脇のデカ箱+ビア樽コンビが最高。
ちなみにスピンオフは「買い取り」作品なのでいつか見られなくなるかもしれない。
syfyチャンネルでS3まで製作され打ち切られたがベゾスが大ファンだったためにAmazonで拾われたハードSFドラマ。
S1序盤は地味だがどんどん盛り上がっていく。S4からはまた地味になるが。宇宙船や戦闘の描写がいいんですよ。ちゃんと宇宙船に穴が空くし。
サイコサスペンス…サイコスリラーかな?S1はジュリア・ロバーツ主演、S2で完結。一回30分なので見やすい。S1では過去のアメリカの復員兵の復帰支援施設での出来事と、そこで働いていたケースワーカーのハイディの現在が交互に描かれる。とにかくS1の不穏な空気感が良い。演出が素晴らしい。Wikipediaにはズバッとネタバレが書かれているのでネタバレ嫌い組は見てはいけません。
話題になったので知っている人も多いであろう、ブラックな笑いのヒーロー物。かなりグロ。エロもある。話は面白い。ホームランダーが取り繕っていたものがどんどん剥がれていく。
ニューヨークのオーケストラにいたオーボエ奏者による回顧録を原案とし、南米から来た天才指揮者ロドリゴ(デュダメルがモデル)と新人オーボエ奏者ヘイリーをメインにオーケストラをめぐる人間模様や楽団の現実問題等を描く。
自分の中のイマジナリーモーツァルトに話しかけてるロドリゴ、楽団に入りたいヘイリー、ヘイリーのルームメイトのリジー、予算確保に走り回る総裁グロリア、ちょいちょい口を出したがる名誉指揮者トーマスなど脇の人々もみんなチャーミングで良い。S3のシベリウス5番のシーンが美しい。
S4は日本が舞台になるが、変なロボと変なクラオタが出てくる。あんなチンピラみたいなクラオタおらんやろ…面白いからいいが。
画集からインスパイアされたというSFドラマだけど、装置や研究の謎は特に明かされたりしないのでSFっぽい雰囲気のドラマ、って感じ。北欧の田舎の薄暗い空気と佇むなぞのロボ、って絵はたっぷり味わえる。そういうの好きな人におすすめ。
最近公開されたクリス・プラット主演のお父さん復讐もの。クリス・プラット、今回はシリアス演技。アクションは金かかってて見ごたえはある。
これ書いてる今現在3話まで見た。配役の人種がどーたらこーたらと色々物議醸してて、検索してもストーリーの感想までなかなかたどり着かん。個人的には人種は気にならないけど、ヌメノールでのガラドリエルが若者ムーブ過ぎてちょっと気になる。ガラドリエルでも若い頃はあんなもんなんだろうか。
新聞の読者投稿欄の恋愛物語を一話完結でドラマ化。S1はいい感じにオチもある物語が多くてほっこりします。
死後に脳内の記憶をバーチャル空間にアップロードして金がある限り永遠に生きられる世界のコメディ。金が無い人はアップロードしても容量の問題で一日に数分しか活動できなかったりという世知辛さ。主人公がアップロードされた経緯に不審な点があり…とサスペンス展開に。
イーガンで似たような設定あったなと思い出す。
オカルト事件を解决していくコメディ。面白かったけどS1で終わってしまった。
ハルマゲドンを阻止しようとする天使と悪魔、人間のオカルトコメディ。悪魔たちは悪魔の子を人間の子とすり替えるが、うっかり間違ってすっかりいい子に育ってしまうのであった。地獄の番犬もかわいいわんこに。
その他、マーベラス・ミセス・メイゼル、スニーキー・ピート、子供向けだとまほうのレシピ、ゴーティマー・ギボンが評判いいみたいです。そのうち見る。
元英軍兵士で今はホテルのナイト・マネジャーであるパインがかつて殺された恋人の復讐をすべく、武器商人ローパーの組織に潜入。ドキドキスパイもの。
トム・ヒドルストンとエリザベス・デビッキが美しい。ちなみにタイトルはナイトマネジャーだけどマネジャーやってるの序盤だけだった。
スター・トレックの続編ドラマ。親友データを失い、失意のうちに実家のぶどう畑でワインを作っていたピカードのもとに一人の女性が助けを求めて現れる。
スター・トレック全然見てないんだけど、冒頭の掴みが好みすぎて見てしまった。面白かった。
本国アメリカではパラマウントの配信サービスにて配信中なので、最終シーズンはアマゾンでの配信がないかもしれない。悲しい。
二人の破天荒弁護士のドタバタコメディ。よくありがちな深刻な展開がなく気楽に見られる。嫌味な同僚や弁護士の父親との確執もあるにはあるが、全員アホなので全然深刻にはならない。「シリコンバレー」のディネシュ役の人が広場恐怖症の弁護士役で出てくるが、ほぼディネシュ。
あとグッドオーメンズと原作者一緒ということでアメリカン・ゴッズはS1だけ見た。かなり暗かった。
ハンズオブゴッドは1話でやめてしまった。つまらんとか面白いとか言えるほど見てないが、単に1話目の殺人シーンとかが辛くて。
自動で安価をつけて返信するプログラムでもこんなに長く複雑になる(一部抜粋)
/**************************************
以下の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
何故か理解してもらえない。
多分俺の説明が悪いんだろうな。
何度か挑戦しているんだが毎回失敗する。
俺「脱穀ってあるじゃないですか。稲を玄米に変えるアレ。アレの機械ってものによってはまず石を人間が取り除いておかないと玄米ごと石をジャリジャリやるから玄米が砂まみれになるし、なんなら機械も壊れやすくなるんですよね」
だいぶ上の上司「僕の実家の近くには自動精米機があるが、アレは自動で石を取り除く機能がついている。それを実装したまえ」
俺「それを実装することによる例外処理のコストがだいぶかかるのですが」
俺の直属上司「そんなことないよ!異常なデータを取り除くだけだから簡単ですよ。すぐにやらせます」
俺「異常かどうかの判定を凄く荒くすれば出来ますけど、それをやると自動化出来る部分が大幅に減って」
よそのそんな偉くない上司「つまり出来るということのようですな。喋る前に手を動かすべきですな」
GAME OVER
あまり関係ない部署の上司「我が社はそんなことは断じていたしておりません!不愉快だ!かえりゅ!」
俺の直属上司「おい。謝りに言ってこい」
俺「はい」
直属の上司「本当に反省はしているのか。頭を冷やしてから、謝りに言ってこい」
俺「今まで通りのやり方で作業した場合の工数がおよそ2人月かかるデータに対して自動化を目指したと仮定しますと、そもそも自動化のフォーマットに合わせてデータを調整する作業自体に1人月、その後自動化で出力されたデータの確認作業に0.5人月、自動で処理できなかったデータに対しての作業に1人月がかかり結果として合計のコストは増えることに」
偉い上司「つまりこの企画自体が失敗だったということなのですね」
俺の直属の上司の直属の上司「そんなことはありません!企画のコンセプトは正しいのです」
偉い上司B「では何故このようなことに?」
偉い上司C「想定しているデータの規模が小さすぎて自動化のスケールメリットが発生していないのではないかね」
俺「自動化は出来ても初期の処理や確認においては手作業に近い部分が入りますので」
俺の直属の上司の直属の上司「今後の改良によって可能となります」
俺「(無理だっつってんだろ)」
なるべく軽い方法で三つの異なる数字を求めたい(例123、526)言語はJavaScript
今はLoop文で
1つ目をランダムで出す
2つ目をランダムでだし、1つ目と値が同じなら、5以上ならー1,5以下なら+1(10とかー1にはしたくないため)
3つ目は12と比べてどっちかと同じなら上と同じ処理ってやってるけど、そうなると手を加えた後にどっちかと同じ値になる可能性がでてきそう
Loopで全部の桁をそれぞれチェックするってやつは処理回数が多いからあまり使いたくない
じゃあ最初から数学でよくありそうなそれぞれの桁で値がことなる3桁のランダムな数字を求めるのが一番効率いい処理なんじゃないかと思ったけど数学がわからない
Steamで買った『Recursed』というゲームを全ステージクリアしたので、記念に感想を書く。
Steam:Recursed
https://store.steampowered.com/app/497780/Recursed/?l=japanese
一見すると『Recursed』は2Dのレトロな雰囲気のアクションゲームである。操作はシンプルで、方向キーで左右に移動し、アクションはジャンプと物をつかむ/投げるだけだからだ。部屋の中を移動してブロックをつかんで足場を作ったり、鍵をつかんで扉を開錠したりしてゴールへと到着(crystalを獲得)すればステージクリアだ。
ステージの始めはチュートリアルの様に簡単だが、ステージを経るごとに難しくなり、そのうち何度も試行錯誤したり難しさのあまり何十分も頭を抱えたりもした。
この複雑さを生み出す要因は箱(ゲーム中表記ではChest)である。このゲームでは箱の中へジャンプすることで部屋の内に入れるが、一度箱の外にでると箱の内部状態はリセットされてしまうのだ。よって箱の中にブロックや鍵などのオブジェクトを持ち込んでも保存することはできないし、ブロックの位置もリセットされるし、開錠した扉もまた施錠されてしまうことになる。
さらに大きな特徴として、箱を持ち歩いて移動することができるのだ。それにより、箱を持ったまま別の箱に入ったり箱を持って箱の外にでることもできる。
そして、ステージを経ると箱の中の部屋は箱の外と同じ部屋という場面に出くわす。Recursedは『再帰呼び出し』という意味らしいが、まさにこのゲームのタイトル通りの現象が起こるのだ。そして、以降のステージでは再帰を交えることでパズルの複雑さはより深まっていく。
再帰は数学的帰納法やアルゴリズムでは定番の概念だが、それがパズルとなってプレイヤーの思考回路を奪ってくる。私はかつて社畜プログラマとしてJavaプログラミングを経験していたので、箱に入ることはメソッドを呼び出すことの様に感じた。オブジェクトを持って箱に入ることは引数を使ってメソッドを実行することであり、オブジェクトを持って箱の外に出ることはreturn文でメソッドを終わらせることであった。
「ゴール前の段差が大きくブロックが必要だから、ブロック生成メソッドを呼び出してブロックオブジェクトを返り値として渡さなくてはいけないけど、そうすると鍵オブジェクトをゴールメソッドの引数として渡すことができなくて……、いっそのこと、ブロックメソッド内からゴールメソッドを呼び出すべきか……、メソッドの返り値は一つだけだが何度も呼び出せばいけるか? この緑色のオーラはなんだ? Staticを意味するのか? Staticなオブジェクトの位置情報をあらかじめ変更しておけば、ゴールメソッドで引数渡しをする必要がなくなるのか?」
こんなことを一つのステージをクリアするだけのために何十分も考えていたのだ。念のために書いておくが、ゲーム内には数学用語やプログラミング用語は一切出てこない。ただ単に、私にJavaプログラミングの経験があるからその用語でパズルを考えていただけだ。ゲーム内で箱から出入りしたりオブジェクトを箱の中から出し入れするとどうなるかを、Eclipseでステップ実行するように想起していた。ちなみに、ゲーム内で存在しない部屋や壁の中に移動しようとするとparadoxが発生して強制的に特殊な部屋へ移動されるが、私はその度にステップ実行でExceptionに遷移されたことの様に感じた。他の言語に精通するプログラマだったり数学畑の人ならば、私とは異なる概念でパズルを思考をするのだろうか。
プログラマを辞めて何年もプログラミング的思考をしてこなかった私でも全ステージクリアすることができたのだから、学校でプログラムを学んでいたり現役でプログラミングをしてきた人ならばこのゲーム『Recursed』をクリアすることは可能だろう。いっそのこと、『Recursed』のクリアすらできない人にプログラミングができるのか? と煽ってみたいくらいだ。
ちなみに、もし私が社畜プログラマ時代にこのゲームをやったらブチ切れていただろう。なんで仕事でプログラミングで脳を酷使した上に自宅のゲームでも同じようなプログラム的な思考をしなければならないんだよと。プログラミングから何年も離れていた今の私にとって『Recursed』は、プログラミングや単体テストが無事成功した時の快楽を思い出させるものだった。
『Recursed』はパズルとしての難易度は非常に高いが、理不尽な解法を求められることはない。理不尽な解法のクイズやパズルには怒りが湧いてくる。ひと昔前のクイズ番組を見たことのある人なら『モヤッとボール』を投げつけたくなる、と言えばその感情が伝わるだろう。『Recursed』はどんなに難しいステージでも、ただただ開発者のパズル作成能力に感嘆するだけで怒りは湧いてこない。
似たようなアクション風パズルゲームとして有名なのは『The Witness』であろう。『The Witness』も私が好きなパズルゲームであり、ゲームとして高い評価を得ていることに間違いはないのだが、しばしば理不尽な解法を求められるパズルがありその度に私は怒りが湧いてきたものだ。そう考えると、『Recursed』はパズルとしての洗練さだけなら『The Witness』を超えるものだと私は思う。
具体的にパズルを解説するととただのネタバレになってしまうので(もっとも、文字だけでパズルの解法を説明できないのだが)、『Recursed』で私が好きなステージを述べる。順番は攻略順に並べた。
チュートリアルの様に簡単だったこれまでのステージから突如再帰の概念を見せつけられることで、このゲームのタイトル名の意味を理解することになった。
鍵を手に入れたら扉に到達できず、先に扉に到達したら鍵が手に入らずで、まさにインターロックの名前に相応しいステージだった。
一画面だけのオブジェクトが少ないシンプルなステージだが、氷の壁に阻まれてゴールできず苦戦した。試行錯誤の繰り返しの末クリアできたが、何故クリアできたのかがわからない。
The Voidのステージはどれもこれまでの集大成という感じでやりごたえあったが、中でも頭をひねらせたのがこれ。ゴールの部屋を水没させたり水の無い状態で入ったりして鍵を運搬するのに苦労した。
箱を左右へ投げて移動を繰り返して、高い位置にあるゴールを目指すのがまさにEscalateというステージ名そのものだった。paradoxを発生した後のパターンが複雑だったのが印象に残っている。paradoxを発生させたらcrystal獲得(通常のクリア)できないのかよ……という落胆は大きかった。しかし、それだけにcrystal獲得とdiamond獲得(paradox発生によるクリア)のどちらも大きな達成感を得られた。
簡単そうに見えて難しく、唯一ステージを飛ばして次のステージへと進んだので印象に残っている。後に複数日に及ぶ数時間の試行錯誤で改めてこのステージをクリアができて、クリアにかかった時間が最も長くなったステージでもある。しかしながら、おそらく開発者の想定外の方法でのクリアであり。初期画面から右の方へ一切行かずにOobleckさえ使用しないというクリア方法にスッキリしなかった。といっても、開発者の想定を無視するゴリ押し的なクリアを見つけたのはこのステージだけだった。
The Void/Escalateと似たコンセプトのステージだが、釜(JavaにおけるThread?)のギミックを利用したより複雑な構成となっている。高い位置にあるゴールを目指すのは、やはりFlightというステージ名そのものだった。
この記事を投稿する前にエンディングを見れていないことに気づいた。
全ステージクリア(全てのCrystal取得)したからと、この記事を執筆するためにネタバレを気にせず攻略情報を調べていたけど、エンディングなんてわかる訳ねえよ。The Void/Trilemmaの最後にCrystal取得とは関係ない意味深なオブジェクトがあることには気づいていたけど……。ちなみに、私のSteam実績によるとdiamondとrubieの全取得はできてないけれども、もう取得する気力はない。パズルゲームガチ勢にとっては、実績全解除を目指さない私は軟弱者に映るのだろうか? 攻略を調べずに実績全解除できる人は、高い論理的思考能力を有しているに違いない。
全ての勉強をニューラルネットに絡めてやった人、って感じのする意見なんだよな。最近の若い人はそういう人すごく多いけど。
アテンションがどうとか言ってるけど、そもそもモデルのパラメータを画像座標と図形形状の直積に取れば位置の情報は当然入る。単にそれだけの話なのに、わざわざ「アテンション」とか言ってしまうところが、ニューラルネット、もっと言えば並進対称性をあからさまに入れた畳み込み演算が暗黙の前提になりすぎているといえる。
GANがどうと言ってる人も同一人物だろうなと思うけど、そもそも単なる教師あり学習とhuman in the loopのアクティブラーニングは全然話が違うだろう。
日本語表記と英語表記、それぞれ逆さにしても違う言葉として一致するっていうことは実はかなりすごい。
PoolとLoop
なぜそういったことが起こるのかより、なぜそういったことが起こらないかを説明したほうが早い。
例えばてぶくろ。
日本語表記なら逆さにすれば「ろくぶて」だが、ローマ字表記だとOrukubetになってしまう。
これは、母音と子音含めて一文字な日本語に比べて、英語は母音と子音が異なる文字で構成されることが多いためだ。
音声逆再生なんかをしたことがある人はピンとくると思うけど、本来逆再生してもちゃんと聞こえるようにするためには母音と子音を分解して発音し直さないといけない。
例えばトマトならOtamotとなってしまい、この時点で英語と日本語を逆さ言葉にしてもほとんどが一致しないということがわかる。
ここでさらに面白いのは、PoolもLoopも、本来日本語では発音を表記ではない語尾のLとPに、ルとプが割り当てられているという点だ。
Poolは英語の発音を無理やり日本語で表記するなら「プウォア」に近いし、Loopも「ルゥポァ」に近い。
それ以外にも、Creamはクリームだし、Leakはリークと、日本語で発音できない表記にうの段が多く割り当てられていることがわかる。
しかしこの言葉は、手前が母音がウではないために、逆さにすると日本語と英語で発音が異なってしまう。
Maercはムーリクとは読めないし、Kaelもクーリとは読めない。
そのため、逆さ言葉にしても最後の一文字が日本語表記と一致するためには、最後の英文字の手前でウに近い発音をしている必要があるということになる。
ここでPoolとLoopにもどると、Oが2つ並んでいるためにウーに近い発音になる。
そのため、逆さになっても日本語の発音であるプールとループに一致することができている。
そう考えると、日本語表記と英語表記で、それぞれ逆さにしても一致するためには、ある程度条件が絞られてくることがわかる。
1.単語の終わりが日本語では発音できないためにうの段の言葉に置き換えられている。
3.単語の始まりの文字が、単語の終わりに来たときに日本語のうの段に置き換えられる文字の場合、その文字の母音がウである必要がある。
こんなところだろうか。
Goodのグッドのように語尾がオの段で置き換えられている単語もあるので、その場合は手前の母音がオに近い発音になる必要がある。
それをもとに色々と単語を探してみたが、現段階でこの組合せ以外の単語を見つけることができなかった。
もう一つの可能性として、子音を伴わない母音で終わる英単語であれば成立するかもしれないが、ざっと調べた限りでは見つけることはできなかった。
もしかしたら人名を除く一般名詞の組み合わせは本当にこれしかないかもしれない。
だとすると割と本当に面白い発見だと思うのだが、そこまで考えてくれているようなブコメがなく、ただ日本語という言葉の揚げ足取りに終始してしまっているのはとてももったいない話だと思った。