スナックelve 本店

バツイチ40代女の日記です

成長できない僕たちに神の御加護がありますように

ラルフローレン

snack.elve.club

1年ぶりだな・・・
あぁ・・・

今のカバンでかすぎるんだよなー。ボディバッグみたいのにしたいなーとは思っていたんですよ・・・。
f:id:elve:20220110210113j:plain

↑セールでカズがなんか更に割引の券持ってて1万以下でしたε-(´∀`*)ホッ

買っちゃったよ・・・orz
しかも、カズが(手が出る範囲で)特に欲しい物ないわってんで、私のお買い物のために外出した感じに(;´Д`)

新宿まで歩く

Lush

コレが気になったのでラッシュを探す。
ラッシュ新宿メトロピア店を目指したがない。(閉鎖っぽい)

腹が減ったのでラーメン

一蘭

一蘭。とんこつラーメンは匂いが苦手だったけど一蘭は全然臭くなかった!ヽ(=´▽`=)ノ
ほぼ個室なのだがカズが衝立越えて「美味しいよね?」とか聞いてきて嫌だったw
f:id:elve:20220110210553j:plain
f:id:elve:20220110210633j:plain

再びLush・・・その前に

ラッシュに行くからなんかおすすめある~? なんてイツメンに聞きつつHP見ていたらミス・ゴージャスという商品を見つけてテンションが上ってしまう。
これ買うわ!!
及川光博の「ミス・アバンチュール」の歌詞に「♪わけもなくゴージャゴージャス」があるのだ。元べいべーとしてコレはもうたまりませんね!!
t.co

と熱く語り、いいねいいねーなどと言われて鼻息も荒くなっていた。
そう、誰も値段に言及しなかったのである。

シェービングクリームと・・・

f:id:elve:20220110211817p:plain

(ノД`)ナェルシク

しかも、ゴージャスめっちゃトロトロで、開けたらボターって・・・。
f:id:elve:20220110211911j:plain

