「match」を含む日記 RSS

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

2024-10-29

[][]Last Call BBS

変態パズルゲームメーカー(誉め言葉)で知られるZachtronicsの最終作『Last Call BBS』を全実績解除するまでやり尽くしたので感想を書く。

ちなみにプレイ時間は約85時間である

私にとって『Last Call BBS』は、3作目に遊んだZachtronicsゲームである

1作目は『Opus Magnum』、2作目は『SpaceChem』であった。

SpaceChemを全実績解除するまでプレイした時の感想こちら → https://anond.hatelabo.jp/20240315235948#

いやー、それにしても楽しかった。

ゲーム全体の雰囲気としては、レトロ雰囲気が気に入った。HDDカリカリ音だったりダイヤルアップ接続のピポパ音だったりもいい。

ただ、日本語訳されていないので、BBS主人公(?)のテキストメモにおいて英文読解があまりできなかったのが残念だ。とはいえこれは私の英語能力が低いせいなので仕方がない。

Last Call BBS』に収録されている各ゲーム難易度は、私にとってちょうど良かった。ギリギリクリアできる難易度のものが多かったから、当ゲーム開発者難易度調整にさぞ力を入れたことだろう。

ゲームの紹介についてはネット検索すればわかることだから他で参照してもらって、ここは日記なので私の感想を中心に書くことにする。ちなみに当ゲーム内にある各ゲーム(全部で8つ)の感想クリア順(実績解除順)に並べる。

Sawayama Solitaire

最初クリア及び実績解除したゲーム

他のパズルゲーム頭脳酷使した後のリフレッシュにちょうどいいのでついつい繰り返しプレイして、必要ないのに50勝以上もしてしまった。(10勝で実績解除)

Dungeons & Diagrams

初めの頃はルール理解するのに苦労した。最初はとりあえず升目を空けてステージクリアしたが、なぜステージクリアになったのかがわからなかった。しかし、次第にルール理解できるようになると、楽しくステージ進行できるようになった。とはいえ、終盤のほうはなかなか難しくて頭を抱えたりもした。

20th Century Food Court

オブジェクトを運んで加工してと、まさにZachtronicsらしいパズルゲームステージクリア後にコストステップ数のランキンググラフで表示されるので(SpaceChemなどでもおなじみだ)、クリアもついつい効率化を図ってしまうのもまさにZachtronicsだ。コスト低減のためにコンベヤやセンサの設置をシンプルにして、代わりにロジック部分を配線まみれにしてしまうのが楽しくて仕方がない。

難易度の上昇幅もちょうどよく、ステージの終盤になるとロジック部分がギチギチで配線グチャグチャになったりしたのも楽しかった。

ステージクリア後の利用客のレビュー面白い英文ちょっとしかったけど)。コーラ製造ステージコークペプシを作るのだが、「全部同じじゃないですか」(意訳)というレビューがあって笑った。カップデザインが違うだけで中身が同じだからだ。

Kabufuda Solitaire

あっさりと最高難易度までクリアして実績解除できた。しかし、クリアしても適切な戦略が良くわからなかった。クリアしても初期配置が良かったからとしか思えなくて達成感は無かったし、失敗してもやはり初期配置が悪かったからとしか思えなかった。ようするに運ゲーしか感じなかった。やたらめったらカードを動かして積み重ねては駄目なようだけど、さりとてカードを積み重ねることでしかカードを動かせないのだからいったいどうすれば、という感じだった。

おなじく運ゲーソリティアであるSawayama Solitaireは滅茶苦茶はまったのに対して、Kabufuda Solitaireにはあまりまらなかった。これは、カード操作戦略思考を持てるか否かの違いだろうか。

STEED FORCE Hobby Studio

ゲームというより作業シミュレーター? 無心になって、ニッパープチプチとパーツを外してパーツをはめ込むのは、禅の境地だろうか。

X’BPGH:The Forbidden Path

ゴアホラー雰囲気を漂わせたパズルゲームゴア表現は無い)。この雰囲気パズルゲーム? と思ったが、スライム状のオブジェクトを増殖して変化させるパズルは、ゴア雰囲気がふさわしい。プレイと共に雰囲気が好きになってきた。

