「JS」を含む日記 RSS

はてなキーワード: JSとは

2026-01-21

anond:20260121080910

AI による概要

AI特に生成AI)の急速な進化により、「フロントエンドエンジニア不要になる」「仕事がなくなる」という言説は、近年非常に多く聞かれます

結論から言うと、「単純なコーディングやボイラプレート(定型文)を書く仕事は消えるが、フロントエンドエンジニア自体は消えず、役割がより高度な領域へ変化・進化する」というのが、多くの専門家や現役エンジニア共通認識です。

具体的な状況は以下の通りです。

1. なぜ「消える」と言われるのか(AIの脅威)

AIは、従来のコーディングプロセスを劇的に変化させています

定型業務の自動化: UIデザインからHTML/CSS/コンポーネントコード(React, Vue.jsなど)への変換はAIが非常に得意としており、人間ゼロからコードを書く必要がなくなっています

API連携テスト生成: API連携パターンテストコードデバッグ作業AI効率化されている。

「Vibe Coding(フィーリングコーディング)」: 曖昧な指示からアプリプロトタイプ爆速で作れてしまうため、初期段階のフロントエンド実装がいらなくなる。

2. 「消えない」理由と求められる新たな価値

AIは「実装」を高速化しますが、「設計判断最適化」は依然として人間依存します。

要件解釈と複雑な設計: 曖昧顧客要件から正しいUI/UX設計し、パフォーマンスを最大化する構造を考える能力人間しか難しい。

10%の仕上げ(ポーリッシュ): AIが生成した90%のコードレビューし、修正最適化して実用化する「最後10%」の作業人間担当する。

アクセシビリティセキュリティ: アクセシビリティの確保やセキュリティのチェック、パフォーマンスの微調整など、人間中心の細やかな対応が求められる。

AIツール活用能力: AIを道具として使いこなし、開発速度を10倍、100倍にする「AI駆動型」エンジニア需要が高まっている。

3. 今後生き残るために必要アクション

AI時代には、単なる「コーダー」ではなく、以下の視点を持つエンジニアが生き残ります

フルスタック化・UI/UXへの進化: フロントエンド知識だけでなく、バックエンドUI/UXデザインまで理解し、ビジネス全体を見渡せる人材

AI駆動開発の習得: CopilotやCursorなどを駆使して、開発プロセス自動化効率化する。

深い専門性の追求: AIには代替しづらい、Web技術の深い知識や、特定フレームワークへの高度な熟練度を高める。

まりAIフロントエンドエンジニアの「敵」ではなく、「面倒な作業を奪ってくれる強力なツール」となり、人間エンジニアはよりクリエイティブ課題解決に集中できるようになると考えられています

2026-01-16

anond:20260116172727

C++かRustがいいんじゃねえの・・・

C#は死んだらしいしJSAIに飲まれたろ

ピチョンでもいいけど

2026-01-14

やっとJSを使ってNGワードを設定した

「megalodon」「れめくん」「電気通信大学」「ボスマン」「dorawii」などなど。増田で見えないし、はてなブックマークでも見えなくした。スッキリ!ちなみにこの投稿も見えない。

2026-01-12

子供に株を教えるために企業イケメン化したゲームつくた

こんにちは!私は中卒シングルマザーおば!あ、待って叩かないで!ゲームを作った背景から隙自語させて!

所得制限を超えてるので社会にはおんぶに抱っこの層ではないんだ!……と言っておかないとお金の話なので叩かれそう……たくさんの予防線を張るね。インターネットいから!!そもそも、人はいつでも"そちら側"に回る可能性はあるんだから、働ける奴は働いて救える人を救うそれが正だと思うんだけど、…って、思想の話になるので今回はパス

てなわけで、このわたくし、海外のぼんびー生まれでひょんなことから日本に来た(あ、国籍日本しました。たたかないでボクわるいスライムじゃないよ)けど言葉もわかんないし、学がない。数学とか7点だった。でも外国人ならではの身体能力の高さでスポーツ推薦で高校に滑り込んだけど、そのうち親の借金高校に通えなくなった。そんな人生

そして紆余曲折インド人を右に日本男性と付き合って先に子供できたんや。だが婚姻届直前で相手年齢詐称(うんと年下)判明して笑った。とにかく相手は頼れない、私も稼がなきゃいけない!子供を育てなきゃいけない!の使命感でいたら、結婚していたはずの男性は「別のシングルマザーを助けなきゃ!」と謎の使命感で私と離婚することになった。私はシングルマザーになった。ガシッ!ボカッ!アタシは死んだ。

まだ本題に入らないよ!!

シングルマザーとなっては、夫婦の快適さを考えるリソース排除できるので徹底的に母子に集中できる。気がついたら子は中学生になっていた。私もなんとか一般人っぽい層に滑り込めた。数カ月に一度、く◯寿司で豪遊するのが幸せな層や。

