はてなキーワード: matchとは
変態パズルゲームメーカー(誉め言葉)で知られるZachtronicsの最終作『Last Call BBS』を全実績解除するまでやり尽くしたので感想を書く。
私にとって『Last Call BBS』は、3作目に遊んだZachtronicsゲームである。
1作目は『Opus Magnum』、2作目は『SpaceChem』であった。
SpaceChemを全実績解除するまでプレイした時の感想はこちら → https://anond.hatelabo.jp/20240315235948#
いやー、それにしても楽しかった。
ゲーム全体の雰囲気としては、レトロな雰囲気が気に入った。HDDのカリカリ音だったりダイヤルアップ接続のピポパ音だったりもいい。
ただ、日本語訳されていないので、BBSや主人公(?)のテキストメモにおいて英文読解があまりできなかったのが残念だ。とはいえこれは私の英語能力が低いせいなので仕方がない。
『Last Call BBS』に収録されている各ゲームの難易度は、私にとってちょうど良かった。ギリギリクリアできる難易度のものが多かったから、当ゲームの開発者は難易度調整にさぞ力を入れたことだろう。
ゲームの紹介についてはネットで検索すればわかることだから他で参照してもらって、ここは日記なので私の感想を中心に書くことにする。ちなみに当ゲーム内にある各ゲーム(全部で8つ)の感想はクリア順(実績解除順)に並べる。
他のパズルゲームで頭脳を酷使した後のリフレッシュにちょうどいいのでついつい繰り返しプレイして、必要ないのに50勝以上もしてしまった。(10勝で実績解除)
初めの頃はルールを理解するのに苦労した。最初はとりあえず升目を空けてステージクリアしたが、なぜステージクリアになったのかがわからなかった。しかし、次第にルールが理解できるようになると、楽しくステージ進行できるようになった。とはいえ、終盤のほうはなかなか難しくて頭を抱えたりもした。
オブジェクトを運んで加工してと、まさにZachtronicsらしいパズルゲーム。ステージクリア後にコストとステップ数のランキングがグラフで表示されるので(SpaceChemなどでもおなじみだ)、クリア後もついつい効率化を図ってしまうのもまさにZachtronicsだ。コスト低減のためにコンベヤやセンサの設置をシンプルにして、代わりにロジック部分を配線まみれにしてしまうのが楽しくて仕方がない。
難易度の上昇幅もちょうどよく、ステージの終盤になるとロジック部分がギチギチで配線グチャグチャになったりしたのも楽しかった。
ステージクリア後の利用客のレビューも面白い(英文がちょっと難しかったけど)。コーラの製造ステージでコークやペプシを作るのだが、「全部同じじゃないですか」(意訳)というレビューがあって笑った。カップのデザインが違うだけで中身が同じだからだ。
あっさりと最高難易度までクリアして実績解除できた。しかし、クリアしても適切な戦略が良くわからなかった。クリアしても初期配置が良かったからとしか思えなくて達成感は無かったし、失敗してもやはり初期配置が悪かったからとしか思えなかった。ようするに運ゲーにしか感じなかった。やたらめったらカードを動かして積み重ねては駄目なようだけど、さりとてカードを積み重ねることでしかカードを動かせないのだからいったいどうすれば、という感じだった。
おなじく運ゲーなソリティアであるSawayama Solitaireは滅茶苦茶はまったのに対して、Kabufuda Solitaireにはあまりはまらなかった。これは、カード操作で戦略的思考を持てるか否かの違いだろうか。
ゲームというより作業シミュレーター? 無心になって、ニッパーでプチプチとパーツを外してパーツをはめ込むのは、禅の境地だろうか。
ゴア的ホラーな雰囲気を漂わせたパズルゲーム(ゴア表現は無い)。この雰囲気でパズルゲーム? と思ったが、スライム状のオブジェクトを増殖して変化させるパズルは、ゴアな雰囲気がふさわしい。プレイと共に雰囲気が好きになってきた。
難易度の上昇幅もちょうどよく、序盤はテンポよく次々とステージクリアできるが、終盤になると頭を抱えるほどに難しくなる。実績解除してこれで全ステージクリアかと思ったら、まだまだステージがたくさんあることに気づいて愕然とした。どれも難しそうなので、やらずに放置している。
PNPとNPNってどう違うんだっけ? ベース・コレクタ・エミッタってなんだっけ? いまだによくわかっていないが、PNPとNPNを組み合わせて問題解決するのは楽しかった。特に楽しかったのは自己保持回路だ。どうすれば自己保持できるんだと悩んだが、試行錯誤の末に実現して動作を眺めるのが楽しかった。
難易度上昇幅もやはりちょうどよく、終盤は頭を抱えたり奇声を上げるほどに難しかったが、それだけに達成感も大きかった。Zachtronicsおなじみの、ステージクリア後のランキングもやはりいい。ランキング上位を目指そうとステージクリア後も回路を小さくするよう、ついつい改良してしまう。
『パネルでポン』を彷彿させるパズルゲーム。ブロックが消えている間にブロックを投げ込んで連鎖できるのも、パネルでポンにおけるアクティブ連鎖を彷彿させる。
このゲームの攻略は、3ステージ目がなかなかクリアできずに後回しにしていた。
3ステージ目は、運悪く盤面ブロックの種類がバラつくとブロックを消すのに手間取ってしまい負けてしまう。また、プレイが長引くと爆弾ブロックが邪魔になって負けることが多かった。爆弾は発動させても相手にダメージを与えられないので、メリットは無い。逆にブロック配置の運が良いと連鎖を簡単に組めたり、あるいは勝手に連鎖になって相手に大ダメージを与えることができる。
3ステージ目は何度もコンティニューして、運良く連鎖が繋がった時に勝つことができた。
4ステージ目(最終ステージ)はコンティニュー1回で勝てたが、これも運良く画面外で連鎖が繋がったのが主因だ。
このゲームは、ブロック操作の速さやテクニックよりも、運の良さに左右されるゲームだと思う。
全実績を解除した時点の感想としては、とにかく楽しくて苦痛でもあった。それだけに達成感もまた大きかった。さすがはZachtronicsだ。
Last Call BBS内のどのゲームも面白かったが、その中でも『20th Century Food Court』が一番良かった。次に『ChipWizard Professional』だ。
もう当分の間パズルゲームはやりたくないのでしばらくは他のジャンルのゲームをするだろうが、何か月もすると禁断症状が出てまたパズルゲームをやりたくなるだろう。その時には『SHENZHEN I/O』をやろうと思う。
ここ最近は政治的な不祥事がいくつかあったこともあり、今回の選挙は特に注目度が高いと思っている。
しかし、私の身の回りの人たちは参政の意識の差が大きいと感じる。
投票しないという人たちの話を聞く限り、以下のようなハードルがあるようだった。
これらの気持ちはスゴくわかる。
受動的に得る政治関連の情報は断片的なことが多くて分かりづらいし、自分で調べ始めてもなんだかインターネット上で強い言葉を使ってブチギレている人ばかり目にする。(本当に怖い)
ただ、"それでも投票する必要がある"という理屈が、投票をしない人たちには伝わってないんじゃないかと思う。
「投票しないことをチクチク言われることはあるけど、特に困ることはないし別にいいか」くらいの気持ちじゃないかと推察する。
そこで、私なりに投票の必要性を整理してみたくなり、ここにまとめることにした。微力ではあるが投票について考える一助となれば幸いだ。
※私は記載する内容の専門家ではなく、なんらかのデータに基づいた話もないのであくまで一個人の想いや考え方としてご一読いただきたい。また、本内容は特定の政党や思想を批判・支持するものではないこともご留意いただきたい。
変化の内容は、脚が速いヤツ/寒さに強いヤツ/好き嫌いが少ないヤツ/首が長いヤツといった感じで多様である。
この多様な特徴を持った群の中で、周りの環境に最も適用しているものが多数派になる。
キリンの場合には、"高い木の上に食べられるものが多くある"という環境だったから首が長いヤツが多数派となったという感じだ。
とてもよくできた仕組みだが、この仕組みが正しく機能するためにはいくつか条件がある。
環境は刻々と変化するため、特定の環境に適用した特徴だけを持つ種では全滅してしまう可能性がある。
それを避けるためにいろいろな特徴をもった個体がいたほうが種全体としては頑健である。
キリンであれば、高いところの食べ物に届かない個体は生き残れないといったように、環境に適用できていない特徴を持った個体が不利になるように自然選択される必要がある。これを専門用語で淘汰圧と言うらしい。
少し乱暴にまとめると
"多様なものが競争によって淘汰され、最も適切なものを主流として種が生き残る"
ということである。
私はこの進化の仕組みが、民主主義にも適用されていると感じている。
"多様な特徴を持つ群"は異なる政治的意見を持つ個人や政党に置き換えられるし、"環境による淘汰"は選挙による政治家や政党の選択に置き換えられるためである。
ここまで説明すれば、言いたいことはなんとなくわかってもらえると思う。
投票しないということは
"全体の投票率が低いことにより適切な淘汰圧がかからず、環境に適用できていない(あるいは偏った環境に適用した)政治が行われることに繋がる"
ということであると私は考えている。
淘汰されないのであれば、自分たちが得するように特定の団体を優遇したり裏金を得られるようにしたりしても政治家たちにとっては何の問題もないのだ。
ただ、どこか特定のところを落とそう!と言っているわけではなく、投票率を上げて淘汰圧を強くしよう!ということが伝えたいことである。
政治に関する情報収集は難しすぎるが、なんとなくでも良いので自分の考え方に近い政党や遠い考え方の政党を知ることが重要だ。
昨今は簡単なアンケートで自分にマッチした政党を知ることができるvote matchサービスが複数あるのでやってみることを勧める。
ここで注意したいのは、サービスによって設問内容や回答項目が異なるため、結果に偏りが出る可能性がある点だ。余裕があれば複数のサービスでやってみてほしい。
ここでは特定のサービスの案内は避けるため、"vote match"等で検索していただきたい。
たとえ投票したい候補や政党がない場合でも、自分の考えと遠い考えを持つ候補や政党が選択されないように、そこと対立する考えを持つところに投票すると良いと思う。
また、「投票先がないのなら抗議の意味で白票を投じれば良い」という意見を見かけることがあるが、これまで述べてきた淘汰圧の考え方からするとまっっったく意味がないのでやめたほうが良いと私は考える。
政治的な話について複雑化したりタブー視したりして選挙に対するハードルが上がり、それが原因の一部となり正しい淘汰が行われていない現状が私はとても悲しかった。
自分なりに考えた結果、民主主義の前提のような共通認識がないままに感情を優先して会話されているからではないかと思ったため、本内容を投稿した次第である。
ワイ:
x = torch.tensor([
[1.0,2.0,3.0],
[4.0,5.0,6.0]
])
Claude3.5 Sonnet:
はい、channel-wise 正規化(チャネル方向の正規化)を行います。この場合、最終次元(dim=-1)がチャネルとなります。channel-wise 正規化では、各チャネルの平均を0、分散を1に正規化します。
import torch x = torch.tensor([ [1.0, 2.0, 3.0], [4.0, 5.0, 6.0] ]) # チャネル方向(最終次元)の平均と標準偏差を計算 mean = x.mean(dim=-1, keepdim=True) std = x.std(dim=-1, keepdim=True) # Epsilon を追加して、ゼロ除算を防ぐ epsilon = 1e-5 # 正規化を実行 x_normalized = (x - mean) / (std + epsilon) print("元のテンソル:") print(x) print("\n正規化後のテンソル:") print(x_normalized)元のテンソル: tensor([[1., 2., 3.], [4., 5., 6.]]) 正規化後のテンソル: tensor([[-1.2247, 0.0000, 1.2247], [-1.2247, 0.0000, 1.2247]])
ワイ:
x = torch.tensor([
[1.0,2.0,3.0],
[4.0,5.0,6.0]
])
ChatGPT o1-preview:
import torch x = torch.tensor([ [1.0, 2.0, 3.0], [4.0, 5.0, 6.0] ]) # Compute mean and standard deviation along the batch dimension (dim=0) mean = x.mean(dim=0, keepdim=True) std = x.std(dim=0, unbiased=False, keepdim=True) # Perform channel-wise normalization x_normalized = (x - mean) / std print("Normalized Tensor:\n", x_normalized)Output:
Normalized Tensor: tensor([[-1., -1., -1.], [ 1., 1., 1.]])Explanation:
Compute Mean:
The mean is computed along the batch dimension (dim=0), treating each column as a channel.
mean = x.mean(dim=0, keepdim=True)This results in mean = [[2.5, 3.5, 4.5]].
Compute Standard Deviation:
The standard deviation is computed along the same dimension with unbiased=False to match the sample size.
std = x.std(dim=0, unbiased=False, keepdim=True)This results in std = [[1.5, 1.5, 1.5]].
Normalize:
Subtract the mean and divide by the standard deviation for each channel.
x_normalized = (x - mean) / stdThis yields the normalized tensor with standardized channels.
Note: Setting keepdim=True ensures that the mean and standard deviation tensors have the same number of dimensions as x, which is necessary for broadcasting during subtraction and division.
ChatGPTの方が正しいよね?
アンチセミティズムとは反ユダヤ主義、つまりユダヤ人に対する偏見や嫌悪を意味する言葉である。
しかし、この言葉はイスラエルを批判する者全てを封じる魔法の言葉に成り果てている。
Investigation into alleged antisemitism at Olympic football match
ジェノサイドオリンピックと書かれた横断幕を掲げたものを反ユダヤとして警察が取り締まると発表したのだ。
この横断幕は現在進行系でジェノサイドを行っているイスラエルの参加が許されていることに対する批判と考えられるが、これに対し単にアンチセミティズムというレッテルが貼られ、差別として処理される状況になっているのである。
言い換えれば虐殺をやめろと言うと問答無用で差別主義者として処罰されるという事だ。
これは非常に恐ろしい。
例えば先日、東大准教授の斎藤幸平氏が反五輪を示し話題になったが、彼がフランスで同じ発言をすれば反ユダヤの差別主義者として逮捕されているところだろう。
このアンチセミティズムという言葉を都合良く操るフランスはマジヤバいし、それを淡々と言われたとおり報道してるBBCもヤバい。
これを改善してってお願いした。何書いてあるかわからないけど動いたよ。
https://anond.hatelabo.jp/20240125203115
// ==UserScript== // @name 増田ミュート(白塗り版) // @namespace http://tampermonkey.net/ // @version 2024-06-26 // @description ミュートワードを含む最小限の範囲を白塗りにする // @author You // @match https://anond.hatelabo.jp/* // @icon https://www.google.com/s2/favicons?sz=64&domain=hatelabo.jp // @grant none // ==/UserScript== (function() { 'use strict'; const muteWords = [ "弱者男性", "弱男", "弱者", "婚活", "男", "女", "年収", "下方婚", "発達障害", "発達", "ハッタツ", "ハッタショ", "ハッタショ", "競プロ", "競技プログラミング", "AtCoder", ]; function whiteoutElement(element) { element.style.backgroundColor = 'white'; element.style.color = 'white'; element.style.textShadow = 'none'; element.style.cursor = 'default'; element.style.userSelect = 'none'; // テキスト選択を防止 element.style.borderBottom = '1px dashed #ccc'; // 枠線を追加してテキストがあることを示す // リンクの場合、クリックを無効化 if (element.tagName === 'A') { element.style.pointerEvents = 'none'; element.removeAttribute('href'); } // 子要素にも適用 Array.from(element.children).forEach(child => { child.style.backgroundColor = 'white'; child.style.color = 'white'; child.style.textShadow = 'none'; }); // ツールチップを追加 element.title = 'この内容にはミュートワードが含まれています'; } function shouldMute(text) { return muteWords.some(word => { const parts = word.split(''); const regex = new RegExp(parts.map(char => `${char}92;92;s*`).join(''), 'i'); return regex.test(text); }); } function findSmallestMuteableElement(element) { if (element.nodeType === Node.TEXT_NODE) { return shouldMute(element.textContent) ? element.parentElement : null; } if (element.tagName === 'PRE' || element.tagName === 'CODE') { return shouldMute(element.textContent) ? element : null; } for (let child of element.childNodes) { const result = findSmallestMuteableElement(child); if (result) return result; } return shouldMute(element.textContent) ? element : null; } function processElement(element) { const muteableElement = findSmallestMuteableElement(element); if (muteableElement) { whiteoutElement(muteableElement); } } function processAllElements(root = document.body) { const walker = document.createTreeWalker( root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT, null, false ); let node; while (node = walker.nextNode()) { if (node.nodeType === Node.ELEMENT_NODE) { processElement(node); } else if (node.nodeType === Node.TEXT_NODE && node.parentElement) { processElement(node.parentElement); } } } function handleClickEvent(event) { setTimeout(() => { processAllElements(event.target); }, 100); } // 初回実行 processAllElements(); // クリックイベントの監視 document.body.addEventListener('click', handleClickEvent); // DOM変更の監視 const observer = new MutationObserver(mutations => { mutations.forEach(mutation => { if (mutation.type === 'childList') { mutation.addedNodes.forEach(node => { if (node.nodeType === Node.ELEMENT_NODE) { processAllElements(node); } }); } else if (mutation.type === 'characterData') { processElement(mutation.target.parentNode); } }); }); observer.observe(document.body, { childList: true, subtree: true, characterData: true }); })();
女性に対してトラウマ(非常に強い苦手意識)がある男性ですが、以下参考まで、、、
Yahoo!出会い/match.com/Omiaiなど。必要最低限のスペックを満たしていれば何度か定型的なメッセージのやり取りはできても二回目、三回目が続かず自然消滅ばかり。ごく稀に同年代の女性と何度か会うことができたが、実際に会うと会話が成立せず自然消滅/いずれも退会。
寝たきりだった祖母と病気がちだった父親が亡くなり、見かねた親戚が心配して設定してくれた。お見合い相手は三歳年下で、初回の顔合わせでは会話らしい会話もできなかったが、相手の女性がお情けでLINEの連絡先を教えてくれたのを勘違いしてしまった。カフェ、レストラン、神社仏閣、ディズニー、観劇など毎回凝ったデートコースを提案した。毎回デート費用はこちら持ち。20回目のデートで勇気を振り絞ってプロポーズをしたら、今は待ってほしいとお断り。その後呼び出されて別れて欲しいと告げられトラウマになった。
43歳で結婚相談所に入会。個人ながら地元密着でIBJ加盟で表彰も多数され、毎月のように成婚実績を出しているやり手の仲人の方。お見合いは組めるものの、二回目、三回目のデートから先にどうしても進めなくなってしまう。結局4年間続けているが、真剣交際までは進められたことがない。
自分は在籍カウンセラーさんの多い「〇ららか相談室」で何度かメール/zoomでオンラインカウンセリングを受けた。良いカウンセラーさんに当たると少し気持ちが楽になることもあったが、そういう方は多忙な業務の合間に副業的にやられていることも多いようで、一回限りで予約が取れなくなった。
VBA嫌いのExcel師(営業事務)なんだけど、その程度のことをVBAでやろうとするヤツを駆逐したい。
お前は営業や他のユーザーの理解度を自分レベルだと勘違いするのをやめるべき。
うちの会社はVLOOKUP(最近はINDEXとMATCH)組めるのが「Excelできる」と名乗っていい最低限のラインで、営業と営業事務では名乗れないやつはほとんどいない。でもVBAは使える人は稀。
基本はその「難しくてもVLOOKUPの知識を駆使すればなんとかなるレベル」でExcelを組まないと破綻する。
うちの会社の一事業部は複数の会社に発注をしていて、そうすると会社ごとにデータを比較して見たいのに項目や項目順が違って簡単に比較できない、ということがよくある。
その場合マッピングと呼ばれるデータ項目の統一化が必要なんだけど、会社によって合算したいデータがそれぞれ別の方法でしか取れないとか、合算値に余計なデータが入ってるからrawデータ取ってきて件数はレコード数でカウントしないといけないとか、まぁ色々出てくる。
全取引に対してのデフォルト対応としての統一マッピングはしてるけど、そういうのはVBAでやらずにSaaS使ってるし、ものによって重視する値が変わるので例外が2割くらいある。うちの会社はその辺りの裁量が営業に認められているので例外も多め(なおオンリーワンになりたいためだけに特殊対応した奴は一人を除いて矯正or自滅済)
そういう融通をきかせるのにExcelの計算シートでマッピングするのは絶対。
あとVBAだと営業側が「どういう計算をしてるのか」とか「正しい数値が出てるのか」が確認できない。
っていうのは例えば100円3件と150円2件の仕入れにうちの取り分2割乗せて720円として見せたかったのに、『=100*3+150*2*1.2』って数式書いたせいで660円になっとるやんみたいな。こんなんよくある眠い時のヒューマンエラーで、VBA書く人ならやらかさない、なんてことは絶対ない。
しかも営業がこういうのの修正とか提案用にちょいちょいと列増やして数式入れようとしても「マクロ壊れるからやめて」とか言われる。営業が自分で調整可能なら1時間以内でできるものでも、VBA書いた人に依頼しなきゃいけないんだと、書いた人の通常業務との兼ね合いで1週間待たされたりする。
営業に金稼がせるためには営業の利便性と裁量は必須で、Excel利用者に裁量権が認められてないVBAのツールなんか全体最適化されてないクソ。
※なお裁量大きいからってあんまり好き勝手するとやらかした時に他の助けも得られず(やれることに限界がある)自滅ルート
自分も軽くVBA習得してるんだけど、フォルダ内のデータ一括読み込みとシートの分割統合の関数代わりにしか使ってない。しかもただの効率化なのでVBAが死んだところで手作業に戻せる範囲。
他人が保守できるように作るのならVBAなんか入れるべきではないし、VBA入れないなら計算シートは必須。あと計算周りを大掛かりにやるならSaaS入れてDX検討すべき。
本当にあった話だけど、JavaScriptでstrっていう変数にテキストが入っていて
その変数に'apple'とか'banana'とかが入ってるかどうかを判別するっていうロジックを作るときに
const re = new RegExp("apple") if(re.test(str)) console.log("match")
const re_apple = new RegExp("apple") const re_banana = new RegExp("banana") if ( re_apple.test(str) || re_banana.test(str) ) console.log("match")
っていうコードを書く人がおるんよ
別にプログラミング初めて3ヶ月の初心者じゃ無くて20年以上やってるようなベテランだったり
なんならチーフプログラマーとして若手指導してるような人でもこういうレベルの人って割といるわけ
これに対して
「正規表現でORを書くべき」
「includeで十分」
綺麗にコードを書くっていうのは
「これってappleとかbanana以外に増えたりしないの?」
「fruitsかどうかを判別するならその変数を作った方が良くない?」
っていうのを考えて実装するのが綺麗にコードを書くっていうことで
ちなみに
「正規表現でORを書きましょう」
「動いてるからいいじゃない」
「綺麗に書いても性能上意味ない」
「言ってることが良く分からない。何が違うのか」
とか言ってくるし
https://b.hatena.ne.jp/site/anond.hatelabo.jp
で動くスクリプトでたとえば投稿後10分以内にブクマされページに乗ったら「1 user」が「1 user セルクマ 1とか5(何分後にブクマされたか)」になる。もしマイナスなら誤判定なので無視して。
時間を置いたセルクマには効かないし普通のファーストブクマカがどれぐらいの頻度で確認してるかしらないけど5分以内や1分以内もポロポロあるのでまあ目安に。
.forEach(div => {
('.entrylist-contents-title > a')
とかの
を
<>
に変えてね
他にも見落としあるかも
誤判定が減るから非公開ファーストブクマを判定できたらいいんだけどね。
// ==UserScript== // @name hatebu masuda selkmark // @namespace http://tampermonkey.net/ // @version 0.1 // @description 特定時間以内にブクマされた増田を強調する // @author You // @match https://b.hatena.ne.jp/site/anond.hatelabo.jp* // @grant none // ==/UserScript== (function() { 'use strict'; const threshold = 60 * 10 // 何秒以内か const domain = 'https://anond.hatelabo.jp/' const dateTemplate = '202301020304' // 時分まで urlの時刻表記 const dateTest = new RegExp('\\d{' + dateTemplate.length + '}') document.querySelectorAll('div.entrylist-contents').forEach(div => { const masuda = div.querySelector('.entrylist-contents-title > a') const dateStr = masuda.href.substring(domain.length + dateTemplate.length, domain.length) if (!dateTest.test(dateStr)) { // キーワードとか console.log('not diary', dateStr) return } // new Dateできるように変換 // https://amateur-engineer.com/javascript-date-yyyymmddhhmm/ const year = parseInt(dateStr.substring(0, 4)) const month = parseInt(dateStr.substring(4, 6)) const day = parseInt(dateStr.substring(6, 8)) const hour = parseInt(dateStr.substring(8, 10)) const min = parseInt(dateStr.substring(10, 12)) const date = new Date(year, month - 1, day, hour, min) const bukumaDate = new Date(div.querySelector('.entrylist-contents-date').textContent) // 2023/01/23 00:00 const diffSec = (bukumaDate - date) / 1000 // ms to sec if (diffSec > threshold) { return } // ブクマ数 user const user = div.querySelector('span.entrylist-contents-users a').lastChild user.textContent += ' セルクマ ' + (diffSec / 60) // 古い記事がマイナスになる でも2015年ぐらいの記事までかな?新着はセーフ臭い /* if(diffSec < 0) { user.textContent += ' 異常差分:' + diffSec } */ }) })();
無料会員のタダ読み3本機能の代わりに導入された有料会員によるプレゼント機能が導入されてもう1年(?)。増田が初めて知ったのはwattoさんのブコメでプレゼントURLを貼ってくれた時だが、最近になってTwitterでスーパーインフルエンサーの暇空アノンのいちゃもんのおかげで一気に機能が周知された。その結果なのかTwitterでもプレゼントURLの貼り付けが増えた感。
面白いのは、いわゆるリベラル系のアカウントの利用のみならず、反リベラル系の有名アカウントもちらほらとプレゼント機能を利用してるってことな。閲覧数は反リベラル系が圧倒的。まあそれなりにコンサル系や研究者系なら思想の左右問わず朝日読売日経辺りを読まないわけにはいかないし、中立アピールのためにあえて朝日ソースを使うってことかな
そして我ながらとんでもなくみみっちいブックマークレットをChatGPTに頼んで作ってもらった
朝日デジタルの有料記事ページを開いている時にクリックするとTwitterで有料記事プレゼント機能を使ってる(と思われる)ツイートを検索するブックマークレット。
javascript: (() => { const currentUrl = window.location.href; const digitalUrl = `digital${currentUrl.match(/\.asahi\.com\/articles\/.+\.html/i)[0]}`; const searchUrl = `https://twitter.com/search?q=${encodeURIComponent(digitalUrl)}&f=live`; window.open(searchUrl, %27_blank%27);})();
男の年齢別人気会員の割合は26歳-37歳で高い(ピーク32歳)
女の年齢別人気会員の割合は20歳-29歳で高い(ピーク26歳)
これこそがフェミニストが異常に発狂する男女の適齢期の違いである
男の年齢は女のそれのマイナス7歳~8歳(市場価値は女の20歳=男の28歳、女の30歳=男の38歳、女の40歳=男の48歳...)
(ソース)「match△app〇jp×al/×131805」(△は-に、〇は半角ピリオドに、×は半角スラッシュに変換)
厚生労働省「人口動態統計」による2015年に結婚した夫婦の年齢差
夫が11歳以上年上 … 6.9%
妻が11歳以上年上 … 0.8%
夫が年上 … 57.6%
妻が年上 … 24.2%
最近UserScriptを書くことに目覚めて、不便なWebサイトをちょっと改造して好みにするのにハマってる
例えば「辞書系のサイトなのにページを開いた瞬間から入力欄にカーソルがあってないのがいや」とか、そういう細かい点をこちらで勝手に改修するするような感じね
で、増田において「この人記事に対して毎回○○って反応つけてるけど面白いと思ってやってんのかな? 面白いと思ってやってんなら致命的に自分とセンスが合わないから消したいし、面白いと思ってないならただの害悪だから消したいな」と思うことがあるわけですが、そういった異なる価値観に対して自動的に適切な距離を置くためのスクリプトを作ったのでメモがてら貼り付けておきます
// ==UserScript== // @name ますだどくさいスイッチ // @namespace Violentmonkey Scripts // @match https://anond.hatelabo.jp/2* // @grant none // @version 1.0 // @author anond // @description description // ==/UserScript== (async () => { // ここにNGワードをどんどん追加する // 基本は文字列、文字列で引っ掛けにくいなら正規表現でもいい const keywords = [ "あえいうえおあお", ]; const checkedMarker = `data-a${Math.random().toString(36).slice(-8)}`; const query = `div[id^="excerpt-"]:not([${checkedMarker}]`; const delTree = () =>{ const elems = [...document.querySelectorAll(query)]; for(const elem of elems) { const textContent = elem.textContent; if(keywords.some((x) => (typeof x === "string") ? textContent.includes(x) : x.test(textContent))) { const parentContainer = elem.closest("li"); parentContainer?.remove(); } else { elem.setAttribute(checkedMarker, "true"); } } }; delTree(); const mo = new MutationObserver(delTree); mo.observe(document.body, { childList: true, subtree: true }); })();
keywordsを増やして君だけのどくさいスイッチを育ててね!
(追記)
以下のスクリプトを登録することで。以下のループを繰り返させることができる。
「https://anond.hatelabo.jp/ここにユーザー名/を開く」→「直近の投稿の編集画面に遷移」→「削除ボタンを押す」→「ダイアログに答える」→「https://anond.hatelabo.jp/ここにユーザー名/に戻る」
実質ダイアログに答えるところだけやればよい。
// ==UserScript== // @name New Userscript // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match https://anond.hatelabo.jp/ここにユーザー名/ // @icon https://www.google.com/s2/favicons?sz=64&domain=hatelabo.jp // @grant none // ==/UserScript== function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } (async function() { 'use strict'; await sleep(100); window.location.href = document.querySelectorAll("div.section")[0].querySelector("a.edit").href; })();
// ==UserScript== // @name New Userscript // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match https://anond.hatelabo.jp/ここにユーザー名/edit* // @icon https://www.google.com/s2/favicons?sz=64&domain=hatelabo.jp // @grant none // ==/UserScript== function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } (async function() { 'use strict'; await sleep(100); document.querySelector("input.delete-button").click(); })();
もし、暇空が仁藤のプライベートについてあれこれ書いていたら仁藤持ちだったと思う。
今回仁藤に直接関係するとしたら、例の「○○と関係が深い」のところしかなく、あとは「仁藤が代表を務めるColabo」というように団体が主語になっている。
企業や団体は自然人ではなく、その業務についてあれこれ評価されることについては必然性があり受忍の限度は高く設定されるべきと考える。
実際にひどい中傷により影響が出たのであれば、業務妨害関係の法律により賠償を求めるべきとも思う。
また、税金を支出される団体として一定以上の説明責任を有すると考える。
さらに、日本においてはSLAPP訴訟そのものへのペナルティはほとんどないことからも、企業・団体への名誉棄損の成立は慎重に行うべきと考える。
(もちろん、そう考えているのは私なだけなので、日本の民事訴訟において政府大企業有名団体に対して裁判官の心証は限りなく甘い)
反論する手段も十分にありながらいきなり訴訟を行ったのも心証が悪い。仮処分も求めていないのに保護活動への影響の緊急性を主張するのだろうか?
また、暇空はペンネームであるがこれは完全に顕名である。いきなり半生記を書き出して何かと思ったが、自分が特定個人本人であることを示したということであろう。
この増田のようなものであれば個人の名誉は存在せず名誉棄損を訴える法益がない。一方で暇空は無名の匿名人ではない。
弁護団はそれを認識したうえで、件の会見を開いた以上、その内容に行き過ぎがあれば当然に名誉棄損が成立する。
ネトゲの有名人であることを開陳したのも名誉棄損の損害を上積みするためであろう。体を張ってる。
Colabo側がこれ以上の嫌がらせを考えるとしたら暇空の証人召喚だろう。
攻撃ではないとか言い出す人もいるのがどうかと思うので。
(最初に攻撃したのは絵を掲示したほうであるなどという人もいる。どんな検閲社会だ)
これらは別々に成立する。
例えば表現の撤去の要求であれば、ポリコレをマスターした欧米人ならこう言うだろう。
「great workだけど、この場にはmiss matchと思うんだ」
ただし、正直に思ったからと言って、キモイ、ブス、デブなどと口に出したら幼稚園生かと思われる。
ここで両方いっぺんに(キモイ・グロイ・女性を消費している・ズリネタを撤去せよ)やったとすれば、それはもう攻撃としか言いようがない。
何度も攻撃が繰り返されたおかげでもはや話し合いの余地はなく、ちょっとした感想もアレルギーが生じる状態である。
全て手遅れ。
今回のW杯スペイン戦の三笘選手のアシストに関連してこんな記事が話題になっている。
https://www.nikkansports.com/soccer/qatar2022/news/202212020000720.html
この記事にはボールに内蔵されているIMUというチップによりボールの位置を測定し、今回の判定が下されたと書かれている。しかし、実際には内蔵チップは使用されていないと思われる。なお私は一介のサッカーファンであり専門家ではないので間違っていたら指摘してほしい。
FIFA公式サイト(https://www.fifa.com/technical/football-technology/football-technologies-and-innovations-at-the-fifa-world-cup-2022/goal-line-technology)には内蔵チップはGLTに使用しないとされている。
Q:Does goal-line technology use the data from the sensor inside the ball?(GLTはボールに内蔵されたセンサーからのデータを使用していますか?)
A:The goal-line technology system used at the FIFA World Cup 2022™ is based on 14 high-speed cameras. The data from the sensor inside the ball is not used to determine if the ball has crossed the goal line or not. (2022年W杯のGLTは14のハイスピードカメラで構成されています。ボールに内蔵されたセンサーのデータはゴールラインを超えたか否かの判定には使用されません。)
ただ、この記述だけでは今回の判定に使用されていないことを確定することはできない。GLTはゴールが入ったかどうかの判定にのみ使用されるシステムであって、今回の三笘選手のアシストのようなゴール横のラインを超えたかどうかの判定には使用されない為である。しかし、内蔵チップがゴール判定に使われないのであれはゴール横のラインを割ったかどうかの判定にも使われていないと考えるのが自然である。(今回の判定に使えるならわざわざGLTのためにハイスピードカメラを導入する必要がないため。)
FIFAが今回の判定について説明するツイートをしており、そこに
The video match officials used the goal line camera images to check if the ball was still partially on the line or not.(マッチオフィシャルは、ゴールラインのカメラ画像を使用して、ボールがまだ部分的にライン上にあるかどうかを確認しました。)
mimicなるものが、今Twitterで物議を醸している。タイムラインに浮上するくらいにツイートされていると言うことだ。その中で一つ唸ったツイートがあった。「果たして二次創作をパロディの形で書いたり自身のエゴを満たすのに何の違いがある」とのツイートだ。全員が全員、イラストレーター全員が二次創作で私腹を肥やしたりエゴを満たす訳ではないだろう。中には姉なるもののような、正に理想の姉を描く素晴らしいぽち。先生や単純なラブコメでは説明できない、男女間の性に根差した秀逸なラブコメを描く西沢5㎜先生や、最高に素晴らしい関係を独特で流麗なイラストで描くmatch先生のように、少し思い出しただけでもざっと列挙出来る神クリエーターがいるのは承知している。
が、印象論で語るがコミケのコミックブースでは一次創作ではなく、二次創作で溢れているように見受けた。性質上有志による有志の為の、とまさに趣味性をコミケ全面に押し出している訳だが実際は金をやり取りして、要は商品として作品を扱っている。純然なマーケットである。印刷代の為との反論の向きはあるだろうが、私はなぜ二次創作を電子配信では無料で放出しない、と反論する。別の言い方をすれば、他人の褌で相撲を取るような連中の集まりだと言える。
二次絵ではない戦艦に関する考察本、或いはマイナーな民俗学を扱ったような、実にオリジナルとしか言えないものは本趣旨から完全に外れるのでここでは扱わない。
要はこの問題は、言うまでもないだろうが生活の糧を失いかねない人々の叫びだ。この生活の糧とはイラスト、及びそこから出る利益、である。
が、これは私の完全なる愚痴になるがAV新法が制定されたときイラストレーターは声を上げなかった。それは何故か。自分に降りかかる火の粉が無かったからだ。法律が縛るが故生活の糧を失いかねない人々に声を上げなかった者、その一部が今度は法律が見逃すが故に生活の糧を失いかねない状況に陥っている。世界から目を背け、自分の世界に籠ったが故に危機を察知出来なかった者の末路だ。
ここで私は富野由悠季の言葉を思い出す。漫画業界は、漫画しか興味がない者の集まりです、と。拡大解釈するが、ただの絵を漫画とするならストーリー性を持たせられない者が今回の被害者、となる。遅かれ早かれストーリーテラーそのものもAI、計算機に淘汰されるかも知れないが、これも本趣旨ではないので放置する。
私自身はイラストで食っている人間ではないが、各方面から集中砲火を受けることだろうと覚悟して敢えて言う。「予期出来なかったにせよ、AI如きに取って替わられる仕事を選んだのが悪い」と。また富野由悠季の言葉を引用するが、エンジニアとは元来作ったものが未来どう影響を与えるか、とかは一切考えない人間の集まりで、その最たる例が車でありFacebookでありTiktokでありTwitterであるのだろう。それが偶々イラストに波及しただけの話だ。
更に言うならば、かなり大きく乱暴に括った上で語れば、イラストとは情報である。線が複雑に絡み合って視覚情報に訴える、そのことこそがざっくりと言って情報そのものだ。そもそも情報自体が一種のお布施文化なのである。元々が消費者側のチップにより生活をする、昔で言えば観阿弥世阿弥の構造であろう。或いは新しい作品であれば犬王に近い。言ってしまえばチップで生活を営むものが現代のクリエーターなのである。
梅棹忠夫先生の言葉で語るのならば、農業、工業と二つの時代が代替され、到来した精神産業の時代が今なのである。そしてここからは私の言葉になるが、恐らく精神産業は次の産業に移り変わらねばならない。もう既にデザインの時代は終わったか、終わりが目の前にまで来ている。
イラストを単体で考えた上、頭の中で完結する可能性が極めて高い商品と言える。人間が見、脳に億のイラストを放り込み感覚器官で入出力を繰り返した結果生まれ確立されたもの。楽器演奏とDAWの関係に似ている。私は無知であるのでDAWが出てから食いっぱぐれたスタジオミュージシャンがどれだけいるか知らないが、それでもあらゆるデジタルエフェクトが開発され、果てはDAWで完結したホームレコーディングの作品がグラミー賞を取り、そのアーティストが007の主題歌を歌う現代でも、スタジオミュージシャンからDAWが音楽シーンを破壊した、或いは食いっぱぐれたなんて訴えるのは寡聞故か聞かない。
それでも音楽が今も、昔の勢いこそ削がれたが存在するのはオリジナリティ以上に、アイデアが重要視されるからだろう。今もyoutubeを覗けば昨日アップロードされたばかりの二重の意味で新鮮な音楽に巡り合えることもあるのだから。
問題はそもそもない。デジタルの恩恵に与り生活の糧を得てきたイラスト、画風なんて人間が模倣できるものを売り物にした産業構造、それに乗っかったイラストレーターがいるだけの事だろう。その産業構造の中で生じたmicmicなる癌細胞が産業全体の破壊に掛かっているだけのことだろう。もう次の産業モデルを考えねばならない時代が来ている。
私は予言する。micmicが我々の声で死滅させられたにしても、十年以内にまた、今度は別の強敵となってもしかしたらストーリーテラーでさえも呑み込む強度に成長して広義のコミック文化を破壊しに来る。それよりも少し遠い未来その流れはもしかしたらアニメーションにまで来てしまうのかも知れない。個人の解剖が、趣味や性格の傾向さえも分析される進んだ未来、個々人向けにカスタマイズされた娯楽を一つ一つ出力する未来が必ず来る。そこでは現代我が物顔でマーケットを荒らしまわるディズニーでさえも、単なる人間による珍しいスタジオの一つとして扱われる。特定の個人が最もドーパミンの出るシーンを映すことに特化した、娯楽に特化したAIが確実に出現する。無論、マーベルもDCも太刀打ち出来ない。
それを前提とした上で、漸く本題だ。以上は前置きである。ここまで読んでくれた読者諸君に敬意と心からの謝意を表明する。そしてここから先は、与太話がたんなる一つのアイデアだと思って読んでもらいたい。私には才がないから、実現する力はない。これに触発された、いるか解らない若い君に実現の道を切り開いて欲しい。私にはその時間が割けないので。
例えばArtist Shareと言うものがある。クラファンのアーティスト版と言ったところか。そう言うものを作ればよい。そこでは中抜きを極力排して、要はコミケのオンライン版のように運営にかける費用は抑え、出来るだけイラストレーターや漫画家に支払われる額を大きくする。Boothやfantiaのように、単なる消費者-クリエーターの関係を越えて、youtubeの投げ銭のように金持ちの消費者は好きなクリエーターに幾らでも投げ銭が出来る、その代わりに審査を厳しく、micmicのような精神産業破壊AIの会社と密に連携し、売られた作品を一度AIか人間かどちらでも構わないが審査解析を行い、過去の他人の作品をAIに掛けて描かれていないかを厳密に判断するシステムを作る。人間の描いた作品のみを取り扱う、それを可能にするシステムを構築する。可能ならば、有志達が本気ならばそこに参画したクリエーターを保証する為に、歴史から引用すればメディチ家のようにそのシステムの消費者全員、それは全世界さえも包括する億単位に達するか解らんが多くのスポンサーを受け入れる。その為に出来るだけ多くの言語圏に届けるために翻訳陣を用意する。勿論、ここでAIのGoogle翻訳のような機能を使ってはならない。我々の優位性が失われるし、各文化圏に最適化される必要があり、それは恐らく未だAIでは実現出来ないだろうからだ。まさかエロ漫画のようなオホ声が例えばイスラム圏に最適化されるライブラリは未だAIにはない筈だ。人間の生きた脳で翻訳が必要だ。
エロにフォーカスし過ぎた。エロだけではない、例えば今なろうが流行しているらしいが、そのテキストさえも、要はイラスト、ストーリー、果ては音楽も包括した組織が理想ではあるが、果たしてその組織が正常に作用してくれるかは私の頭では想像できない。要は作品として一から終いまで完結出来るだけのシステムを整える必要がある。
この、Micmicのような精神産業破壊AIは、法律や倫理で縛れるものではないことを前提としなければならない。幸いAV新法のように、今回は法律が縛るのではなく、むしろ縛るものがない。そこを利用し、利益を齎すシステムを作る必要がある。
だが陥ってはならない罠がある。最近で言えば確かネトフリが振るわない番組を製作途中で打ち切った、なんて報道があった。それはプロの観点からである。欧米の道徳である。利益重視である。それはクリエーターが下すべき判断であって、マネージメントの側からは判断してはならぬのである。
現代は高度に断片化され過ぎた。あらゆる音楽で言うところのレーベルが乱立している。集英社だけでも四つ以上はある。私の幼少では考えられぬことだった。
とは言え、現代では資本が全てなのが痛いところだ。暗号資産のように、純粋に資本とは言い難いものをベースにするわけにもいかない。何しろクリエータの生活が掛かっている故に、浮ついた貨幣を用いてはならぬので。
先に述べたシステムを生かすのならば、ある程度の出版社の力が必要となる。が、決してコミケのオンライン版と直接に結び付けてはならない。幾ら有志とは言え、ある程度以上となれば確実に企業としての体が求められるし、資金調達が出来なくなる。そうと言っても、本体と利益重視の団体と結び付けては、組織としての気風が崩壊する。それ故下位組織か、いっそ別組織で結びついた方がよい。
何よりも絶対にしなければならぬのが、出版社優位のシステムには絶対にしてはならぬことだ。私は出版業界は知らないが、組織化された集団は必ず利益の下に腐敗することを知っている。もう、出版社は腐敗していると言ってよい。が、彼らの力が最終的に必要になるのも現実だ。
それは考えねばならぬことであるが、現時点では解を得られない。君たち、読むか解らないが若者の頭で、考え出して欲しい。
些か理想に走った青写真であるのは認める。が、私が何よりも言いたのは、積極的に自衛手段を編み出さねばならない、と言うことだ。出来てしまったのは仕方ないし、事実この世界は自動化、効率化の下進んでいっている。それに抗うのは無理だ。第二第三の者が来る。それに対抗するには流れを利用する。幸い現代は資本主義が揺らいでいる。既存の資本構造が正解とは限らない。使える手段は全部使え、自ら生存の為に。それが君らの世代では可能なはずだ。嘆き悲しむのは誰にでも出来る。質で来るなら量で抗え、君らにはそれだけの頭数がいる筈だ。私は知恵が足りぬので出来ず残念だが、君らでも知恵が無ければ最悪大学の先生を使え、使えるものは親でも大学教授でもなんでも使え。
勝手に tampermonkey とかに突っ込んで使ってヨロ
スクリプト保守とかするつもりないから、保守とかするつもりのあるパワーの溢れた人が
これ参考とかにしてもっとかっちょよくしたのを greasy fork あたりに公開してくれ
そしたら俺もそれ使う
localStorage.hatebu_ng_word_list に非表示のトリガーになる文字列を|区切りで登録する。
localStorage.hatebu_ng_word_list = "池田信夫|フェミ|弱者男性|やまもといちろう"
大なり小なり(>)が実体参照で表示されるのはよくわからん。使う人で適宜コードを直してくれ。
// ==UserScript== // @name はてブの一覧NG記事非表示 // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author masuda // @match https://b.hatena.ne.jp/* // @icon https://www.google.com/s2/favicons?sz=64&domain=hatena.ne.jp // @grant none // ==/UserScript== (function() { 'use strict'; if (!localStorage.hatebu_ng_word_list) { return; } console.log("はてブの一覧NG記事非表示", localStorage.hatebu_ng_word_list); /* * 例: * localStorage.hatebu_ng_word_list = * "池田信夫|フェミ|弱者男性|やまもといちろう|togetter.com"; */ let words = localStorage.hatebu_ng_word_list.split('|').map(w => new RegExp(w)); function entryDelete(els) { els.forEach(el => { let hit = false; words.forEach(w => { hit = hit|| w.test(el.textContent); }); if (hit) { el.remove(); } }); } // entrylist-header-main li 1つ目のアイテム entryDelete(document.querySelectorAll('.entrylist-header-main > li')); // 2つ目以降の li アイテム entryDelete(document.querySelectorAll('.entrylist-item > li')); })();