難易度の上昇幅もちょうどよく、序盤はテンポよく次々とステージクリアできるが、終盤になると頭を抱えるほどに難しくなる。実績解除してこれで全ステージクリアかと思ったら、まだまだステージがたくさんあることに気づいて愕然とした。どれも難しそうなので、やらずに放置している。

ChipWizard Professional

PNPとNPNってどう違うんだっけ? ベースコレクタ・エミッタってなんだっけ? いまだによくわかっていないが、PNPとNPNを組み合わせて問題解決するのは楽しかった。特にしかったのは自己保持回路だ。どうすれば自己保持できるんだと悩んだが、試行錯誤の末に実現して動作を眺めるのが楽しかった。

難易度上昇幅もやはりちょうどよく、終盤は頭を抱えたり奇声を上げるほどに難しかったが、それだけに達成感も大きかった。Zachtronicsおなじみの、ステージクリア後のランキングもやはりいい。ランキング上位を目指そうとステージクリア後も回路を小さくするよう、ついつい改良してしまう。

HACK*MATCH

パネルでポン』を彷彿させるパズルゲームブロックが消えている間にブロックを投げ込んで連鎖できるのも、パネルでポンにおけるアクティブ連鎖彷彿させる。

このゲーム攻略は、3ステージ目がなかなかクリアできずに後回しにしていた。

3ステージ目は、運悪く盤面ブロックの種類がバラつくとブロックを消すのに手間取ってしまい負けてしまう。また、プレイが長引くと爆弾ブロック邪魔になって負けることが多かった。爆弾は発動させても相手ダメージを与えられないので、メリットは無い。逆にブロック配置の運が良いと連鎖簡単に組めたり、あるいは勝手連鎖になって相手に大ダメージを与えることができる。

3ステージ目は何度もコンティニューして、運良く連鎖が繋がった時に勝つことができた。

4ステージ目(最終ステージ)はコンティニュー1回で勝てたが、これも運良く画面外で連鎖が繋がったのが主因だ。

このゲームは、ブロック操作の速さやテクニックよりも、運の良さに左右されるゲームだと思う。

まとめ

全実績を解除した時点の感想としては、とにかく楽しくて苦痛でもあった。それだけに達成感もまた大きかった。さすがはZachtronicsだ。

Last Call BBS内のどのゲーム面白かったが、その中でも『20th Century Food Court』が一番良かった。次に『ChipWizard Professional』だ。

もう当分の間パズルゲームはやりたくないのでしばらくは他のジャンルゲームをするだろうが、何か月もすると禁断症状が出てまたパズルゲームをやりたくなるだろう。その時には『SHENZHEN I/O』をやろうと思う。

2024-10-24

キリンの首と民主主義

はじめに

2024年衆議院選が近い。

ここ最近政治的不祥事がいくつかあったこともあり、今回の選挙特に注目度が高いと思っている。

しかし、私の身の回りの人たちは参政意識の差が大きいと感じる。

投票しないという人たちの話を聞く限り、以下のようなハードルがあるようだった。


これらの気持ちはスゴくわかる。

受動的に得る政治関連の情報は断片的なことが多くて分かりづらいし、自分で調べ始めてもなんだかインターネット上で強い言葉を使ってブチギレている人ばかり目にする。(本当に怖い)

ただ、"それでも投票する必要がある"という理屈が、投票をしない人たちには伝わってないんじゃないかと思う。

投票しないことをチクチク言われることはあるけど、特に困ることはないし別にいか」くらいの気持ちじゃないかと推察する。

そこで、私なりに投票必要性を整理してみたくなり、ここにまとめることにした。微力ではあるが投票について考える一助となれば幸いだ。

※私は記載する内容の専門家ではなく、なんらかのデータに基づいた話もないのであくまで一個人の想いや考え方としてご一読いただきたい。また、本内容は特定政党思想批判・支持するものではないこともご留意いただきたい。

キリンの首はなぜ長くなったか

唐突だが、動物進化の話をしたい。

キリンの首はなぜ長くなったか?という有名なアレである


動物世代を経るごとに少しずつ変化している。