そんな中、とにかく残業すれば成果は出る!!の脳筋プレイで働いてたらボーナスが手に入った。ボーナス!!すごい!!どうしよう……将来のために……どうするんだ!?

私に金融リテラシーはない!オルカンとかなんとか世の中は言ってた……気がする。はてなでも【素人はこれをやっとけ】みたいな記事をみた。文章が長くてよくわかんなかった。自分は長い文章を書くのに(デュフフ)

とりあえず、見様見真似で(なんの?)現物っちゅーもんで、個別株に手を出してしまったようだ。その時の私は、割安(PBR?)ってものをダラダラみてた。むしろ、そこしか見てない。

湖◯屋が2500円ちょっとだった。100株購入した。

タ◯ラトミーも1500円だった。100株購入した。

子供を!!笑顔に!!してくれた企業!!!市場から割安の評価!?!なにそれ!?!って気持ちで購入した。ボーナスはなくなった。バイバイ…👋😭

貧乏人の匂いが染み付いた私に、突然の大金はなかったものとするのがよい。株のことは忘れた。

忘れたけど、年1で株主優待がくる。そして子は「もうおもちゃで遊ぶ年齢じゃないけどねw」と笑った。けども、その優待はどういう仕組みなの?って聞いてきた。

仕組み……わからない。ググれカスGPTに聞け……と言いたかったけど、せっかくの会話だ……小さい脳みそから答えをひねり出して、企業支援して、そのお礼なんだよ☆ミみたいなことを言った気がする。

そしたら子は、自分も株がほしい。応援して株でお小遣いを増やす!と言い出した。うひょ

私は『ちょっ待っ!!』止めた。私も株を学ぼうとした結果、学べてないんや。正しく教えられない。

天を仰いだ。

そもそもお金を出そうとする相手、つまりどんな企業かを知る必要があるやろ。知らん人間にぽーんと金を出すか?貧乏人にそんな博打はできん。

なので企業擬人化してゲームにしようと思った(超飛躍)。ちょうど私は人間の男を信じられないフェーズだったので、乙女ゲームにハマっていた。二次元は裏切らない。とは言え、ときメモアルバイトエンディングばかり迎えちゃうwww労働者の鏡www

話を戻そう。企業イケメン化して、会社の特色、株の値動きを性格としたゲームを作ったんだ。

そして投資(会話)による株価の上げ下げが好意パラメータ。噂(インサイダー、流布)で、他企業貶めることもできる。そう、ゲームならね。

肝心のゲーム説明のところで、ちょっと雑になったけど伝われ〜〜

でも、開発しておきながらも「ぜんぜんわからない俺たちは雰囲気で株をやっている」状態だ。

ガチ勢からみたら、何が金融リテラシーを学べるゲームです♥だよ(怒般若)って思うかもしれない。

そして子のために作ったはずが、子が「企業イケメン…って何wwwPalantir?Cloudflare?何それ知らないwwwこんなに株って値動きするの?」って笑ってた。

いいんだ。君の好きなパソコンインターネットそいつらが支えてるんだ。ちょっとだけ、覚えてくれればいい。

結果、子は私のNISA枠を使わせて欲しいと結論を出した。

個別株じゃないんかーい!

みたいな気持ちリリースしました

よろしくお願いします。

▼株カレ

kabukare.vercel.app

ここからは開発とイラストの裏話。

古き良きインターネット老人会おばなので、HTML、素jscssで作ってますjsメモ帳3000行になったときヤバいなと思ったのでCursorを使いました。Cursorを使ってリファクタリングした結果、ダイエットには成功したけど原形(読み方)わからんくなったwとは言え、こんなおばでも、AIの力を借りれてここまで出来るんだなと思った。ちな、おばは、pixivにも生息している絵描きプヲタ民でもあるが、全キャラスチルと立ち絵は体力的に描けない。腱鞘炎肩こりやばい。なので自分草案イラストを読み込ませて、AIの力を借りて絵を出力しました。そして、ゲームバランス。実はおば、過去インターネットサービスで一発屋したんだけど、システムバランスを気にしないでできるものばかりやったんや。でもこのゲームダメや。何度やってもガチホのファストフード男子マーク配当金が強くなってしまう(株としては正解と言えば正解なんだけどね)。四則演算しかしらない数学7点の頭では限界があって、ゲームバランスAI相談しながら作った。どこもかしこAIAIAIとんでもない時代に生きてるな…と思いながらも、この変化を楽しみたいと思いました。

2026-01-11

私がJS結婚するには年収8000必要らしいのですが、やはり無理だと悟りました…😟

おぢさんが大好きなJS存在する確率は、今年年内に異星人とファーストコンタクトするより高いと思うので、そこに希望を賭けます…😟奇跡は起きるのではない起こすもの

