Fizz Buzz in CSS

2025/12/06 5:18

Fizz Buzz in CSS

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

記事では、JavaScriptや外部テキストを一切使用せずに、純粋な CSS だけでクラシックな FizzBuzz シーケンス(3 の倍数を「Fizz」、5 の倍数を「Buzz」、両方の倍数を「FizzBuzz」に置き換える)を生成する方法を示しています。カウンタ、疑似要素、および

:nth-child
セレクタを用いて数字と文字列を自動的に生成する、4 行からなるコンパクトな CSS スニペットが提示されています。この解決策は極めて簡潔であり、ミニファイド版ではちょうど 152 文字となっているため、短さを追求するコード・ゴルフ愛好家にとって魅力的です。完全に動作する例(
css-fizz-buzz.html
)が利用可能で、著者はさらに圧縮できることも指摘しています。読者にはより短いバージョンを提出していただくよう呼びかけており、トリックの改良に向けた継続的なコミュニティ活動が示唆されています。また、この投稿は「Cosines を使った Fizz Buzz」という関連トピックにも言及しています。

本文

Susam Pal 著 – 2025年12月6日

CSSだけで「Fizz‑Buzz」列を作る最小のコードは何でしょうか?
もちろん、HTML本文にテキストとしてすべてを書けば CSS は不要です。
しかし問題を明確にし、面白く保つためには、出力される数値や文字列が CSS から直接生成されなければならないという条件を課します。
スタイルシート外で数字や語句を書き込んだり、JavaScript を使ったりすることは許可されません。

この制約の下では、以下のようにわずか4行の CSS で実装できます:

li { counter-increment: n }
li:not(:nth-child(5n))::before { content: counter(n) }
li:nth-child(3n)::before   { content: "Fizz" }
li:nth-child(5n)::after    { content: "Buzz" }

完全に動作するサンプルは css‑fizz‑buzz.html です。

私はウェブ開発者でもコードゴフラーでもありません。
挑戦を求める熟練のコードゴフラーなら、さらに短くできるかもしれませんが、 CSS は一行にまとめられるため「行数」で評価する人は多いでしょう。
文字数の方が実際には意味深い指標です。
以下のコマンドで余分な空白を除去すれば、わずか 152 文字に縮約できます。

$ curl -sS https://susam.net/css-fizz-buzz.html | sed -n '/counter/,/after/p' | tr -d '[:space:]'
li{counter-increment:n}li:not(:nth-child(5n))::before{content:counter(n)}li:nth-child(3n)::before{content:"Fizz"}li:nth-child(5n)::after{content:"Buzz"}

そして文字数確認:

$ curl -sS https://susam.net/css-fizz-buzz.html | sed -n '/counter/,/after/p' | tr -d '[:space:]' | wc -c
152

もしもっと短い解決策を作れたら、ぜひコメントで教えてください。

関連リンク: Cosine を使った Fizz‑Buzz

同じ日のほかのニュース

一覧に戻る →

2025/11/30 18:11

Self-hosting my photos with Immich