変化の内容は、脚が速いヤツ/寒さに強いヤツ/好き嫌いが少ないヤツ/首が長いヤツといった感じで多様である

この多様な特徴を持った群の中で、周りの環境に最も適用しているもの多数派になる。

キリン場合には、"高い木の上に食べられるものが多くある"という環境だったから首が長いヤツが多数派となったという感じだ。

これが進化過程で起こっていることと考えられている。

とてもよくできた仕組みだが、この仕組みが正しく機能するためにはいくつか条件がある。

私はそのなかで特に重要なのは以下の2つだと思う。


環境は刻々と変化するため、特定環境適用した特徴だけを持つ種では全滅してしま可能性がある。

それを避けるためにいろいろな特徴をもった個体がいたほうが種全体としては頑健である


  • 環境による淘汰が行われること

キリンであれば、高いところの食べ物に届かない個体は生き残れないといったように、環境適用できていない特徴を持った個体が不利になるように自然選択される必要がある。これを専門用語淘汰圧と言うらしい。


少し乱暴にまとめると

"多様なもの競争によって淘汰され、最も適切なものを主流として種が生き残る"

ということである

選挙も同じでは?

私はこの進化の仕組みが、民主主義にも適用されていると感じている。

"多様な特徴を持つ群"は異なる政治的意見を持つ個人政党に置き換えられるし、"環境による淘汰"は選挙による政治家や政党選択に置き換えられるためである

ここまで説明すれば、言いたいことはなんとなくわかってもらえると思う。

投票しないということは

"全体の投票率が低いことにより適切な淘汰圧がかからず、環境適用できていない(あるいは偏った環境適用した)政治が行われることに繋がる"

ということであると私は考えている。

淘汰されないのであれば、自分たちが得するように特定団体優遇したり裏金を得られるようにしたりしても政治家たちにとっては何の問題もないのだ。

これを防ぐためには、やはり投票率を上げるしかないと思う。

どうなっていくと良いと思うのか

結局のところ、選挙に行こう!しか言うことがない。

ただ、どこか特定のところを落とそう!と言っているわけではなく、投票率を上げて淘汰圧を強くしよう!ということが伝えたいことである

そのうえで、投票に向けた行動として以下をオススメしたい。


政治に関する情報収集は難しすぎるが、なんとなくでも良いので自分の考え方に近い政党や遠い考え方の政党を知ることが重要だ。

昨今は簡単アンケート自分マッチした政党を知ることができるvote matchサービス複数あるのでやってみることを勧める。

ここで注意したいのは、サービスによって設問内容や回答項目が異なるため、結果に偏りが出る可能性がある点だ。余裕があれば複数サービスでやってみてほしい。

ここでは特定サービスの案内は避けるため、"vote match"等で検索していただきたい。


たとえ投票したい候補政党がない場合でも、自分の考えと遠い考えを持つ候補政党選択されないように、そこと対立する考えを持つところに投票すると良いと思う。

また、「投票先がないのなら抗議の意味白票を投じれば良い」という意見を見かけることがあるが、これまで述べてきた淘汰圧の考え方からするとまっっったく意味がないのでやめたほうが良いと私は考える。

おわりに

政治的な話について複雑化したりタブー視したりして選挙に対するハードルが上がり、それが原因の一部となり正しい淘汰が行われていない現状が私はとても悲しかった。

自分なりに考えた結果、民主主義の前提のような共通認識がないままに感情を優先して会話されているからではないかと思ったため、本内容を投稿した次第である

選挙に対する雰囲気がほんの少しでも変わってくれれば嬉しく思う。

最後まで読んでいただきありがとうございました。

2024-10-06

ワイ:

x = torch.tensor([

[1.0,2.0,3.0],

[4.0,5.0,6.0]

])

最終次元が channel とし、この x を channel-wise 正規化してください。

Claude3.5 Sonnet:

はい、channel-wise 正規化チャネル方向の正規化)を行います。この場合、最終次元(dim=-1)がチャネルとなります。channel-wise 正規化では、各チャネルの平均を0、分散を1に正規化します。

PyTorchを使用して、以下のように実装できます

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]

])