2026-01-10

“もってる人”は1月に何をしているのか。科学が示す“引きが強くなる習慣”3選

習慣1. 「初めて」を5つ経験する

通りすがり女性初体験はいつだったか質問するYouTube絶望しました…😟

処女JSしかいないのではないか、いや、JSでも怪しいのではないか…😟

処女厨wとかバカにされても、私は強く主張したい!😟

我々が過酷受験勉強研究レポート論文に明け暮れていたとき彼女たちは一体何をしていたのか?!😟

といわけで、私も5人と初体験したいと思ったのでした…😟

anond:20260109231033

結婚、おめでとうございます…😟

でもさ…😟

毎回ネタが尽きずに朝から夜までお喋りできる。

これ、疲れちゃわない?😟

同居したら、いつまでもワイワイ盛り上がってるわけにもいかないし、

ずっとネタが尽きないようにするために、ネタ仕入れなきゃ、みたいな義務感にもなりかねないので、

個人的には、静かにでも一緒にいて落ち着ける人がいいですね…😟

といわけで、私と一緒に同居して、一緒に落ち着けJSJCJK募集!😟

応募先は画面の下のこのへんに出てます…👇

募集人数は20人ぐらいです…😟ご応募、お待ちしております

2026-01-01

2025年WEB業界求人数の変化

求人ボックス

https://xn--pckua2a7gp15o89zb.com/

技術1月3日5月29日12月29日
Rails22,89131,01128,516
Node.js12,82917,01226,488
Django13,34820,47120,933
Flask1,5891,8271,969
FastAPI1,2101,5412,372
Laravel26,87935,52635,796
Next.js7,38216,73124,635
Spring16,38022,49021,109
React49,46569,42976,752
Vue34,32249,79552,642


ReactとVue凄すぎ

2025-12-20

フロントエンド/Next.jsに詳しい人来てほしい

バックエンド開発だと、main.ts とか main.java みたいなエントリポイント依存リーを頑張って構築するか、DIコンテナを使って解決することが結構多いじゃん?

実行時はそれで組んで、テスト時はコンストラクタ経由でモックDIする、みたいなのが一般的だと思うんだけど。

最近Next.js勉強してて、バックエンドと同じ感覚でこれをやろうとしたら、まあややこしい。

というか、そもそもDIする文化あんまりないよね?

ファイル先頭で直接関数を import してそのまま実行してるけど、それって密結合じゃないの? テスタビリティ低くないの?

って思って調べたら、テスト時は vi.mock とか jest.mock とかを使って、モジュールごと無理やり上書きする方法が主流っぽい。

例えば「テスト対象コンポーネント」と「その孫コンポーネント」が異なるGateway依存していた場合

みたいにする必要があるらしくて、どれも微妙に感じる。

しかも「サーバーコンポーネントクライアントコンポーネント」だとPropsで関数依存)を渡せないから、Context経由でのDIになるっぽいよね?

でもそれだと最上位でDIしたものが最下層のコンポーネントまで全部使えちゃうから、「なんだかなぁ」ってなる。PropsバケツリレーもContextも、どっちもまあまあ面倒くさい。

あとバックエンドだと、こういう「モジュールグローバルに上書きしてテスト」みたいなのって割とアンチパターン扱いされる文化が強いと思うんだけど、フロントエンド界隈だと「そういうもんだ」って割り切るのが普通なのかな?

みんなはどんな感じで単体テスト書いてるの?

2025-12-15

anond:20251215115645

JSサーバーサイドにも導入されるようになったから、他のあれこれと一緒に管理できるように導入されただけ。

2025-12-09

はてなNGフィルタまとめ

はてなブックマーク増田機能する、NGワードを元に記事非表示にする方法をまとめました。

現在機能する方法という観点で調べてみましたが、有力な抜け漏れがあったら教えてください。

はてなフィルター

https://hatenafilter.com/

外部サイト型のはてなブックマーク

はてなNG代替品作った (はてなフィルタ)

anond:20180609124213

ChromeFirefox拡張で、はてなブックマーク有効デフォルト非表示になるサイト多数あり。AndroidならFirefox版が動くかも。

はてブ記事を、キーワードURLミュートする Chrome 拡張を作った (はてなミュート)

anond:20230305200055

はてブ記事キーワードURLミュートする拡張Firefox版も作った

anond:20230311142828

ChromeFirefox拡張で、はてなブックマーク有効AndroidならFirefox版が動くかも。

[はてブ]uBlock Origin特定エントリーを隠す方法メモ

anond:20180523215832

増田でuBlock Originを使って特定単語を含むエントリーを隠す方法メモ

anond:20180523222112

広告ブロック uBlock Origin を使っている場合活用できる。同 Lite 版でも「カスタムフィルター機能を使って対応できる。はてなブックマークだけでなく増田にも有効。面倒だろうけどAndroidならFirefox版が動くかも。

