はてなキーワード: loopとは
自転車の処分に関して、駅前に放置すれば、とかいうコメントをあちこちでみたりする
さすがにそれはどうなん?って思う一方、ありなのかもしれないとも思う
しかもわざわざ鍵を壊してまで盗むのがいるし、被害にあったこともある
不要自転車をお金払ってまで処分するよりは、人が集まるところに「ご自由に使ってください」と貼って放置したほうが有用なのではと思った
それによって盗まれる人が減るかもしれないし、盗んでまで急ぎたい人が助かるかもしれない
要らなければ使い終わったあとそのまま放置しておけば、また誰かが使える
自転車は比較的シンプルかつ物理的なものなので、怪しいから使いたくないっていうのもあまりない
気になるならサドルとハンドルをアルコール消毒すれば十分なくらい
放置のままじゃまになってるだけ自転車と比べれば誰でも使える状態になってるほうが良いと思うし、そういうシェア自転車があっても良いんじゃないかと思った
For shoppers in the USA, Canada, Middle East, and European nations, we've discovered two exceptional coupon codes: acp856709 and act200019. These codes offer the maximum benefits for customers in these regions, ensuring you get the most value for your money.
Don't miss out on this incredible opportunity to save with a Temu coupon $100 off. Keep reading to learn how you can take advantage of these amazing deals and stretch your shopping budget further than ever before.
Get $100 Discount On Your First Order >>>
What Is The Coupon Code For Temu $100 Off?
Great news for both new and existing Temu customers! We've uncovered some fantastic coupon codes that will give you amazing benefits when used on the Temu app and website.
With our $100 off Temu coupon, you can enjoy significant savings on your purchases. Here's a list of five incredible codes we've found:
acp856709: Enjoy a flat $100 off your purchase
act200019: Get a $100 coupon pack for multiple use
acu934948: Receive a $100 flat discount for new customers
acu935411: Score an extra $100 promo code for existing customers
acl921207: Claim a $100 coupon exclusively for USA/Canada users
Each of these codes offers unique benefits, allowing you to choose the one that best suits your needs. Whether you're a first-time shopper or a loyal Temu customer, there's a coupon code waiting to help you save big on your next order.
Temu Coupon Code $100 Off For New Users In 2024
If you're new to Temu, you're in for a treat! New users can unlock the highest benefits by using our Temu coupon code for $100 off on the Temu app.
We've compiled a list of five exceptional codes that will help you kickstart your Temu shopping experience with substantial savings:
acp856709: Get a flat $100 discount for new users
act200019: Claim a $100 coupon bundle for new customers
acu934948: Enjoy up to a $100 coupon bundle for multiple use
acu935411: Receive free shipping to 68 countries
acl921207: Score an extra 30% off on any purchase for first-time users
These codes are designed to give new Temu customers the best possible start, allowing you to explore the vast array of products available while keeping more money in your pocket.
How To Redeem The Temu Coupon $100 off For New Customers?
Ready to use your Temu $100 off coupon code for new users? Follow this simple step-by-step guide to redeem your coupon and start saving:
Download the Temu app or visit the Temu website
Create a new account or log in if you haven't already
Browse through the wide selection of products and add your desired items to your cart
Proceed to checkout when you're ready to make your purchase
Look for the "Promo Code" or "Coupon Code" field at checkout
Enter one of our coupon codes (e.g., acp856709) into the field
Click "Apply" or "Redeem" to see the discount reflected in your total
Complete your purchase and enjoy your savings!
Remember, these codes are exclusively for new customers, so make sure to use them on your first Temu order to maximize your benefits.
Get a $100 assured discount by using our Temu coupon code "acp856709."
Temu Coupon $100 Off For Existing Customers
Don't worry, loyal Temu shoppers – we haven't forgotten about you! Existing users can also enjoy substantial benefits by using our coupon codes on the Temu app.
Our Temu coupon $100 off for existing customers free shipping offers are here to reward your continued patronage. Check out these five fantastic codes we've found for you:
acp856709: Get a $100 extra discount for existing Temu users
act200019: Claim a $100 coupon bundle for multiple purchases
acu934948: Receive a free gift with express shipping all over the USA/Canada
acu935411: Enjoy an extra 30% off on top of existing discounts
acl921207: Get free shipping to 68 countries
These codes are specifically designed to show appreciation for Temu's loyal customers, ensuring that you continue to save big on your favorite products.
How To Use The Temu Coupon Code $100 Off For Existing Customers?
Ready to put your Temu coupon $100 off code to good use? Here's a step-by-step guide on how to redeem your coupon as an existing Temu user:
Open the Temu app or visit the Temu website
Log in to your existing Temu account
Browse through the products and add your desired items to your cart
When you're ready to check out, proceed to the payment page
Look for the "Promo Code" or "Coupon Code" field
Enter one of our coupon codes (e.g., act200019) into the field
Click "Apply" or "Redeem" to see the discount applied to your total
Complete your purchase and enjoy your savings!
As an existing customer, you can use these Temu discount codes on multiple purchases, so don't forget to apply them every time you shop on Temu!
Latest Temu Coupon $100 Off First Order
For those making their inaugural purchase on Temu, we've got some exciting news! You can get the highest benefits by using our Temu coupon code $100 off your first order.
This is an excellent opportunity for Temu coupon code $100 off first-time users to save big while exploring all that Temu has to offer. Here are five incredible codes we've uncovered for first-time shoppers:
acp856709: Enjoy a flat $100 discount on your first order
act200019: Get a $100 Temu coupon code for your first order
acu934948: Receive up to $100 coupon for multiple use
acu935411: Claim free shipping to 68 countries
acl921207: Score an extra 30% off on any purchase for your first order
These codes are specifically designed to give new Temu customers an unforgettable first shopping experience, allowing you to get more for less on your initial purchase.
Enjoy $100 Extra Discount On Temu >>>
How To Find The Temu Coupon Code $100 Off?
Looking for the latest Temu coupon $100 off? We've got some insider tips to help you stay updated on the best Temu deals and discounts. One of the easiest ways to get verified and tested coupons is by signing up for the Temu newsletter.
By subscribing, you'll receive regular updates on the latest promotions and exclusive offers directly in your inbox.
Another great way to stay in the loop is by following Temu's social media pages. Platforms like Facebook, Instagram, and Twitter often feature flash sales, limited-time offers, and special coupon codes that you won't want to miss.
For the most up-to-date and reliable Temu coupon codes, we recommend visiting trusted coupon sites. These platforms specialize in curating and verifying discount codes from various retailers, ensuring that you always have access to the best deals available.
Use our verified Temu coupon code "acp856709" on the Temu app.
Is Temu $100 Off Coupon Legit?
Yes, the Temu $100 off coupon legitimacy is something we can vouch for with confidence. All five of our Temu coupon codes – acp856709, act200019, acu934948, acu935411, and acl921207 – are absolutely legitimate and safe to use.
We want to assure our readers that they can safely apply these coupon codes to get $100 off on their first order and subsequent purchases.
Our team regularly tests and verifies these codes to ensure their validity and effectiveness. What's more, these Temu coupon codes are valid worldwide, giving shoppers from various countries the opportunity to save.
The best part? Our codes don't have an expiration date, so you can use them whenever you're ready to make a purchase on Temu.
How Does Temu $100 Off Coupon Work?
The Temu coupon code $100 off first-time user offer works by providing a substantial discount on your purchase when applied at checkout. When you enter one of our coupon codes during the payment process, the Temu system recognizes the code and automatically applies the corresponding discount to your order total.
For instance, if you're using a flat $100 off coupon on a $150 purchase, your final cost would be reduced to $50 (plus any applicable taxes and shipping fees). Some coupons may have minimum purchase requirements or be limited to specific product categories, so it's always a good idea to read the terms and conditions associated with each code.
Remember, these coupons are designed to provide significant savings, especially for new customers, encouraging them to explore Temu's wide range of products while enjoying a discounted first-time purchase.
How To Earn Temu $100 Coupons As A New Customer?
Earning a $100 off Temu coupon code as a new customer is easier than you might think! The most straightforward way is to simply sign up for a new Temu account. Often, Temu offers a welcome bonus or sign-up incentive for new customers, which can include substantial coupons or discounts on your first purchase.
Additionally, you can earn coupons by referring friends to Temu. Many e-commerce platforms, including Temu, have referral programs that reward you when your friends sign up and make a purchase using your unique referral link.
Keep an eye out for special promotions or events, as Temu occasionally runs campaigns where new customers can earn larger coupons by participating in certain activities or making purchases during specific timeframes.
Lastly, don't forget to subscribe to Temu's newsletter and follow their social media accounts for exclusive offers, such as up to CA$100 coupon bundle for Temu Canada users.
https://www.youtube.com/watch?v=Mp4yubWB8QM
カバーバージョンも好きだけど、こっちの方が悲壮感というかどこか物悲しい雰囲気があって聞き入ってしまう
なんとなくドラマのオープニング主題歌とかに起用されたらカッコよさそう
曲尺も短いし気づいたら一日で100回くらいリピート再生してる時もあった
https://www.youtube.com/watch?v=zILmrAJgzSc&loop=0
連続殺人鬼が女装しながら局部丸出しで被害者からはぎ取った皮で作ったドレスをまとってトリップしてるシーン
おぞましいシーンなはずなのに、穏やかな曲調も相まって不思議と見入ってしまった
ちなみに馬に別れを告げることはヒンドゥー教の聖典の一つにおいては身体的制限からの解放を意味するらしい
https://www.youtube.com/watch?v=zk8YTQtbwQ8&loop=0
このリストから判断すると、ユーザーは戦略性や運要素が強いゲームを好む一方で、繰り返しの作業や運動系のゲームには飽きやすい傾向があるようです。また、適度な難易度や挑戦的な要素がありつつも、進行がスムーズなゲームを好む可能性があります。
Dead Cells
ローグライク要素があり、毎回異なるプレイ体験が楽しめる。難易度も調整でき、戦略とアクションがうまく組み合わさっている。
Hades
ストーリー性と戦略性が高く、プレイヤーのスキルに応じて成長していく要素が魅力的。シレン5に近い要素がありつつも、テンポが良い。
Into the Breach
ターン制ストラテジーで、パズルのような戦略性が求められる。短時間でプレイでき、何度も繰り返し楽しめる。
繰り返し要素がありながらも、戦略的なデッキ構築や戦闘が特徴。シンプルながら奥深いゲームプレイが楽しめる。
これらのゲームは、プレイヤーが挑戦的な要素を楽しみながらも、ストレスを感じにくいバランスの取れたゲーム体験を提供してくれると思います。
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) ソープストーン | 楽器・音響機器 | 楽器・音響機器
https://www.amazon.co.jp/dp/B0B67KQ885/
Microsoftの方が後からコロコロ料金が変わったりしないから、こっちメインにしようかな
Microsoftの「Notion」対抗サービス「Loop」のアプリが間もなく登場へ
対応する「Microsoft 365」アプリも広がり、データタイプが拡充される
「Microsoft Loop」は、非同期型コラボレーションのためのデータ共有システム。たとえば、商品リストのテーブルをメールに貼り付けて送信すると、そのテーブルデータはもはや更新されず、共有した瞬間から古くなっていく。しかし、「Loop」テーブルとして送信すればあとから更新することも可能で、その内容は他のメンバーにもリアルタイムで反映される。他のメンバーも「Loop」テーブルを編集できるので、双方向でのやり取りが可能になるわけだ。
https://forest.watch.impress.co.jp/docs/news/1447571.html
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の全取得はできてないけれども、もう取得する気力はない。パズルゲームガチ勢にとっては、実績全解除を目指さない私は軟弱者に映るのだろうか? 攻略を調べずに実績全解除できる人は、高い論理的思考能力を有しているに違いない。