最終次元が channel とし、この x を channel-wise 正規化してください。

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) / std

This 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の方が正しいよね?

2024-09-05

現実スキルレベル設定するならどうする?

■Excelの場合私見

レベル1:セルが分かる

レベル2:数式が組める

レベル3:Ctrl+S、Alt→E→L などのショートカットが使える

レベル4:フィルタ設定、ウィンドウ枠の固定、入力規則が使える

レベル5:VLOOKUPが使える(INDEX MATCHでも可。絶対参照と相対参照が分かる)

レベル6:条件式が組める

レベル7:データ形式が分かる(Excelお節介機能を黙らせてCSVファイルを正しく開ける)

レベル8:Excelについて質問されるほどの知見/信用がある

レベル9:依頼側の要件を聞き、譲渡可能な(作成者依存しない)Excelファイル作成できる

レベル10Excelでやるべきでないことについて、根拠とともに「やるべきでない」と提言できる

2024-08-01

アンチセミティズムとかい言葉ヤバい

アンチセミティズムとは反ユダヤ主義、つまりユダヤ人に対する偏見嫌悪意味する言葉である

しかし、この言葉イスラエル批判する者全てを封じる魔法言葉に成り果てている。

その典型例が、BBCのこの記事だ。

Investigation into alleged antisemitism at Olympic football match

https://www.bbc.com/news/articles/cv2gy51v03mo

ジェノサイドオリンピックと書かれた横断幕を掲げたものを反ユダヤとして警察が取り締まると発表したのだ。

この横断幕現在進行系でジェノサイドを行っているイスラエルの参加が許されていることに対する批判と考えられるが、これに対し単にアンチセミティズムというレッテルが貼られ、差別として処理される状況になっているのである

言い換えれば虐殺をやめろと言うと問答無用差別主義者として処罰されるという事だ。

これは非常に恐ろしい。

もはやフランスイスラエル批判はできない状況になっている。

例えば先日、東大准教授斎藤平氏反五輪を示し話題になったが、彼がフランスで同じ発言をすれば反ユダヤ差別主義者として逮捕されているところだろう。

このアンチセミティズムという言葉を都合良く操るフランスはマジヤバいし、それを淡々と言われたとおり報道してるBBCヤバい

2024-06-26

非エンジニアだけどClaude3に増田ミュート作ってもらったよ

これを改善してってお願いした。何書いてあるかわからないけど動いたよ。

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}\\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 });
})();

2024-06-02

anond:20240602005019

女性に対してトラウマ(非常に強い苦手意識)がある男性ですが、以下参考まで、、、

Yahoo!出会いmatch.com/Omiaiなど。必要最低限のスペックを満たしていれば何度か定型的なメッセージのやり取りはできても二回目、三回目が続かず自然消滅ばかり。ごく稀に同年代女性と何度か会うことができたが、実際に会うと会話が成立せず自然消滅/いずれも退会。

寝たきりだった祖母病気がちだった父親が亡くなり、見かねた親戚が心配して設定してくれた。お見合い相手は三歳年下で、初回の顔合わせでは会話らしい会話もできなかったが、相手女性がお情けでLINEの連絡先を教えてくれたのを勘違いしてしまった。カフェレストラン神社仏閣、ディズニー観劇など毎回凝ったデートコース提案した。毎回デート費用こちら持ち。20回目のデート勇気を振り絞ってプロポーズをしたら、今は待ってほしいとお断り。その後呼び出されて別れて欲しいと告げられトラウマになった。

43歳で結婚相談所に入会。個人ながら地元密着でIBJ加盟で表彰も多数され、毎月のように成婚実績を出しているやり手の仲人の方。お見合いは組めるものの、二回目、三回目のデートから先にどうしても進めなくなってしまう。結局4年間続けているが、真剣交際までは進められたことがない。

自分は在籍カウンセラーさんの多い「〇ららか相談室」で何度かメールzoomオンラインカウンセリングを受けた。良いカウンセラーさんに当たると少し気持ちが楽になることもあったが、そういう方は多忙業務の合間に副業的にやられていることも多いようで、一回限りで予約が取れなくなった。