はてなブックマーク増田一覧向けNGフィルタ

anond:20251209224022

Tampermonkeyなどのユーザースクリプト適用する拡張と共に、またはブックマークレットとして使う。はてなブックマーク増田一覧にだけ有効スマホ場合アプリでは動かないが、面倒だけどブラウザでは動くキーワードノイズとなりやすユーザーを中心に常時メンテナンス中。

はてな匿名ダイアリー特定ワード投稿非表示

anond:20251208175027

Tampermonkeyなどのユーザースクリプト適用する拡張と共に使う。増田にだけ有効。面倒だけどスマホでも動く

[増田しぐさ] 増田CSSを紹介する記事(英文スパム対策付き)

anond:20250701235606

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

はてなブックマーク増田一覧向けNGフィルタ

はてなブックマーク増田一覧の、さらに「すべて」(1 user)をチェックしている希有な人向けのユーザースクリプトを公開します。

https://b.hatena.ne.jp/site/anond.hatelabo.jp/?sort=eid

// ==UserScript==
// @name        Hatena Bookmark Anond Filter
// @namespace   https://b.hatena.ne.jp/site/anond.hatelabo.jp/
// @description はてなブックマークの『はてな匿名ダイアリー』の記事のうち、指定したNGワードが含まれ投稿非表示します。
// @match       https://b.hatena.ne.jp/site/anond.hatelabo.jp/*
// @grant       none
// @version     2.0.2026.01.21.0011
// ==/UserScript==