もう何百円かロスしとる(ノД`)ナェルシク

さ、明日からまたがんばりますかね!

兄、トシアキについて

f:id:elve:20220110204159p:plain
身内をネタにするシリーズ。そろそろ兄、トシアキの話をしておこうか。
トシアキはもう45を過ぎたおっさんだ。デブで、何故か*1風呂が嫌いで、脂ぎっており、髭を伸ばしている。
最大限にいいように言えば、インド映画で踊ってそうなツラをしている(腹を除く)。
f:id:elve:20180519150734j:plain
Katemangostar - jp.freepik.com によって作成された coffee 写真

素人診断で100%ADHDである(ひどい表現w)。母曰く「国が認めない障害者」。現実は母が認めない障害者である。
社会不適合→金がたまらない→病院どころではない のループにハマっており、今の所療育されたことはないし治療したこともない。
自立する気はないというかできないのだが、なんと長男だから親の面倒を見てやっている、という認識で自己正当化に成功し、パンツ一枚洗わずに堂々と実家で二部屋を使っている。
トシアキは将来のことなど考えられない。子供の頃、いつか母が死んでしまうと怖くなって眠れなくなった彼は考えることを辞めた。プラモと漫画とカードとソーシャルゲームへの課金。それで彼の給料は消える。

妹(私)が慢性的に希死念慮にとらわれているのとは対象的に、彼は絶対死にたくない、人生は楽しいという。
だが、動脈瘤で手術、脳梗塞で入院、糖尿病で闘病中である。早死してくれると悲しみで終われるので助かるなぁと思ってしまう。
なんとなく間が悪いと言うかなんというか、よく落ち着いた頃に車で事故り、さらに金がなくなる。若い頃の借金は親が肩代わりしたようで、今も結局母が払っているようなものだと思う。
神様の意地悪なのか自業自得なのか、後者だと思うのだが母は前者だと主張する。

我が家で唯一大卒であり、屁理屈だけはとても達者である。口だけにしておけばいいものを自分の正義を振りかざし、上司を殴って仕事を辞めると喚いていたようだ。
殴られる上司も相当酷いものであった、と母は言うが、当然この令和において(多分平成でも)暴力振るったやつが100%悪いのだ。
しかしながら、なぜかクビにはならず、仕事は続けられた模様。上司が訴えると騒いでいるのでいやいや頭を下げに行ったとのことであった。全くどうでもいい(笑)
言い方は悪いが、たぶん周囲に学位を持った人が少ないのだろう。力仕事だと聞いている。彼の理想と程遠い場所なのは確かなのだ。
帰省した際、俺は正社員だからとマウントしてきたが年収は300万未満と推定される。

トシアキの発言で衝撃を受けたのは
「3次元の女なんて汚い。あんなマンコに突っ込んだら俺のチンコが腐る」
である。あんなマンコに……みたことあるのか、トシアキ。お前童貞だろ? あ、同居人が同性愛者だった話をちらっと聞いたので、ちょっと違うルートで性体験があるのであろうか……。いや、それにしても……。

そう、トシアキも家を出たことがあったのだ。漫画家になると頑張り、埼玉あたりでエロ漫画家のアシスタントをしていたと聞いている。当然食えない。で、同居人と暮らしていたらしい。
相当難しい男なのだが、チンコがでかいらしく(母からの嫌な伝聞w)同居人に好評だったらしい(なんで?)。ん? あれ? そういうこと?
しかし「俺、絵を書くのは好きだけど、ストーリー考えられないわwww」と言って実家に帰った。SDガンダム系の絵が大変上手(素人目線)である。

ふたばちゃんねる二次裏住民である。嫌韓反中。兄弟揃ってネトウヨになってしまうとは情けない。
多分今頃ついフェミを叩いて喜んでると思う(オレモナー)。

兄貴はさ、生まれたときから俺が欲しい物全部持ってたんだよ。
積み木で宇宙船作ったり、ブロックでオリジナルのロボット作ったり、虫に詳しかったり、恐竜に詳しかったりさ……。ちくしょー、悔しい、いつか兄貴を追い越したい。私も両親からの期待を背負いたい。小さい頃はそんなモチベーションを持っていた気がするよ。

あ、コレ何やっても兄貴にはかなわないわ。そして別にかなう必要ないわ。こいつ、ただのクズじゃん。
そう気付いてから、やたらトシアキを馬鹿にして彼の尊厳を踏みにじった。短くはない時間、我々は断絶していた。

たとえその人間が自分にとってどんなに価値がないと思われても、その人の人生をジャッジする権利など、私にはない、そう気付いた頃、トシアキと父が仲違いし、代わりを埋めるようにトシアキと会話するようになった。母とも距離を取れるようになった。トシアキは私のくだらない話によく笑った。
私はトシアキに受けた話はなんだかいい話と思ってしまっていた。
寄生獣すげー面白かったのに最後の最後でミギーがありがちなご高説たれて終わるの萎えるわ~」
とかそんなレベルの話だけれどもw

トシアキにとっては私は可愛い妹だったのだろうな。昔から孤立しがちなトシアキは、友達を遊んでこい、という母に「エルベと遊んでいたほうが楽しい」と反論し、母を困らせたらしい。
その割に私の記憶には泣きじゃくる私をおいて自転車ででかけてしまうトシアキ、とか、使わないお小遣いをよこさないともう遊んでやらないというトシアキに泣きながら100円渡してる私がいる。
昔からジャイアンのような男であった。

今はトシアキにどうも思わない。あまり責めずに2次元の話してれば中学生みたいに大声で笑う典型的な迷惑オタクだ。
できれば母が死んだら早めに後を追って欲しいと思わないでもない。彼は実家を相続しても相続税とか固定資産税とか払えなくて売るしかないだろうしなぁ……。父と事件になっても嫌だし。

弟と話していてもアレだけ好きに生きてるんだからどうなってもいいじゃんね、である。
それは母にも感じているw

母は多分、兄が自分に似ていて、それが父に十分に大切にされていない(と感じる)ことに自己投影してしまってるんだろうなぁ。
でもなぁ、優しくしたって金銭的被害が大きくなるだけだしなぁ。やっぱ自分で責任持てる範囲で遊んでほしいよね(;´Д`)

どうでもいいと言いながらこんなに語れる程度に……人生の一部ではあるよね。兄弟。

*1:妙に子供の頃の記憶がある男なので、聞いたらなにか引くようなトラウマがありそう

実家との距離は難しい

f:id:elve:20220110172638p:plain
今週のお題「わたしの実家」
長年、マルセイ(元夫)に(勝手に)めちゃんこ気を使って暮らしていたため、うちの親はあまり電話して来ない。私が「今話せない」と不機嫌に切りまくった結果だ。
先日珍しく母から電話があった。
要件をまとめると積立保険の勧誘だったので断ったw
それはそれとして、あれこれ話しをして楽しかったなぁ。
残念ながら、一番話していて言いたいことがツーカーなのは母なのよねぇ。本当に残念。
気軽に電話できるようになってカズに感謝だね、と言っていたがヤツはヤツで実家に帰ってるだけだからなw