2024-03-02

anond:20240302043100

VBA嫌いのExcel師(営業事務)なんだけど、その程度のことをVBAでやろうとするヤツを駆逐したい。

お前は営業や他のユーザー理解度自分レベルだと勘違いするのをやめるべき。

うちの会社はVLOOKUP(最近INDEXMATCH)組めるのが「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週間待たされたりする。

営業からしたらそんなもんVBA野郎エゴ中のエゴですよ。

営業に金稼がせるためには営業利便性裁量必須で、Excel利用者裁量権が認められてないVBAツールなんか全体最適化されてないクソ。

※なお裁量大きいからってあんまり好き勝手するとやらかした時に他の助けも得られず(やれることに限界がある)自滅ルート

自分も軽くVBA習得してるんだけど、フォルダ内のデータ一括読み込みとシートの分割統合関数代わりにしか使ってない。しかもただの効率化なのでVBAが死んだところで手作業に戻せる範囲

他人保守できるように作るのならVBAなんか入れるべきではないし、VBA入れないなら計算シートは必須。あと計算周りを大掛かりにやるならSaaS入れてDX検討すべき。

2023-10-10

anond:20231010132725

xlookup使えないとかindexmatch使えないとか詰られるかと思ったおじさん

2023-09-14

ずんだもんと結婚したい。

2人で市民プールに行って上がったらMATCHを飲みたい。

2023-08-04

綺麗なコードって綺麗に書くことじゃないよ

本当にあった話だけど、JavaScriptstrっていう変数テキストが入っていて

その変数に'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を書きましょう」

とかをPRレビューコメントしても

「動いてるからいいじゃない」

「綺麗に書いても性能上意味ない」

「言ってることが良く分からない。何が違うのか」

とか言ってくるし

言ってこなくて言われた通りに直しても次もまた同じことしてくるのでマジでレビューって大変だよ

2023-07-23

素早くブクマされた増田を強調 簡易セルクマ検知ユーザースクリプト

https://b.hatena.ne.jp/site/anond.hatelabo.jp

で動くスクリプトでたとえば投稿10分以内にブクマされページに乗ったら「1 user」が「1 user セルクマ 1とか5(何分後にブクマされたか)」になる。もしマイナスなら誤判定なので無視して。

時間を置いたセルクマには効かないし普通ファーストブクマカがどれぐらいの頻度で確認してるかしらないけど5分以内や1分以内もポロポロあるのでまあ目安に。

増田URLと一覧の時刻表示差分を取ってます

増田じゃpre記法でも記号が変換されるみたいだから作業

.forEach(div => {

('.entrylist-contents-title > a')

if(diffSec >

とかの

<>

<>

に変えてね

他にも見落としあるかも

誤判定が減るから非公開ファーストブクマを判定できたらいいんだけどね。

// ==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 =&gt; {
    const masuda = div.querySelector('.entrylist-contents-title &gt; 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 &gt; threshold) {
      return
    }
    // ブクマ user
    const user = div.querySelector('span.entrylist-contents-users a').lastChild
    user.textContent += ' セルクマ ' + (diffSec / 60)

    // 古い記事マイナスになる でも2015年ぐらいの記事までかな?新着はセーフ臭い
    /*
    if(diffSec &lt; 0) {
      user.textContent += ' 異常差分:' + diffSec
    }
    */
  })
})();

2023-03-04

朝日新聞digitalプレゼント機能

無料会員のタダ読み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);})();

2023-02-25

anond:20230224073522

国内最大のマッチングアプリペアーズの統計

男の年齢別人気会員の割合は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%

https://nova.5ch.net/test/read.cgi/livegalileo/1662357800/

2023-02-03

最近UserScriptを書くのが楽しい

最近UserScriptを書くことに目覚めて、不便なWebサイトちょっと改造して好みにするのにハマってる

例えば「辞書系のサイトなのにページを開いた瞬間から入力欄にカーソルがあってないのがいや」とか、そういう細かい点をこちらで勝手に改修するするような感じね