(function(){
  const SCRIPTID = 'HatenaBookmarkAnondFilter';
  console.time(SCRIPTID);
  const CLASSNAME = 'filtered';/*フィルタ該当要素*/
  const CHECKED = 'checked';/*二重チェック回避フラグ*/
  const ONCE = 1, AP = 2, INTERVAL = 3;/*適用タイミング*/
  const NGWORDS = {/* 合計100ポイント非表示判定(ただし1つの記事内で同じワード複数使われても1度しか加算しない) */
    '100': [/*即NG確定ワード*/
      'dorawii',
      'あおやまちゃん', 'ボスマン', 'MNK',
      '電気通信大学たいてい', 'なんぴょん', 'れめくん', 'リュックサック野郎', 'boushi_inst', 'hakaikami', 'Rekyu', 'iloveootaku_2',/*電気通信大学たいてい鉄道研究会れめくん(頻出)*/
      /*A-G*/'a9w8ru6fqyxqfv9', 'admirail_togo', 'akibakko6348', 'alf1974al', 'amatukiseiru', 'anapgoeson', 'aoi_mizuho', 'asapgoeson', 'asupgoeson', 'b6jbpsji91ieigt', 'bmi22yo', 'boushi_ob', 'buscholarx', 'bw0531', 'circlecavok', 'disney1007cla', 'dora22sibuya', 'donkotrain', 'ecotosk', 'electlone', 'factomodachi', 'fft_dareka', 'gmhtcyznf_abc', 'goesonanap', 'gyudon_honmono',
      /*H-N*/'h13_yokohama', 'h2twi', 'H2TWR', 'hamaishogo1111', 'haru_mofumoffu', 'hermitv8', 'hirabiscus', 'hinolovelove', 'hnmk0127_03', 'inaken17_', 'inte235dy', 'ixtabes', 'jamcombatge', 'kawachiasukanew', 'kaoru_ai1991', 'keio9730F', 'kiha2228', 'koreanlabsfc', 'koyounoyooko', 'kqlex1500', 'kurakamasan', 'kurotamaxxx', 'kt_ruma_1372', 'lightningreen77', 'mamadoll_kun', 'matya_uec', 'minamihinawot', 'minori0151', 'monkichi_22', 'mugen_08i', 'mukoroku651', 'nakano6409', 'nanpyong', 'new_oer', 'nimouec', 'NoName_thUFO', 'norannnde',
      /*O-U*/'oreizmmiporin', 'orenotanoshimi', 'osaka_sirokichi', 'papepoco', 'pasotokon', 'pm95uq', 'reme_kun', 'ruin_2002', 's03_amurtk2731', 'sacchan03110319', 'seisu_bot', 'senanana_cos', 'shinano_115', 'shineleaf1372', 'shop_bullet', 'shurimpy', 'soroisoroi', 'sui_pm95uq', 'sweidan821858', 'taiyaki_level2', 'takao_straight5', 'taking0000', 'tarotaromusic1', 'tc201_501', 'tocarbarn', 'toshikimiyazaki', 'train_magician', 'tx9y2cpwdz27255', 'u2fap5u4zw57811', 'uec15take', 'uecrail',
      /*V-Z_0-9*/'vampire_mio', 'vbdmnwefknmxsdm', 'vp20th', 'wafue', 'wakasato_', 'walkingniwatori', 'wataameexpress', 'ya4975349616894', 'ymbk_arisa', 'yms_uec16', 'yuuya_1104_uec', '__________ob', '_chocorail_', '_doitforthewin_', '_toeshin', '_unigmo', '100mph_no_yuuki', '169_D51_protect', '2969364x', '2rtkvn34il2783', '36kyo', '86lilxw1',
      /*tadaup.jp*/'1dOaKWk3.jpeg', '1sL2VBZ5.jpeg', '1uNK2iEP.jpeg', 'CBUHadpD.jpeg', 'CgJlF4Wr.jpeg', 'CGTtm0Ev.jpeg', 'CIxj8clS.jpeg', 'CqbERPdQ.jpeg', 'CTZsA2wM.jpeg', 'CWY2m7rS.jpeg', 'CZVCEgd1.jpeg',
      'テクウヨ', '自己放尿',
      ' ーーーーーーーー', 'https://anond.hatelabo.jp/20260107144223',/*AI問答貼り付け増田*/
      '†噛み締めて行こうな†',
      '困難女性(コンジョ)', '困難女性(コンジョ)',
    ],
    '90': [/*ほぼNGだが確定ワード必要*/
      'https://megalodon.jp/',
    ],
    '10': [/*ほぼNGの確定ワード*/
      '電気通信大学',
      '電通大',
      '駿河台大学',
      '学生課',
      '教務課',
      '鉄道研究会',
      '鉄研',
      '通勤特快',
      '不正乗車',
      '性慾',
      '穢い',
      'エッタ',
      'キセル',
      'uec',
    ],
  };
  const sites = {
    'prefix': [
      ['selector', '(modifier)', '(css)', '(REPEAT)'],
    ],
    'https://b.hatena.ne.jp/site/anond.hatelabo.jp/': [
      ['section.entrylist-unit li.js-keyboard-selectable-item', li => {li.querySelector('li.entrylist-contents-category > a').textContent = li.dataset.matches}, `.${CLASSNAME}{display: none;}`, AP],
    ],
  };
  const rules = sites[Object.keys(sites).find(prefix => location.href.startsWith(prefix))];
  if(rules === undefined) return console.log(SCRIPTID, 'Not found any sites.');
  const scores = Object.keys(NGWORDS).map(Number).reverse();/*数値インデックス順に取り出されたkeysを逆順にして100から並べ直す*/
  const filter = function(selector, modifier){/*各要素に対してNGワード判定して、該当したら追加でmodifierも適用する*/
    document.querySelectorAll(selector).forEach(e => {
      if(e.dataset[CHECKED]) return;
      e.dataset[CHECKED] = 'true';
      const text = e.textContent.toLowerCase();
      let total = 0, matches = [];
      for(const score of scores){
        for(const word of NGWORDS[String(score)]){
          if(text.includes(word.toLowerCase())){
            total += score;
            matches.push(word);
            if(total >= 100){
              e.classList.add(CLASSNAME);
              e.dataset.matches = matches.join(', ');
              if(modifier) modifier(e);
              return;
            }
          }
        }
      }
    });
  };
  /* ONCE(一括適用) */
  rules.forEach(rule => {
    const [selector, modifier, css] = rule;
    console.log(SCRIPTID, 'ONCE:', selector);
    filter(selector, modifier);
    if(css){
      const style = document.createElement('style');
      style.dataset.script = SCRIPTID;
      style.type = 'text/css';
      style.textContent = css;
      document.head.appendChild(style);
    }
  });
  /* AP(AutoPagerize) */
  rules.filter(rule => rule[3] === AP).forEach(rule => {
    const [selector, modifier] = rule;
    document.addEventListener('GM_AutoPagerizeNextPageLoaded', e => {
      console.log(SCRIPTID, 'AP:', selector);
      filter(selector, modifier);
    });
  });
  /* INTERVAL */
  rules.filter(rule => rule[3] === INTERVAL).forEach(rule => {
    const [selector, modifier] = rule;
    setInterval(function(){
      console.log(SCRIPTID, 'INTERVAL:', selector);
      filter(selector, modifier);
    }, 1000);
  });
  console.timeEnd(SCRIPTID);
})();
/* Hatena Bookmark Anond Filter */
.filtered{
  display: block !important;/*上書き*/
  opacity: .25 !important;
}
.filtered:hover{
  opacity: .75 !important;
}
.filtered li.entrylist-contents-category{
  background: red !important;
  font-weight: bold;
}

検索用: はてなブックマーク はてブ はてな匿名ダイアリー 増田 スパム キーワード NGワード フィルタミュー非表示 削除 隠す ブロック ユーザースクリプト ユーザースタイル hatena bookmark anond spam keywords ngwords filter mute hide hidden display none block userscript JavaScript js css style