## Japanese Translation: 記事では、著者が低電力Ryzen 7ミニPC(ASRock DeskMini X600)に64 GB RAM、1 TBディスクを搭載し、アイドル時の消費電力が10 W未満である環境にImmichをセットアップした手順を説明しています。Proxmox上に「photos」という名前のVMを作成し、500 GBのストレージ、4つのCPUコア、4 GB RAMを割り当てました。NixOS設定ファイルで `services.immich.enable = true` を有効化してImmichサービスを起動します。このサービスは `tailscale serve --bg http://localhost:2283` コマンドと MagicDNS/TLS によりTailscale経由で公開され、`https://photos.example.ts.net` からアクセス可能です。 公式の `immich‑cli` を使用した初期写真インポートでは、バックグラウンドジョブがタイムアウトし、Google Takeout のJSONメタデータが無視されるという問題が発生しました。第三者ツール **immich-go** が両方の問題を解決します。`immich-go upload from-google-photos …` を実行することでバックグラウンドタスクを一時停止し、Google Takeout アーカイブを正しく処理できます。その後、iPhoneアプリはTailscale URL経由でログインし、自動アップロードが有効化され、通知は無効にしてアップロードアラートを防止します。 バックアップについては、著者はsystemdタイマーを使用して `/var/lib/immich`(UPLOAD_LOCATION)ディレクトリ全体を rsync で3‑2‑1戦略で同期する予定です。これはImmichの公式ドキュメントに従った方法です。記事では、Immichには組み込みの写真編集機能がないため、ユーザーはGIMPなど外部ツールを使用しなければならず、共有もまだGoogle Photos経由で行われると指摘しています。Enteと比較して、著者は既存のTailscale VPNとLUKSディスク暗号化が十分なセキュリティを提供するため、エンドツーエンド暗号化を必要としないImmichを好んでいます。 総じて、このセットアップは小型かつ省電力マシン上で高速で信頼性の高いセルフホスト写真保存ソリューションを実現しており、外部編集ワークフローを受け入れられる趣味家や小規模ビジネスに適しています。

2025/12/06 12:32

Nook Browser

## Japanese Translation: > **概要:** > 製品「Browse」はプライバシーを最優先としたオープンソースのウェブブラウザで、ユーザーのデータが販売または追跡されることは決してないと約束しています。WebKit エンジンをベースに構築されており、高速なパフォーマンスと最小限のシステムオーバーヘッドを実現しながら、インターフェイスはクリーンで侵入的なポップアップがありません。チャット支援や要約、最新のウェブ情報などの AI 機能は、ユーザーが明示的に選択した場合のみ利用可能です。コードベース全体が公開されており、パーミッシブ ライセンスでリリースされています。また、コミュニティ主導のロードマップに従い、新しいツールを追加する前に安定性を優先しています。設定はユーザーが理解しやすく、逆行可能(戻せる)ように設計されています。FAQ セクションでは、これらのポイント以外に独自の情報は提供されていません。 このバージョンは主要なポイントをすべて保持し、業界への影響についての推測を削除し、設定の逆行性と FAQ の内容に関する欠落した詳細を追加しています。

2025/12/06 0:35

Cloudflare outage on December 5, 2025

## Japanese Translation: ``` ## Summary Cloudflare の 2025 年 12 月 5 日の障害は約 25 分間続きました。 08:47 UTC にネットワークセグメントが故障を開始し、08:50 UTC に完全な影響に達し、09:12 UTC に問題が解決しました。 全 HTTP トラフィックの約 28 %(古い FL1 プロキシと Managed Rulesets を使用している顧客)がエラーを経験しましたが、中国ネットワークトラフィックは影響を受けませんでした。 障害は、CVE‑2025‑55182(React Server Components の脆弱性)を修正するために意図された二つの急速なコード変更によって引き起こされました。 まず、WAF バッファサイズが 128 KB から 1 MB に増加し、段階的に展開されました。 次に、グローバル設定更新で内部 WAF テストツールが無効化され、FL1 のルールモジュールで Lua エラー(`attempt to index field 'execute' (a nil value)`)を引き起こし、HTTP 500 応答を生成しました。 このバグは何年も存在していましたが、「execute」ルールのキースイッチが execute フィールドが欠落した際に処理するコードを回避したために露呈しました。 同様で大規模なインシデントが 2025 年 11 月 18 日にも発生しました。 Cloudflare はロールアウト手順の強化、バージョン管理制御の追加、ブレイクグラスアクセスの簡素化、およびフェイルオープンエラーハンドリングの実装に取り組んでいます。詳細なレジリエンシー計画は来週公開される予定であり、新しい緩和策が稼働するまでネットワーク変更は停止されたままです。 この出来事は、大規模 CDN 運用における厳格な変更管理の必要性を強調し、迅速展開保護策に関する業界全体での見直しを促す可能性があります。 ```