で、増田において「この人記事に対して毎回○○って反応つけてるけど面白いと思ってやってんのかな? 面白いと思ってやってんなら致命的に自分センスが合わないから消したいし、面白いと思ってないならただの害悪から消したいな」と思うことがあるわけですが、そういった異なる価値観に対して自動的に適切な距離を置くためのスクリプトを作ったのでメモがてら貼り付けておきます

// ==UserScript==
// @name        ますどくさいスイッチ
// @namespace   Violentmonkey Scripts
// @match       https://anond.hatelabo.jp/2*
// @grant       none
// @version     1.0
// @author      anond
// @description description
// ==/UserScript==

(async () =&gt; {
    // ここにNGワードをどんどん追加する
    // 基本は文字列文字列で引っ掛けにくいなら正規表現でもいい
    const keywords = [
        "あえいうえおあお",
    ];

    const checkedMarker = `data-a${Math.random().toString(36).slice(-8)}`;
    const query = `div[id^="excerpt-"]:not([${checkedMarker}]`;

    const delTree = () =&gt;{
        const elems = [...document.querySelectorAll(query)];
        for(const elem of elems) {
            const textContent = elem.textContent;
            if(keywords.some((x) =&gt; (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 });
})();
  1. ブラウザーにTampermonkeyやViolentmonkeyをインストールしUserScriptを動かせるようにする
  2. インストールした拡張機能ダッシュボードを開き新規スクリプトを追加する
  3. 上記全てをペタッと貼り付ける
  4. 配列keywordsに消したい文字列またはそれにマッチする正規表現を入れる
    1. いくらでも追加可能
    2. 多少増えたところで大して重くはならないと思う
  5. Ctrl+Sを推して保存する
  6. 記事の反応のうち消したい文字列に当てはまる発言(とさらにそれに反応した発言)がツリーから消える

keywordsを増やして君だけのどくさいスイッチを育ててね!

(追記)

ぐええ 文字勝手に置換されてる…不便だなあ

&gt;」となっている箇所を「>」を半角で入力したものに置き換えてください

2023-01-10

増田引退にあたり過去投稿掃除した

以下のスクリプト登録することで。以下のループを繰り返させることができる。

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 =&gt; 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 =&gt; setTimeout(resolve, ms));
}

(async function() {
    'use strict';

    await sleep(100);
    document.querySelector("input.delete-button").click();
})();

2022-12-12

伊藤詩織神原元にカンパしていた私が今回は暇空茜の肩を持つわけ

敬称略

暇空茜の肩を持つ理由基本的にこれ。

もし、暇空が仁藤のプライベートについてあれこれ書いていたら仁藤持ちだったと思う。

今回仁藤に直接関係するとしたら、例の「○○と関係が深い」のところしかなく、あとは「仁藤が代表を務めるColabo」というように団体主語になっている。

企業や団体は自然人ではなく、その業務についてあれこれ評価されることについては必然性があり受忍の限度は高く設定されるべきと考える。

実際にひどい中傷により影響が出たのであれば、業務妨害関係法律により賠償を求めるべきとも思う。

また、税金支出される団体として一定以上の説明責任を有すると考える。

さらに、日本においてはSLAPP訴訟のものへのペナルティほとんどないことからも、企業団体への名誉棄損の成立は慎重に行うべきと考える。

(もちろん、そう考えているのは私なだけなので、日本民事訴訟において政府大企業有名団体に対して裁判官心証は限りなく甘い)

反論する手段も十分にありながらいきなり訴訟を行ったのも心証が悪い。仮処分も求めていないのに保護活動への影響の緊急性を主張するのだろうか?

また、暇空はペンネームであるがこれは完全に顕名である。いきなり半生記を書き出して何かと思ったが、自分特定個人本人であることを示したということであろう。

この増田のようなものであれば個人名誉存在せず名誉棄損を訴える法益がない。一方で暇空は無名匿名人ではない。

弁護団はそれを認識したうえで、件の会見を開いた以上、その内容に行き過ぎがあれば当然に名誉棄損が成立する。

ネトゲ有名人であることを開陳したのも名誉棄損の損害を上積みするためであろう。体を張ってる。

Colabo側がこれ以上の嫌がらせを考えるとしたら暇空の証人召喚だろう。


本筋ではないけど、漫画表現への攻撃の件

攻撃ではないとか言い出す人もいるのがどうかと思うので。

最初攻撃したのは絵を掲示したほうであるなどという人もいる。どんな検閲社会だ)