2025-12-04

久しぶりにブックマークレットjs使ってwebページ内の必要ものを取り出したり、表示させなくしたり、

そういうのやろうかなって思ったけど、

css操作だけならChromeプラグインがあってそっちで簡単に実現してしまうんだな

プログラムっていうのは無いものは作る精神が一番趣味として楽しいし色々知識も増えると思うけど

今は探したら大抵のものはありそうで一気にやる気がなくなるな

2025-11-14

jsのgetMonth()がキショすぎる

なんで1ズレてるんや。メリットなさすぎるやろ。

2025-11-06

anond:20251106215727

ほぉ。まるで「ライブラリ移植なんて余裕っすよ」と言わんばかりの口ぶりだな。お前、自己放尿レベル気持ちよくなってるが、現実を何も理解してねぇぞ。

いか。「同じ機能移植するだけ」って発想がそもそも低能証拠だ。Pythonの強みは言語としての表面構文じゃなく、生態系として積み重なった最適化と実績だ。

NumPyやPandas、Scikit-learn、PyTorch、全部C/C++Fortran実装Pythonバインディングで何層もラップしてる。

しかメモリ管理スレッドセーフティBLAS最適化GPUオフロード、それらを組み合わせたとき挙動の安定性まで含めてライブラリって呼ぶんだよ。

「決まったインターフェース移植するだけ」とか言ってる時点で、頭の中で想定してるライブラリが、せいぜい数千行のユーティリティレベルだろう。

企業が内部で作るって?そりゃ車輪の再発明だよ。しかも、Python10年かけて磨き上げたアルゴリズム最適化を、数ヶ月の業務開発で再現できるとでも?寝言は夜だけにしろ

あと、「いまどきの言語ならそんな大変じゃない」って、まるでNode.jsがCythonやNumbaのようなネイティブ統合の層を持ってるかのように錯覚してるのが痛い。

V8JIT高速化できるのはせいぜいスクリプトレベルの話。数値演算メモリアクセススレッド制御最適化できる数学的基盤の厚みがまるで違うんだよ。

Nodeで同じことをやろうとしたら、JSからC++アドオン叩いて、型変換のコスト死ぬだけ。

まり、「移植できるだろ」って発言は、Python生態系を単なるコード群だと思ってる愚か者自己放尿なんだよ。

それは「パルスジェットなら自作できるだろ」と言ってる鉄クズコレクターと同レベル。動くかもしれんが、効率も精度も再現性も自己放尿レベル

Node.js厨が「Pythonライブラリ移植できる」とか言うのは、「俺でもベートーベン交響曲ぐらい耳コピできる」と言ってる音感ゼロ自己放尿芸だ。

見てる側からすりゃ笑いのネタにもならねぇ。

git worktree 軽量プロジェクトならいいけど、node_modulesがっつりのプロジェクトとかディスク容量食い過ぎってならん?

js/node/npmがクソって話なんだけど

2025-11-02

Downtown+を予想しよう

AWS

Node.js

Mongo.DB

JWC

WebRTC

React native

Next.js

2025-10-22

自分ホームページを作ったかどうかでWEBの見え方が180度以上違う話

以下ChatGPT

自分ホームページ(自前ドメイン+自前HTML)を一度でも作って運用すると、SNS中心の“受け手視点から仕様検索配信・所有・継続の“作り手”視点に脳が切り替わる。結果、情報リテラシーは跳ね上がり、ネットニュース流行の見え方が根本から変わる——しか想像以上に。

1. “タイムラインからアーキテクチャ”へ

Before(作る前): WebSNSタイムライン。良し悪しは「バズってるか」「見やすいか

After(作った後): WebプロトコルブラウザHTML/CSS/JSCDN検索エンジン。

ページは**文書(Document)**であり、配置(IA)、意味づけ(セマンティクス)、配信HTTP/HTTPS/HTTP/2/3)、キャッシュ戦略が気になりだす。

→ 同じ記事でも「タイトルの付け方」「hタグ構造」「画像最適化」「OGP」「サイトマップ」がまず目に入るようになる。

2. “アルゴリズム運”から“所有と積み上げ”へ

プラットフォーム依存の脆さを体感規約変更やシャドウバン露出が消える。

サイト資産化:ドメインに紐づくURLリンクされ、検索に積み上がり、10年後も生きる。

POSSE(Publish (on your) Own Site, Syndicate Elsewhere):まず自分サイトに出してから外部へ配信する習慣が身につく。

3. “好き/嫌い”から“なぜ速い・なぜ遅い”へ

Core Web Vitals(LCP/FID/CLS)や画像の遅延読み込み、フォント最適化重要性が腹落ちする。

広告・計測タグの重さに過敏になる。読者体験を壊さないためのパフォーマンス予算という概念生まれる。

