「.Fr」を含む日記 RSS

はてなキーワード: .Frとは

2026-07-25

げろげろ

ロシアウクライナ戦争を仕掛けてしばらくしてウクライナ児童たち約二万人をロシアが攫っていったという報道がありましたが、その後どうなりましたか

+16 ロシアによって強制的に連れ去られた約2万人のウクライナ児童たちの多くは、依然としてロシアに囚われたままであり、ウクライナへの帰還を果たせたのは全体の約1割(約2,000〜2,300人)にとどまっていますロシア側は「戦火から保護避難であると主張していますが、ウクライナ国際社会は「ウクライナ人としてのアイデンティティを消し去るための組織的国家犯罪」として強く非難しています。連れ去られた子どもたちの現状ロシア占領地に点在する200以上の施設分散して収容されており、以下のような措置組織的に行われていますロシア化と再教育ウクライナ語の使用を禁じられ、ロシア歴史思想を叩き込む「再教育洗脳)」が行われています国籍強制変更と養子縁組ロシア国籍や偽造された出生証明書が与えられ、ロシア国内養子縁組データベース登録されて一般家庭へ引き渡されるケースが相次いでいます軍事訓練への動員一部のティーンエイジャーは、ロシア愛国的な軍事組織(「ユナルミヤ」など)やキャンプに送られ、銃の扱いなどの軍事訓練を受けさせられています愛国的な「ロシア兵」として育て上げ、将来的に戦力化する狙いがあるとされています国際社会の動きと救出活動子どもたちの帰還に向け、現在も官民による懸命な取り組みが続けられています国際刑事裁判所ICC)による逮捕状2023年ICCは「子ども不法移送戦争犯罪)」の容疑で、ロシアプーチン大統領子ども権利担当高官のマリアリボワベロワに逮捕状を発行しました。国際社会による犯罪認定国連独立調査委員会は、ロシアによる一連の子ども連れ去りや所在隠蔽を、「戦争犯罪」および「人道に対する罪」に該当すると公式結論付けています民間NGOによる「命がけの救出」ウクライナNGO「Save Ukraine」などが主導し、親や親族が直接敵地(ロシア)へ乗り込んで子どもを連れ戻すという、非常に危険を伴う個別救出作戦が今も続けられています。国際連携の強化ウクライナカナダが共同議長を務める「ウクライナ児童帰還のための国際連合International Coalition for the Return of Ukrainian Children)」には多くの国が参加し、第三国カタールなど)の仲介による帰還交渉も行われていますロシア側が子ども情報開示拒否し続けていることや、時間の経過とともに子どもたちの記憶が塗り替えられていることから、全容解明と全員の奪還には極めて高い障壁が立ちはだかっています。この問題について、さらに詳しく知りたい情報(救出された子どもたちの証言、具体的なNGO活動国際社会制裁内容など)があればお知らせください。4m【ウクライナ】「盗まれ子ども」約2万人 母親たちが“取り戻す” ...YouTube·日テレNEWS子供連れ去り2万人、帰還1割 「ロシア兵」に再教育2026/02/20 — 後で読む; Googleフォロー. 米上院公聴会で、連れ去られたウクライナの子供の写真を手に演説する人権団体地域人権センター」の法律専門家ラシェウスカ氏=2025年12月、ワシ...時事ドットコム1mChildren "taken away" to Russia testify about conditions in ...YouTube·TBS NEWS DIG Powered by JNN4:31ウクライナ母親たち、連れ去られた我が子奪還のため敵地へBBC·BBCニュースロシアによるウクライナの子もの強制移送は「人道 ...2026/03/11報告書によると、その子もの8割はまだ戻っていない。多くの親や保護者が今も、子どもたちがどこにいるのかわからないままの状態だ。 国連は、こうしたことが、人道に対する罪にあたる強制失...BBCロシアに連れ去られたウクライナの子どもたち ...2024/01/13 — ... はいっさい聞かれませんでした。毎朝、グラウンドに整列させられ、ロシア国旗が掲揚。ロシア国歌斉唱強制されました。僕が拒否したら、トイレ付きの小部屋に15日間、閉じ込められ...朝日新聞GLOBE+Bringing Ukrainian children back home2026/04/22 — Tens of thousands of Ukrainian children have been unlawfully taken. The international comm...European CommissionTaken As Children to Grow Up as Russians: Will the War Be ...2026/05/12 — Four years is a long time, especially for younger children. As time passes, searching beco...International Centre for Defence and SecurityAbducted Children and Mechanisms for Accountability2026/03/25 — As Russia's invasion of Ukraine enters its fifth year, the war continues to exact a devast...Tom Lantos Human Rights Commission | (.gov)In June 2026, Ukraine continued its efforts to return ...2026/07/20 — 44w · Public * 12.09.2025 Russia has deported nearly 11,000 Ukrainian children to "re- edu...Facebook·Embassy of Ukraine to the Republic of Albania/Посольство України в АлбаніїUN Commission concludes that deportation and forcible transfer of ...2026/03/12UN Commission concludes that deportation and forcible transfer of Ukrainian children by Ru...Welcome to the United Nationsロシアに「脅され洗脳された」 ウクライナに戻った子供が ...2025/07/20 — その後、検問国境突破し、戻れたのは出発から2週間後の235月だった。「恐怖感よりも、子供に会いたい一心だった」とタチアナさんは振り返る。 ウクライナ国内外の官民が協力するプラ...日本経済新聞In June 2026, Ukraine continued efforts to return ...2026/07/16 — In June 2026, Ukraine continued efforts to return children deported or forcibly transferre...Facebook·Embassy of Ukraine in the Kingdom of the NetherlandsWhat happens to a kid abducted by Russia? Survivors and detention ...2025/07/11 — The children's gulag Children from occupied Ukrainian regions are systematically transferr...Friends of EuropeInternational Coalition for the Return of Ukrainian Children2026/06/17 — The International Coalition for the Return of Ukrainian Children (the “Coalition”) was off...Global Affairs CanadaUkraine's forcibly transferred children must not be a ...2026/06/01 — The report identifies the removal of Ukrainian children as a part of a well-planned and sy...Al JazeeraUkrainian children abducted by Russia - FDD2026/03/24 — Children Forcibly Reeducated, Militarized According to the Ukrainian organization Bring Ki...Foundation for Defense of Democracies5:09At least 35000 Ukrainian kids forcibly taken to Russia: reportYouTube·ABC News (Australia)

2026-07-07

🥺よくわかんない…

経費 請求 ポイントカード ダメ +6 従業員が貯めた個人ポイントを経費精算で使うことは、会社規定禁止していない限り法的に可能です。ただし、ポイント分を差し引かずに全額請求できるか、またはポイントを「値引き」として処理して実費のみ請求するか は社内ルールによって異なりますポイントの扱いの基本ルールと注意点法的な取り扱い: 法律上個人で貯めたポイント個人所有権があるため、ポイントを利用して立て替えた場合でも、会社現金で精算する義務があります。「ダメ」と言われるケース: 会社が「就業規則」や「経費精算規程」で、業務利用におけるポイントの取得や私的利用を禁止している場合は精算が認められません。経理処理の考え方:値引き処理: ポイント利用分を値引きとみなし、実際に支払った金額のみを経費とする方法です。両建処理: ポイント分を会社から還元経済的利益)とみなし、購入金額の全額を経費計上し、ポイント利用分を「雑収入」に計上する方法です。会社ごとの具体的な経費規程やポイントの取り扱い基準については、コンカーの解説 で詳しく確認できます会社側と個人側のリスク会社リスク: 従業員会社法人カードや経費で貯めたポイント個人的に着服すると「業務横領」に問われる可能性があります個人の税務リスク: 個人ポイントで立て替えて全額請求した場合でも、税理士紹介センタービスカス解説によると、現状では個人所得税課税対象にはならないのが一般的です。経費でのポイント利用に関して、さらに詳しく知りたいことはありますか?仕訳方法の具体的な詳細経費精算時の社内規程禁止事項など)の確認ポイント個人事業主(フリーランス)の場合確定申告上の扱い該当するものがあれば教えてください。経費精算でもらえるポイントマイレージ、実は注意が必要って本当? - 経費に関する意外と知らないFAQ | コンカー経費精算でたまったポイントマイレージは、会社によって処理方法が異なりますポイントマイレージ個人私的に利用することは禁止している会社もあれば、上司許可があれば利用を認める...コンカー個人所有のポイントを利用して経費精算は可能か?2026/02/05 — 個人ポイントを利用して経費精算した場合ポイント利用分を含めた経費精算は認められるのでしょうか。 結論から述べると、従業員個人ポイントを使って経費精算した場合であっても、従業...マネーフォワード クラウドポイント利用分は経費にできる?精算手順や仕訳方法などを ...2026/03/02 — 結論から言うと、従業員個人カードポイントを使って経費を立替払いした場合も、経費精算の対象となります従業員プライベートカードを利用して貯めたポイントは ...ダイナースクラブポイントを使って経費を支払った際の処理方法は?2026/03/17事業者備品等を購⼊する際にポイントを使⽤した場合経理処理は、値引処理、両建処理のいずれかの⽅法が考えられます。 考え方の詳細は、国税庁事業 ...freee従業員による経費のキャッシュレス決済で付与されるポイントに関する ...2024/07/02 — 就業規則によって従業員が経費を立て替える際にポイントを取得することや利用することが禁止されている場合は、当然、従業員ポイント付与される決済手段使用することは就業規則違反する...智進法律事務所会社備品個人カードで購入して精算その際貯まった ...2022/10/27 — 会社の経費を、個人クレジットカードなどを使って立て替えた際に付与されたポイントは、現状では課税対象にはなっていません。ただし、今後の議論 ...税理士紹介センタービスカス3m経費精算でたまったポイント税金課税されるのか? ...YouTube·はまだ税理士法人ちょっとお得な税金豆知識税理士&公認会計士ポイント利用は経費になる?立替時の仕訳方法や注意点を ...2026/04/02 — 社員ポイントを利用して会社の経費を立て替えた場合会社は精算に応じる必要がある · 会社が所有するクレジットカードポイント私的利用すると横領に ...お名前.com個人事業主向け】ポイントプライベート利用はOK ...2025/09/19 — 税務上、注意すべきは「ポイント出所が混在している場合」です。たとえば、同じプライベートカード事業用の支払いも私用の支払いも行っている場合付与されたポイントには両方の要素が含ま...マネーフォワード クラウド経費の支払いにポイントを利用した場合はどう処理するべき?| LUXURY CARD EXPERIENCE2022/12/12 — 経費の支払いにポイントを利用した場合仕訳は、利用するポイントの種類や使い方によって異なりますポイント利用分を雑収入として処理する方法と、ポイント分を値引きとして処理する方法が...Luxury Card Online経費支払いのポイント利用は大丈夫?経費処理をくわしく ...2023/06/12個人クレジットカードや、ポイントカードでたまったポイントを経費の支払いに使用する場合ポイント使用分を引いた金額経理処理を行う方が、楽にできます。 その ...iwatani-gontax.jp会社経費で貯めたポイントの利用は横領になる?2026/07/03 — 結論からいうと、個人カードで立て替えた場合ポイントは、原則として名義人である個人帰属し、私的利用しても横領罪にはあたらないと考えられています。 ただし、会社名義のカードで貯め...弁護士法人若井綜合法事務所