これらは別々に成立する。

例えば表現撤去要求であれば、ポリコレマスターした欧米人ならこう言うだろう。

「great workだけど、この場にはmiss matchと思うんだ」

これはこれで交渉余地はあるだろう。

表現へのマイナス評価についても、ある程度感想自由だ。

ただし、正直に思ったからと言って、キモイ、ブス、デブなどと口に出したら幼稚園生かと思われる。

それでも表現自由範囲ではある。

ここで両方いっぺんに(キモイグロイ・女性を消費している・ズリネタ撤去せよ)やったとすれば、それはもう攻撃しか言いようがない。

物語だったら、生涯をかけて学会復讐するレベル

何度も攻撃が繰り返されたおかげでもはや話し合いの余地はなく、ちょっとした感想アレルギーが生じる状態である

全て手遅れ。

2022-12-03

ボール内蔵チップ記事の誤り。

今回のW杯スペイン戦の三笘選手アシストに関連してこんな記事話題になっている。

W杯日本勝たせた進化したVAR、ボール内蔵チップで1ミリ以下まで驚異の計測 開発者証言

https://www.nikkansports.com/soccer/qatar2022/news/202212020000720.html

この記事にはボールに内蔵されているIMUというチップによりボール位置を測定し、今回の判定が下されたと書かれている。しかし、実際には内蔵チップ使用されていないと思われる。なお私は一介のサッカーファンであり専門家ではないので間違っていたら指摘してほしい。

・内蔵チップ半自動オフサイド判定システム使用されるもので、ゴールラインテクノロジー(GLT)には使用されていない。

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映像から判定したとツイートしてる。

FIFAが今回の判定について説明するツイートをしており、そこに

The video match officials used the goal line camera images to check if the ball was still partially on the line or not.(マッチオフィシャルは、ゴールラインカメラ画像使用して、ボールがまだ部分的ライン上にあるかどうかを確認しました。)

と書かれているため、実際にはラインから映像を見て判定を下したと思われる。

2022-08-30

現代イラストレーターは、必ず滅びる

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に掛けて描かれていないかを厳密に判断するシステムを作る。人間の描いた作品のみを取り扱う、それを可能にするシステムを構築する。可能ならば、有志達が本気ならばそこに参画したクリエーター保証する為に、歴史から引用すればメディチ家のようにそのシステム消費者全員、それは全世界さえも包括する億単位に達するか解らんが多くのスポンサーを受け入れる。その為に出来るだけ多くの言語圏に届けるために翻訳陣を用意する。勿論、ここでAIGoogle翻訳のような機能を使ってはならない。我々の優位性が失われるし、各文化圏に最適化される必要があり、それは恐らく未だAIでは実現出来ないだろうからだ。まさかエロ漫画のようなオホ声が例えばイスラム圏に最適化されるライブラリは未だAIにはない筈だ。人間の生きた脳で翻訳必要だ。

エロフォーカスし過ぎた。エロだけではない、例えば今なろうが流行しているらしいが、そのテキストさえも、要はイラストストーリー、果ては音楽も包括した組織理想ではあるが、果たしてその組織が正常に作用してくれるかは私の頭では想像できない。要は作品として一から終いまで完結出来るだけのシステムを整える必要がある。

この、Micmicのような精神産業破壊AIは、法律倫理で縛れるものではないことを前提としなければならない。幸いAV新法のように、今回は法律が縛るのではなく、むしろ縛るものがない。そこを利用し、利益を齎すシステムを作る必要がある。

だが陥ってはならない罠がある。最近で言えば確かネトフリが振るわない番組製作途中で打ち切った、なんて報道があった。それはプロ観点からである欧米道徳である利益重視である。それはクリエーターが下すべき判断であって、マネージメントの側から判断してはならぬのである

現代は高度に断片化され過ぎた。あらゆる音楽で言うところのレーベルが乱立している。集英社だけでも四つ以上はある。私の幼少では考えられぬことだった。