4. “なんとなくSEOから情報設計×検索意図”へ

キーワード選定は“流入ゲーム”ではなく読者の課題コンテンツ設計帰着

内部リンクパンくず・スキーマ構造データ)・サイトマップ意味が実務として理解できる。

“書けば伸びる”ではなく“検索意図を満たす設計が伸びる”に目が覚める。

5. “見た目”から意味アクセシビリティ)”へ

alt見出し階層コントラスト比、キーボード操作、焦点管理など、見えない品質が最重要になる。

デザインは飾りではなく“読み・理解操作”のためのユーティリティだと分かる。

6. “PV至上”から継続コミュニティ”へ

たまたま当たる1記事より、更新継続アーカイブ性・RSSのほうが効くと実感。

コメント欄メールフォーム・X連携よりも、ニュースレターRSS購読者の質に価値を見出す。

7. “無料神話からコスト責任”へ

ドメインDNS証明書バックアップ法務特商法プライバシーポリシー)に“運用者の責任”が生まれる。

その重みが情報信頼性を引き上げる(=他人サイトの苦労も見えるようになる)。

8. “トレンド追従から自分OSを持つ”へ

サイト思想作品OS

トレンドは“輸入”ではなく選別になる。自分歴史に合うものだけを採用して積層していける。

9. まず一歩:最小スタックで“今夜リリース”する

Node.jsを避けたい人向けに、極小構成OK

A. 最小HTML(雛形)

<html lang="ja">

<head>

<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">

</head>

<body>

<header>

<h1>あなた名前</h1>

<nav>Home / About / Posts</nav>

</header>

<main>

<article>

<h2>はじめまして</h2>

ここからすべてを自分URLに積み上げます

</article>

</main>

<footer>© 2025 あなた名前</footer>

</body>

</html>

B. ホスティング無料~低コスト