2026-01-24

tlsfアロケーターわけわかんねえな…

OpenAIに書かせるか。

と思ったら、

using System;

using System.Runtime.InteropServices;

public static class TlsfMemory

{

public static IntPtr AllocatePool(int size)

{

// TLSFが管理するメモリ領域を確保

IntPtr pool = Marshal.AllocHGlobal(size);

// 念のためゼロクリア(TLSFは初期化前提なことが多い)

unsafe

{

Buffer.MemoryCopy(

source: null,

destination: (void*)pool,

destinationSizeInBytes: size,

sourceBytesToCopy: 0

);

}

return pool;

}

public static void FreePool(IntPtr pool)

{

if (pool != IntPtr.Zero)

{

Marshal.FreeHGlobal(pool);

}

}

}

何もしてないコードが出てきた。

プロンプトは「tlfsアロケーターのメモリーを確保するところだけc#で書け」。

AIマニアックなことには答えられないみたいだ。

2026-01-05

ホットエントリからNHKが減ってはてブドメイン比率はどう変わったか 2025年12月

NHKは微増

2025年12月 人気エントリー入り回数
togetter.com 245(16.1%)
anond.hatelabo.jp 155(10.2%)
note.com 108(7.1%)
zenn.dev 48(3.2%)
posfie.com 44(2.9%)
www.asahi.com 38(2.5%)
www.47news.jp 32(2.1%)
news.web.nhk 32(2.1%)
www.nikkei.com 30(2.0%)
qiita.com 30(2.0%)
news.yahoo.co.jp 26(1.7%)
www.itmedia.co.jp 25(1.6%)
www.yomiuri.co.jp 23(1.5%)
www.sankei.com 22(1.4%)
mainichi.jp 21(1.4%)
shonenjumpplus.com 18(1.2%)
www.cnn.co.jp 13(0.9%)
pc.watch.impress.co.jp 11(0.7%)
gigazine.net 11(0.7%)
news.jp 10(0.7%)
automaton-media.com 10(0.7%)
www.youtube.com 9(0.6%)
www.tokyo-np.co.jp 9(0.6%)
www.afpbb.com 9(0.6%)
president.jp 9(0.6%)
forest.watch.impress.co.jp 9(0.6%)
dailyportalz.jp 9(0.6%)
www.jiji.com 8(0.5%)
news.denfaminicogamer.jp 8(0.5%)
www.watch.impress.co.jp 7(0.5%)
toyokeizai.net 7(0.5%)
syu-m-5151.hatenablog.com 7(0.5%)
speakerdeck.com 7(0.5%)
internet.watch.impress.co.jp 7(0.5%)
gendai.media 7(0.5%)
forbesjapan.com 7(0.5%)
www.gamespark.jp 6(0.4%)
newsdig.tbs.co.jp 6(0.4%)
bunshun.jp 6(0.4%)
ascii.jp 6(0.4%)
www.bbc.com 5(0.3%)
www.4gamer.net 5(0.3%)
news.tv-asahi.co.jp 5(0.3%)
natgeo.nikkeibp.co.jp 5(0.3%)
natalie.mu 5(0.3%)
mond.how 5(0.3%)
karapaia.com 5(0.3%)
jp.reuters.com 5(0.3%)
developers.freee.co.jp 5(0.3%)
blog.tinect.jp 5(0.3%)

326ドメイン

anond:20251206144843

2025-12-03

数字で絵を描いてる

自分AIイラストを描くようになったのは、一昨年くらいからだ。

Stable Diffusionを使って、LoRAを追加して、ControlNetも入れて、MidjourneyやNovelAIも試した。

出力されるイラストを見る都度アートだと思っていたし、創造だと信じていた。

でもある日、ふと気づいた。

これ、突き詰めたら全部データじゃね?

じゃあ数字で絵って描けるんじゃね?

思ったら試したくなるタイプなんだ。

まずPNG画像バイナリエディタで開いた。

使ったのは HxD。

Windowsで動く、定番のアレ。

画像を開くと――

そこに出てくるのは、色でも形でも影でもなく、



89 50 4E 47 0D 0A 1A 0A 00 00 00 0D


とか、



49 44 41 54 78 9C EC DD 07


とかの、数字アルファベットの羅列。

最初意味がわからない。

でも調べると全部意味がある。


89 50 4E 47 → PNGのヘッダ

IHDR → イメージ属性

IDAT → ピクセルデータ

IEND → 終端

一個ずつ追っていくと、

全部、0と1の変換でしかない。

そこで、自分で書き換えてみた。



実験

目の色を変えてみたい

まず元画像の中で瞳のRGB値の近いものを探す。

Pythonで以下のスクリプトを書いた。



from PIL import Image
import numpy as np
:img = Image.open("mina.png")
:arr = np.array(img)
arr[(arr[:,:,0]<80) & (arr[:,:,1]<80) & (arr[:,:,2]>120)] = [200, 50, 50]
Image.fromarray(arr).save("mina_edit.png")


すると、青い目がボルドーっぽい赤に変わった。



実験

線画を太らせたい

GIMPでもPhotoshopでもなく、

コードだけでいく。



import cv2
img = cv2.imread("mina.png")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 80, 150)
dilated = cv2.dilate(edges, None, iterations=2)


線が、太った。

ここで不思議感覚が生まれた。

ペンを使って描いたわけじゃない。

ブラシで塗ったわけでもない。

数字で絵を動かしてる感覚



実験

影を深くする



shadow = arr.copy()
shadow[:,:,0] = shadow[:,:,0] * 0.7
shadow[:,:,1] = shadow[:,:,1] * 0.7
shadow[:,:,2] = shadow[:,:,2] * 0.7


これだけで影が落ちる。

この作業を続けて気づいたこと。

ブラシやペンで絵を描くのは、画家としての思考

レイヤーフィルタで絵を描くのは、デザイナーとしての思考

コードで絵を描くのは、エンジニアとしての思考なんだ。

同じ絵でも思考フレーム全然違う。

そして、さらに深い気づき

画像って「絵」じゃない。

絵に見える何かであって、本質配列



[[34, 55, 88], [36, 60, 90], [40, 75, 120], …]


RGB値の行列

それに

・ガンマ補正をかける

・ローパスフィルタをかける

シャープネスをかける

ベクトル変換をする。

その操作は全部、数字を変換してるだけ。

“色を塗っている”んじゃない。

数字操作している”。

そう気づいた瞬間から、絵を描くのが楽しくなった。

だってペンを握ってるんじゃなくて数学を握ってる感覚なんだ。



最近好きな音楽FFT解析して、その周波数スペクトル画素に変換して、色を割り当てて絵を生成することもある。

まりから絵を描くことも可能になった。



最後

自分は、数字世界を描く人間だ。

から今日も、ディスプレイの前でコードを走らせながら微笑んでる。

絵は美しい。

そしてそれよりも、数字は美しい。

2025-07-05

[]2025年6月滅多にホットエントリを出さなドメインからホットエントリ

ここ1年で初めてはてなブックマーク日毎の総合人気エントリ入りしたドメインからホットエントリブクマ数順トップ30

