はてなキーワード: Titleとは
「30年に及ぶ不況。そこにコロナで物価高という日本の状況ですね。これによって高齢者の5人に1人が貧困で、一人暮らし女性の4人に1人が貧困、そしてひとり親世帯の2つに1つが貧困」
日本は不況、コロナ、物価高の3重苦で、貧困が広がっているという説明だ。党首討論でも同じセリフを言っていたように思う。
日本に貧困が広がってるってマ?そんな感じはしないけど、そんなに日本やばいの?
食べるものもなくて、道端で暮らしている…貧困というとそんな生活をイメージするが、れいわ新選組の言っている貧困は相対的貧困のことだ。
相対的貧困とは「等価可処分所得の中央値の半分」に満たない人のこと。
ややこしい言葉が並んでいるが、所得の多い人、少ない人をずらーっと並べて、その真ん中が中央値だ。それの半分に満たない人のことを相対的貧困と呼ぶ。
「2021(令和3)年の貧困線(等価可処分所得の中央値の半分)は127万円」
https://www.mhlw.go.jp/toukei/saikin/hw/k-tyosa/k-tyosa22/dl/14.pdf
まあ、ざっくりいうと手取りが約130万円以下で生活をしている人のことだ。
ん?手取りが130万円以下?
よく学生のアルバイトが103万円の壁を超えないように就業調整をするというが、そんな学生アルバイトと同じくらいしか稼げてない人が実は滅茶苦茶多いの??
最低賃金で全国最安は秋田県の951円だ。手取り130万円稼ぐのに必要な額面はざっくり160万円。
では貧困にならないようにするにはどのくらい働けばいいのか計算してみよう。
たったの211日アルバイトをするだけで貧困から脱出できるということになる。年間休日154日だぜ??
ちなみに2024年9月のアルバイトの有効求人倍率は1.19倍で、仕事がないということでもない。
普通に働けば貧困にならないことがわかった。貧困なのは「働かない」か「働けない」のどちらかということになるだろう。
単身世帯の65歳以上の女性44%、男性30%が貧困だ。65歳未満と比べて圧倒的に貧困率が高い。
それはなぜかと言うと、年金だけで生活しているからだろう。年金の受給額は人によって違うが基礎年金だけだと78万円くらい、パートとかだと厚生年金も若干あって100万円くらい。
高齢者の持ち家率は80%以上だそうから、家賃もかからず、生活費と言えば食費、水道光熱費、医療費だけで、100万円以下でも暮らしてい行けるのだろう。
つまり高齢化社会になればなるほど、日本の貧困化は進んでいく。
貧困率を下げる方法は年金受給額を増やすのが最も手っ取り早い。あるいは所得の中央値を引き下げる(日本全体を不景気にしていく)のも貧困対策に有効だ。
書いていて馬鹿らしくなる。そんなことをしていったい誰が幸せになるのか。
(もし日本の貧困率を押し上げているのが高齢者なら)貧困率対策など不要だ。
確かに2021年の20-64歳までの単身世帯の貧困率は23.9%だ。
ただれいわ新選組の言うように30年の不況でコロナで物価高だから貧困率が悪化しているわけではない。
なぜなら2018年の貧困率は24.5%で、むしろ最近になって貧困率は下がっている。
とはいえ、一人暮らし女性がなぜ24%も貧困なのかはよくわからない。
ひとり親世帯の約46%が貧困だ。これは働けない子供を抱えているからだ。
子どもがいると、就労時間に制約が生じるから十分な所得を得られない。それだけでなく、世帯数が増えるから可処分所得も下がり貧困に近づくことになる。
少しややこしいが、「貧困線とは、等価可処分所得(世帯の可処分所得(収入から税金・社会 保険料等を除いたいわゆる手取り収入)を世帯人員の平方根で割って調整 した所得)の中央値の半分の額」となっている。
手取り180万円、母親と子供1人の2人暮らしの場合、180万円÷√2=約127万円が可処分所得になる。
まあ要するに子供の数が増えるほど、可処分所得は下がっていき、貧困に近づいていく。
これに関しては確かに貧困と言えるかもしれない。だが必要なのは消費税廃止や季節ごとの給付金か?
それよりも本来子どもを養うはずの父親が養育費を払わないことが問題の本質なのではないか。であれば養育費を国が立て替えて、国が父親に請求をする、などと言った根本原因の解決を図るべきなのではないか。
相対的貧困は貧困における一つの指標ではあるが、実態が見えない。たとえば
・貯金300万くらいあるので、1年だけ無職を楽しみます→貧困
・月8万しか年金もらえないけど、持ち家で食費・水道光熱費しかかからないので、月4万円で楽しく暮らしています→貧困
逆に月7000ドル(約100万円)以上稼いでいるけど、インフレが酷くて、家賃と食費で6000ドル以上かかりますみたいな海外で起きてそうなケースは相対的貧困ではないが、生活はかなり苦しいはずだ。
相対的貧困だけでは、その人の生活実態は見えてこない。ゆえにこの指標をもとに政策を決めるのは難しいと感じた。
れいわ新選組の経済対策といえば消費税廃止だ。消費税をすることで消費を促し経済を活性化させていくという論理なのだが、そんなことをしても日本の貧困率を引き下げることは難しいだろう。
なぜなら高い貧困率の原因はおそらく不況ではないからだ。高齢化社会こそ真の原因ではないか。
ただ消費税廃止は生活コストを引き下げるので、高齢者にとっては生活しやすい社会になるだろう。
というかれいわ新選組の消費税廃止、季節ごとの給付、年金底上げって全部高齢者向けの政策なんじゃ…。若者に人気の政党かと思っていたので、ここが意外でした。
※私自身はれいわ新選組の支持者でもアンチでもないです。山本太郎さんは意見交換会で直接有権者から質問を受けていて、その場で答えていて、普通にすごいと思ってます。
https://www.mhlw.go.jp/toukei/saikin/hw/k-tyosa/k-tyosa22/dl/14.pdf
2024年6月に成立した日本版DBS。学校や保育園などの職員や職員希望者の性犯罪の前科を調べることを義務付ける制度です。
性犯罪者が子どもたちに近づけないようになる。なんかすごくいいことのように聞こえる。
でもふと疑問に思った。
「日本版DBSって本当に児童への性犯罪を減らせるの?というか他人が前科を調べられるような制度を作っていいの?」
一応言っておくと、私自身は性犯罪の前科前歴はない(というか前科自体ない)。だから日本版DBSができたとて、メリットはあれど困ることは一切ない。
でもどうしてもモヤモヤするので、そのモヤモヤの原因も含めて色々と思うことを書いていきたい。
※実際書いたらめっちゃ長くなったので、モヤモヤの原因は別の日記にまとめました。
そもそも再犯率が低ければ、対象者も少なくなります。当然、日本版DBSの効果も期待できなくなります。
ところで性犯罪全体については、すでに↓である程度議論しつくされています。
ちなみにデータはほとんど平成27年度 犯罪白書がソースです。なぜ平成27年度かというと、この年に性犯罪の特集があって、色々なデータが公開されているから。
https://hakusyo1.moj.go.jp/jp/62/nfm/mokuji.html
性犯罪、特に子供に対する性犯罪は何度も何度も繰り返し行う、いわば依存性のある犯罪であるというイメージはないだろうか。
もし依存性のある犯罪であるならば、再犯率は当然高くなる。そこで再犯率を確認したい。
小児強姦型…約5.9%
https://hakusyo1.moj.go.jp/jp/62/nfm/n62_2_6_4_4_2.html
最も再犯率が高いのは痴漢型で36.7%にもなる。他の性犯罪類型と比較しても、子供への性犯罪が再犯率が高いとは言えない。
残念ながら性犯罪以外の犯罪の再犯率のデータは見つけられなかった。
だが子ども家庭庁の「「性犯罪の再犯に関する資料」で下記の記載があったから、おそらく他の犯罪と比較しても、子供への性犯罪の再犯率が高いとは言えないだろう。
「一般的に、再犯を繰り返すことが多いと認められる他の犯罪として、薬物犯や窃盗犯が主に挙げられる。これらの犯罪より再犯率が高いわけではないとしても…」
つまり再犯率は「犯罪者が未来において、犯罪を行うか?」を見る指標です。繰り返し同じ犯罪を行うと、再犯率は上がります。
それに対し再犯者率は「犯罪者が過去において、犯罪を行ったか?」を見る指標です。再犯率が高い場合や初犯が減ると、再犯者率は上がります。
日本版DBSは再犯を防ぐ目的なので、本来は再犯率を見るべきだと思います。
一方でもし性犯罪の再犯者率が高い(=初犯が少ない)とするならば、再犯防止に力を入れるのは合理的であると言えるでしょう。数の多いところに対して、対策を打つというのが最も効果的だからです。
では再犯者率はどうか。
小児わいせつ型…14.6%
https://hakusyo1.moj.go.jp/jp/62/nfm/n62_2_6_4_3_3.html#n2_6_4_3_3_2_03
85%以上は性犯罪の前科がなかったようです。再犯者率は高いとは言えません。
ちなみに刑法犯全体の再犯者率は47.9%なので、他の犯罪と比較しても高くないです。
https://hakusyo1.moj.go.jp/jp/70/nfm/n70_2_5_1_0_1.html
いくら再犯率が少ないといっても、再犯者のうち教職員の占める割合が高いなら、日本版DBSは効果的かもしれない。
ところが性犯罪者の教職員の占める割合なんてデータは見当たらなかった。せめて子供がどういう経路で犯罪の被害を受けたのか(SNS、親、見ず知らずの人、教員)というデータがあればよかったのだが、見つからない。それに、そろそろ探す気力もそろそろ尽きてきた。
一応、公立の小学校~高校までの教職員の懲戒処分等の状況はあった。
「児童生徒等に対する性犯罪・性暴力により懲戒処分を受けた者は96人」
https://www.mext.go.jp/content/20221222-mxt-syoto01-000019570_00.pdf
……いや結構多いやんけ。
まあ全教員数のうち0.02~0.01%くらいなので、割合としては少ないのですが。教員だけが再犯率が高いとは考えにくいから、小児わいせつ型で約10%の再犯率になるだろう。96人の内、10%なので約10人。
日本版DBSで防げるのは、この10人の内、再び教員に就こうとした者のみ。ということは、防ぐことができる再犯者の数は数人程度ということになる。
ちなみにこの懲戒免職は「強制性交等、強制わいせつ、児童ポルノ法第5条から第8条までに当たる行為、公然わいせつ、わいせつ物頒布等、買春、痴漢、のぞき、陰部等の露出、青少年保護条例等違反、不適切な裸体・下着姿等の撮影(隠し撮り等を含む。)、わいせつ目的をもって体に触ること等」をした人が対象になっています。肌感覚でしかないですが、盗撮と痴漢が多そうな気がします。
再犯の9割は20年以内に起こっています。だから日本版DBSで確認できる前科の期間も20年なんですよね。
再犯率を調べる時に、5年ではなく、調査期間を20年まで伸ばすとどう変化するのか分かれば、もっと性犯罪の再犯実態が見えてきそうな気がしました。
残念ながら、20年まで伸ばしたデータはついぞ見当たらなかったのですが、5年未満でも、5年以上10年未満でもほとんどその割合は変わらないから、おそらく再犯率は20年まで伸ばしても変わらなさそう。
以上、調べたデータたちでした。
理由①そもそも再犯率が低いから、性犯罪の前科者を弾いても、犯罪は減りにくい
理由②小児への性犯罪は再犯者の占める割合が低い。つまり初犯の方が圧倒的に多いから、たとえ日本版DBSで性犯罪者の前科のある者を弾いたとしても、効果は薄い
↑に加えて、日本版DBSの対象者は「教職員」に限定される。これでは対象者が少なすぎて、効果を出しようがない。
日本版DBSは水が下に落ちるの止めるために、ザルを使っているようなものだ。目が粗すぎて、ごく一部しかふるいに引っかからない。
ちなみに「だから再犯防止策を講じなくていい」とか「日本版DBSはいらない」とか言うつもりはないです。子供への性加害は深刻な被害をもたらすので、根絶を目指した方がいいと思っています。
ただ日本版DBSが再犯防止策である以上、再犯率の低い犯罪に対しては効果的ではなく、相変わらず教育現場では性犯罪が起き続けることになるだろうなあと。
冒頭に書いたように性犯罪者が子どもと関われないようにする、という意見は一見すごく正しく聞こえます。だから日本版DBSのような法律を作ることに誰も反対しない。むしろ、この法律を作った政治家の評判は上がり、親や学校経営者は喜ぶ。その正しそうという感覚こそが罠で、効果がないのにやっている感、対策している感が出てしまう。
でも相変わらず性犯罪は起き続けるから、子どもたちだけは苦しむことになる。
世知辛いなぁ…。
この日記では「小児」に対する「強制わいせつと強姦」のみ検討している。
13歳~17歳以下については、その年代を抜き出したデータはないので、詳しく調べることは出来ない。調べるとするなら、大人の女性も含めたデータで再犯率・再犯者率を調べる必要があるだろう。
圧倒的に再犯率が高いのは痴漢型であるが、通常、教育現場において痴漢型の犯罪が発生するとは考えにくい。なので日本版DBSについて考える時には痴漢型は考慮する必要はないだろう。
その次に再犯率が高いのは盗撮型で、これは教育現場でも発生し得る犯罪だろう
※ここでいう盗撮型は条例違反のみが対象。学校のトイレや更衣室で盗撮をして裸体が映っていた場合、児童ポルノ法違反になるのでここではカウントされない。
確かにこの部分については日本版DBSが一定程度効果を発揮するかもしれない。
だが盗撮を防ぐために、性犯罪の前科を調べるという手法は合理的であるとは思えない。教室内に防犯カメラを設置するというやり方の方がよほど効果は高いだろう。
教室内で着替えをする場合は、そこを狙われやすくなるだろうから、更衣室での着替えを徹底する、更衣室とトイレの入口に防犯カメラを設置するというやり方が学校・学習塾などにおける盗撮型の犯罪防止には効果的ではないか。
2024年6月に成立した日本版DBS。これは学校や保育園などの職員や職員希望者の性犯罪の前科を調べることを義務付ける制度です。
要は性犯罪から子供を守ろうということですね。性犯罪の再犯防止に関しては、TwitterやYouTubeのコメント欄ではかなり過激な意見が出てくる。
日本版DBSによって、性犯罪の前科のある者が子どもに近づけなくなるわけで、凄く正しい事のように聞こえる。
しかし一方で「そんなことしていいのか?」とどうもモヤモヤしてならなかった。
そこで自分の内にあるモヤモヤの原因について整理して書いてみようと思う。
世の中には数多の犯罪があるが、特に過激な意見が出やすいのが性犯罪についての再犯防止策だ。性犯罪が被害者に深い傷を負わせる卑劣な犯罪であるから、ヘイトが集まりやすいのだろう。あるいは再犯率が高いというイメージがあるからかもしれない。
ではどうしてそのような過激な再犯防止策をとってはいけないのか。
↑で挙げた再発防止策は言うまでもなく日本国憲法で保障された基本的人権を侵害するものです。
例えば日本版DBSを例に考えると、性犯罪の前科のある者は教職等に就けなくなるので、職業選択の自由を制限しています。
また前科という人間にとって最も知られたくない情報を他人に強制的に公開されるので、プライバシー権の侵害です。
日本国憲法第13条 すべて国民は、個人として尊重される。 生命、自由及び幸福追求に対する国民の権利については、公共の福祉に反しない限り、立法その他の国政の上で、最大の尊重を必要とする。
「被害者の人生を壊しておいて、何が基本的人権じゃ!」とか「犯罪を犯さない一般市民を守るためなら、別に性犯罪者がどうなろうとどっちでもよくない?」という声が聞こえてきそうです。しかし、そういう人が実際に権力を持った時に、好き勝手な法律を作らないように政府を縛るのが憲法です。
これらの基本的人権はたとえ子どもに性犯罪を行った犯罪者であっても保障されるものです。
日本国民であれば、須らくこの日本国憲法の恩恵を受けているはずです。
最近のTwitterの炎上なんかを見ていると、本当に悲しくなる時がある。その事件とは全く無関係な人が、インフルエンサーに対して批判し、暴言を浴びせ、人格否定までする。中にはそれで自殺を選んでしまった人もいる。それでもやめない。
私個人の思いとしては、そんな奴らは全員、刑務所にぶち込んでしまえと思っている。しかし、そうならないのは憲法によって表現の自由が保障されているからだ。
憲法の恩恵を受けている人が、自分の気に食わない人たちに対しては基本的人権を取り上げてもいいという発言をする。これは一貫性がないのではないでしょうか。
もし納得できないなら頑張って憲法改正をすればいいのです(もしくは日本脱出だよね)。
日本版DBSを含む、性犯罪の再犯防止策は刑罰ではありません。刑罰は↓の6種類です。
刑罰というのは過去に犯した犯罪に対する報復で、「お前は悪いことをしたから、こっちだって嫌なことをしてやる」というものです。悪いこと(=犯罪)をしたから、嫌なこと(=基本的人権の制限)が許されるわけです。
過去の犯罪行為に対する報復ではなく、未来において犯罪をやりそう、やるかもしれないという理由で基本的人権に制限をかけるのです。まだ犯罪を犯していないのに。
疑惑だけで基本的人権に制限をかけられるなんて、たまったもんじゃありません。もし犯罪を犯すかもしれないという理由だけで、基本的人権の制限が許されるなら、そんな権利はあってないようなものです。誰であっても未来において犯罪を犯さない証明なんてできないのだから。権力者に「こいつ犯罪しそう」と思われたら、人権が制限される国なんて私は嫌です。
こういったところに日本版DBSに対するモヤモヤがあったのだなと思いました。
とはいえ憲法には「公共の福祉に反しない限り」という条件が附されています。性犯罪の再犯防止というのは公共の福祉ためになりそうです。
なので再犯防止のために基本的人権に制限をかけるのも許されるわけですが、しかし確定していない未来のことを理由に人権侵害をするわけですから、最小限度の範囲で、かつ緩やかな手法で行うべきなのではないかと思います。
しかし再犯率の低い性犯罪にGPSや顔写真・住所の公開、化学的去勢はやりすぎだなと思いました。
なぜ再犯率が低いと言えるかは↓で詳しく調べているので、そちらを見てみてください。
電動マッサージ器を性具として使うのはやめてください!
純粋な健康器具として使ってた人間が無駄に恥ずかしい思いをするでしょ!
疼痛の改善を期待して電マを買ったのだが、あまり効果がないので処分したい。
だがその方法がむずかしい。
不燃ごみとして捨てるのはだめだ。
ごみ集積所に持っていくところを近所の人に見られたら誤解される。恥ずかしい。
リサイクルショップで売るのも不可だ。
「電マ売りにきたwww」ってあとで店員に笑われるにちがいない。
有料でアダルトグッズを回収するサービスがあるらしい。これはいい。恥ずかしくない。
なんでお金を払ってわざわざ恥ずかしさを回避しなければならないのか。
ほんと迷惑。
ロックに条件持たせる
やりたいことはできてるように見えるが、うーんしんどい
# Entity Relation Diagram
# ```mermaid
# ---
# title: Rental Office example
# ---
# erDiagram
# OFFICE ||--|{ ROOM : x
# OFFICE {
# number office_id
# }
# ROOM {
# number office_id
# number room_id
# }
# ROOM ||--|{ SCHEDULE : x
# SCHEDULE {
# number room_id
# datetime start_at
# datetime end_at
# }
# OFFICE ||--|{ BUSINESS_HOUR : x
# BUSINESS_HOUR {
# number office_id
# enum week_of_day
# datetime start_at
# datetime end_at
# }
# ```
# Directed Acyclic Graph
#
# ```mermaid
# graph LR
# A[OFFICE] --> B[ROOM]
# B --> C[SCHEDULE]
# A[OFFICE] --> D[BUSINESS_HOUR]
# D --> C
# A --> C
# ```
# 基底クラス: EntityLock
class EntityLock
attr_accessor :entity_name, :entity_locked, :attribute_locks
def initialize(entity_name)
@entity_name = entity_name
@entity_locked = false # エンティティ全体のロック状態を保持
@attribute_locks = {} # IDに対するロックを管理するハッシュ
end
def lock_entity
@entity_locked = true
puts "Entity '#{@entity_name}' is now locked."
end
def unlock_entity
@entity_locked = false
puts "Entity '#{@entity_name}' is now unlocked."
end
def lock(attributes)
entity_id = attributes["#{@entity_name.downcase}_id"]
if entity_id && !@attribute_locks[entity_id]
@attribute_locks[entity_id] = true
puts "#{@entity_name} with ID '#{entity_id}' is now locked."
end
end
def unlock(attributes)
entity_id = attributes["#{@entity_name.downcase}_id"]
if entity_id && @attribute_locks[entity_id]
@attribute_locks.delete(entity_id)
puts "#{@entity_name} with ID '#{entity_id}' is now unlocked."
end
end
def locked?(attributes)
# まずエンティティ全体がロックされているかチェック
return true if @entity_locked
# 次に特定のIDがロックされているかチェック
entity_id = attributes["#{@entity_name.downcase}_id"]
if entity_id && @attribute_locks[entity_id]
return true
end
# ロックされていなければfalseを返す
false
end
end
# 子クラス: OfficeLock, RoomLock, ScheduleLock
class OfficeLock < EntityLock
def initialize
super("Office")
end
end
class RoomLock < EntityLock
def initialize
super("Room")
end
end
class ScheduleLock < EntityLock
def initialize
super("Schedule")
end
end
# 子クラス: BusinessHourLock
class BusinessHourLock < EntityLock
def initialize
super("BusinessHour")
@attribute_locks = [] # BusinessHour用のロックを配列で管理
end
def lock(attributes)
start_at = attributes["start_at"]
end_at = attributes["end_at"]
if start_at && end_at
@attribute_locks << [start_at, end_at]
puts "BusinessHour from '#{start_at}' to '#{end_at}' is now locked."
end
end
def unlock(attributes)
start_at = attributes["start_at"]
end_at = attributes["end_at"]
if @attribute_locks.include?([start_at, end_at])
@attribute_locks.delete([start_at, end_at])
puts "BusinessHour from '#{start_at}' to '#{end_at}' is now unlocked."
end
end
def locked?(attributes)
# まずエンティティ全体がロックされているかチェック
return true if @entity_locked
# 次に特定の時間範囲がロックされているかチェック
start_at = attributes["start_at"]
end_at = attributes["end_at"]
if start_at && end_at
@attribute_locks.each do |(locked_start, locked_end)|
if locked_start <= start_at && end_at <= locked_end
return true
end
end
end
# ロックされていなければfalseを返す
false
end
end
# TreeNodeクラス
class TreeNode
attr_accessor :name, :children, :parents, :lock
def initialize(name, lock)
@name = name
@children = []
@parents = [] # 複数の親ノードを保持する配列
@lock = lock # TreeNodeにロックを持たせる
end
def add_child(child_node)
child_node.parents << self # 子ノードにこのノードを親として追加
@children << child_node
end
def display(level = 0)
indent = " " * (level * 4)
puts "#{indent}#{@name}"
@children.each { |child| child.display(level + 1) }
end
def has_dependency
return false if @parents.empty?
@parents.each do |parent|
puts "#{@name} is dependent on #{parent.name}"
return true
end
@parents.any?(&:has_dependency)
end
def locked?(attributes = {})
# 自身がロックされているか確認
return true if @lock.locked?(attributes)
# 親ノードがロックされているか再帰的に確認
@parents.any? { |parent| parent.locked?(attributes) }
end
end
# 木構造の組み立て
# ロックオブジェクトの作成
office_lock = OfficeLock.new
room_lock = RoomLock.new
schedule_lock = ScheduleLock.new
business_hour_lock = BusinessHourLock.new
# ノードの作成
office_node = TreeNode.new("Office", office_lock)
room_node = TreeNode.new("Room", room_lock)
schedule_node = TreeNode.new("Schedule", schedule_lock)
business_hour_node = TreeNode.new("BusinessHour", business_hour_lock)
# ノード間の依存関係の設定
office_node.add_child(room_node) # Office -> Room
room_node.add_child(schedule_node) # Room -> Schedule
office_node.add_child(business_hour_node) # Office -> BusinessHour
business_hour_node.add_child(schedule_node) # BusinessHour -> Schedule
# 木構造の表示
office_node.display
# ロックの確認
puts "Case 1. Office全体がロックされた場合"
puts "Is office_node locked? #{office_node.locked?({})}" # false
puts "Is schedule_node locked? #{schedule_node.locked?({})}" # false
office_lock.lock_entity
puts "Is office_node locked? #{office_node.locked?({})}" # true
puts "Is schedule_node locked? #{schedule_node.locked?({})}" # true
office_lock.unlock_entity
puts "Case 2. Room id:1 がロックされた場合"
puts "Is schedule_node locked? #{schedule_node.locked?({ "room_id" => 1 })}" # false
puts "Is schedule_node locked? #{schedule_node.locked?({ "room_id" => 2 })}" # false
room_lock.lock({ "room_id" => 1 })
puts "Is schedule_node locked? #{schedule_node.locked?({ "room_id" => 1 })}" # true
puts "Is schedule_node locked? #{schedule_node.locked?({ "room_id" => 2 })}" # false
room_lock.unlock({ "room_id" => 1 })
puts "Case 3. BusinessHour start_at:0 end_at:5 がロックされた場合"
puts "Is schedule_node locked? #{schedule_node.locked?({ "room_id" => 1, "start_at" => 0, "end_at" => 5 })}" # false
puts "Is schedule_node locked? #{schedule_node.locked?({ "room_id" => 1, "start_at" => 5, "end_at" => 10 })}" # false
business_hour_lock.lock({ "start_at" => 0, "end_at" => 5 })
puts "Is schedule_node locked? #{schedule_node.locked?({ "room_id" => 1, "start_at" => 0, "end_at" => 5 })}" # true
puts "Is schedule_node locked? #{schedule_node.locked?({ "room_id" => 1, "start_at" => 5, "end_at" => 10 })}" # false
business_hour_lock.unlock({ "start_at" => 0, "end_at" => 5 })
import numpy as np import matplotlib.pyplot as plt # パラメータ設定 num_agents = 100 # エージェント数 time_steps = 100 # シミュレーションの時間ステップ alpha = 0.1 # 情報共有の効果 beta = 0.05 # 情報拡散の効果 # エージェントの初期状態をランダムに設定 states = np.random.rand(num_agents) # 平均場の初期化 mean_field = np.mean(states) # 状態の履歴を保存 state_history = np.zeros((time_steps, num_agents)) mean_field_history = np.zeros(time_steps) # シミュレーション開始 for t in range(time_steps): # 各エージェントの行動を決定(情報を共有するかどうか) actions = np.random.rand(num_agents) < alpha # 状態の更新 states += beta * (mean_field - states) * actions # 平均場の更新 mean_field = np.mean(states) # 履歴の保存 state_history[t] = states mean_field_history[t] = mean_field # 結果のプロット plt.figure(figsize=(12, 6)) plt.plot(mean_field_history, label='Mean Field') plt.xlabel('Time Step') plt.ylabel('Mean Field Value') plt.title('Mean Field Dynamics in Social Media Model') plt.legend() plt.show()
Ωを仮に100次元の実ベクトル空間R^100とする。各次元は特定の神経活動パターンに対応する。
Ω = {ω ∈ R^100 | ||ω||₂ ≤ 1}
ここで||・||₂はユークリッドノルムである。τは標準的なユークリッド位相とする。
O : Ω → Ω
O(ω) = Aω / ||Aω||₂
ここでAは100×100の実行列で、||Aω||₂ ≠ 0とする。
S[ω] = -∫Ω p(x) log p(x) dx
S[O(ω)] ≤ S[ω] + log(det(AA^T))
dω/dt = F(ω) + G(ω, O)
F(ω) = -αω + β tanh(Wω)
G(ω, O) = γ(O(ω) - ω)
ここでα, β, γは正の定数、Wは100×100の重み行列、tanhは要素ごとの双曲線正接関数である。
g_ij(ω) = E[(∂log p(x|ω)/∂ω_i)(∂log p(x|ω)/∂ω_j)]
ここでE[・]は期待値、p(x|ω)は状態ωでの条件付き確率密度関数である。
ψ(x) = √(p(x)) exp(iθ(x))
Φ[ω] = min_π (I(X;Y) - I(X_π;Y_π))
ここでI(X;Y)は相互情報量、πは可能な分割、X_πとY_πは分割後の変数である。
勾配降下法を用いて定式化する:
ω_new = ω_old - η ∇L(ω_old, O)
L(ω, O) = ||O(ω) - ω_target||₂²
G = (V, E)
V = {v_1, ..., v_100}
E ⊆ V × V
各頂点v_iはω_iに対応し、辺(v_i, v_j)はω_iからω_jへの因果関係を表す。
このモデルはPythonとNumPyを用いて以下のように実装できる:
import numpy as np from scipy.stats import entropy from scipy.integrate import odeint import matplotlib.pyplot as plt class ConsciousnessModel: def __init__(self, dim=100): self.dim = dim self.omega = np.random.rand(dim) self.omega /= np.linalg.norm(self.omega) self.A = np.random.rand(dim, dim) self.W = np.random.rand(dim, dim) self.alpha = 0.1 self.beta = 1.0 self.gamma = 0.5 self.eta = 0.01 def observe(self, omega): result = self.A @ omega return result / np.linalg.norm(result) def entropy(self, omega): p = np.abs(omega) / np.sum(np.abs(omega)) return entropy(p) def dynamics(self, omega, t): F = -self.alpha * omega + self.beta * np.tanh(self.W @ omega) G = self.gamma * (self.observe(omega) - omega) return F + G def update(self, target): def loss(o): return np.linalg.norm(self.observe(o) - target)**2 grad = np.zeros_like(self.omega) epsilon = 1e-8 for i in range(self.dim): e = np.zeros(self.dim) e[i] = epsilon grad[i] = (loss(self.omega + e) - loss(self.omega - e)) / (2 * epsilon) self.omega -= self.eta * grad self.omega /= np.linalg.norm(self.omega) def integrated_information(self, omega): def mutual_info(x, y): p_x = np.abs(x) / np.sum(np.abs(x)) p_y = np.abs(y) / np.sum(np.abs(y)) p_xy = np.abs(np.concatenate([x, y])) / np.sum(np.abs(np.concatenate([x, y]))) return entropy(p_x) + entropy(p_y) - entropy(p_xy) total_info = mutual_info(omega[:self.dim//2], omega[self.dim//2:]) min_info = float('inf') for i in range(1, self.dim): partition_info = mutual_info(omega[:i], omega[i:]) min_info = min(min_info, partition_info) return total_info - min_info def causal_structure(self): threshold = 0.1 return (np.abs(self.W) > threshold).astype(int) def run_simulation(self, steps=1000, dt=0.01): t = np.linspace(0, steps*dt, steps) solution = odeint(self.dynamics, self.omega, t) self.omega = solution[-1] self.omega /= np.linalg.norm(self.omega) return solution def quantum_state(self): phase = np.random.rand(self.dim) * 2 * np.pi return np.sqrt(np.abs(self.omega)) * np.exp(1j * phase) # モデルの使用例 model = ConsciousnessModel(dim=100) # シミュレーション実行 trajectory = model.run_simulation(steps=10000, dt=0.01) # 最終状態の表示 print("Final state:", model.omega) # エントロピーの計算 print("Entropy:", model.entropy(model.omega)) # 統合情報量の計算 phi = model.integrated_information(model.omega) print("Integrated Information:", phi) # 因果構造の取得 causal_matrix = model.causal_structure() print("Causal Structure:") print(causal_matrix) # 観測の実行 observed_state = model.observe(model.omega) print("Observed state:", observed_state) # 学習の実行 target_state = np.random.rand(model.dim) target_state /= np.linalg.norm(target_state) model.update(target_state) print("Updated state:", model.omega) # 量子状態の生成 quantum_state = model.quantum_state() print("Quantum state:", quantum_state) # 時間発展の可視化 plt.figure(figsize=(12, 6)) plt.plot(trajectory[:, :5]) # 最初の5次元のみプロット plt.title("Time Evolution of Consciousness State") plt.xlabel("Time Step") plt.ylabel("State Value") plt.legend([f"Dim {i+1}" for i in range(5)]) plt.show()
title | url | bookmarks | category | date | archive |
---|---|---|---|---|---|
Not Found | anond.hatelabo.jp/20220407192206 | 885 users | 暮らし | 2022/04/07 | archive.is/OmNLF |
Not Found | note.com/hateko/n/n6fcaee38d2e2 | 722 users | 世の中 | 2022/06/20 | archive.is/USP8I |
Not Found | anond.hatelabo.jp/20240601013546 | 546 users | 暮らし | 2024/06/01 | archive.is/mj5iE |
Not Found | togetter.com/li/1603887 | 544 users | 政治と経済 | 2020/10/05 | archive.is/ECPsL |
Not Found | anond.hatelabo.jp/20221008200247 | 515 users | アニメとゲーム | 2022/10/09 | archive.is/g8FeO |
Not Found | twitter.com/kutabirehateko/status/1537802499146776576 | 512 users | 世の中 | 2022/06/18 | archive.is/kk24I |
Not Found | twitter.com/ebisawa_miyuki/status/1518229352814891009 | 458 users | 世の中 | 2022/04/24 | archive.is/f4yJx |
Not Found | mainichi.jp/articles/20200710/k00/00m/040/078000c | 436 users | 世の中 | 2020/07/10 | archive.is/X5yi3 |
Not Found | note.com/kageazusa/n/n382047d84c4d | 381 users | 政治と経済 | 2020/12/25 | archive.is/arp1m |
これを改善してってお願いした。何書いてあるかわからないけど動いたよ。
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&amp;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 &amp;&amp; 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 }); })();
なので、はてなブックマークでの議論を止めて、はてなブログなど別のサービス(増田含む)でやりましょう。
https://b.hatena.ne.jp/guide/guideline#avoid-discussions-in-comment-section
コメント欄での議論は推奨していません
はてなブックマークでは、コメントを利用したユーザー間の議論を推奨していません。
コメント欄は文字数が限定されており、モデレータ(議論の仲裁・調停を行う存在)がいません。そのため、建設的に議論を進めること自体が構造上難しいものであると考えています。「返信機能」「スレッド」など、ユーザー間の議論を後押ししうる機能は今後も提供の予定はありません。
コメントではご自身の考えや感想、補足情報などを簡潔に述べるものにとどめていただくことをお勧めします。短文での投稿に適さない用途においては、はてなブログなど別のサービスの利用をご検討ください。
なお、ご自身の価値観とそぐわない意見やご自身にとって望ましくない表現は、ユーザー単位の非表示機能などを使って目に入らないようにすることを推奨しています。
はてなコミュニティガイドラインでも「異なる価値観への適切な距離感を持つこと」を推奨しています。排除するのではなく、適切な距離を取るという選択肢をぜひご検討ください。
ErosEnro - [GclFIuRIoGhmOe] (花火)
10yue - [ZpOZ9oa6QqJweD] (アンコ)
iwara source downloaderの作者が公開停止して使えなくなって久しいので代替を紹介
https://github.com/dawn-lc/IwaraDownloadTool/blob/master/.github/README/README_ja.md
Chrome系/Firefox両対応。Tampermonkey入れたあとスクリプトページからインストール
以後iwaraが改変されてUIが出る。ファイル名はiwara source downloaderと同じ書式にするなら
%#ALIAS#% - %#TITLE#%
とする。自分は末尾に動画IDを足すため[%#ID#%]もつけてる
ページにチェックボックスが出るようになるため複数ダウンロードにも対応
MEGAリンクのある動画はDLせずそっちに誘導する機能もあるがiwara画質でいいならSettingでオフればおk
宛先フォルダまでカスタイマイズしたい場合はAria2というコマンドラインの汎用DLマネージャを拾ってきてパスの通った場所に置き
Node.jsをインストールしてから、powershellで
node node-server.js & aria2c --enable-rpc --rpc-listen-all
を実行してからスクリプトのSettingでAria2方式を選択してSaveで閉じればできる
ただし標準ではブラウザの保存パスではなくpowershellのカレントディレクトリ基準になるのでスクリプトのSettingからフルパス指定しとくといい
もしダウンロードキューをGUIで確認したいなら、 https://github.com/ziahamza/webui-aria2 をまるまるクローンしてどっかのフォルダに置き
powershellでそのフォルダへcdしてから上記コマンドを実行して、ブラウザで http://localhost:8888 を開いておけば見られる
常用するならWindowsのスケジューラーにログオン時このコマンドを書いたbatファイルを実行するようなタスクを追加しとくといい
WebUIからダウンロードアドレスを追加する場合、いにしえのflashgetがやってたような並列ダウンロードなんかが使える
なんか私でも適当に書けそうだなこれ
https://b.hatena.ne.jp/entry/s/anond.hatelabo.jp/20240512145508
日本人女性の海外売春に関しては定期的にニュースになっていますよ
元増田が何者かは気になるけどね(仲介業者が書いているなら胸糞悪い)
リンクが多いと投稿できないようだ。以下 url から h を抜いた
:title=日本人女性を米国での売春にあっせん容疑 求人サイト運営社長ら逮捕](朝日新聞)
:title=“海外出稼ぎサイト”で日本人女性を募集した疑い 男ら逮捕] (FNN)
:title=ロスへ出稼ぎに向かった女性が逮捕に怯えながら「稼いだ金額」] (週刊女性)
●●●の娘「入社してしばらくは暇でした」
↓
早稲田卒
「朝の7時前には出勤して
夜の12時まで帰してくれない
本当の男女平等を味わう」
最初の指示
「お前
午後10時前に
家に帰ろうなんて思うなよ!」
tinyurl.com/shinsotsu
tinyurl.com/zangyo
tinyurl.com/kyutei
「少しでもミスをしたら
現場ではそんなの何の役にも立たないぞ”と
bit.ly/38lPel6
「慶応卒が出世している」200社:東洋経済 2014/11/05
役員の人数最多は東●
tinyurl.com/shusse
東● 粉飾の原点 2016.7.14
tinyurl.com/mrr3rx5d
カ●ボ●粉飾2000億円
tinyurl.com/yc8xh5dd
一八六三年六月
娘たちは平均して
しかし社交季節にはしばしば
bit.ly/3c7VDC5
tinyurl.com/mue5bhea
365日オンコール
tinyurl.com/365days-oncall
100連勤・
勤務医の
約8割が
当直明け「連続勤務」
1か月の休みが
0日の医師が、
常勤医で8.2%
bit.ly/3M1lxE9
月の休みが
3回以下の医師が
32.9%
bit.ly/3PefM88
23時になってもまったく、明かりが消えない
tinyurl.com/kanryou-yakunin
毎晩帰りは深夜2時
w.wiki/3wTh
庁舎を後にしたのは午前2時半
bit.ly/3L8WNZK
「運が悪いと、朝5時や朝6時。場合によっては朝7時」
bit.ly/3M1abAf
答弁レク「朝4時からも」
日本全国どこに住んでも良い
映画・テレビ・ラジオ・広告・マスコミ・新聞・出版・芸能・女優・アイドル・タレント・モデル・アナウンサー・ミスコン・ミス〇〇大学・インフルエンサー・水商売
www.youtube.com/shorts/gVVSzP803iM
www.youtube.com/shorts/fM3gr3DyMB8
tinyurl.com/section-chief
tinyurl.com/chingin
米比戦争
「10歳以上の者は皆殺し(KILL EVERY ONE OVER TEN)」
shibayan1954.com/history/philippines/the-philippine-rule-by-america/
人肉を売る店が現われ、そこでは彼の立会いのもとで
子供が殺され、焼かれ、また、
男が手足を切断されて殺された。
如何なる形でももたらすことに賛成はしていないし、これまでもそうではなかった。
私は黒人を有権者にすることも陪審員にすることにも賛成していないし、
白人と結婚するとかいうことにも賛成しておらず、これまでもそうだった。
共に暮らすことを永久に禁じることになると考えている。」
w.wiki/4RSh
こんなことに慣れるわけにはいかない。
x.com/RadioGenoa/status/1849446928750350673
本当に怖いです。
恐怖で手が震えています。」
窓を割って侵入
白昼、
↓
移民による連続攻撃 歩いている白人女性の顔面を殴る移民、別の移民が背後から飛び蹴り
x.com/RadioGenoa
x.com/RadioGenoa/status/1854943825006919946
x.com/RadioGenoa/status/1721580649818067143
国会議員へ
「外国人労働者を入れろ入れろ」
w.wiki/5RHM
一時滞在しているホテルを住所にするのは公正証書原本不実記載罪にならないのか?
↓
国際免許取得に利用か
運転免許証を発給してもらえるよう
韓国で2019年にやめた事を、日本は2023年に開始した。だめだこりゃ!
↓
外国の免許から日本免許への切り替えに、多大な時間を要していることから、
その改善を求めていました。
[頂き外国人]外国人が日本の高額医療を低額で受ける穴を塞いでくれ!
日本大使館指定病院の健康診断書を中長期ビザ発給の条件に含めてくれ!
↓
半年以内に800万円以上の
高額な治療を受けたケースは、
1年間に約1,600件
honichi.com/news/2019/08/01/chinainsurance/
500万円の心臓手術が数万円、
年額960万円が3万円、
副業でインプレゾンビをしているパキスタン人の本業月収は8000円
www3.nhk.or.jp/news/html/20240511/k10014444011000.html
↓
x.com/sisimomo2011/status/1847249671405842807
x.com/satobtc/status/1747504398941700382
一部の自治体は
東京都の各区が
年間で一人あたり
最大13万2000円
tinyurl.com/zeikin-gaikokujin-hojokin
学年により年間約$5,000または$6,000の授業料
www.jssi.org.au/sydneylife/education
豊島区在住だった友人
x.com/takumama084/status/1789524727515763086
中略
x.com/moronojapan/status/1851998113369936202
x.com/QRTrain/status/1838887386065096924
公営住宅は福祉、日本人限定(障害者や生活保護受給者や高齢者や母子家庭など)にしろ!
安くなった日本の土地…いま、中国人富裕層が「京都の不動産」を続々と買い占め始めた
デンマークやスイスといった国では、市民権を持っていない者による不動産投資を以前から規制
globe.asahi.com/article/12305868
外国人(オーストラリア人、シンガポール人を除く)が中古物件を購入できなくなる法律が施行されました
gentosha-go.com/articles/-/18650
jp.reuters.com/article/singapore-property-idJPL6N36U01Z/
日本の教育・医療・福祉にフリーライドする外国人には性悪説で対応しろ!
パソコン画面右上のアイコンで選ぶ表示スタイルを一番右の「ヘッドライン」表示にしといてな
/* ヘッドライン表示を切り詰める */ /* #container 指定でCSS優先度を上げる必要がある */ body[data-entrylist-layout="headline"] #container .entrylist-main{ padding-right: 0 !important; } body[data-entrylist-layout="headline"] #container .entrylist-contents{ padding-left: 0 !important; } body[data-entrylist-layout="headline"] #container .entrylist-contents-users{ position: static !important; } body[data-entrylist-layout="headline"] #container .entrylist-contents-users{ top: 14px !important; } /* ヘッドライン表示にサムネイルを追加 */ body[data-entrylist-layout="headline"] #container .entrylist-contents-main{ display: grid; grid-template: "users body title" 28px "bookmark body domain" 20px / 60px 120px 1fr; } body[data-entrylist-layout="headline"] #container .entrylist-contents-users{ grid-area: users; } body[data-entrylist-layout="headline"] #container .entrylist-contents-users a span{ margin-right: 0; } body[data-entrylist-layout="headline"] #container .following-bookmarks-container{ grid-area: bookmark; position: absolute; left: 20px; bottom: 2.5px; } body[data-entrylist-layout="headline"] #container .entrylist-contents-body{ grid-area: body; } body[data-entrylist-layout="headline"] #container .entrylist-contents-title{ grid-area: title; z-index: 99; } body[data-entrylist-layout="headline"] #container .entrylist-contents-title > a{ margin-left: -120px; padding-left: 120px; margin-bottom: -28px; padding-bottom: 28px; width: 890px; white-space: nowrap; display: block; } body[data-entrylist-layout="headline"] #container .entrylist-contents-body{ display: block !important; } body[data-entrylist-layout="headline"] #container .entrylist-contents-thumb{ position: static; } body[data-entrylist-layout="headline"] #container .entrylist-contents-thumb span{ width: 100px; height: 50px; } body[data-entrylist-layout="headline"] #container .entrylist-contents-thumb{ background: #f0f0f0; width: 100px; height: 50px; background-position: 50%; background-size: cover; border-radius: 4px; } /* 2行目に、総合ではドメイン(domain), サイト内一覧ではカテゴリと時刻(meta), マウスホバー時はいずれも概要文(description) */ body[data-entrylist-layout="headline"] #container .entrylist-contents-domain, body[data-entrylist-layout="headline"] #container .entrylist-contents-meta, body[data-entrylist-layout="headline"] #container .entrylist-contents-description{ grid-area: domain; display: block; opacity: 0; padding: 0 !important; } body[data-entrylist-layout="headline"] #container .entrylist-contents-meta > li{ vertical-align: top; } html[data-stable-request-url^="https://b.hatena.ne.jp/entrylist/"] body[data-entrylist-layout="headline"] #container .entrylist-contents-domain, html[data-stable-request-url^="https://b.hatena.ne.jp/site/"] body[data-entrylist-layout="headline"] #container .entrylist-contents-meta{ opacity: 1; } body[data-entrylist-layout="headline"] #container .entrylist-contents:hover .entrylist-contents-domain img.favicon + span, body[data-entrylist-layout="headline"] #container .entrylist-contents:hover .entrylist-contents-meta{ opacity: 0; } body[data-entrylist-layout="headline"] #container .entrylist-contents-description{ opacity: 0; position: absolute; top: calc(40px - 3px); left: calc(180px + 16px + .5em); height: 20px; line-height: 20px; color: #999; min-height: auto !important; padding-right: 0 !important; width: 890px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } html[data-stable-request-url^="https://b.hatena.ne.jp/site/"] body[data-entrylist-layout="headline"] #container .entrylist-contents:hover .entrylist-contents-domain, body[data-entrylist-layout="headline"] #container .entrylist-contents:hover .entrylist-contents-description{ opacity: 1; } /* 増田調整 */ body[data-entrylist-layout="headline"] #container a[href^="/entry/s/anond.hatelabo.jp/"] .entrylist-contents-thumb{ background-image: url('https://cdn-ak-scissors.b.st-hatena.com/image/square/b1638cdb5807a4788e4ba3c1109a984166e095fc/height=288;version=1;width=512/https%3A%2F%2Fanond.hatelabo.jp%2Fimages%2Fog-image-1500.gif'); } /* マウスホバー時にサムネも反応させる見た目調整 */ .entrylist-contents-title:hover ~ .entrylist-contents-body .entrylist-contents-thumb{ opacity: .90; }