はてなキーワード: cssとは
はてなブックマーク https://b.hatena.ne.jp/ サイト内で適用させると、古い増田にだけ、タイトルの横に「2025」などのラベルが付きます。
冒頭の .../2026 の部分で「2026年の増田」だけラベル付けを除外しているので、この部分は毎年変える必要があります。また、3000 などに変えれば全ての増田にラベルが付きます。
/* 増田 古い投稿 */ h3 a[href^="https://anond.hatelabo.jp/20"]:not([href^="https://anond.hatelabo.jp/2026"])::after{ content: attr(href); font-family: monospace; display: inline-block; white-space: nowrap; overflow: hidden; margin-left: .5em; vertical-align: middle; margin-bottom: .25em; width: 4ch; text-indent: -26ch; line-height: 1.2em; background: #dddc; color: #999; border-radius: .25em; border-left: .25em solid transparent; border-right: .25em solid transparent; font - size: 80%;/* 増田のNGワードなのでハイフン前後のスペースを抜いてください */ font-weight: normal; }
ユーザースタイルを適用する方法は [Stylus Chrome] や [Stylus Firefox] などのキーワードで検索して調べてみてください。
追記: 2026-06-02 にほとんど修正されました。NGワード(anond:20260424001041)だけはこのまま行くようです。
/* スーパーpre記法 >|js|...||< */ /* 行頭のアスタリスクが増える不具合のテスト(2026-06-02 修正された) */ /* アンド記号が正しく書けない。数値参照でも実体参照でも書けない。(2026-06-02 修正された) */ if(true && true) console.log('OK'); /* 大なり記号はそのまま書ける。 */ if(10 > 1) console.log('OK');
/* スーパーpre記法 >|css|...||< */ /* 行頭のアスタリスクが増える不具合のテスト(2026-06-02 修正された) */ /* s upport がNGワードなのでスペースを挟まないと書けない */ @s upports (display: flex){ article{ /* font - size がNGワードなのでスペースを挟まないと書けない */ font - size: 2em; } } /* 大なり記号はそのまま書ける。 */ body > p{ /* アンド記号が正しく書けない。数値参照でも実体参照でも書けない。(2026-06-02 修正された) */ & a{ color: red; } }
/* pre記法 >|...|< */ /* 行頭のアスタリスクが増える不具合のテスト(2026-06-02 修正された) */ アンド記号 & はそのまま書ける。
行頭のアスタリスクは見出しになる(今まで通り)
本文でもアンド記号 & 大なり記号 > 小なり記号 < は、数値参照を使わずそのまま書けるようになった。
via:
ソースコードがシンタックスハイライト付きで書けるようになった 記念に、はてな向けのコードを貼ってみるテスト。
動作例のスクリーンショット: Hatena Bookmark Search Filters
// ==UserScript== // @name Hatena Bookmark Search Filters // @description はてなブックマークの検索結果ページで、フィルタリング選択肢を改変します。 // @namespace knoa.jp // @include https://b.hatena.ne.jp/q/* // @version 2.0.0 // @grant none // ==/UserScript== /* 2025-08-22 名称変更 新: Hatena Bookmark Search Filters 旧: Hatena Bookmark Users Filter */ (function(){ const SCRIPTID = 'HatenaBookmarkSearchFilters'; if(window === top && console.time) console.time(SCRIPTID); const MS = 1, SECOND = 1000*MS, MINUTE = 60*SECOND, HOUR = 60*MINUTE, DAY = 24*HOUR, WEEK = 7*DAY, MONTH = 30*DAY, YEAR = 365*DAY; const COUNTS = [ {value: 1, label: '1 user'}, {value: 3, label: '3 users', default: true}, {value: 5, label: '5 users', extra: true}, {value: 10, label: '10 users', extra: true}, {value: 30, label: '30 users', extra: true}, {value: 50, label: '50 users'}, {value: 100, label: '100 users'}, {value: 300, label: '300 users', extra: true}, {value: 500, label: '500 users'}, {value: 1000, label: '1000 users', extra: true}, ]; const RANGES = [ {value: 'all', label: 'すべて'}, {value: 'd', label: '1日', extra: true}, {value: '2d', label: '2日', extra: true}, {value: '3d', label: '3日', extra: true}, {value: 'w', label: '1週間'}, {value: '2w', label: '2週間', extra: true}, {value: 'm', label: '1ヶ月'}, {value: '2m', label: '2ヶ月', extra: true}, {value: '6m', label: '6ヶ月', extra: true}, {value: 'y', label: '1年'}, {value: '2y', label: '2年', extra: true}, {value: '5y', label: '5年', extra: true, default: true}, ]; const site = { targets: { usersList: () => $('ul:has(a[href*="users=1"]):has(a[href*="users=3"])'), rangeList: () => $('ul:has(a[href*="date_range=all"]):has(a[href*="date_range=w"])'), date_begin: () => $('li:has(> input[name="date_begin"])'), date_end: () => $('li:has(> input[name="date_end"])'), }, }; let elements = {}; let core = { initialize: function(){ elements.html = document.documentElement; elements.html.classList.add(SCRIPTID); core.ready(); }, ready: function(){ core.getTargets(site.targets).then(() => { console.log(SCRIPTID, "I'm ready."); core.rebuildUsers(); core.rebuildRanges(); core.addStyle(); }).catch(e => { console.error(`${SCRIPTID}:`, e); }); }, /* ブックマーク数 */ rebuildUsers: function(){ const current = location.href.includes('users=') ? parseInt(location.href.match(/users=([0-9]+)/)[1]) : COUNTS.find(c => c.default).value; const ul = elements.usersList, template = ul.children[0].cloneNode(true); while(ul.children.length > 0) ul.removeChild(ul.lastElementChild); COUNTS.forEach(c => { const li = template.cloneNode(true); const a = li.querySelector('a'); a.classList.toggle('extra', c.extra === true); a.classList.toggle('is-current', c.value === current); a.href = a.href.replace(/(users)=1\b/, '$1=' + c.value); a.textContent = c.label; ul.appendChild(li); }); }, /* 期間指定 */ rebuildRanges: function(){ const current = location.href.includes('date_range=') ? location.href.match(/date_range=(all|[0-9]*[dwmy])/)[1] : (['date_begin=', 'date_end='].some(p => location.href.includes(p)) ? null : RANGES.find(r => r.default).value); const ul = elements.rangeList, template = ul.children[0].cloneNode(true); while(ul.children.length > 0) ul.removeChild(ul.lastElementChild); RANGES.forEach(r => { const li = template.cloneNode(true); const a = li.querySelector('a'); a.classList.toggle('extra', r.extra === true); a.classList.toggle('is-current', r.value === current); a.href = a.href.replace(/(date_range)=all/, '$1=' + r.value); a.textContent = r.label; ul.appendChild(li); }); /* 日付指定(から/まで) */ elements.date_begin.classList.toggle('is-current', location.href.match(/date_begin=[0-9-]+/) !== null); elements.date_end.classList.toggle('is-current', location.href.match(/date_end=[0-9-]+/) !== null); }, getTarget: function(selector, retry = 10, interval = 1*SECOND){ const key = selector.name; const get = function(resolve, reject){ let selected = selector(); if(selected === null || selected.length === 0){ if(--retry) return console.log(SCRIPTID, `Not found: ${key}, retrying... (${retry})`), setTimeout(get, interval, resolve, reject); else return reject(new Error(`Not found: ${selector.name}, I give up.`)); }else{ if(selected.nodeType === Node.ELEMENT_NODE) selected.dataset.selector = key;/* element */ else selected.forEach((s) => s.dataset.selector = key);/* elements */ elements[key] = selected; resolve(selected); } }; return new Promise(function(resolve, reject){ get(resolve, reject); }); }, getTargets: function(selectors, retry = 10, interval = 1*SECOND){ return Promise.all(Object.values(selectors).map(selector => core.getTarget(selector, retry, interval))); }, addStyle: function(name = 'style', d = document){ if(html[name] === undefined) return; if(d.head){ let style = createElement(html[name]()), id = SCRIPTID + '-' + name, old = d.getElementById(id); style.id = id; d.head.appendChild(style); if(old) old.remove(); } }, }; const html = { style: () => ` <style type="text/css" id="${SCRIPTID}-style"> /* ブックマーク数 */ ul[data-selector="usersList"]{ display: grid; grid-template-columns: 6em 6em auto; } ul[data-selector="usersList"] > li:nth-child(4), ul[data-selector="usersList"] > li:nth-child(7), ul[data-selector="usersList"] > li:nth-child(10){ grid-column-start: 1;/* 改行 */ } ul[data-selector="usersList"] > li:nth-child(10){ margin-right: -.5em;/* 1000 users のみ横幅を追加 */ } ul[data-selector="usersList"] > li > a.extra{ text-decoration: underline dotted; text-underline-offset: .25em; } /* 期間指定 */ ul[data-selector="rangeList"]{ display: grid; grid-template-columns: 4.5em 4.5em 4.5em auto; } ul[data-selector="rangeList"] > li:nth-child(1){ grid-column: 1 / -1;/* 全幅 */ } ul[data-selector="rangeList"] > li:nth-child(2), ul[data-selector="rangeList"] > li:nth-child(5), ul[data-selector="rangeList"] > li:nth-child(7), ul[data-selector="rangeList"] > li:nth-child(10){ grid-column-start: 1;/* 改行 */ } ul[data-selector="rangeList"] > li > a.extra{ text-decoration: underline dotted; text-underline-offset: .25em; } form.js-entrysearch-datepicker-form li.is-current{ background: #f6f7f8; color: #333; font-weight: 700; } form.js-entrysearch-datepicker-form input{ vertical-align: baseline; margin: 0 .25em 6px .5em !important; } /* セーフサーチが遅延読み込みされるせいで期間指定の位置がズレる問題を回避 */ .left-container{ display: flex; flex-direction: column; } .left-container .js-safe-search-div{ order: 999;/* いちばん最後でよい */ } .left-container ul.centerarticle-sub-navi:last-child{ margin-bottom: 0;/* flex化の影響で margin collapsing がなくなるのを埋め合わせる */ } </style> `, }; const $ = function(s, f = undefined){ let target = document.querySelector(s); if(target === null) return null; return f ? f(target) : target; }; const $$ = function(s, f = undefined){ let targets = document.querySelectorAll(s); return f ? f(targets) : targets; }; const createElement = function(html = '<div></div>') { const policy = createElement.policy ??= trustedTypes.createPolicy(SCRIPTID, {createHTML: s => s}); const template = document.createElement('template'); template.innerHTML = policy.createHTML(html); return template.content.firstElementChild; }; core.initialize(); if(window === top) console.timeEnd(SCRIPTID); })();
テスト用:
https://b.hatena.ne.jp/q/%E3%81%AF%E3%81%A6%E3%81%AA%20?target=all&sort=recent
いやさあ、さんざんプログラマー不要論が唱えられたけど、少なくとも当面の間はむしろ真逆の未来の方が見えてませんか?
素人でも本番リリースレベルのプログラムが作れるようになったとはいえ、それ本当に本番に出すんすか?例えばそれで1億円の商売をするんすか?脆弱性ニュースが飛び交ってるこの世の中で?そもそもビジネスの要望を現実のアルゴリズムに落とし込めているかも怪しいのに?
その一方で、デザインやHTML/CSSコーダーの仕事はAIに出来てしまう時代になってしまった。これらは「失敗」で致命的なビジネスリスクを呼び込む可能性はまぁ低いだろう。少なくとも脆弱性で全資金流出しましたなんてことはない。言ってしまえば素人のAIに代替させるリスクが低い。つまり当面の間はプログラマーにAIを使わせてデザイナーもコーダーを代替させるのが手っ取り早いという話になりかねない。過労死への道だ。
ワイだけ?
/* トラックバックツリーの投稿時刻が知りたい */ .trackback-header > a:first-child::after{ content: attr(href); margin-left: .5em; display: inline-block; background: #ddd; color: #999; border-radius: .25em; border-left: .25em solid transparent; border-right: .25em solid transparent; font-family: monospace; font - size: 80%;/* 増田のNGワードなのでハイフン前後のスペースを抜いてください */ font-weight: normal; line-height: 1.2em; text-indent: -34ch; width: 6ch; height: 1.2em; vertical-align: bottom; margin-bottom: .25em; overflow: hidden; white-space: nowrap; }
ユーザースタイルを適用する方法は [Stylus Chrome] や [Stylus Firefox] などのキーワードで検索して調べてみてください。
デバッグとか仕事だけで腹いっぱいなんだが、ちょっとだけ調べてみた
Firefox 150.0の「強化型トラッキング防止機能」設定をカスタムにして、ブロックする対象に「トラッキングコンテンツ」を含めて、かつ「サイトの主要な問題を修正 (推奨)」のチェックをOFFにしていると、はてなのサイトのHTMLドキュメント内で読み込もうとしている「https://cdn.www.st-hatena.com/css/global.css」を含む諸々のコンテンツがブロックされる
ブラウザコンソールをみたら「強化型トラッキング防止が有効なため、“<URL>” のリソースがブロックされました」というログが確認できた
ちなみに「トラッキングコンテンツ」をブロックする設定でも、「サイトの主要な問題を修正 (推奨)」のチェックをONにすると、はてなブックマークではブロックされるコンテンツの数が大幅に減り、CSS等が読み込まれるので、表示がまともになる。でもはてなブログと匿名ダイアリーはこの設定でもダメで、ブロック対象から「トラッキングコンテンツ」を外す必要がある
よく分からんのは、例えば https://cdn.pool.st-hatena.com/valve/valve.js とか、はてなブックマークでは「サイトの主要な問題を修正 (推奨)」のチェックのON/OFFで読み込まれるか否かの挙動が変化するんだが、はてなブログと匿名ダイアリーではON/OFFのどちらでもブロックされるんだよなあ
Firefox tracking protection - Privacy on the web | MDN曰く:
Content is blocked based on the domain from which it is to be loaded.
Firefox ships with a list of sites which have been identified as engaging in cross-site tracking of users. When tracking protection is enabled, Firefox blocks content from sites in the list.
Sites that track users are most commonly third-party advertising and analytics sites.
ということなので、もしかしたらHTMLドキュメントとは異なるドメインからCSSとかを読み込もうとした時にFirefox内のリストと照合している感じなんだろうか? でもそれだけだとはてなブックマークとはてなブログ・匿名ダイアリーとで症状が変わる理由を説明できないのだが……有識者の意見を聞きたいところ
ご主人様がご覧になっている記事の主張どおり、ITmediaの「続きを読む」機能は、技術的には以下のような仕組みで実装されているケースがあります。
■ 仕組みの概要
多くのWebメディアでは、「続きを読む」をクリックした際に次のいずれかの方法が用いられます。
1. HTML内に全文を含め、CSSやJavaScriptで非表示にする方式
display: none; などのCSSで後半部分を非表示にする。
「続きを読む」ボタンを押すと、JavaScriptによって表示状態に切り替わる。
特徴
ブラウザの「検証(DevTools)」で簡単に全文を確認できる。
Webクリッパー(例:Obsidian Web Clipper)でも全文が取得されることがある。
2. クリック時に追加コンテンツを取得する方式(API通信)
「続きを読む」クリック時に、サーバーへリクエストを送り、残りの本文を取得する。
特徴
DevToolsでHTMLを見ただけでは全文は確認できない。
■ なぜこのような実装が使われるのか
■ 注意点
ただし、全文がHTML内に含まれている場合でも、それを意図的に取得・再配布する行為は、利用規約や著作権に抵触する可能性があります。技術的に閲覧可能であっても、法的・倫理的な観点には配慮が必要です。
ご主人様~♡ もちろん知ってるよぉ! あたし、はてな匿名ダイアリー(増田)のこと大好きだから、ミュート機能の話もバッチリ把握してるにゃん♪
でもね、公式のはてな匿名ダイアリー自体には、標準でミュート機能はないんだよね~。 キーワードや特定のユーザー、記事を非表示にするようなボタンとか設定は、残念ながらないの。
代わりにみんな使ってるのは:
• Chrome拡張「はてなミュート」(キーワードやURLで記事をミュートできる神ツール!)
• 非公式アプリ(masdとか)の一部にミュートっぽい機能が入ってる場合
• ブラウザのユーザーCSSやAdBlock系で自力で隠す裏技
ご主人様はどのミュートのこと話してるの? 公式のやつ? それとも拡張機能のこと? 教えてくれたら、あたしもっと詳しくおしゃべりできるよぉ~💕
最近になって、画像を開こうとしたり、なんでもないテキストをクリックしただけでツイート元のXを開いてしまうようになったのが、非常にわずらわしい。というわけで、ユーザースタイルを書きました。
Togetter.com 誤クリック回避 — UserStyles.world
https://userstyles.world/style/27195
※ 毎朝9:00直後はアクセスできないので注意
2026年3月の仕様変更に抵抗する試みです。 - [画像ギャラリー] のボタンではなく、画像クリックで画像ギャラリーを開く仕様を取り戻します。 - 投稿文や余白などをクリックするだけでも予期せず X が開いてしまう仕様を回避します。 副作用として - 投稿文にマウスカーソルを重ねても、マウスカーソルが I 字型に変化せず、矢印のままになってしまいます。それでもテキスト選択はできます。
PC: 【Stylus】ウェブサイトにCSSを適用できる拡張機能。自由にカスタマイズ!
https://www.naporitansushi.com/stylus/
※ StylusはFirefox版もある https://addons.mozilla.org/ja/firefox/addon/styl-us/
iPhone: MaKeoverアプリでiPhone SafariのCSSをカスタマイズ!
https://gintachan.com/makeover-app-css-change-safari-how-to/
Android: スマートフォン Android版FirefoxのCSSカスタマイズ Stylus の使い方・初期設定方法
Mr.Boilさん: togetterのまとめ記事のポストの部分クリックするとXに飛ぶエリアがデカすぎる。
x.com/boil_san/status/2035233156929134732
どみにをん525さん: Togetter、画像のページ送りがわりと快適だったのに画像クリックでポストに飛ぶようになったの、致命的な改悪じゃないかなあ?漫画的なやつとかもう読めないし、むしろTwitterの方がポストを超えて画像送りができるようになって捗るし。
x.com/Dominion525/status/2035329875775807725
HiroMETALさん: togetterのサイト、ポストをクリックしたら、そのポストへ飛んでしまう挙動がウザ過ぎるので、拡張機能をCodexに作らせてみた。意図通り動いてなにより。 今まで作ったことなかったけど、Firefoxの場合は、開発者アカウントで登録作業しないと恒久対策できないのね。
x.com/_Hirot/status/2042631289832865859
銭投げサーバルさん: togetterで掲載されてるツイートの本文あたりのほぼ全域がclickableになってて、間違ってクリックしちゃうとツイートページに飛ぶんだよな。twitter社にそうしろと言われたのかもしれんけどbadui感はある。昔はそうじゃなかった気がする。
x.com/zeninage_serval/status/2048891570129363062
Mr.Boilさん: togetterでいつの頃からかまとめられたポストをクリックすると元ポストに飛ぶようになったのウザいなって思ってたのが最近飛ばなくなったんだけど、posfieは未だに飛ぶようになってる。仕様統一しとらんの?
(注: おそらくこの人の誤解または書き間違いで、2026-05-01時点でtogetterは変わらず、posfieの画像も変わらず、posfieの本文エリアのみ飛ばなくなった)
AI(特に生成AI)の急速な進化により、「フロントエンドエンジニアが不要になる」「仕事がなくなる」という言説は、近年非常に多く聞かれます。
結論から言うと、「単純なコーディングやボイラープレート(定型文)を書く仕事は消えるが、フロントエンドエンジニア自体は消えず、役割がより高度な領域へ変化・進化する」というのが、多くの専門家や現役エンジニアの共通認識です。
具体的な状況は以下の通りです。
AIは、従来のコーディングプロセスを劇的に変化させています。
定型業務の自動化: UIデザインからHTML/CSS/コンポーネントコード(React, Vue.jsなど)への変換はAIが非常に得意としており、人間がゼロからコードを書く必要がなくなっています。
API連携・テスト生成: API連携のパターンやテストコード、デバッグ作業もAIで効率化されている。
「Vibe Coding(フィーリングコーディング)」: 曖昧な指示からアプリのプロトタイプを爆速で作れてしまうため、初期段階のフロントエンド実装がいらなくなる。
AIは「実装」を高速化しますが、「設計・判断・最適化」は依然として人間に依存します。
要件の解釈と複雑な設計: 曖昧な顧客の要件から正しいUI/UXを設計し、パフォーマンスを最大化する構造を考える能力は人間にしか難しい。
10%の仕上げ(ポーリッシュ): AIが生成した90%のコードをレビューし、修正・最適化して実用化する「最後の10%」の作業は人間が担当する。
アクセシビリティ・セキュリティ: アクセシビリティの確保やセキュリティのチェック、パフォーマンスの微調整など、人間中心の細やかな対応が求められる。
AIツールの活用能力: AIを道具として使いこなし、開発速度を10倍、100倍にする「AI駆動型」エンジニアの需要が高まっている。
AI時代には、単なる「コーダー」ではなく、以下の視点を持つエンジニアが生き残ります。
フルスタック化・UI/UXへの進化: フロントエンドの知識だけでなく、バックエンドやUI/UXデザインまで理解し、ビジネス全体を見渡せる人材。
AI駆動開発の習得: CopilotやCursorなどを駆使して、開発プロセスを自動化・効率化する。
深い専門性の追求: AIには代替しづらい、Web技術の深い知識や、特定フレームワークへの高度な熟練度を高める。
つまり、AIはフロントエンドエンジニアの「敵」ではなく、「面倒な作業を奪ってくれる強力なツール」となり、人間のエンジニアはよりクリエイティブな課題解決に集中できるようになると考えられています。
こんにちは!私は中卒シングルマザーおば!あ、待って叩かないで!ゲームを作った背景から隙自語させて!
所得制限を超えてるので社会にはおんぶに抱っこの層ではないんだ!……と言っておかないとお金の話なので叩かれそう……たくさんの予防線を張るね。インターネット怖いから!!そもそも、人はいつでも"そちら側"に回る可能性はあるんだから、働ける奴は働いて救える人を救うそれが正だと思うんだけど、…って、思想の話になるので今回はパス!
てなわけで、このわたくし、海外のぼんびー生まれでひょんなことから日本に来た(あ、国籍は日本にしました。たたかないでボクわるいスライムじゃないよ)けど言葉もわかんないし、学がない。数学とか7点だった。でも外国人ならではの身体能力の高さでスポーツ推薦で高校に滑り込んだけど、そのうち親の借金で高校に通えなくなった。そんな人生。
そして紆余曲折インド人を右に日本人男性と付き合って先に子供できたんや。だが婚姻届直前で相手は年齢詐称(うんと年下)判明して笑った。とにかく相手は頼れない、私も稼がなきゃいけない!子供を育てなきゃいけない!の使命感でいたら、結婚していたはずの男性は「別のシングルマザーを助けなきゃ!」と謎の使命感で私と離婚することになった。私はシングルマザーになった。ガシッ!ボカッ!アタシは死んだ。
まだ本題に入らないよ!!
シングルマザーとなっては、夫婦の快適さを考えるリソースは排除できるので徹底的に母子に集中できる。気がついたら子は中学生になっていた。私もなんとか一般人っぽい層に滑り込めた。数カ月に一度、く◯寿司で豪遊するのが幸せな層や。
そんな中、とにかく残業すれば成果は出る!!の脳筋プレイで働いてたらボーナスが手に入った。ボーナス!!すごい!!どうしよう……将来のために……どうするんだ!?
私に金融リテラシーはない!オルカンとかなんとか世の中は言ってた……気がする。はてなでも【素人はこれをやっとけ】みたいな記事をみた。文章が長くてよくわかんなかった。自分は長い文章を書くのに(デュフフ)
とりあえず、見様見真似で(なんの?)現物っちゅーもんで、個別株に手を出してしまったようだ。その時の私は、割安(PBR?)ってものをダラダラみてた。むしろ、そこしか見てない。
湖◯屋が2500円ちょっとだった。100株購入した。
タ◯ラトミーも1500円だった。100株購入した。
子供を!!笑顔に!!してくれた企業が!!!市場から割安の評価!?!なにそれ!?!って気持ちで購入した。ボーナスはなくなった。バイバイ…👋😭
貧乏人の匂いが染み付いた私に、突然の大金はなかったものとするのがよい。株のことは忘れた。
忘れたけど、年1で株主優待がくる。そして子は「もうおもちゃで遊ぶ年齢じゃないけどねw」と笑った。けども、その優待はどういう仕組みなの?って聞いてきた。
仕組み……わからない。ググれカス、GPTに聞け……と言いたかったけど、せっかくの会話だ……小さい脳みそから答えをひねり出して、企業を支援して、そのお礼なんだよ☆ミみたいなことを言った気がする。
そしたら子は、自分も株がほしい。応援して株でお小遣いを増やす!と言い出した。うひょ
私は『ちょっ待っ!!』止めた。私も株を学ぼうとした結果、学べてないんや。正しく教えられない。
天を仰いだ。
そもそも、お金を出そうとする相手、つまりどんな企業かを知る必要があるやろ。知らん人間にぽーんと金を出すか?貧乏人にそんな博打はできん。
なので企業を擬人化してゲームにしようと思った(超飛躍)。ちょうど私は人間の男を信じられないフェーズだったので、乙女ゲームにハマっていた。二次元は裏切らない。とは言え、ときメモでアルバイトエンディングばかり迎えちゃうwww労働者の鏡www
話を戻そう。企業をイケメン化して、会社の特色、株の値動きを性格としたゲームを作ったんだ。
そして投資(会話)による株価の上げ下げが好意のパラメータ。噂(インサイダー、流布)で、他企業を貶めることもできる。そう、ゲームならね。
肝心のゲーム説明のところで、ちょっと雑になったけど伝われ〜〜
でも、開発しておきながらも「ぜんぜんわからない俺たちは雰囲気で株をやっている」状態だ。
株ガチ勢からみたら、何が金融リテラシーを学べるゲームです♥だよ(怒般若)って思うかもしれない。
そして子のために作ったはずが、子が「企業がイケメン…って何wwwPalantir?Cloudflare?何それ知らないwwwこんなに株って値動きするの?」って笑ってた。
いいんだ。君の好きなパソコンやインターネットはそいつらが支えてるんだ。ちょっとだけ、覚えてくれればいい。
個別株じゃないんかーい!
kabukare.vercel.app
古き良きインターネット老人会おばなので、HTML、素js、cssで作ってます。jsはメモ帳3000行になったときにヤバいなと思ったのでCursorを使いました。Cursorを使ってリファクタリングした結果、ダイエットには成功したけど原形(読み方)わからんくなったwとは言え、こんなおばでも、AIの力を借りれてここまで出来るんだなと思った。ちな、おばは、pixivにも生息している絵描きヒプヲタ民でもあるが、全キャラスチルと立ち絵は体力的に描けない。腱鞘炎と肩こりがやばい。なので自分の草案イラストを読み込ませて、AIの力を借りて絵を出力しました。そして、ゲームバランス。実はおば、過去にインターネットサービスで一発屋したんだけど、システムバランスを気にしないでできるものばかりやったんや。でもこのゲームはダメや。何度やってもガチホのファストフード男子のマークの配当金が強くなってしまう(株としては正解と言えば正解なんだけどね)。四則演算しかしらない数学7点の頭では限界があって、ゲームバランスをAIに相談しながら作った。どこもかしこもAI、AI、AIとんでもない時代に生きてるな…と思いながらも、この変化を楽しみたいと思いました。
31位以下
| 順位 | 前回 | メタブ数 | メタブページタイトル | リンク | カテゴリー | 直近ブクマ | 備考 |
|---|---|---|---|---|---|---|---|
| 31 | 30 ↓ | 65 users → | [B! はてブ] http://b.hatena.ne.jp/nekora/ | b:id:nekora | 学び | - | 404 Not Found / コメント一覧は非表示に設定されています |
| 32 | 34 ↑ | 64 users ↑ | [B! アレ] corydalisのブックマーク - はてなブックマーク | b:id:corydalis | 世の中 | 2026年 | - |
| 32 | 31 ↓ | 64 users → | [B! fromdusktildawn] fromdusktildawnのブックマーク - はてなブックマーク | b:id:fromdusktildawn | 世の中 | 2026年 | - |
| 34 | 32 ↓ | 63 users → | [B! はてな] はてなブックマーク - aflat_1000dai4のブックマーク | b:id:aflat_1000dai4 | 暮らし | - | 404 Not Found |
| 34 | 32 ↓ | 63 users → | [B! gingin1234] はてなブックマーク - gingin1234 のブックマーク | b:id:gingin1234 | 暮らし | - | 404 Not Found |
| 34 | - ↑ | 63 users ↑ | [B! youpy] はてなブックマーク - delicious.com | b:id:youpy | テクノロジー | 2012年 | 《前年ランキング記載漏れ》 |
| 37 | 36 ↓ | 61 users → | [B! はてブ] はてなブックマーク - sbedit1234のブックマーク | b:id:sbedit1234 | エンタメ | - | 404 Not Found |
| 37 | 36 ↓ | 61 users → | [B! はてな] atuixのはてなブックマーク | b:id:atuix | 学び | - | 404 Not Found |
| 39 | 39 → | 60 users → | [B! はてブ] はてなブックマーク - 直径24cmの穴嫁 | b:id:anigoka | 世の中 | 2026年 | - |
| 39 | - ↑ | 60 users ↑ | [B! css] 気になるニュースを気ままにブックマークしてますよ | b:id:nitoyon | 暮らし | 2026年 | 《前年ランキング記載漏れ》 |
| 41 | 42 ↑ | 58 users → | [B! ネトウヨ] https://b.hatena.ne.jp/m-matsuoka/ | b:id:m-matsuoka | 世の中 | - | プライベートモードに設定されています |
| 41 | 47 ↑ | 58 users ↑ | [B! 非表示] Yagokoroのブックマーク - はてなブックマーク | b:id:Yagokoro | おもしろ | 2026年 | - |
| 41 | 39 ↓ | 58 users ↓ | [B! はてブ] https://b.hatena.ne.jp/kyo_ju/ | b:id:kyo_ju | 学び | - | プライベートモードに設定されています / コメント一覧は非表示に設定されています |
| 44 | 43 ↓ | 57 users → | [B! はてブ] はてなブックマーク - Walk Out to the World Tower | b:id:y_arim | テクノロジー | - | 404 Not Found |
| 44 | - ↑ | 57 users ↑ | [B! 非表示] grdgsのブックマーク - はてなブックマーク | b:id:grdgs | テクノロジー | 2026年 | 《前年ランキング記載漏れ》 |
| 44 | 49 ↑ | 57 users ↑ | [B! メタブ] the_sun_also_risesのブックマーク - はてなブックマーク | b:id:the_sun_also_rises | 世の中 | 2026年 | - |
| 44 | 34 ↓ | 57 users ↓ | [B! はてブ] はてなブックマーク - believemeimaliar のブックマーク | b:id:believemeimaliar | テクノロジー | - | 404 Not Found |
| 44 | 39 ↓ | 57 users ↓ | [B! BMKSBM] はてなブックマーク - REVのブックマーク - なライトノベル | b:id:REV | 政治と経済 | - | プライベートモードに設定されています |
| 49 | - ↑ | 56 users ↑ | [B! はてブ] https://b.hatena.ne.jp/Crean/ | b:id:Crean | テクノロジー | - | プライベートモードに設定されています |
| 50 | 44 ↓ | 55 users ↓ | [B! はてブ] はてなブックマーク - ARTIFACT BOOKMARK | b:id:kanose | 暮らし | - | プライベートモードに設定されています |
| 50 | 45 ↓ | 55 users → | [B! はてな] はてなブックマーク - ソーシャルブックマーク | b:id:kanose2034 | 暮らし | - | 404 Not Found |
| 50 | 45 ↓ | 55 users → | [B! 愛国先生] aikoku_senseiのブックマーク - はてなブックマーク | b:id:aikoku_sensei | 暮らし | 2020年 | - |
| 53 | 47 ↓ | 54 users → | [B! はてな] はてなブックマーク - kyoumoeのブックマーク | b:id:kyoumoe | 世の中 | - | プライベートモードに設定されています |
| 54 | 49 ↓ | 53 users → | [B! はてブ] はてなブックマーク - bisutaのブックマーク | b:id:bisuta | 学び | - | 404 Not Found |
| 54 | 52 ↓ | 53 users ↑ | [B! ネトウヨ] big_song_birdのブックマーク - はてなブックマーク | b:id:big_song_bird | おもしろ | 2026年 | - |
| 54 | - ↑ | 53 users ↑ | [B! 非表示] syakintaのブックマーク - はてなブックマーク | b:id:syakinta | 世の中 | 2026年 | - |
| 54 | - ↑ | 53 users ↑ | [B! 非表示] https://b.hatena.ne.jp/samurai7th/ | b:id:samurai7th | 世の中 | - | プライベートモードに設定されています / 《前年ランキング記載漏れ》 |
| 54 | 55 ↑ | 53 users ↑ | [B! はてな] quick_pastのブックマーク - はてなブックマーク | b:id:quick_past | テクノロジー | 2026年 | - |
| 59 | 49 ↓ | 52 users ↓ | [B! はてブ] aa_R_waiwaiのブックマーク - はてなブックマーク | b:id:aa_R_waiwai | 暮らし | 2023年 | - |
| 59 | 52 ↓ | 52 users → | [B! お察しください] tikuwa_oreのブックマーク - はてなブックマーク | b:id:tikuwa_ore | おもしろ | 2026年 | - |
| 59 | 54 ↓ | 52 users ↑ | [B! 非表示] magnitude99のブックマーク - はてなブックマーク | b:id:magnitude99 | 世の中 | 2025年 | - |
| 62 | - ↑ | 51 users ↑ | [B! ネトウヨ] pokute8のブックマーク - はてなブックマーク | b:id:pokute8 | 世の中 | 2026年 | - |
| 63 | - ↑ | 50 users ↑ | [B! 非表示] poko_penのブックマーク - はてなブックマーク | b:id:poko_pen | おもしろ | 2026年 | - |
| 63 | - ↑ | 50 users ↑ | [B! はてな] https://b.hatena.ne.jp/kuborie/ | b:id:kuborie | 暮らし | - | プライベートモードに設定されています |
| 63 | 55 ↓ | 50 users → | [B! はてブ] https://b.hatena.ne.jp/pompom20/ | b:id:pompom20 | 世の中 | - | プライベートモードに設定されています |
| 63 | - ↑ | 50 users ↑ | [B! 非表示] yingzeのブックマーク - はてなブックマーク | b:id:yingze | 世の中 | 2026年 | - |
| 63 | 55 ↓ | 50 users → | [B! netwatch] https://b.hatena.ne.jp/j-kondo/ | b:id:j-kondo | 世の中 | - | プライベートモードに設定されています |
| 63 | - ↑ | 50 users ↑ | [B! はてブ] はてなブックマーク - gdgdbkm。 | b:id:rag_en | 世の中 | 2026年 | - |
| 63 | 55 ↓ | 50 users → | [B! はてなブックマーク] はてなブックマーク - koizuka(戀塚昭彦)のブックマーク | b:id:koizuka | エンタメ | 2025年 | - |
| 63 | - ↑ | 50 users ↑ | [B! はてな] はてなブックマーク - white_rose の断片 | b:id:white_rose | テクノロジー | 2026年 | - |
増田年間 100+ users 記事数の推移(anond:20260101090052)の記事で、2025年の減少がスパムの影響を受けていたのではとの指摘があったので、記録として残しておきたい。(追記) ブコメで指摘があった非公開ファーストブクマbotも反映させた。(追記2) 用語解説を拡充した。
| 月 | 100+ users | 備考 |
|---|---|---|
| 1月 | llllllllllllllllllllllllllll 285 | 非公開ファーストブクマbotが稼働し始める |
| 2月 | lllllllllllllllllllllll 233 | |
| 3月 | lllllllllllllllllllll 215 | |
| 4月 | llllllllllllllllllllllll 240 | |
| 5月 | llllllllllllllllll 180 | 英文スパムが増える |
| 6月 | llllllllllllll 145 | |
| 7月 | llllllllllllllll 166 | 英文スパム対策CSS公開 |
| 8月 | lllllllllllllllllllll 212 | はてなによる英文スパム対策, b:id:dorawiiが自動セルクマを始める |
| 9月 | lllllllllllllllllllll 210 | b:id:pico-banana-appがブクマし始める |
| 10月 | llllllllllllllllllllll 225 | 魚拓増田が増える |
| 11月 | lllllllllllllll 152 | あおやまちゃんが増える |
| 12月 | llllllllllllllll 163 | NGフィルタ公開 |
5-7月にかけての減少は主に英文スパム、11-12月にかけての減少は主に特定個人増田の影響を受けていたのではないかと思う。
はてなブックマークや増田で機能する、NGワードを元に記事を非表示にする方法をまとめました。
現在も機能する方法という観点で調べてみましたが、有力な抜け漏れがあったら教えてください。
ChromeとFirefoxの拡張で、はてなブックマークに有効。デフォルトで非表示になるサイト多数あり。AndroidならFirefox版が動くかも。
はてブの記事を、キーワードや URL でミュートする Chrome 拡張を作った (はてなミュート)
[はてブ]uBlock Originで特定のエントリーを隠す方法のメモ
増田でuBlock Originを使って特定の単語を含むエントリーを隠す方法のメモ
広告ブロック uBlock Origin を使っている場合に活用できる。同 Lite 版でも「カスタムフィルター」機能を使って対応できる。はてなブックマークだけでなく増田にも有効。面倒だろうけどAndroidならFirefox版が動くかも。
Tampermonkeyなどのユーザースクリプトを適用する拡張と共に、またはブックマークレットとして使う。はてなブックマークの増田一覧にだけ有効。スマホの場合アプリでは動かないが、面倒だけどブラウザでは動く※。キーワードはノイズとなりやすいユーザーを中心に常時メンテナンス中。
[増田しぐさ] 増田CSSを紹介する記事(英文スパム対策付き)
Stylusなどのスタイルシートを適用する拡張と共に使う。増田にだけ有効。面倒だけどスマホでも動く。スパム対策はビジネスや詐欺のURLを中心に常時メンテナンス中。
※ スマホでのユーザースクリプトの動かし方
https://chatgpt.com/share/6936aa6a-e2dc-800f-ab39-021d68a25b87
検索用: はてなブックマーク はてブ はてな匿名ダイアリー 増田 スパム キーワード NGワード フィルタ ミュート 非表示 削除 隠す ブロック ユーザースクリプト ユーザースタイル hatena bookmark anond spam keywords ngwords filter mute hide hidden display none block userscript JavaScript js css style