ブクマ タイトル ドメイン
928 きらら4コマの描き方 - kokamumo’s blog kokamumo.hatenablog.com
866 神ゲー 『Type Help』ネタバレ無し感想 - のすのゲーム感想ブログ tetogame.hatenablog.com
776 肉を低温で安全においしく調理するコツをお教えします! | 内閣府 食品安全委員会 www.fsc.go.jp
624 Cursor で100日間アプリを作り続けた中で、全然うまくいかなかったこと - フラミナル blog.framinal.life
596 ガンダムの年表 | ビックカメラ www.biccamera.com
533 ニコニコ生放送サービスを再開するまでの記録 - dwango on GitHub dwango.github.io
520 アニメーション監督富野由悠季さん – 伊佐通信|伊佐ホームズ株式会社 www.isahomes.co.jp
511 「まるで、結婚義務みたい」 秋田県高校生向けに「結婚の気運醸成」副読本①  www.media-akita.jp
471 ジークアクス感想 - kokamumo’s blog kokamumo.hatenablog.com
441 開発人生25年で学んだ7つのソフトウェア原則翻訳)|TechRacho by BPS株式会社 techracho.bpsinc.jp
434 年収300万〜1億円の手取り早見表|確認方法所得控除なども解説|RENOSY マガジン(リノシマガジン www.renosy.com
431 東横イン公式】【注意喚起】一部の海外予約サイト(Agoda等)ご利用時のご注意事項|ホテルビジネスホテル予約 www.toyoko-inn.com
428 陰謀論だらけの桃太郎 - ナナオクプリーズ 7oku.hatenablog.com
427 転職時に前職の年収盛ることは、どの程度まで許容されるのか? - 弁護士 師子角允彬のブログ sskdlawyer.hatenablog.com
424 ソフトウェアエンジニアから AI エンジニアスキルチェンジ - As a Futurist... blog.riywo.com
377 20選手エンジニアが「良いコード」を改めて学ぶために、最近の本を4冊買って読んでみた - give IT a try blog.jnito.com
374 Switch 2の分解 : またもや接着剤とはんだ付け、そして免れないドリフト jp.ifixit.com
372 『影の雨』プロンプト kohkoku.jp
372 iPhoneマイナンバーカードデジタルウェブサービスアプリケーション services.digital.go.jp
369 Claude Code に壊されないための denyルール完全ガイド - izanami izanami.dev
361 満州とは何だったのか――安彦良和×三浦英之 imidas.jp
356 How I Use Claude Code spiess.dev
350 医療現場子どもたちに寄り添う ポケモンの小児向けMRI検査説明動画株式会社ポケモンThe Pokémon Company corporate.pokemon.co.jp
334 日本弁護士連合会死刑執行に対し強く抗議し、直ちに全ての死刑執行を停止し、世界的な廃止の流れに沿った死刑制度廃止の実現を求める会長声明 www.nichibenren.or.jp
311 アポカリプスホテルキャラクター原案竹本泉インタビューアニメイトタイムズ www.animatetimes.com
306 再使用ロケット実験機の離着陸実験成功Honda 企業情報サイト global.honda
303 令和の若者は「8時10分前に集合」で8時8分に来る!?なぜ「7時50分」ではないのか?衝撃の世代ギャップ理由めざましmedia | “好き”でつながる mezamashi.media
303 買ったら地獄、売っても地獄 BYDユーザー泣き寝入り www.visiontimesjp.com
291 東大教員学術会議法人化をどう見ているか工学系・理学系・数理科学研究科 - 東大新聞オンライン www.todaishimbun.org
283 おすすめ Claude Code 設定・運用まとめ | Wantedly Engineer Blog www.wantedly.com

2025-03-04

anond:20250304084013

必要コードはたったこれだけやから

(function(){
  if(!window.getSelection || !window.getSelection().containsNode) return;
  Array.from(document.links).forEach(link => {
    if(window.getSelection().containsNode(link, true) === false) return;
    if(link.href.startsWith('mailto:')) return;
    if(link.href.startsWith('javascript:')) return;
    window.open(link.href);
  });
})();

ワイはこれをShortkeys拡張を使って [O] キーに割り当ててるやで

2025-01-10

anond:20250109070331

こういう疑問こそ、生成AIに回答を作ってもらうのが良いと思うよ。

Perplexity PROに聞いてみたよ。

 

質問

大学入学定員のアファーマティブアクションとして女子枠が設定されているのは日本だけですか?海外女子枠が一般的にある国を列挙してください。特にEU諸国での考え方が気になっています

 

 

回答:

 大学入学定員における女子枠の設定は、日本に限らず世界の多くの国で実施されています。ただし、その形態や規模は国によって異なります。以下に、女子枠が比較一般的な国々を列挙し、特にEU諸国の状況について説明します。

 

女子枠が一般的な国々

1. インド

2. パキスタン

3. バングラデシュ

4. マレーシア

5. 韓国

6. 中国(一部の大学や専攻)

7. アメリカ(一部の大学や専攻)

 

EU諸国の状況

 

EUでは、高等教育における性別による直接的な割当制(クオータ制)は一般的ではありません。しかし、ジェンダー平等を促進するための様々な取り組みが行われています[1][6]。

 

EU基本的な考え方

1. 法的枠組み:EUの基本条約では、男女平等の促進が重要価値として位置づけられています[28]。

2. ポジティブ・アクションEUは、形式的平等だけでなく、実質的平等の実現を目指しています。これには、一時的特別措置ポジティブ・アクション)の実施も含まれます[6][31]。

3. 分野別アプローチ特に理工系STEM分野)における女性の参画を促進するための取り組みが行われています[28]。

 

具体的な取り組み

1. ソフトロー法的拘束力のない指針や勧告を通じて、ジェンダー平等を推進しています[11]。

2. 財政支援女性の参画を促進するためのプログラム資金提供しています[11]。

3. データ収集分析European Institute for Gender Equalityなどの機関を通じて、ジェンダー平等の進捗状況を継続的監視しています[28]。

4. 企業取締役会におけるクオータ制:一部のEU加盟国フランスドイツイタリアなど)では、上場企業取締役会における女性比率目標を設定しています[10]。

  

日本の状況との比較

日本大学入試における「女子枠」の設定は、EU一般的アプローチとは異なります日本の取り組みは、特定の分野(主に理工系)における女性の参画を直接的に促進することを目的としています[15][18]。

 

一方、EUでは、教育システム全体を通じてジェンダー平等を促進する包括的アプローチ採用しています。これには、早期教育からステレオタイプ排除キャリア指導改善ロールモデル提示などが含まれます[28]。

 

結論として、大学入学定員における明示的な「女子枠」の設定は、日本を含むアジアの一部の国々でより一般的であり、EUでは直接的なクオータ制よりも、包括的かつ長期的なアプローチ採用されていると言えます

 

Citations:

[1] spaceshipearth.jp/affirmative-action/

[2] univ-journal.jp/column/2024249156/

[3] feminist.org/news/european-court-of-justice-strikes-down-affirmative-action-law/

[4] mainichi.jp/univ/articles/20240925/ddm/010/100/018000c

[5] note.com/yourchoice_ycp/n/n644ad1296281

[6] www.jil.go.jp/institute/zassi/backnumber/2014/07/pdf/060-069.pdf

[7] eur-lex.europa.eu/legal-content/EN/TXT/?uri=legissum%3Ac10935

[8] jbpress.ismedia.jp/articles/-/80117

[9] www.kaonavi.jp/dictionary/affirmative-action/

[10] ja.wikipedia.org/wiki/%E3%82%A2%E3%83%95%E3%82%A1%E3%83%BC%E3%83%9E%E3%83%86%E3%82%A3%E3%83%96%E3%83%BB%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3

[11] ehne.fr/en/encyclopedia/themes/gender-and-europe/gender-citizenship-in-europe/european-union-gender-equality-policies-1957

[12] www.keinet.ne.jp/teacher/media/guideline/backnumber/23/0203/shiten3.pdf

[13] www.gender.go.jp/kaigi/kento/positive/siryo/pdf/po02-2.pdf

[14] revistaidees.cat/en/la-unio-europea-a-lavantguarda-de-les-politiques-digualtat/?pdf=12310

[15] www.yomiuri.co.jp/kyoiku/kyoiku/daigakunyushi/20240308-OYT1T50053/

[16] waseda.repo.nii.ac.jp/record/10032/files/Honbun-7017.pdf

[17] www.nytimes.com/1997/11/12/world/european-union-court-upholds-affirmative-action-for-women.html

[18] www.nikkei.com/article/DGXZQOCD17DER0X10C24A7000000/

[19] journals.sagepub.com/doi/10.1177/00016993231163416?icid=int.sj-abstract.citing-articles.34

[20] news.tv-asahi.co.jp/news_society/articles/000341947.html

[21] www.eigo-net.jp/easy_readings/easy_readings-3403

[22] note.com/wakari_te/n/n8e298c2e524c

[23] eic.obunsha.co.jp/file/exam_info/2024/1108.pdf

[24] www.koov.io/column/13499

[25] www.gender.go.jp/policy/positive_act/pdf/positive_action_011.pdf

[26] www.gender.go.jp/research/kenkyu/ishiki/kekka53.html

[27] corp.miidas.jp/assessment/10794/

[28] commission.europa.eu/document/download/965ed6c9-3983-4299-8581-046bf0735702_en

[29] mainichi.jp/articles/20240426/k00/00m/040/090000c

[30] www.hosei.ac.jp/diversity/publication/newsletter/vol3-1/?auth=9abbb458a78210eb174f4bdd385bcf54

[31] www.era-comm.eu/oldoku/SNLLaw/04_Positive_action/116DV06_Selanec_EN.pdf

[32] admissions.titech.ac.jp/admissions/admission/admission/international

 

 

 

追加質問アメリカでの状況を教えて

回答

アメリカ大学における女子枠の状況は、日本とは大きく異なります

 

アファーマティブ・アクション歴史と現状

アメリカでは、1972年平等機会法(Equal Opportunities Act)以降、人種間の不平等是正目的としたアファーマティブ・アクション実施されてきました[4]。しかし、近年では性別に基づく優遇措置に対して批判が高まっています

女子枠に対する批判

1. 法的問題性別に基づく入学枠の設定は、教育改正法第9編(タイトルナイン)に違反する可能性があるとして、多くの苦情が申し立てられています[3]。

2. 男性への不利益現在大学では、むしろ男性が不利な状況にあるという主張があります[3]。

3. 違憲判断20236月最高裁判所ハーバード大学ノースカロライナ大学アファーマティブ・アクション違憲判断しました[5]。

大学対応

多くの大学が、性別に基づく優遇措置廃止する動きを見せています

1. 女性向け奨学金廃止

2. 女性限定のリーダーシップ研修の中止

3. 女性のみを対象とした表彰制度撤廃[3]

現在の状況

アメリカ大学特にトップスクールでは、男女比がほぼ半々になっています。例えば、スタンフォード大学コンピュータサイエンス専攻では、3人に1人が女子学生です[2]。

このように、アメリカでは明示的な「女子枠」ではなく、長期的かつ包括的アプローチによってジェンダーバランス改善を図ってきた結果、現在の状況に至っています

Citations:

[1] note.com/wakari_te/n/n8e298c2e524c

[2] www.koov.io/column/13499

[3] forbesjapan.com/articles/detail/47454

[4] ipdi.w3.kanazawa-u.ac.jp/cdl/houkoku/doc/090317ppt.pdf

[5] x.com/LazyWorkz/status/1816616538717454751

[6] www.jstage.jst.go.jp/article/kyoiku/89/4/89_683/_pdf/-char/ja

[7] twitter.com/mph_for_doctors/status/1722428813601345935

[8] www.youtube.com/watch?v=MzQCj1EnZzI

2024-12-21

日本アメリカ2024年ベストセラーの差がひどすぎるイ牛

ジャップ

1.変な家2 ~11間取り図~

2.大ピンチずかん2

3.成瀬は天下を取りにいく

4.大ピンチずかん

5.変な家


アメリカ

1.Warウクライナ中東問題について政権の動向や大統領選挙について書かれたノンフィクション