兄と父の仲が悪く、母が気を揉んでて、兄は自立する気すらなく、弟はちょっと離れたところに一人暮らしして、ちょくちょく実家帰る、感じなのかな? 「今の」実家は。

男を立てる「いい女」である母が支配した結果、母が居ないと飯すら食わん男どもの巣窟となり、そこに私の居場所はない。
正確に言うと母は、いつだって娘のことを思っている母であることを目指して私の部屋をキープしてくれているが、結果客室でしかない。

「わたしの」実家……。親父が酔って暴れて、母が発狂して泣き叫び、兄は「結局どいつが悪いんだ」以上の考察ができず、弟は幼かった。
兄は、いつも両親の期待と愛情を一身に浴びていたが、ただひたすらに「長男のプレッシャー」とやらにやられていた。やられていない兄を知らない。
父は常に嫉妬に狂い怒りを暴力で表現した。幸い人間に暴力を振るう人ではなかったが。母の周囲が華やか(にみえる)のが気に食わなかったようだ。コミュ障の成れの果てであった。
母は……全部私が悪いんでしょ。私が死ねばいいんでしょ!! と泣き叫んで逞しく生きていた。
皆それを愛情だと私にインストールした。弟には私がインストールしたと思う。

わたしの実家は……昭和で滅んだのだと思いたい。それで良かったと思う。今の実家は「わたしの」ではない感じがするのだ。
今、帰りたいと思う街は函館(最初に一人暮らしした)だし、帰りたい家は、去年追い出されて破壊されたオンボロマンション(東京都)だし、実家と言われてもあまりピンとこないかなぁ。

女と話すと割と皆、自立してから親との関係、距離感も楽になったと言っている。愛と呪いは同一成分。離れれば薄くなることが多い。
女は三界に家無し、私はこの言葉をやたらと印象強く覚えてしまったが、これからの時代は、家くらいどこにでも持てるよ。もはや配偶者や子供は条件ではないのだから。

開放されていくねぇ。

母との会話で結局介護が必要になったらエルベを呼ぶしかないかもwwwww とか言われて心が折れかけた。
君が溺愛した男が3人位周囲にいるんだから頼みたまえ。遠慮はいらないさ。

といいつつ、北に帰る日も来るのかもね。自分の心のために。
開放されたい人生だった(笑)

はてなブログで引用するのにちょっと便利な機能拡張を作った・・・(完成)

f:id:elve:20220110070832p:plain

追記

連続利用ができないの、変数が生き続けてるんだよねぇと思って関数化したらうまくいきました。
ソース変更済みです。

ぎ、ぎふはぶにアップしてみました。コレでいいのかわからん(;´Д`)
https://github.com/elve-hatena/hatena-extensions.git

publicにするの優良なのかな?(^_^;) ワカンネ

前置き

はてな(記法)を愛する皆さんこんにちは。エルベです。

はてな記法、便利ですよね。
引用を割とする方なので Copy URL+という拡張機能を使っていました。
chrome.google.com

f:id:elve:20220110062137p:plain
こんな感じで使っていたのですが、選択部分の文章の改行が無視されてしまう・・・。
・・・って今アップデートしたら改行生きてるんで解決してしまったんだが、まぁまぁ・・・(;´Д`)

この際だからブログ用の機能拡張を勉強がてらに作ろう、と、こう思ったわけでありまする~。

仕様を考える

ホントはアイコンなんかもいらんし、ショートカットでコピーできりゃそれでいいと思ったけどそうはいかんざき(古)なようです。見えないマルウェア的なの走ってても怖いもんねw
やりたいのは~
現在のURL取得
文字選択してたら

>URL:title>
選択文字列(改行含む)
<<

選択してなかったら

[URL:title]

クリップボードに入ればOKかなー。せっかく作るのでgoogle、ウィキペデイア、音声(mp3)、動画(mp4)にもそれぞれのコード入れますか~。

google

[google:URL]

ウィキペデイア

[wikipedia:URL]

音声(mp3)

<audio src="URL" controls></audio>

動画(mp4)

<video src="URL" controls></video>

コレでOK。
どっかにフォルダ作ってImageフォルダはhttps://storage.googleapis.com/web-dev-uploads/file/WlD8wC6g8khYWPJUsQceQkhXSlv1/wy3lvPQdeJn4iqHmI0Rp.zipを解凍して突っ込もうね。いっくよー

ソース

manifest.json