とは言え、現代では資本が全てなのが痛いところだ。暗号資産のように、純粋資本とは言い難いものベースにするわけにもいかない。何しろクリエータ生活が掛かっている故に、浮ついた貨幣を用いてはならぬので。

先に述べたシステムを生かすのならば、ある程度の出版社の力が必要となる。が、決してコミケオンライン版と直接に結び付けてはならない。幾ら有志とは言え、ある程度以上となれば確実に企業としての体が求められるし、資金調達が出来なくなる。そうと言っても、本体利益重視の団体と結び付けては、組織としての気風が崩壊する。それ故下位組織か、いっそ別組織で結びついた方がよい。

何よりも絶対にしなければならぬのが、出版社優位のシステムには絶対にしてはならぬことだ。私は出版業界は知らないが、組織化された集団は必ず利益の下に腐敗することを知っている。もう、出版社は腐敗していると言ってよい。が、彼らの力が最終的に必要になるのも現実だ。

それは考えねばならぬこであるが、現時点では解を得られない。君たち、読むか解らないが若者の頭で、考え出して欲しい。

些か理想に走った青写真であるのは認める。が、私が何よりも言いたのは、積極的自衛手段を編み出さねばならない、と言うことだ。出来てしまったのは仕方ないし、事実この世界自動化効率化の下進んでいっている。それに抗うのは無理だ。第二第三の者が来る。それに対抗するには流れを利用する。幸い現代資本主義が揺らいでいる。既存資本構造が正解とは限らない。使える手段は全部使え、自ら生存の為に。それが君らの世代では可能なはずだ。嘆き悲しむのは誰にでも出来る。質で来るなら量で抗え、君らにはそれだけの頭数がいる筈だ。私は知恵が足りぬので出来ず残念だが、君らでも知恵が無ければ最悪大学先生を使え、使えるものは親でも大学教授でもなんでも使え。

最後に、君らにエールを送りたい。是非とも、生き延びてくれ。

補足説明はするつもりだから、君らの意見を聞きたい

2022-08-26

anond:20220825154813

はぁ、最近は私(Ruby)は Python ちゃんにおされちゃって PHP ちゃんにもバカにされる始末。ああ、声が聞こえる、Perl ちゃんの声が「おいでよ」って。でも、Groovy とか Scala とかも元気だし、もうちょっと頑張ろう!... ということで、Ruby の駄目なとこと追加してほしい機能とかよろしく。俺は CASE 文の完全な刷新かな。in だとイマイチなんだよ、書きやすさとかが。Rust の match レベルのヤベーの欲しい。

2022-08-15

Webはてブミュー機能作った

勝手に tampermonkey とかに突っ込んで使ってヨロ

スクリプト保守とかするつもりないから、保守とかするつもりのあるパワーの溢れた人が

これ参考とかにしてもっとかっちょよくしたのを greasy fork あたりに公開してくれ

そしたら俺もそれ使う

使い方:

ブラウザの開発環境を開いて、開発コンソールを開く

localStorage.hatebu_ng_word_list に非表示トリガーになる文字列を|区切り登録する。

localStorage.hatebu_ng_word_list = "池田信夫|フェミ|弱者男性|やまもといちろう"

実際のコード

大なり小なり(&gt;)が実体参照で表示されるのはよくわからん。使う人で適宜コードを直してくれ。

// ==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 =&gt; new RegExp(w));

	function entryDelete(els) {
		els.forEach(el =&gt; {
			let hit = false;
			words.forEach(w =&gt; {
				hit = hit|| w.test(el.textContent);
			});
			if (hit) {
				el.remove();
			}
		});
	}

	// entrylist-header-main li 1つ目のアイテム
	entryDelete(document.querySelectorAll('.entrylist-header-main &gt; li'));
	// 2つ目以降の li アイテム
	entryDelete(document.querySelectorAll('.entrylist-item &gt; li'));
})();

文字正規表現として評価されて、ヒットした記事項目をページから削除する(DOMから要素を削除する)。

際限なくNG登録できるけど、沢山非表示するとつまらない一覧になる

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