2.Waiting(ロサンゼルス市警女性警察官についての小説

3.Framed (アメリカにおける過去冤罪事件について内容や原因、顛末を描いた書籍

4.The Messageパレスチナ問題について黒人文学研究者視点からエッセイ

5.The Boyfriendデートレイプ問題について新しい視点提供した実験小説

2024-12-02

Twitterのウザい広告全部消す(Android限定)

なんでAndroid限定かって言うとiOSでは280blockerで既に全て消えてるはずだから

Twitterモザイクかけたエロ動画を『広告』として流してきてキモすぎる」という声が多く見られたから書く

ちな買収後に付け足されたシステム経由の広告だけ消える

旧来の広告システム悪用してゾンビねじ込んできてるのは消えないから手で報告とブロックしろ

1. 「設定」アプリを開く

2. 「ネットワークインターネット」を開く

3. 「プライベートDNS」を押す

4. 「プライベート DNS プロバイダホスト名」に↓から適当URLを選んで入れる

このリストの中に「正解」が紛れてるからどれが効くかはトラバで聞け

俺は知らん

https://adguard-dns.io/kb/ja/general/dns-providers/ から抽出した

なおこのままだと思想が曲がったDNSはてなNHKなど無害なサイトまでブロックしていて実用性が無い場合があるためブラウザだけDoHを使う

Chrome場合

1. Chromeアプリ内「…」から「設定」を開く

2. 「プライバシーセキュリティ」の「セキュア DNS使用する」

3. 「別のプロバイダ選択からGoogleIIJ適当なのを選ぶ

Firefox場合

1. chrome://geckoview/content/config.xhtml を開く

2. 🔎に network.trr.modeと打ち込む

3. network.trr.mode を 半角で「2」か「3」に設定する

2024-09-22

AIインフルエンサーたちはChatGPTが世に出る前は何を投稿していたのか?(2/2)

AIインフルエンサーたちはChatGPTが世に出る前は何を投稿していたのか?(1/1)の続き

吉見拓哉|Takuya Yoshimi

このTwitterアカウントは、主にYouTubeSEO競馬アニメなどの話題について呟いており、自身活動や興味関心について発信しています

YouTubeプレミアムが500円増額。しかし、、、不可逆!!!

shimayuz@AIクリエイター

このアカウントは、日々の米国株暗号通貨市場動向、特にテクノロジー関連株やビットコイン価格変動についてツイートしています

ゼロコロナ政策再び。 $AAPL生産に影響が懸念され大きく下落。更に経済混乱が想定され、株価はSP500全業種で

一方で年末商戦売上堅調な滑り出しで $AMZN

暗号資産レンディングBlockFiが経営破綻暗号通貨も軒並み下落。

チャート上、なんとか踏み止まるか? 」

元木大介ᯅシステム生成AI Babel/Zoltraak & 生成AI塾

このアカウントは、AI特にプロマネAIや量子AIに関する話題や、仕事効率化、プログラミング、そして最新の技術トレンドについて呟いています

"プロマネAI実証実験を開始しました!量子AI×NotionによるプロマネAI実証実験を開始 https://prtimes.jp/main/html/rd/p/000000003.000082094.htmlvia @PRTIMES_JP"

sangmin.eth | Dify Ambassador

このアカウントは、主にOpenAIの最新言語モデルtext-davinci-003」の進化と、そのモデルを用いた英語学習ツールサービスについて呟いています特に英語学習におけるAI活用とその重要性を強調しています

"朝起きたら世界がまた変わっていた(笑)。@OpenAI が最新モデルtext-davinci-003」を発表。主な特徴は、①より明確で、説得力のある文章が書ける②より複雑な指示にも対応③より長い形式コンテンツが生成可 1月に"InstructGPT"が出た時も感動したけどそれを遥かに上回る進化、です。"

深津 貴之 / THE GUILD

このアカウントは、主にAI特に画像生成AIに関する話題を呟いています特にStable Diffusionのバージョンアップや使い方について多くのツイートをしています

結果

ここにリストアップした人たち以外もみましたが、分類すると3種類のアカウントがいて

1. ChatGPTブーム後にアカウントを始めた人

2. NFTなどの儲かりそうな技術を追いかけていた人

3. 日常ツイートをしていたが目覚めてしまった人

共通する特徴としては会社代表の人が多いです。

またIDを変更してログがヒットしない人は含まれていません(IDから特定できるけどそこまでやらなかった)

ツイートを取得するJS

javascript:(function() {

const text = Array.from(document.querySelectorAll('[data-testid="tweetText"]')).map(s => s.textContent.trim()).join('\n');

const textarea = document.createElement('textarea');

textarea.value = text;

document.body.appendChild(textarea);

textarea.select();

try {

document.execCommand('copy');

console.log('結果がクリップボードコピーされました!');

} catch (err) {

console.error('クリップボードへのコピーに失敗しました:', err);

}

document.body.removeChild(textarea);

})();

2024-08-24

javascriptの連番配列生成どれが好き?

そこまでシビアな速度は求められてなくわかりやすさで比べた場合



Array.from({ length: 5 }, (_, i) => i);

Array.from({ length: 5 }).map((_, i) => i);

Array.from(Array(5)).map((_, i) => i);

Array.from(Array(5), (_, i) => i);

Array(5).fill().map((_,i) => i);

[...Array(5)].map((_, i) => i);



  1. Array.from
  2. Array(n).fill
  3. [...Array(n)]

MDNArray.from({ length: 5 }, (_, i) => i); 派だった

そもそもArray(5)の要素が空だからmapできないのが直感に反する

2024-08-15

スターの多い順にブコメを並び替える

FANZAの検索結果から熟女を除外するブックマークレット がうまく動いたので、気を良くしてはてなブックマークコメント欄スター数順にソートするブックマークレット作りました

作った動機は、「注目コメントに入りきれなかったちょっといいコメント」をサクサク探したいから。結果として建設コメント順位付けモデル無効化していますが、あのアルゴリズムには特に不満は特にありません。

ブックマークレット

javascript: (async () => {
const wait = ms => new Promise(resolve => setTimeout(resolve, ms));
document.querySelector('.js-bookmarks-sort-tab[data-sort="recent"]').click();
window.scrollTo(0, document.body.scrollHeight);
await wait(1000);
window.scrollTo(0, 0);
await wait(1000);
const p = document.querySelector('.js-bookmarks-recent');
let l = Array.from(p.querySelectorAll('.entry-comment-contents'));
const g = e => {
let n = e.querySelectorAll('.hatena-star-star').length;
const c = e.querySelector('.hatena-star-inner-count');
return c ? n + Number(c.textContent) : n
};
l = l.filter(e => g(e) > 0);
l.sort((a, b) => g(b) - g(a));
p.replaceChildren(...l);
})();

ミニファイしたものコードに一部誤りがありましたので訂正しました(2024-08-16 11:47)

javascript:(async()=>{const wait=ms=>new Promise(resolve=>setTimeout(resolve,ms));document.querySelector('.js-bookmarks-sort-tab[data-sort="recent"]').click();window.scrollTo(0,document.body.scrollHeight);await wait(1000);window.scrollTo(0,0);await wait(1000);const p=document.querySelector('.js-bookmarks-recent');let l=Array.from(p.querySelectorAll('.entry-comment-contents'));const g=e=>{let n=e.querySelectorAll('.hatena-star-star').length;const c=e.querySelector('.hatena-star-inner-count');return c?n+Number(c.textContent):n};l=l.filter(e=>g(e)>0);l.sort((a,b)=>g(b)-g(a));p.replaceChildren(...l)})()

使い方

FANZAの検索結果から熟女を除外するブックマークレット 参照

コード解説

コード説明にダサイところがあったら厳しく指摘して下さい。

javascript:

ブックマークレット必要な、URLの種類を示すスキーム名です。

(async () => {
// 処理
})();

ページに元々ある変数たちとバッティングしないように、まず無名関数ラップします。処理の中で await を使いたいので async 宣言しています

const wait = ms => new Promise(resolve => setTimeout(resolve, ms));

処理の途中で待ち時間を設けるための関数です。便利。

document.querySelector('.js-bookmarks-sort-tab[data-sort="recent"]').click();
window.scrollTo(0, document.body.scrollHeight);
await wait(1000);

「新着コメント」タブをクリックし、ページの一番下までスクロールダウンしてから少し待つ動作です。新着コメントの後半部分(スクロールきっかけの遅延読み込みになっているところ)の読み込みをうながしています

window.scrollTo(0, 0);
await wait(1000);

ページの先頭に戻ってまた少し待ちます。合計2秒の待ち時間雰囲気で決めていますので、これでなければならない・これで過不足ないという値ではありません。単にコメントの読み込み完了を判定する処理を書くのがめんどうだっただけです。

const p = document.querySelector('.js-bookmarks-recent');

新着ブコメの親要素です。繰り返し呼び出すので名前をつけています

let l = Array.from(p.querySelectorAll('.entry-comment-contents'));

コメントをすべて配列に格納します。

const g = e => {
let n = e.querySelectorAll('.hatena-star-star').length;
const c = e.querySelector('.hatena-star-inner-count');
return c ? n + Number(c.textContent) : n
};

コメントはてなスター数をカウントして返す関数です。たくさんスターがついてる ★256★ みたいなやつの数字も足します。

l = l.filter(e => g(e) > 0);

ソートする前に、無スターコメントを消去しています。してもしなくてもいいことですが。

l.sort((a, b) => g(b) - g(a));

残ったコメントスター数で降順ソートします。.querySelectorAll() で収集した要素を配列に入れ直したのは、この .sort() メソッドを使いたいからです(.querySelectorAll() が返す配列風の NodeList オブジェクトは、配列共通メソッドもいくつかあるものの、大半は使えないのです)。

p.replaceChildren(...l);

親要素の内容を、並び替えの終わったコメントそっくり入れ替えて、処理完了です。画面を見ると新着コメントの中身が「スターのついたコメントのみ・スターの多い順」に並んでいます。元に戻す方法はないので、原状回復にはリロードします。ソート状態を示すフラグを立てておいてスターソート⇔日付ソートをかわりばんこに行うようにすればできそうだなと思ったけど実装しません。連打スターを省く処理を追加してUU数でソートできればもっと厳正なランキングになるなーと今思いつきましたがそれも実装しません。

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-05-04

diffusers` ライブラリ存在しないため、代わりに `torch`

この手順は、Latent Diffusion Modelsを使用してテキストから画像を生成するための一般的アプローチを示していますが、いくつかの誤りや欠落がある可能性があります。以下にいくつかの修正と補足を示します。

1. **ライブラリインポート**: `diffusers` ライブラリ存在しないため、代わりに `torch`、`transformers`、および `diffusion` ライブラリ使用する必要があります

```python

import torch

from transformers import AutoModelForSeq2SeqLM, AutoTokenizer

from diffusion import LatentDiffusion

```

2. **環境セットアップ**: 事前学習済みモデルトークナイザーを使用する前に、必要モデルトークナイザーをダウンロードする必要があります

```python

model = AutoModelForSeq2SeqLM.from_pretrained("nlptown/bert-base-multilingual-uncased-finetuned-xnli")

tokenizer = AutoTokenizer.from_pretrained("nlptown/bert-base-multilingual-uncased-finetuned-xnli")

```

3. **テキストプロンプトの前処理**: `encode_plus` メソッド使用して、入力トークン化し、テンソルに変換します。

```python

inputs = tokenizer.encode_plus(prompt, return_tensors="pt")

```

4. **Latent Diffusion モデル定義**: `diffusion` ライブラリから `LatentDiffusion` をインスタンス化する際に、モデルトークナイザーを渡します。

```python

ldm = LatentDiffusion(model=model, tokenizer=tokenizer)

```

5. **画像の生成**: `generate` メソッド使用して画像を生成します。

```python

image = ldm.generate(inputs)

```

6. **生成された画像可視化**: 画像を表示するために適切なライブラリ使用します。例えば、Matplotlibを使用して画像を表示できます

```python

import matplotlib.pyplot as plt

plt.imshow(image)

plt.axis("off")

plt.show()

```

これらの修正と補足を加えることで、より正確かつ実用的なコードが得られるはずです。

2024-02-02

anond:20240202143409

定義曖昧からとりあえず売上高いやつで良い?

サイトから引用からURLそのまま貼り付けても良かったんだけど、せっかくだから丁寧に書くね。

100には届かなかったのとシーズン別でカウントしたりオリジナルアニメも入ってるけど、そこまで精査する義理ないし、それでも50タイトルはあるから頑張って改変例を探し出してくれたまへ。

引用https://dic.pixiv.net/a/%E8%A6%87%E6%A8%A9%E3%82%A2%E3%83%8B%E3%83%A1

1.おジャ魔女どれみ

2.ラブひな

3.HANDMAIDメイ

4.ヴァンドレッド

5.テイルズオブエターニア

6.NOIR

7.フルーツバスケットスクライド

8.まほろまてぃっく

9.おねがい☆ティーチャー

10.あずまんが大王

11.最終兵器彼女

12.機動戦士ガンダムSEED

13.ガンパレード・マーチ

14.LASTEXILE

15.おねがい☆ツインズ

16.鋼の錬金術師

17.攻殻機動隊S.A.C. 2nd GIG

18.頭文字D4期

19.蒼穹のファフナー

20.機動戦士ガンダムSEEDDESTINY

21.AIR

22.ハチミツとクローバー

23.交響詩篇エウレカセブン

24.ぱにぽにだっしゅ!

25.魔法少女リリカルなのはA's

26.Fate/StayNight

27.涼宮ハルヒの憂鬱

28.ゼロの使い魔

29.コードギアス 反逆のルルーシュ

30.のだめカンタービレひだまりスケッチ

31.らき☆すた

32.モノノ怪

33.機動戦士ガンダム00・1期

34.ARIA3

35.マクロスF

36.ストライクウィッチーズ

37.とらドラ!

38.続夏目友人帳

39.けいおん!

40.化物語

41.とある科学の超電磁砲

42.デュラララ!!

43.けいおん!!

44.ストライクウィッチーズ2

45.俺の妹がこんなに可愛いわけがない

46.魔法少女まどか☆マギカ

47.あの日見た花の名前を僕達はまだ知らない

48.うたの☆プリンスさまっ♪

49.Fate/Zero前期

50.偽物語

51.Fate/Zero後期

52.ソードアート・オンライン

53.ガールズ&パンツァー

54.ラブライブ!

55.進撃の巨人

56.物語シリーズセカンドシーズン

57.蒼き鋼のアルペジオ -アルス・ノヴァ-

58.黒子のバスケ 第2期

59.鬼灯の冷徹

60.ラブライブ!2期

61.Free!-Eternal Summer-

62.SHIROBAKO

63.艦隊これくしょん

64.血界戦線

65.戦姫絶唱シンフォギアGX

66.おそ松さん

67.この素晴らしい世界に祝福を!

68.Re:ゼロから始める異世界生活

69.ラブライブ!サンシャイン!!

70.ユーリ!!!onICE

71.けものフレンズ

72.エロマンガ先生

73.プリンセス・プリンシパル

74.宝石の国

75.ゆるキャン△

76.ウマ娘プリティーダービー

77.はたらく細胞

78.ゾンビランドサガ

79.かぐや様は告らせたい

80.鬼滅の刃

81.まちカドまぞく

82.グランブルーファンタジー・ジ・アニメーション2

83.マギレコード魔法少女まどか☆マギカ外伝

84.プリンセスコネクト!Re:Dive

85.やはり俺の青春ラブコメはまちがっている。

86.呪術廻戦

87.ウマ娘プリティーダービー Season2

88.オッドタクシー

89.ラブライブ!スーパースター!!

90.鬼滅の刃 遊郭

91.ラブライブ!虹ヶ咲学園スクールアイドル同好会season2

92.リコリス・リコイル

93.ぼっち・ざ・ろっく!

94.お兄ちゃんおしまい

95.鬼滅の刃 刀鍛冶の里編

96.呪術廻戦 懐玉・玉折

97.呪術廻戦 渋谷事変

2023-03-04

人気エントリーアルゴリズム変更ではてブドメイン比率は変わったか

先月10日にはてなから人気エントリーアルゴリズムを変えたというアナウンスがあった。

これまでに実施したアンケートインタビューにおいて、ご協力いただいた多くのみなさまから現在人気エントリーについて「話題に偏りがある」「特定サイトばかりが出てくる」というご意見を頂戴しました。

こうしたご意見の通り、これまでの人気エントリーは、特に多くの注目を集める出来事議論が発生した際に、同様の話題に関するエントリーが多く掲載される傾向にありました。また、注目を集める話題を多く扱うサイトが人気エントリに多く掲載される傾向もみられました。

人気エントリーサイトカテゴリーの偏りがあることで、結果として人気エントリーユーザーのみなさまにとって関心の薄いものとなってしまうほか、時にはサービスのご利用に心理的負担をもたらすようなこともあったのではないかと考えています。今回のアルゴリズム変更は、この問題の解消を目指したものです。

2023-02-10 人気エントリーアルゴリズムを一部変更しました(ほか予告1件) - はてなブックマーク開発ブログ

https://bookmark.hatenastaff.com/entry/2023/02/10/111307

それに影響を受けて増えたドメイン、減ったドメインはあるのか、とりあえず2月分を少し前と比べてみる。

ここ数ヶ月増えていた増田は以前のレベルに落ち、Togetterは減り、Twitterは増えている。変化はまだよくわからない。

2022年12月 人気エントリー入り回数 2023年1月 人気エントリー入り回数 2023年2月 人気エントリー入り回数
anond.hatelabo.jp 227(15.0%) anond.hatelabo.jp 248(16.5%) anond.hatelabo.jp 173(12.6%)
togetter.com 214(14.1%) togetter.com 244(16.2%) twitter.com 151(11.0%)
twitter.com 130(8.6%) twitter.com 129(8.6%) togetter.com 143(10.4%)
note.com 53(3.5%) news.yahoo.co.jp 62(4.1%) www3.nhk.or.jp 45(3.3%)
www3.nhk.or.jp 52(3.4%) note.com 53(3.5%) news.yahoo.co.jp 41(3.0%)
news.yahoo.co.jp 49(3.2%) www3.nhk.or.jp 43(2.9%) note.com 40(2.9%)
qiita.com 43(2.8%) www.itmedia.co.jp 35(2.3%) www.itmedia.co.jp 33(2.4%)
www.itmedia.co.jp 41(2.7%) zenn.dev 25(1.7%) gigazine.net 26(1.9%)
www.asahi.com 30(2.0%) gigazine.net 25(1.7%) www.asahi.com 23(1.7%)
gigazine.net 24(1.6%) www.asahi.com 24(1.6%) qiita.com 23(1.7%)
www.nikkei.com 23(1.5%) www.nikkei.com 22(1.5%) mainichi.jp 22(1.6%)
mainichi.jp 22(1.5%) mainichi.jp 22(1.5%) zenn.dev 18(1.3%)
zenn.dev 20(1.3%) qiita.com 21(1.4%) speakerdeck.com 14(1.0%)
shonenjumpplus.com 14(0.9%) dailyportalz.jp 19(1.3%) www.sankei.com 13(0.9%)
nlab.itmedia.co.jp 14(0.9%) www.sankei.com 16(1.1%) toyokeizai.net 13(0.9%)
nordot.app 12(0.8%) speakerdeck.com 15(1.0%) shonenjumpplus.com 13(0.9%)
bunshun.jp 10(0.7%) nordot.app 13(0.9%) www.nikkei.com 12(0.9%)
www.afpbb.com 8(0.5%) www.techno-edge.net 10(0.7%) nordot.app 12(0.9%)
pc.watch.impress.co.jp 8(0.5%) www.publickey1.jp 10(0.7%) courrier.jp 12(0.9%)
www.bbc.com 7(0.5%) shonenjumpplus.com 10(0.7%) dailyportalz.jp 11(0.8%)
toyokeizai.net 7(0.5%) bunshun.jp 10(0.7%) bunshun.jp 10(0.7%)
dailyportalz.jp 7(0.5%) president.jp 9(0.6%) gendai.media 8(0.6%)
av.watch.impress.co.jp 7(0.5%) www.tokyo-np.co.jp 8(0.5%) www.tokyo-np.co.jp 7(0.5%)
www.tokyo-np.co.jp 6(0.4%) courrier.jp 8(0.5%) www.techno-edge.net 7(0.5%)
www.publickey1.jp 6(0.4%) toyokeizai.net 7(0.5%) www.nhk.or.jp 7(0.5%)
www.cnn.co.jp 6(0.4%) automaton-media.com 7(0.5%) www.fnn.jp 7(0.5%)
speakerdeck.com 6(0.4%) www.watch.impress.co.jp 6(0.4%) president.jp 7(0.5%)
automaton-media.com 6(0.4%) www.jiji.com 6(0.4%) kaigainohannoublog.blog55.fc2.com 7(0.5%)
www.techno-edge.net 5(0.3%) pc.watch.impress.co.jp 6(0.4%) forest.watch.impress.co.jp 7(0.5%)
www.sankei.com 5(0.3%) nlab.itmedia.co.jp 6(0.4%) coliss.com 7(0.5%)
www.jiji.com 5(0.3%) kaigainohannoublog.blog55.fc2.com 6(0.4%) blog.tinect.jp 7(0.5%)
www.gizmodo.jp 5(0.3%) forest.watch.impress.co.jp 6(0.4%) www.hotpepper.jp 6(0.4%)
president.jp 5(0.3%) www.sponichi.co.jp 5(0.3%) pc.watch.impress.co.jp 6(0.4%)
news.denfaminicogamer.jp 5(0.3%) www.buzzfeed.com 5(0.3%) nlab.itmedia.co.jp 6(0.4%)
medium.com 5(0.3%) rocketnews24.com 5(0.3%) newsdig.tbs.co.jp 6(0.4%)
internet.watch.impress.co.jp 5(0.3%) huyukiitoichi.hatenadiary.jp 5(0.3%) nazology.net 6(0.4%)
gendai.media 5(0.3%) coliss.com 5(0.3%) natgeo.nikkeibp.co.jp 6(0.4%)
courrier.jp 5(0.3%) blog.tinect.jp 5(0.3%) natalie.mu 6(0.4%)
blog.tinect.jp 5(0.3%) www.j-cast.com 4(0.3%) www.highriskrevolution.com 5(0.4%)
www.sponichi.co.jp 4(0.3%) www.cnn.co.jp 4(0.3%) www.e-aidem.com 5(0.4%)
www.j-cast.com 4(0.3%) piyolog.hatenadiary.jp 4(0.3%) www.cnn.co.jp 5(0.4%)
www.hotpepper.jp 4(0.3%) internet.watch.impress.co.jp 4(0.3%) www.bloomberg.co.jp 5(0.4%)
www.bloomberg.co.jp 4(0.3%) av.watch.impress.co.jp 4(0.3%) www.4gamer.net 5(0.4%)
rocketnews24.com 4(0.3%) ascii.jp 4(0.3%) automaton-media.com 5(0.4%)
kyoko-np.net 4(0.3%) www.sponichi.co.jp 4(0.3%)
fujii-yuji.net 4(0.3%) www.publickey1.jp 4(0.3%)
forest.watch.impress.co.jp 4(0.3%) www.oricon.co.jp 4(0.3%)
engineers.ntt.com 4(0.3%) www.ms-ins.com 4(0.3%)
developers.freee.co.jp 4(0.3%) www.j-cast.com 4(0.3%)
coliss.com 4(0.3%) www.bbc.com 4(0.3%)
smart-flash.jp 4(0.3%)
shueisha.online 4(0.3%)
news.denfaminicogamer.jp 4(0.3%)
dot.asahi.com 4(0.3%)
blog.livedoor.jp 4(0.3%)

日毎の人気エントリーに何ページエンリーされたかドメインごとに集計

日毎の人気エントリーに入ったドメインの数は

2022年12月 330ドメイン

2023年1月 297ドメイン

2023年2月 319ドメイン

anond:20230103122152

2023-01-01

たかしくんは、夜、シャワーを浴びた後で下着を新しく交換するという一般的生活スタイルですが

このたび欲しいバイクのために節約しようと、パンツをだいたい2日に1回くらいしか替えない事にしよう、と決めました。

具体的には、今日の日付が偶数であれば(2日・4日・・・)今夜はパンツを替える日である、というルール運用しました。



しかしこのルールは不満でした。

月末が31日・次の日が1日である場合は3日間も同じパンツを履く事になり、それはちょっとさすがになあ、と思っていました。

なので「例外として、今日31日であれば今夜はパンツを替える日」というルールを追加しました。



しかしこのルールにも穴はあるんだよな・・・

うるう年2月29日3月1日連続してしまう事に気づいたのです。

なので「もう一つ例外として、今日2月29日であれば今夜はパンツを替える日」というルールを追加しました。



たかしくんの〝今日パンツを替える日?〟判定ロジック(C#)

bool ShouldChangeMySexyPants(DateTime today)
{
    return (today.Day % 2) == 0 || today.Day == 31 || (today.Month == 2 && today.Day == 29);
}

たかしくん「なんだか、ルールが複雑になっちゃったなあ・・・



ぼくは提案しました。

ぼく「〝明日奇数日であれば、今日パンツを替える日とする〟というルールでも同じじゃね?」

bool ShouldChangeMySexyPants(DateTime today)
{
    return (TomorrowOf(today).Day % 2) == 1;
}

DateTime TomorrowOf(DateTime d) => d + TimeSpan.FromDays(1);


たかしくんは満足しました。

まあお客さんによっては、「いややっぱり前者のロジックの方がいい。社内の業務マニュアルにそう書きまくってるから・・・」という話になって

やっぱりロジックは替えずに行こう、という事になったりもするけどね。



から何なんだ。。。

誰かオチつけて。

2022-12-05

FRB の時期尚早なピボットへの期待

市場は、インフレ率の低下により、連邦準備制度理事会が方向転換を促し、2023 年に金利を引き下げるとの期待から反発しています

時々私たちは聞きたいことを聞きます.FRB議長ジェローム・パウエルFOMC7月会合後にマスコミに「ある時点で」引き締めのペースを遅くすることが適切になると語ったとき市場はそれをFRBが利上げのペースが鈍化するだけでなく、2023 年には利下げを開始することさえありました。

FRB は 7 月に 2 回連続で 75 ベーシス ポイントの利上げを行い、9 月には 3 分の 1 の利上げを続けましたが、中央銀行による差し迫ったハト派のピボットへの期待が S&P 500 の 9.1% 上昇を促進し、7 月は2020 年 11 月以来の株式にとって最も強い月。2022 年末のフェデラル ファンド レートの見積もりは、6 月中旬の水準から 40 ベーシス ポイント低下して 3.3% になり、2023 年末見積もりさらに 100 ベーシス ポイント低下して 2.7% になりました。これらの動きは、FRB が 1980 年代以来最速の利上げサイクルを行った後、来年利下げを行うと市場が予想していることを示唆しています

2022 年と 2023 年の両方のフェデラル ファンド先物の下落は、インフレFRB の利上げペースの両方がピークに達したという市場参加者感情の高まりを反映しています。そしてある程度、彼らは正しいです。インフレ率は短期的には低下傾向にあると思われます。そして明らかに、ある時点でFRBは利上げのペースを遅くするでしょう。

しかし、市場考慮していないのは、インフレ率が低下するリスクですが、依然として高水準にとどまっていることです。2 桁のインフレにつながった 1970 年代半ばの「ストップ アンド ゴー」金融政策の悪影響を FRB認識していることを考えると、利上げ後すぐに利下げを行う可能性は低いと言えます

そのため、中央銀行は、インフレ率が 2% の目標に向けて下降傾向にあるという明確な証拠が数か月にわたって得られるまで、引き締め政策を維持する可能性が高いと考えています。秋には利上げのペースが鈍化するかもしれませんが、それはFRBが利下げを行う環境とは大きく異なる政策環境です。

インフレ市場が望んでいるよりも粘着性がある

消費者物価指数 (CPI) で測定されたインフレ率が 6 月に 9.1%ピークに達したという期待は、コモディティ価格の下落とサプライ チェーンのボトルネックの緩和によってもたらされました。それにもかかわらず、インフレ現在範囲に及んでおり、商品価格の上昇から経済サービス部門に移行しています。これらには、賃金家賃などの住居費などの分野が含まれます。これらは粘着性があり、コモディティ主導の総合インフレ率よりも調整に時間がかかります

FRB当局者はまた、あらゆる機会を利用して、経済の弱体化に直面してもひるむ可能性が低いことを強調してきました. パウエル議長は、7 月の FOMC 会合の後、経済力を犠牲にし、労働市場を弱体化させなければならないとしても、FRB の最優先事項はインフレ率を 2% の目標に戻すことだと繰り返しました。

株式ボラティリティ高まる可能性がある

株式市場は長期投資家にとってより魅力的に見えます。これは、感情が洗い流され、消費財通信テクノロジーの大幅な下落、および一部のセクターでの収益予想の再設定を考慮するとです。それでも、経済の弱体化に伴う利益率への継続的圧力を反映して、アナリスト収益予測は引き続き低下しているため、株式さらなる弱体化とレンジバウンド市場が予想されます

インフレに後押しされた収益は、第 2 四半期の収益シーズン中にアナリスト予測をほぼ達成していますが、多くの企業は、ドル高が海外収益に与える影響、投入コストの上昇、消費者需要の軟化、および賃金圧力対処するため、利益率の低下を報告しています。 1980 年代以来、これほど高くはありませんでした。

2022 年と 2023 年の S&P 500 の収益予測は、先月下落したにもかかわらず、依然として不安定です。S&P 500 の収益倍率は現在推定17 倍であり、長期的な平均を上回っており、収益が引き続き低下する可能性が高いというリスクを反映していません。FRB は 2% の個人消費支出 (PCE) インフレ率を目標にしているため、ここから複数の景気拡大はありそうにないと考えています

https://www.bnymellonwealth.com/insights/investment-update-hopes-for-a-fed-pivot-premature.html

2022-10-27

2008年2011年ごろに渋谷とか下北沢でよく見てたバンド

いくつかのバンドはそのうち完全に忘れてしまいそうなので書いておく

下北沢DaisyBar、屋根裏によく行っていた

だいぶ前なので記憶あやふや

なんか嘘書いてるかも

# 神聖かまってちゃん

初めて行ったライブハウス渋谷屋根裏で、神聖かまってちゃんを見に行った

当時 2ch自作スレかなんかで暴れてたような気がする

UStream かなんかで下北沢駅前でポイフルを配る配信をしていて、実物見たいなと思ってライブハウスに行った

音がめちゃめちゃ割れてるデモを配ってた気がする

「ちりとり」「笛吹ちゃん」が好きだった

https://www.youtube.com/watch?v=qVz7xN8Pimc

https://www.youtube.com/watch?v=ZRRCrC5kvww

# Mr Freddie Mercury

後に Mr.Freddie&The Mercury devil に改名してたけど当時は Mr Freddie Mercury だった気がする

このバンド神聖かまってちゃんを見るために初めて行ったライブハウスに出演してて最終的に神聖かまってちゃんよりもハマった

ベースの人が全裸で出てきて人前に全裸で出てきていいんだって思った記憶がある

それ以降頻繁にライブを見に行った

下北沢DaisyBar が多かった気がする

毎回異常に盛り上がっていた

夏の魔物にも行った

ミイラズと戦ってたやつ

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14140713964

俺の記憶だとパンチじゃなくてキックをしていた

のちにギターの人が「新町」で話題になっていて笑った

https://www.youtube.com/watch?v=9WWwx_2_CKg&ab_channel=mamyu01

ライブ見に行ったら新町ばっかり10回くらいやってたような気がする

そのライブでめちゃくちゃ酔っ払ってる女の人に「オワリカラボーカルの人ですよね!!」って声をかけられた

特に似てない

その後アルバムを出して解散した

Veronica の方はあんまり追わなかった

ひぐらしの鳴く頃に」という曲がアルバム出る前は違うタイトルだった記憶がある

多分デモとかだと思うんだけど全く思い出せないので誰かわかる人いたら教えて下さい

バンドマン」「ロックエンドロール」が好きだった

https://www.youtube.com/watch?v=Wnmlib_K240&ab_channel=acidlandcolor

https://www.youtube.com/watch?v=z9gEimPVIDU

# THE BOHEMIANS

THE BOHEMIANS も確か渋谷屋根裏の同じライブに出てたはず

その時は全然ピンと来なかった

衣装にお皿みたいのついてて衣装にお皿ついてんのかっこいいなとだけ思った気がする

その後好きなバンドを見に行くとボヘミアンズが出てくることが多くて結局好きになってしまった

ファーストアルバム結構聞いた

歌詞カードコードが書いてあったような気がする

「私の家」「ロックンロール」が好きだった

ロックンロールとかロックエンドロールとかそういうの多いな

https://www.youtube.com/watch?v=NtnL4a4d-gc

https://www.youtube.com/watch?v=JHXKqHOKefE

2022-08-24

anond:20220823205005

元増田とは別の書き方を参考までに。

https://note.com/npaka/n/ndd549d2ce556

基本的にこの記事と同じ方法

from diffusers import StableDiffusionPipeline

pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", use_auth_token=YOUR_TOKEN)
pipe.to("cuda")

def dummy_checker(images, **kwargs): return images, False
pipe.safety_checker = dummy_checker

下の2行を追加するだけ。これでも動いた。

2022-08-01

anond:20220731183342

自動安価をつけて返信するプログラムでもこんなに長く複雑になる(一部抜粋) 

/**************************************

以下のCSV_DIR, FILE_PATHS, SETTINGSを書き換えてね。

<h3>o- *************************************/</h3>

//CSVファイルが置かれてるディレクトリパス投稿前にエラー出たら大体ここの設定ミス。 例:"C:\\Users\\sakuraimasahiro\\Documents\\iMacros\\Macros\\rentou\\";

const CSV_DIR =

'C:\\Users\\USER\\Desktop\\iMacros\\Macros\\rentou\\';

//ファイルパスCSV絶対パスで、拡張子必要。iimは相対パスでよく、拡張子不要

const FILE_PATHS = {

//投稿文が書かれたCSVファイル

textCsv: CSV_DIR + 'textNoAnker.csv',

//レス投稿文が書かれたCSV。通常とレス用で分けないなら同じファイルを使えばいい。

replyTextCsv: CSV_DIR + 'textReply.csv',

};

const SETTINGS = {

//投稿後の基本待ち時間

baseWaitTime: 5,

//baseWaitTime+0~waitTimeRange(ランダム)だけ待つ

waitTimeRange: 5,

//連投しすぎだと忠告された場合に処理を一時停止させる時間(秒)

waitTimeForAvoidingPunishment: 60 * 30,

//メール

mail: 'sage',

//名前設定

nameSettings: {

//名前名無しなら''。

name: '',

//以下、偽装ワッチョイ設定。浪人ワッチョイを非表示にしてるときだけtrueにしてね。

//妙なニックネーム(ワッチョイ、アウアウウーなど)をランダムで決めて付加するかどうか。true=付加する。false=付加しない。

nickname: false,

//妙なニックネームの後に付く8桁の文字列ランダムで決めて付加するかどうか。

korokoro: false,

//IPランダムで決めて付加するかどうか。

ip: false,

//地域ランダムで決めて付加するかどうか。

area: false,

},

postSettings: {

//アンカー無し投稿をするならtrue。しないならfalse。noAnkerPostかreplyPostのどちらかはtrueにすること(両方trueでもOK)。

noAnkerPost: false,

//アンカー付き投稿(返信)をするならtrue。しないならfalse。もしnoAnkerPostとreplyPostの両方がtrue場合投稿は返信が優先され、返信対象が見つからなくなったらアンカー無し投稿をする。

replyPost: true,

//最初に取得するアンカー無し投稿CSVファイルの行番号。もし返信用と同じCSVファイルを使うなら-1と入力

noAnkerPostTextCsvStartRow: 1,

//最初に取得する返信用投稿CSVファイルの行番号。もしアンカー無しと同じCSVファイルを使うなら-1と入力

replyPostTextCsvStartRow: 1,

//テキストCSV/返信用テキストCSVの取得行が最終行に達したら最初の行まで戻るかどうか。true=戻る。false=マクロ終了。

textCsvLoop: true,

//返信する場合、これより小さなレス番には返信しない。返信を投稿すると、この数値は前回の返信先のレス番に更新される。

minAnker: 895,

//返信する場合名前に以下の文字列を含む投稿アンカーをつけて返信する(ワッチョイやIPなど名前フィールドにあるものならなんでも可)。配列複数指定可能指定無しなら空配列([])。filterNamesとfilterNamesNotIncluded共に無指定ならレス番1から順に返信していく(minAnkerが設定されてればそこから順に)。以下のfilter系は全て併用可能

filterNames: [],

//↑とは逆に、名前に以下の文字列を含まない投稿アンカーをつけて返信する。↑と併用も可能

filterNamesNotIncluded: [],

//返信する場合、本文に以下の文字列を含む投稿アンカーをつけて返信する。

filterText: ['自演かな', '自演わらわら', 'スクリプト使うの', '安価ガバ', '>>660', '自演擁護', '最後' ,'あいうえお', 'かきくけこ', 'さしすせそ', 'なにぬねの', 'はひふへほ', 'まみむめも', 'やいゆえよ', 'やゆよ', 'らりるれろ', 'わいうえを', 'わをん', 'わいうえをん'],

},

//自分IPアドレス確認VPNとかでIPを変更してマクロを動かしてるとき、突然VPN作動しなくなってIPが元に戻ったときマクロを止めるためのもの

ipSettings: {

//自分現在IPアドレス確認をする。

checkIp: true,

//以下の文字列自分現在IPアドレスに含まれている場合マクロを一時停止する。基本的自分の本当のIPアドレス入力

avoidTheIp: '133.206.99.224',

},

//浪人設定。最後動作確認したのは5年くらい前で、今も同じように動作するかは、浪人を持ってないか確認できずわからない。

roninSettings: {

//浪人ログインしてるかどうかをチェックするかどうか。trueらするfalseならしない。trueにしていてもし浪人ログインしていないことを確認したらログインしにいく。

checkLogin: false,

//浪人ログインメールアドレス

mailAdress: 'abc@def.com',

//浪人ログインパスワード

password: '1234',

},

//false: run()実行させず(デバッグ用)

run: true,

//true: 投稿処理だけしない デバッグ

skipPost: false,

};

/**************************************

設定箇所終わり。

書き込めない時の早見表 - 5ちゃんねるwiki

https://info.5ch.net/index.php/%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%81%E3%81%AA%E3%81%84%E6%99%82%E3%81%AE%E6%97%A9%E8%A6%8B%E8%A1%A8

<h3>o- *************************************/</h3>

/**************************************

メモ

クラスフィールド宣言できない。

・NULL演算子(??)は使えない。論理積(&&)は使える。

オブジェクトの分割代入はできない。

・importはできない。

<h3>o- *************************************/</h3>

/**************************************

関数

<h3>o- *************************************/</h3>

/**

* ここから始まる。

*/

function run() {

//設定ミスがないか調べる。

checkSettings();

var _TextCsvCursors = new TextCsvCursors(

new TextCsvCursor(

SETTINGS.postSettings.noAnkerPostTextCsvStartRow > 0

? SETTINGS.postSettings.noAnkerPostTextCsvStartRow - 1

: SETTINGS.postSettings.noAnkerPostTextCsvStartRow,

FILE_PATHS.textCsv,

SETTINGS.postSettings.textCsvLoop,

),

new TextCsvCursor(

SETTINGS.postSettings.replyPostTextCsvStartRow > 0

? SETTINGS.postSettings.replyPostTextCsvStartRow - 1

: SETTINGS.postSettings.replyPostTextCsvStartRow,

FILE_PATHS.replyTextCsv,

SETTINGS.postSettings.textCsvLoop,

),

);

var _LoopStatuses = new LoopStatuses(0, SETTINGS.postSettings.minAnker);

const _MyPosterName = new MyPosterName({

name: SETTINGS.nameSettings.name,

});

//スレURL指定

const _ThreadUrl = openPromptThreadUrl();

//ループ

while (true) {

//IP確認する設定なら、それをする。

SETTINGS.ipSettings.checkIp && checkCurrentIpNotTheIp();

//スレを開く

openUrl(_ThreadUrl.fullUrlHttps());

//浪人ログインする設定なら、浪人ログインしているかどうかを確認し、していなければログインしにいく。

if (SETTINGS.roninSettings.checkLogin) {

if (!checkRoninLogin()) {

loginRonin();

continue;

}

}

//投稿に使うテキスト取得。

const p = (function () {

if (SETTINGS.postSettings.replyPost) {

//返信あり設定の場合。返信対象が無いか調べる。

const targetAnkerNumber = createPostDOMList()

.filterPostnumberHigher(_LoopStatuses.currentMinAnker())

.filterByPostername(SETTINGS.postSettings.filterNames)

.filterByPosternameNotIncluded(

SETTINGS.postSettings.filterNamesNotIncluded,

)

.filterByText(SETTINGS.postSettings.filterText)

.lowestPostNumber();

if (targetAnkerNumber !== null) {

//返信対象があったのでアンカー付き投稿文を作る。

const r = _TextCsvCursors.takeNextRowTextAsReply(targetAnkerNumber);

messageDisplay(`返信対象有り。アンカー先: ${targetAnkerNumber}`);

return {

...r,

updatedLoopStatuses:

_LoopStatuses.updateMinAnker(targetAnkerNumber),

};

}

}

if (SETTINGS.postSettings.noAnkerPost) {

//返信対象無し、或いは返信しない設定の場合アンカー無し投稿文を作る。

const r = _TextCsvCursors.takeNextRowTextAsNoAnker();

messageDisplay('返信対象無し。アンカー無し投稿。');

return {

...r,

updatedLoopStatuses: _LoopStatuses,

};

}

return null;

})();

if (p) {

//投稿

postThenCheckError(

_ThreadUrl.serverName(),

_MyPosterName.randomize({

nickname: SETTINGS.nameSettings.nickname,

korokoro: SETTINGS.nameSettings.korokoro,

ip: SETTINGS.nameSettings.ip,

area: SETTINGS.nameSettings.area,

}),

SETTINGS.mail,

p.text,

);

//_TextCsvCursorsと_LoopStatusesを更新

_TextCsvCursors = p.updatedTextCsvCursors;

_LoopStatuses = p.updatedLoopStatuses.incrementPostCount();

messageDisplay([

`投稿回数: ${_LoopStatuses.currentPostCount()}`,

`minAnker: ${_LoopStatuses.currentMinAnker()}`,

`今回アンカー無し投稿取得行: ${_TextCsvCursors.currentRows().noAnker}`,

`今回アンカー有り投稿取得行: ${_TextCsvCursors.currentRows().reply}`,

]);

} else {

messageDisplay([

`返信対象が現われるのを待機中...。`,

`投稿回数: ${_LoopStatuses.currentPostCount()}`,

`minAnker: ${_LoopStatuses.currentMinAnker()}`,

`今回アンカー無し投稿取得行: ${_TextCsvCursors.currentRows().noAnker}`,

`今回アンカー有り投稿取得行: ${_TextCsvCursors.currentRows().reply}`,

]);

}

//短時間で連投しまくると規制されるので一定時間待機。

wait(SETTINGS.baseWaitTime + randomRange(0, SETTINGS.waitTimeRange));

}

}

/**

* 投稿処理と投稿結果を見てリトライしたりマクロ終了したり。

* @param {string} serverName サーバー

* @param {MyPosterName} _MyPosterName

* @param {string} postMail メール

* @param {MyText} _MyText

* @param {number} retryTimes

* @returns {void}}

*/

function postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes = 0,

) {

const r =

retryTimes === 0

? new ValuesOfPost(serverName, _MyPosterName, postMail, _MyText).post(

postTo5chTread,

postConfirm,

)

: new ValuesOfPost(

serverName,

_MyPosterName,

postMail,

_MyText,

).postSubstring(retryTimes, postTo5chTread, postConfirm);

if (r) {

back();

return;

}

//エラーページに飛ばされた。エラー情報取得。

wait(7);

const error = createPostErrorMessage().analyze();

messageDisplay(error.message);

if (error.order === 'KILL') {

kill();

} else if (error.order === 'SKIP') {

return;

} else if (error.order === 'TRUNCATE') {

back();

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes + 1,

);

} else if (error.order === 'WAIT') {

wait(SETTINGS.waitTimeForAvoidingPunishment);

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes,

);

} else if (error.order === 'LOGIN') {

//動作未確認

return postThenCheckError(

serverName,

_MyPosterName,

postMail,

_MyText,

retryTimes,

);

}

return;

}

/**

* 現在IPアドレスに、SETTINGS.ipSettings.avoidTheIpの値が含まれていないことを確認する。含まれていたらマクロを一時停止。

* @returns

*/

function checkCurrentIpNotTheIp() {

//IP確認ページへ飛ぶ

openUrl('https://www.cman.jp/network/support/go_access.cgi');

const _IpAdress = createIpAdressFromCMan();

if (_IpAdress.includes(SETTINGS.ipSettings.avoidTheIp)) {

pause('現在IP指定した値が含まれていることを確認。');

//ポーズ解除したならもう一度確認しに。

checkCurrentIpNotTheIp();

}

return;

}

/**

* 設定に致命的な問題が無いか検査

* @returns

*/

function checkSettings() {

if (

SETTINGS.postSettings.noAnkerPost === false &&

SETTINGS.postSettings.replyPost === false

) {

return kill('設定エラー。noAnkerPostとreplyPost両方ともfalseになってる。');

}

if (

SETTINGS.postSettings.noAnkerPostTextCsvStartRow < 0 &&

SETTINGS.postSettings.replyPostTextCsvStartRow < 0

) {

return kill(

'設定エラー。noAnkerPostTextCsvStartRowとreplyPostTextCsvStartRow両方とも-1になってる。',

);

}

if (

SETTINGS.postSettings.noAnkerPostTextCsvStartRow === 0 ||

SETTINGS.postSettings.replyPostTextCsvStartRow === 0

) {

return kill(

'設定エラー。noAnkerPostTextCsvStartRow/replyPostTextCsvStartRowの初期値は-1或いは1以上で。',

);

}

}

/**

* 入力フォームを表示して入力されたスレURLを受け取る。

* @returns {ThreadUrl}

*/

function openPromptThreadUrl() {

const url = prompt('スレURL入力');

return new ThreadUrl(url);

}

/**

* 開いてるスレレス全て読み取ってPostListインスタンスを作って返す。

* 重すぎるので使うのやめ。どうやらインスタンスの大量生成が原因な模様。

* createPostDOMListを使う。

* @returns {PostList}

*/

function createPostList() {

const posts = window.document.getElementsByClassName('post');

return new PostList(Array.from(posts).map((e) => new Post(e)));

}

/**

* 開いてるスレレス全て取得してPostDOMListに格納して返す。

* @returns

*/

function createPostDOMList() {

const posts = window.document.getElementsByClassName('post');

var arrPostDOMList = [];

for (let index = 0; index < posts.length; index++) {

//HTMLCollectionからElementを1つずつ抽出して配列に。

arrPostDOMList.push(posts.item(index));

}

return new PostDOMList(arrPostDOMList);

}

/**

* 開いてる投稿結果画面に表示されてるエラーを読み取ってPostErrorMessageインスタンスを作って返す。

* @returns {PostErrorMessage}

*/

function createPostErrorMessage() {

return new PostErrorMessage(

window.document

.g

2022-07-03

ttps://www.france.jp/ てURLが凄いな

www.japan.jp とか

www.cossack.jp とか、

www.kenya.jp とか

www.miss_america.jp とかも実在するのかな





anond:20220626001526

2022-01-21

ゴミドメイン

coinhive判決が出たことで今後こんなイタチごっこと戦う必要が出てきました

ありがとう最高裁ありがとう技術を守るために戦ってくれたエンジニア大先生!って言う人間がいるのが驚き

日本インターネットに対して汚点のような判例を残さずに済んだ事に心底安堵しています。」

「もしこれを許せば、今後の日本技術開発やプログラム開発は萎縮してしまって、諸外国ますます置いていかれることになってしまう。」

127.0.0.1 www.hostingcloud.racing

127.0.0.1 www.hashing.win

127.0.0.1 www.freecontent.date

127.0.0.1 www.freecontent.bid

127.0.0.1 www.freecontent.stream

2022-01-01

anond:20220101145248

正直動けばいいと思うので、現状でも問題ないと思うけれどちょっとだけ気になった点。

$$使ってる時点で、デベロッパーツール前提なのは分かるけど、 javascriptで動かしたいのか、デベロッパーツールで動かしたいのか、どっちつかずな書き方になっている。

$$('.hatena-star-inner-count').map(a => a.click());
let data = {};
Array.from($$('.entry-comment-contents')).forEach(x => {const userName = x.querySelector('.entry-comment-username a').href.split('/')[3];const comment = x.querySelector('.entry-comment-text').innerText;const stars = Array.from(x.querySelectorAll('.list-star-container a.hatena-star-star')).map(y => y.href.split('/')[3]);data[userName] = [comment, stars];});
console.info(Object.entries(data).map(x => { return ['|', `b:id:${x[0]}`, '|', x[1][0], '|', x[1][1].join(','), '|'].join(' '); }).join("\n"));

デペロッパツールだけで動くだけでいいなら、3行目のArray.fromがなくても動く。多分、forEachをmapに書き換えても動く。個人的にはforEachに統一したいけど、そこは好みレベル問題だと思う。

$$('.hatena-star-inner-count').map(a => a.click());
let data = {};
$$('.entry-comment-contents').forEach(x => {const userName = x.querySelector('.entry-comment-username a').href.split('/')[3];const comment = x.querySelector('.entry-comment-text').innerText;const stars = Array.from(x.querySelectorAll('.list-star-container a.hatena-star-star')).map(y => y.href.split('/')[3]);data[userName] = [comment, stars];});
console.info(Object.entries(data).map(x => { return ['|', `b:id:${x[0]}`, '|', x[1][0], '|', x[1][1].join(','), '|'].join(' '); }).join("\n"));

逆に、javascriptで動かしたいなら1行目と3行目はquerySelectorAllに書き換えれる。

document.querySelectorAll('.hatena-star-inner-count').forEach((a)=>{a.click()});
let data = {};
document.querySelectorAll('.entry-comment-contents').forEach(x => {const userName = x.querySelector('.entry-comment-username a').href.split('/')[3];const comment = x.querySelector('.entry-comment-text').innerText;const stars = Array.from(x.querySelectorAll('.list-star-container a.hatena-star-star')).map(y => y.href.split('/')[3]);data[userName] = [comment, stars];});
console.info(Object.entries(data).map(x => { return ['|', `b:id:${x[0]}`, '|', x[1][0], '|', x[1][1].join(','), '|'].join(' '); }).join("\n"));

これも好みの問題だけど、途中のconst宣言は一回しか使ってないので、宣言せずにそのまんま入れてもいいんじゃないかと思った。

document.querySelectorAll('.hatena-star-inner-count').forEach((a)=>{a.click()});
let data = {};
document.querySelectorAll('.entry-comment-contents').forEach(x => {data[x.querySelector('.entry-comment-username a').href.split('/')[3]] = [x.querySelector('.entry-comment-text').innerText, Array.from(x.querySelectorAll('.list-star-container a.hatena-star-star')).map(y => y.href.split('/')[3])];});
console.info(Object.entries(data).map(x => { return ['|', `b:id:${x[0]}`, '|', x[1][0], '|', x[1][1].join(','), '|'].join(' '); }).join("\n"));
|<<
ログイン ユーザー登録
ようこそ ゲスト さん