{
    "name": "copyHatena",
    "description": "copyHatena",
    "version": "1.0",
    "manifest_version": 3,
    "permissions": ["storage", "activeTab", "scripting"],
    "icons": {
        "16": "/images/get_started16.png",
        "32": "/images/get_started32.png",
        "48": "/images/get_started48.png",
        "128": "/images/get_started128.png"
    },

    "background": {
        "service_worker": "background.js"
    },
    "action": {
        "default_title": "copyHatena"
    },
    "commands": {
        "copyHatena": {
            "suggested_key": {
                "default": "Ctrl+Shift+1",
                "mac": "MacCtrl+Shift+1"
            },
            "description": "copy for hatena"
        }
    }
}

background.js

chrome.action.onClicked.addListener((tab) => {
    chrome.scripting.executeScript({
        target: { tabId: tab.id },
        files: ['content.js']
    });
});

content.js

function main() {
    allurl = location.href;
    prtcl = location.protocol;
    hst = location.host;
    localpath = location.pathname;
    localpara = location.search;

    const selectedText = window.getSelection().toString();
    //テキストを選択していたら引用記法
    //google
    //[google:検索ワード]
    if (hst.match(/.*google.com.*/g)) {
        result = localpara.replace(/.*q=([^&]*)&.*/g, '$1');
        result = decodeURI(result)
        if (result == null) {
            result = "NULL";
        }
        copyToClipboard("[google:" + result + "]");
        //wikipedia
        //[wikipedia:項目目]
    } else if (hst.match(/.*wikipedia.org.*/g)) {
        result = localpath.replace(/\/wiki\/(.*)/g, '$1');
        result = decodeURI(result)
        if (result == null) {
            result = "NULL";
        }
        copyToClipboard("[wikipedia:" + result + "]");
    } else if (localpath.match(/\.mp3/g)) {
        //mp3
        str = '<audio src="' + prtcl + '\/\/' + hst + localpath + '" controls></audio>';
        copyToClipboard(str);
    } else if (localpath.match(/\.mp4/g)) {
        //mp4
        str = '<video src="' + prtcl + '\/\/' + hst + localpath + '" controls></video>';
        copyToClipboard(str);
    } else if (selectedText) {
        //>ページのURL:titel>
        //選択文章(改行コード含む)
        //<<
        str = ">" + allurl + ":title>\n" + selectedText + "\n<<\n";
        copyToClipboard(str);
    } else {
        //[URL:title]
        copyToClipboard("[" + allurl + ":title]");
    }

}
//https://mseeeen.msen.jp/copy-text-to-clipboard-with-javascript-in-2021/
async function copyToClipboard(text) {
    try {
        await navigator.clipboard.writeText(text)
    } catch (error) {
        alert((error && error.message) || 'コピーに失敗しました')
    }
}
main();

課題

このフォルダを機能拡張のでぺろっぱモード? から読み込んでボタンを固定。
目的のページで押せば動くんだけどさー何でかわからんけど、各タブで1回しか効かないのよね~。
2回目から、どうやって動かせばいいんだろ? なんか開放しないとダメなんだろうけど・・・。

あと、ショートカットキーはマニュフェストに書いても全然ダメだった。Chromeの設定画面で設定すればいいのかな?
ぐぐりんぐの日々は続く

参考

decodeURI() - JavaScript | MDN
if...else - JavaScript | MDN
JavaScript で任意のテキストをクリップボードにコピーする|まくろぐ
JavaScript でクリップボードにテキストをコピーする (2021年版) | MSeeeeN | 大阪発 IT メディア by MSEN
JavaScriptの文字列マッチングまとめ(indexOf, lastIndexOf) - Qiita
[JavaScript]クリップボードを使ったコピーとペースト - Qiita
任意のサイトで任意のJavaScriptを自動実行させるChrome拡張 - Qiita
JavaScriptでクリップボードに文字をコピーする(ブラウザ) - Qiita
【JavaScriptの基本】可読性を上げるためのif文の基本形・省略形の解説 | ワードプレステーマTCD
【JavaScriptの基本】ダイアログボックス「alert, prompt, confirm」の使い方 | ワードプレステーマTCD
Javascriptで選択範囲の文字列・DOMを取得、操作する方法 │ Web備忘録
javascript : ブラウザのコンテキストメニューに追加しますか?
JavaScript | コメントを記述する
JavaScript | 現在のページのURLを取得する(location.href)
【JavaScript入門】文字列の検索まとめ(indexOf/search/match/test) | 侍エンジニアブログ
【JavaScript入門】文字列の分割と切り出し(substr/substring/slice) | 侍エンジニアブログ
【JavaScript入門】returnの使い方と戻り値・falseのまとめ! | 侍エンジニアブログ
javascript — JavaScriptでのワイルドカード文字列比較
Javascript:任意の文字列を含むかどうかの確認方法 | WWWクリエイターズ