GitHub Pages(Jekyll標準。Rubyベース、Node不要

Cloudflare Pages(静的ファイルを置くだけで高速CDN

レンタルサーバー(静的HTML+SFTP/rsyncで十分)

C. ドメインの基本

覚えやすい短さ+ローマ字。将来10年使える名前に。

DNSA/AAAA/CAA/TXT最低限、HTTPS必須Let’s Encrypt無料化)。

D. “最低限の品質チェック”5点

タイトル・description見出し一貫性

画像は適切なサイズalt

モバイルでの可読性(文字サイズ行間

OGPが効いているか(XやLINEURLを貼って確認

RSS/更新履歴の有無(継続を前提に)

10. 一歩先へ:運用で差がつく“3つの習慣”

ログを読む:Search Consoleと簡易アクセスログで“本文よりメタ情報”を磨く。

アーカイブ主義記事追記更新URLは変えない。Versioningを意識

POSSE徹底:自サイトに公開→SNSには要約+リンク本体は常に自分土俵

2025-10-21

「dorawii」を含む投稿非表示にするJavaScript

dorawiiがタイトルに「dorawii」と入れなくなったので、本文にdorawiiがある投稿非表示にする必要が出てきました。

ただAIに聞いたんだけど、CSSでは無理でJavaScriptならできると言われました。

そのJavaScriptを下に載せます

// ==UserScript==

// @name はてな匿名ダイアリー特定ワード投稿非表示

// @namespace http://tampermonkey.net/

// @version 0.1

// @description 本文に「dorawii」が含まれ投稿非表示にする

// @match https://anond.hatelabo.jp/*

// @grant none

// ==/UserScript==

(function() {

'use strict';

// 投稿全体を囲む要素のセレクタに置き換えてください

// はてな匿名ダイアリー一般的投稿要素のクラス仮定しています

const POST_SELECTOR = '.body .section'; // 例: .bodyクラスの子孫の.section要素

// 非表示にしたいキーワード

const KEYWORD = 'dorawii';

// すべての投稿要素を取得

const posts = document.querySelectorAll(POST_SELECTOR);

posts.forEach(post => {

// 投稿内の本文が含まれる要素(ここでは投稿全体を本文と見なす)のテキストを取得

const textContent = post.textContent || post.innerText;

// キーワードが含まれいるかチェック

if (textContent.includes(KEYWORD)) {

// キーワードが含まれていれば非表示にする

post.style.display = 'none';

}

});

})();

自分iPhoneなので、Makeoverというアプリを入れて、JSの部分に上のを貼り付けてます

なんか複雑だし、もっと良い方法があるなら教えてください!

なんでdorawiiのためにこんなことしなきゃいけないんだよ!迷惑千万

2025-10-14

静的サイト生成

かにある?

MkDocs、UmiJS、Eleventy、SvelteKit、mdBook、Pelican、React Static、ZolaFresh、Gridea、Gridsome、Metalsmith、Sapper.js, Honkit

https://youtube.com/shorts/q3TAeao1VoE

https://b.hatena.ne.jp/entry/s/frantic.im/remix-3/

機能存在すると "使い倒さないといけない" or "使い倒さないなら一流でない" と考える "謎の集団" が存在して、そういう声に流されてるからv18以降の機能追加に拒否反応を示してるんじゃないの

あるいは "ベストプラクティス義務である" みたいな謎の強迫観念を持っているとか…

Next.jsを勧めるわけではない(自分仕事ではNext.jsプライベートRemix v2ユーザーである)が、Next.js使用した上でもv18以降の機能使用はほぼ全てオプションだよ


ただ、Reactの開発がNext.jsに毒されていて本筋から外れている感じは否定しない

ここから来る害があるとしたら、非Next.jsユーザーからするとv18以降のReactは特に発展していないということだろう

トランジションAPI自動メモ化とか便利だし恩恵0ってのは極論すぎると思うが

2025-10-13

静的サイトジェネレーター

Astro、Hugo、Docusaurus、Next.jsGatsby、Jekyll、Nuxt.js、Hexo、Slate、GitBook、Docsify、VuePress

https://youtube.com/shorts/rKjsPS2L9Zk

dorawii@執筆依頼募集中

「フラッペとか言ってるようなやつだからな」みたいな、前の増田スタバでフラッペ飲んだと書いてたことを明らかに踏まえたような馬鹿にしたトラバがついてそれに反論し続けて今に至る俺を馬鹿にする流れができてるから、お前らがいじるのは俺がフラッペと言ったことと関係あるのかって言ってるんだよ

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

https://anond.hatelabo.jp/20251013191651# 
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaOzRlQAKCRBwMdsubs4+
SI1VAPsF7Fqc4VhlxZ7Ug+0qyA131Y1hCSkwhG585kOpj8cFUgD/ZLYDHPq0XfVe
js/VHA1jNfh62E8T50Loqd8TLYgTbgE=
=Q/B7
-----END PGP SIGNATURE-----

2025-10-07

フロントエンドエンジニアが完全にオワコンになった件

もうUIはいらない。

この一言に尽きる。

ChatGPTの新機能「Apps in ChatGPT」が登場した瞬間、フロントエンドという職種地盤は音を立てて崩れた。

これまでは、Webアプリサービスは「フロントエンドUIを作り、バックエンドデータを返す」

という分業構造の上に成り立っていた。

だがApps in ChatGPTは、その構造をぶち壊す。

ユーザーはもうWebサイトを開かない。

ChatGPTのチャット画面内でSpotify操作し、Zillowで物件を探しEtsyで買い物をする。

まりUIはChatGPT内に統合される。

あなたが書いてきたReactコンポーネントボタンフォームもすべてAIに吸収される。

UI」はAI自動生成する時代に入った

もはやユーザーブラウザ必要としない。URLコピペすることも無くなるだろう。

「このホテル予約して」と言うだけでAIAPIを呼び、レスポンスカルーセル形式提示する。

人間HTMLを書く必要はどこにもない。

UIは書くものではなくAIが描くものに変わった。

もうフロントエンド価値ゼロになる。

ReactもNext.jsも「人間が画面を操作する前提」で存在していた。

でもその前提はもう終わった。

AIデータを直接受け取り、AI自身人間に見せるUI自動生成する。

あなた設計した美しいフォームAIにとってはただの "action": "submit" という構造情報にすぎない。

見た目を整える仕事 は全自動化される。

人間の手でフロントを作る時代は終わった。

Apps in ChatGPT以降の世界では、

重要なのはAI理解できる構造を返すこと」だ。

まりJSONやGraphQLやREST API

これらが新しいUIだ。

AIにとってのUIは「データ構造」そのものだ。

からこれから必要なのは「見た目を作る人」ではなく、AIが読み取れる形式世界記述できる人 だ。

バックエンドに戻れ。

構造設計できない者は消える。

Apps in ChatGPTが意味するのは、

UI不要構造APIけが残る」という冷酷な事実だ。

もうHTMLを描くな。API設計しろ

フロントを磨くな。AIに読ませろ。

今後必要なのはAIが扱いやすデータスキーマ定義する力や認証権限トランザクション安全に扱う力やMCPWeb APIAIが使いやすい形に整える力だ。

まり、「AI時代バックエンドエンジニアリング」だ。

これは警告だ。猶予は短い。

Apps in ChatGPTの登場は、「AIUIを直接扱い始めた」という歴史的転換点だ。

もうWebサイトを作る必要はない。

AIがその役割を奪った。

あなたフロントにしがみつく間に、AIはすでにあなたの代わりにUIを描いている。

5年後にはブラウザから色んなサイトアクセスするという行為は一部のマニアだけ行うものになっているだろう。

もう時間はないぞ。急げ

ログイン ユーザー登録
ようこそ ゲスト さん