はてなキーワード: Titleとは
const user = document.querySelector(".username a").textContent for (const e of document.querySelectorAll(".edit")) { const id = new URL(e.href).searchParams.get("id") const btn = document.createElement("button") btn.textContent = "消" btn.onclick = async () => { await del(user, id) e.closest(".section").remove() } e.after(btn) } const del = async (user, id) => { const url = new URL(`https://anond.hatelabo.jp/${user}/edit`) const params = new URLSearchParams() params.append("mode", "confirm") params.append("id", id) params.append("recaptcha_token", "") params.append("title", "") params.append("body", "") params.append("delete", "削除する") const res = await fetch(url, { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: params.toString(), }) return res.ok }
コードハイライトくらいかと思ったら、増田の削除が簡単になってた
これまではCookieに保存されたトークンが必要で、フォームかCookieから手動で取り出す必要があった
自動でやれなくもないけど、消したいものがある一覧画面だとフォームに存在せず、CookieはHttpOnlyなのでJSから取得できなかった
別ページをfetchして正規表現でHTMLから抜き出すみたいなことやればできなくもないみたいなものだった
つまり事前準備不要な単純なブックマークレットで一覧画面に削除ボタンを追加できる
const user = document.querySelector(".username a").textContent for (const e of document.querySelectorAll(".edit")) { const id = new URL(e.href).searchParams.get("id") const btn = document.createElement("button") btn.textContent = "消" btn.onclick = async () => { await del(user, id) e.closest(".section").remove() } e.after(btn) } const del = async (user, id) => { const url = new URL(`https://anond.hatelabo.jp/${user}/edit`) const params = new URLSearchParams() params.append("mode", "confirm") params.append("id", id) params.append("recaptcha_token", "") params.append("title", "") params.append("body", "") params.append("delete", "削除する") const res = await fetch(url, { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: params.toString(), }) return res.ok }
これは神アプデ
const rkm = "<formからトークンを取り出してここに入れる>" const user = document.querySelector(".username a").textContent for (const e of document.querySelectorAll(".edit")) { const id = new URL(e.href).searchParams.get("id") const btn = document.createElement("button") btn.textContent = "消" btn.onclick = async () => { await del(user, rkm, id) e.closest(".section").remove() } e.after(btn) } const del = async (user, rkm, id) => { const url = new URL(`https://anond.hatelabo.jp/${user}/edit`) const params = new URLSearchParams() params.append("rkm", rkm) params.append("mode", "confirm") params.append("id", id) params.append("recaptcha_token", "") params.append("title", "") params.append("body", "") params.append("delete", "削除する") const res = await fetch(url, { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: params.toString(), }) return res.ok }
以前、勤めていた会社での話。
その会社では、定期的に部下のウェブ・サイト閲覧履歴(URL)がレポートされてきた。
ある部下の閲覧履歴を見ていたら、国会図書館デジタルコレクションに頻繁にアクセスしていた。
よく見ると、URLに検索内容がそのまま出ていて衝撃を受けてしまった。
ロマンス系(?)雑誌をこんな感じで検索・閲覧していたからだ。
https://dl.ndl.go.jp/ja/search/searchResult...keyword=上司と部下&fullText=true&title=《雑誌名》... https://dl.ndl.go.jp/ja/search/searchResult...keyword=女性上司&fullText=true&title=《雑誌名》... https://dl.ndl.go.jp/ja/search/searchResult...keyword=キャリアウーマン&fullText=true&title=《雑誌名》...
自分がそんな目で見られているかもしれないと思うと気持ち悪かった。(自意識過剰でごめんなさい)
https://anond.hatelabo.jp/20260504143126#
どうせほっといても乾くからよくね?ってなる。最低限精液のだまになってるのだけ股間に手突っ込んで手探りで探して足とかに擦り付ければ全部乾くぞ。
テッシュいちいち用意するのめんどいしこの方法ならゴミも出ない。
dorawiiより
https://anond.hatelabo.jp/20260504143611#
うんこするたびに風呂入るわけでもパンツ取り換えるわけでもないのと同じ感覚で生きてる。
dorawiiより
https://anond.hatelabo.jp/20260504144011#
あとそんなことよりはキンタマかいてるとその数日後から出てくる裏側の薄皮剥がしてる方がポロポロって感じで気になるべきちゃう。
dorawiiより
https://anond.hatelabo.jp/20260504152618#
これはきんたまアトピーエアプ
つゆがでるぐらい書いてると次の日の夜には結構広くてうすい皮が張り付いてるような感じになっててはがせるようになるよ
dorawiiより
https://anond.hatelabo.jp/20260504143126#
どうせほっといても乾くからよくね?ってなる。最低限精液のだまになってるのだけ股間に手突っ込んで手探りで探して足とかに擦り付ければ全部乾くぞ。
テッシュいちいち用意するのめんどいしこの方法ならゴミも出ない。
dorawiiより
https://anond.hatelabo.jp/20260504143611#
うんこするたびに風呂入るわけでもパンツ取り換えるわけでもないのと同じ感覚で生きてる。
dorawiiより
https://anond.hatelabo.jp/20260504144011#
あとそんなことよりはキンタマかいてるとその数日後から出てくる裏側の薄皮剥がしてる方がポロポロって感じで気になるべきちゃう。
dorawiiより
https://anond.hatelabo.jp/20260504152618#
これはきんたまアトピーエアプ
つゆがでるぐらい書いてると次の日の夜には結構広くてうすい皮が張り付いてるような感じになっててはがせるようになるよ
dorawiiより
https://anond.hatelabo.jp/20260504143126#
どうせほっといても乾くからよくね?ってなる。最低限精液のだまになってるのだけ股間に手突っ込んで手探りで探して足とかに擦り付ければ全部乾くぞ。
テッシュいちいち用意するのめんどいしこの方法ならゴミも出ない。
dorawiiより
https://anond.hatelabo.jp/20260504143611#
うんこするたびに風呂入るわけでもパンツ取り換えるわけでもないのと同じ感覚で生きてる。
dorawiiより
https://anond.hatelabo.jp/20260504144011#
あとそんなことよりはキンタマかいてるとその数日後から出てくる裏側の薄皮剥がしてる方がポロポロって感じで気になるべきちゃう。
dorawiiより
https://anond.hatelabo.jp/20260504152618#
これはきんたまアトピーエアプ
つゆがでるぐらい書いてると次の日の夜には結構広くてうすい皮が張り付いてるような感じになっててはがせるようになるよ
dorawiiより
// ==UserScript==
// @namespace http://tampermonkey.net/
// @version 2026-05-03
// @match https://booklive.jp/search/keyword/keyword/*
// @grant GM_getValue
// @grant GM_setValue
// ==/UserScript==
// ==UserScript==
// @namespace http://tampermonkey.net/
// @version 2026-05-04
// @grant GM_getValue
// @grant GM_setValue
// ==/UserScript==
(function() {
'use strict';
const STORAGE_KEY = 'buttonPosition';
function isMobilePage() {
if (document.querySelector(
'meta[name="apple-mobile-web-app-title"][content="ブックライブ"]'
)) {
return true;
}
return false;
}
const btn = document.createElement('button');
btn.textContent = 'bl-pager下端へ移動';
btn.style.position = 'fixed';
btn.style.zIndex = 99999;
btn.style.opacity = '0.9';
document.body.appendChild(btn);
const saved = GM_getValue(STORAGE_KEY, null);
if (saved && saved.left && saved.top) {
} else {
}
// ---- クリック処理 ----
btn.addEventListener('click', e => {
e.preventDefault();
e.stopPropagation();
return;
}
// ---- ここから変更:PC版は2番目の .bl-pager.page_nav を使う ----
let target;
if (isMobilePage()) {
console.log('スマホ版として処理');
target = document.querySelector(
'.bk_pageing.section_content.bl-pager.clearfix'
);
} else {
console.log('PC版として処理');
const targets = document.querySelectorAll('.bl-pager.page_nav');
// 2番目を使用
target = targets[1];
}
if (!target) {
alert('対象の bl-pager が見つかりません');
return;
}
// ---- ここまで変更:PC版は2番目の .bl-pager.page_nav を使う ----
const rect = target.getBoundingClientRect();
// 要素下端のページ全体基準座標
const absoluteBottom = rect.bottom + window.scrollY;
// 要素下端をウィンドウ下端へ一致
const destination = absoluteBottom - window.innerHeight;
window.scrollTo({
behavior: 'auto'
});
});
// ---- ドラッグ処理 ----
let dragging = false;
let startX = 0;
let startY = 0;
let offsetX = 0;
let offsetY = 0;
btn.addEventListener('mousedown', e => {
dragging = true;
startX = e.clientX;
startY = e.clientY;
const rect = btn.getBoundingClientRect();
offsetX = e.clientX - rect.left;
offsetY = e.clientY - rect.top;
e.preventDefault();
});
document.addEventListener('mousemove', e => {
if (!dragging) return;
if (
Math.abs(e.clientX - startX) > 5 ||
Math.abs(e.clientY - startY) > 5
) {
}
btn.style.left = `${e.clientX - offsetX}px`;
btn.style.top = `${e.clientY - offsetY}px`;
}
});
document.addEventListener('mouseup', () => {
if (!dragging) return;
dragging = false;
GM_setValue(STORAGE_KEY, {
});
}
});
})();
まともに指示すればAIはこれぐらいお手の物に出せるようになったな。
手動でスクロールしてるとつい事故って下の方のランダム表示のおすすめ作品欄が目に入る位置までスクロールしちゃって、ランダムだから後で気になったとしてもまた見れるとは限らないからとスクショが増える羽目になっていたのが、これで防げるようになった。
dorawiiより
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 https://anond.hatelabo.jp/20260504175957# -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCafhgDQAKCRBwMdsubs4+ SDc1AQCfvf159m/85ngaE1SU7DnOiPC03RG4l9qI2Ce8Bp0j7QEAzIp52/FQfpXI vmRTMM52g1VEwry0pmg+4p0QQZlkEAk= =FTvE -----END PGP SIGNATURE-----
https://anond.hatelabo.jp/20260504143126#
どうせほっといても乾くからよくね?ってなる。最低限精液のだまになってるのだけ股間に手突っ込んで手探りで探して足とかに擦り付ければ全部乾くぞ。
テッシュいちいち用意するのめんどいしこの方法ならゴミも出ない。
dorawiiより
https://anond.hatelabo.jp/20260504143611#
うんこするたびに風呂入るわけでもパンツ取り換えるわけでもないのと同じ感覚で生きてる。
dorawiiより
https://anond.hatelabo.jp/20260504144011#
あとそんなことよりはキンタマかいてるとその数日後から出てくる裏側の薄皮剥がしてる方がポロポロって感じで気になるべきちゃう。
dorawiiより
https://anond.hatelabo.jp/20260504152618#
これはきんたまアトピーエアプ
つゆがでるぐらい書いてると次の日の夜には結構広くてうすい皮が張り付いてるような感じになっててはがせるようになるよ
dorawiiより
https://anond.hatelabo.jp/20260504143126#
どうせほっといても乾くからよくね?ってなる。最低限精液のだまになってるのだけ股間に手突っ込んで手探りで探して足とかに擦り付ければ全部乾くぞ。
テッシュいちいち用意するのめんどいしこの方法ならゴミも出ない。
dorawiiより
https://anond.hatelabo.jp/20260504143611#
うんこするたびに風呂入るわけでもパンツ取り換えるわけでもないのと同じ感覚で生きてる。
dorawiiより
https://anond.hatelabo.jp/20260504144011#
あとそんなことよりはキンタマかいてるとその数日後から出てくる裏側の薄皮剥がしてる方がポロポロって感じで気になるべきちゃう。
dorawiiより
https://anond.hatelabo.jp/20260504152618#
これはきんたまアトピーエアプ
つゆがでるぐらい書いてると次の日の夜には結構広くてうすい皮が張り付いてるような感じになっててはがせるようになるよ
dorawiiより
https://www.youtube.com/watch?v=l3VRkWo4BHU&t=2s:title
の1:58秒みたいなのも実はケモナーが好むのとは違う系?
投稿者自身がケモナー大歓迎とか言っちゃってるけどケモナー知識皆無を暴露してるようなもんだったり?
dorawiiより
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 https://anond.hatelabo.jp/20260503191345# -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCafcf3QAKCRBwMdsubs4+ SJMkAP9ACtVI4jEsar9UKOKIiPPYDzAKvTiI7ACDMtj0PN/8vgEAxCECr/aErvvx wl4canVlcco2QRDgCdt2DA/Q8w792gE= =lksJ -----END PGP SIGNATURE-----
日記が投稿できない時に見るNG条件のまとめ。これらに引っかかると、投稿ボタンを押しても自分の日記の一覧ページに戻されてしまう。
(以下の例示では特殊なゼロ幅文字を挿入してNGを回避している)
うっかり混入しがちなもの:
HTMLタグは多くが使えず、数少ない使用可能タグも少しずつ制限が厳しくなる傾向にある。工夫をすれば使えるタグもあるが、公知とは言えない状況なのでいったん詳細は割愛する。
ただし、具体的には https:// や http:// という文字列がNGワードになっているだけなので、それを避けて <a href="//www.google.com/">テスト</a> のように https: を抜いたURLを直接HTMLのリンク形式で書けば回避できる。
なお、増田内の記事へのリンクに https: 抜きの <a> タグを用いた場合、記事下部のトラバツリーが生成されない「非公開トラバ」扱いとなる副作用があるので注意が必要だが、以下のような anond:記法 によるリンクであれば数の制限はない。
anond:20260424001041 anond:20260424001041:title anond:20260424001041:title=ああああ
※ 特に一般的な単語や reddit へのリンクなど、スパム襲来時の緊急対応ならともかく、恒久的にNGワードにし続けるのはテック企業としてどうなんだという思いと、スパマーがわざわざこの記事を確認して対策を練る現実的なリスクはほぼゼロだという考えから、投稿できなくて戸惑う一般はてなユーザーのためにこのまとめを随時更新していきます。
ウ ン コ
オリジナルのサイトを長く運営している側からすると、下記の点さえ守ってくれればスクレイピングOKなんですよ。
せっかくFacebookやXが頑張って長年かけて作り上げてきた仕組みなんで。サイト運営側は頑張ってOGPタグ整理してるんですよ。
なお知らない人に向けて情報を整理すると、OGPタグはこんな感じ。
<meta property="og:title" content="{ページ名} | サイト名">
<meta property="og:type" content="website">
<meta property="og:url" content="{url}">
<meta property="og:image" content="{url}/ogp-img.png">
<meta property="og:site_name" content="サイト名">
<meta property="og:description" content="ページの概要をそこそこの分量。">
<meta property="og:locale" content="ja_JP">
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@xアカウント">
<meta name="twitter:title" content="{ページ名} | サイト名">
<meta name="twitter:description" content="ページの概要をそこそこの分量。">
xのリンクで画像出たりタイトルが出たり、内容がちょこっと出たりするのはこのタグを利用してるから。
サイト運営側としては、ここの内容は(変更しなければ)自由に使ってもらってOKという扱い。
それ以上情報が欲しい時はユーザがサイトにアクセスして欲しいから、使わないようにね?という感じ。
他にも、ショッピング用やレシピ用に構造化データを用意しているところもあって、Googleのショッピング検索や料理検索なんかは
サイト運営側として、せっかく利用可能な情報を整備してるのにそれを無視して全ページ根こそぎ持っていって勝手に利用するAI系サービスってもれなく悪って感じ。
これは、アメリカ政治特有の説明を排除する点で重要。タイトルIX(男女平等、教育などに関連する 連邦公民権法https://en.wikipedia.org/wiki/Title_IX)政策でも、#MeTooでも、アメリカの大学特有の文化戦争でもない。もっと大きな何かが起こっており、それはほぼ同時期に世界中で広がった。韓国は極端な例だ。韓国の若い男性は圧倒的に保守的だ。若い韓国の女性は圧倒的に進歩的だ。その差はアメリカよりもさらに大きい。その要因には、男性への兵役義務(女性は免除されるのに対し、男性は18ヶ月の兵役義務)と熾烈な経済競争が挙げられる。しかし、格差の拡大のタイミングはスマートフォンの普及とほぼ一致している。この原因が何であれ、アメリカ的なものではない。この仕組みはグローバルなものだ。
This matters because it rules out explanations specific to American politics. It's not Title IX policy. It's not #MeToo. It's not the specific culture war of US campuses. Something bigger is happening, something that rolled out globally at roughly the same time.
South Korea is the extreme case. Young Korean men are now overwhelmingly conservative. Young Korean women are overwhelmingly progressive. The gap there is even wider than the US. Contributing factors include mandatory military service for men (18 months of your life the state takes, while women are exempt) and brutal economic competition. But the timing of divergence still tracks with smartphone adoption.
Whatever is causing this, it's not American. The machine is global.
「ステーキとバターを食べよ」米国の新食事ガイドラインが波紋(MIT Technology Review)
ホットエントリーしていたMIT Technology Reviewというメディアについて欺瞞を感じたのでここに記載する。
本記事は、米政府の政策決定に対する批判的な問題意識が先行しており、その文脈の中で、ガイドラインに記載されていない内容まで含めたかのような解釈が行われているように見える。
米国人のための食事ガイドラインをPLAmo翻訳したPDFファイルをここに共有する。
そんなに難しい内容ではないし、ぜひ目を一度通していただきたい。
https://limewire.com/d/EU19d#9M9OI8ven1 (出典:https://realfood.gov/ )
具体的には、この記事のタイトル「ステーキを食え、バターを食え」は、ガイドラインに一切そのような主張がなされていない。
また、本記事で触れられたガイドライン扉絵の中心に描かれたバターについて、だから「バターを食えと主張されている」と本記事の指摘は、このガイドラインを読んだ記者の解釈であり、ガイドラインの主張としては一切そのようなことが示されていない。
また、本記事ではこのガイドラインが飽和脂肪酸摂取を推奨しているかのごとく書いているが、ガイドラインには飽和脂肪酸を推奨することもなく、日の総カロリーの10%程度にとどめるように書かれているのみである。なお、飽和脂肪酸がただ健康に害悪であるかのように書かれているが、そもそも現代の医学的研究では、例えば心臓疾患との相関性は低いなどがわかっているので、全体的に事実を逸脱した表現といわざるを得ない。不飽和脂肪酸を否定するならばまだわかるが、飽和脂肪酸を完全否定する健康ガイドラインなど聞いたことがない。
赤身肉の摂取についても、これだけを積極的に取れとは書かれておらず、他の動物性・植物性タンパク質と同列に赤身肉を取ると良いと主張されている。それ自体は別に間違ってはいまい。
MITが創刊したTechnology Reviewというメディアがこのていたらくぶりだという事にめまいがしたのでこの記事を書いた。
トランプ政権は私も大嫌いであるし、彼の独裁政権のような振る舞いは目も当てられないと考えているし、さっさと大統領を降りてほしいとすら考えているが、政府方針に対する批判的意図が先行するあまり、一次資料の内容が歪めて伝えられているのであれば問題だと思う。
😲!!
ホンマやっ🫵🤓!!
でも、普通に[https:〜〜:title=〜〜]で、anond:〜〜使えるの知らなかったんです……🥹。
指摘してくれてありがとうございますっ🤗!!
以下ChatGPT
自分のホームページ(自前ドメイン+自前HTML)を一度でも作って運用すると、SNS中心の“受け手”視点から、仕様・検索・配信・所有・継続の“作り手”視点に脳が切り替わる。結果、情報リテラシーは跳ね上がり、ネットのニュースや流行の見え方が根本から変わる——しかも想像以上に。
Before(作る前): Web=SNSのタイムライン。良し悪しは「バズってるか」「見やすいか」
After(作った後): Web=プロトコル+ブラウザ+HTML/CSS/JS+CDN+検索エンジン。
ページは**文書(Document)**であり、配置(IA)、意味づけ(セマンティクス)、配信(HTTP/HTTPS/HTTP/2/3)、キャッシュ戦略が気になりだす。
→ 同じ記事でも「タイトルの付け方」「hタグ構造」「画像最適化」「OGP」「サイトマップ」がまず目に入るようになる。
プラットフォーム依存の脆さを体感:規約変更やシャドウバンで露出が消える。
自サイトの資産化:ドメインに紐づくURLはリンクされ、検索に積み上がり、10年後も生きる。
POSSE(Publish (on your) Own Site, Syndicate Elsewhere):まず自分のサイトに出してから外部へ配信する習慣が身につく。
3. “好き/嫌い”から“なぜ速い・なぜ遅い”へ
Core Web Vitals(LCP/FID/CLS)や画像の遅延読み込み、フォント最適化の重要性が腹落ちする。
広告・計測タグの重さに過敏になる。読者体験を壊さないためのパフォーマンス予算という概念が生まれる。
キーワード選定は“流入ゲーム”ではなく読者の課題→コンテンツ設計に帰着。
内部リンク・パンくず・スキーマ(構造化データ)・サイトマップの意味が実務として理解できる。
“書けば伸びる”ではなく“検索意図を満たす設計が伸びる”に目が覚める。
alt、見出し階層、コントラスト比、キーボード操作、焦点管理など、見えない品質が最重要になる。
デザインは飾りではなく“読み・理解・操作”のためのユーティリティだと分かる。
たまたま当たる1記事より、更新の継続・アーカイブ性・RSSのほうが効くと実感。
コメント欄・メールフォーム・X連携よりも、ニュースレターやRSS購読者の質に価値を見出す。
ドメイン、DNS、証明書、バックアップ、法務(特商法・プライバシーポリシー)に“運用者の責任”が生まれる。
その重みが情報の信頼性を引き上げる(=他人のサイトの苦労も見えるようになる)。
トレンドは“輸入”ではなく選別になる。自分の歴史に合うものだけを採用して積層していける。
A. 最小HTML(雛形)
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>あなたの名前 | ホーム</title>
<meta name="description" content="自分のホームページ。制作物・日記・メモを置いていきます。">
<link rel="alternate" type="application/rss+xml" title="RSS" href="/feed.xml">
<meta property="og:title" content="あなたの名前 | ホーム">
<meta property="og:description" content="自分のホームページ。制作物・日記・メモ。">
<meta property="og:type" content="website">
<nav>Home / About / Posts</nav>
<footer>© 2025 あなたの名前</footer>
GitHub Pages(Jekyll標準。Rubyベース、Node不要)
Cloudflare Pages(静的ファイルを置くだけで高速CDN)
レンタルサーバー(静的HTML+SFTP/rsyncで十分)
C. ドメインの基本
DNSはA/AAAA/CAA/TXT最低限、HTTPS必須(Let’s Encryptで無料化)。
D. “最低限の品質チェック”5点
ログを読む:Search Consoleと簡易アクセスログで“本文よりメタ情報”を磨く。