クエリ文字列の使用を禁止しています。

2026/05/10 1:28

クエリ文字列の使用を禁止しています。

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

要約

Japanese Translation:

chrismorgan.info からの主要な更新は、このドメインへのリンクを通じて追加される非公式な追跡コード(UTM パラメータや ref タグなど)に対して、外部ウェブサイトに対する厳格な禁止である。以前は

ref=
utm_source
のような紹介タグを許容していたが、URL の完全性を所有権のない entity によって損なうべきではないという個人的信念から、これらのサードパーティによる追加に対して無条件の拒否を敷くようになった。このポリシーは技術的に site の Caddyfile 設定を通じて施行され、認識されないクエリ文字列を含むリンクは永続的にブロックされる。例外として特定の履歴パラメータである
?t=…
および
?h=…
は存在するが、これらは CSS シーツを正しく読み込むことを保証するためだけに機能しており、現在では破損している。結果として、このドメインへの帰属タグに依存したマーケティングキャンペーンは失敗し、ユーザーがそのような非承認のリンクをクリックすると、機能的な障害やセキュリティ上の拒否に直面する可能性がある。著者が将来的に公式に特定のパラメータを採用するように自らのサイト設定を変更しない限り、すべての入ってくるリンクは正常に機能するためには余計なコードなしでクリーンである必要がある。

本文

🗓️ 2026-05-08 • カテゴリ /web、/opinions、/meta(のみ)

URL にトラッキング機能を追加するのは嫌です。ましてや、私の URL に誰かが勝手にトラッキング情報を加えるのは尚更嫌です:https://chrismorgan.info/no-query-strings?ref=example.com という形式のリンクを見てみなさい、と聞いたことがありますか?もし私がそうした情報を欲しがっているなら、Referer ヘッダーを確認すれば良いでしょう。それが存在しない場合、それには理由があるはずです。あなたはユーザーを悪用してそのようなものをリンクに付け加えていますよ:https://chrismorgan.info/no-query-strings?utm_source=example&utm_&c.?あれはもっとひどいですね!UTM パラメータは私が使用するためにあるもので、あなたが勝手に使うものではありません。私の URL は触らないでください。

そこで、私はこのサイトに対して全面的な禁止措置を導入することを決定しました:未承認のクエリ文字列の利用を許可しません。現時点では、私はクエリ文字列を使用しておりません。将来的にクエリ文字列の使用を開始する際には、既知のパラメータのみを許可します。(過去には ?t=… や ?h=… のようなキャッシュ破棄用 URL をスタイルシートに対して使用していた時期もありますが、そのようなリクエストをブロックすることについては問題ないと判断しています。正当な用途は存在しないはずです。)

「クエリ文字列を追加してみたらどうなるか」を知りたいですか?どうぞ試してみてください。これは私のウェブサイトです。私がしたい放題です。あなたもあなたのサイトでは同じことをできます!現在、この制限は Caddyfile に実装されています。

同じ日のほかのニュース

一覧に戻る →

2026/05/09 21:00

スイス・インターネット・アーカイブ

## Japanese Translation: インターネット・アーカイブは、デジタル保存とすべての知識への普遍的アクセスというミッションを設立者ブルースター・カールが 30 年前に定めた、独立した非営利財団としてスイスのセント・ガレンに本部を置く「Internet Archive Switzerland」を立ち上げました。このハブは、カナダやヨーロッパなどを含むグローバルネットワーク内で活動し、セント・ガレンに千年以上の学術的アーカイビングとイノベーションの伝統を持つことを活用して、レジリエントな地域図書館を創出します。初期の取り組みでは、危機にあるグローバルなアーカイブを保存すること、および現在の生成 AI の波に関連するデジタルコンテンツを収集することに注力します。重要なパートナーシップとして、ダミアン・ボース教授を率いるセント・ガレン大学工学部のコンピューターサイエンス学科との連携により、急速に進化する AI モデル向けの基準を確立する専門的な「Gen AI Archive」を設立します。これらの取り組みはさらに発展し、2026 年 11 月にパリで開催予定のユネスコ会議において、危機にあるアーカイブに対する保護方法について議論される予定です。実行責任者であるローマン・グリースフェルダー氏は、セント・ガレンが文化遺産に関して「安定性とイノベーションは両輪」と述べ、ユニークに安定性とイノベーションのバランスを維持していると指摘します。新しい財団は、より広範なグローバル使命に奉仕する地元のデジタル歴史保存にとって強力な先例を設定します。詳細は https://internetarchive.ch/ でアクセス可能です。 ## Text to translate: The Internet Archive has launched Internet Archive Switzerland, a new independent non-profit foundation based in St. Gallen dedicated to digital preservation and universal access to all knowledge—a mission established by founder Brewster Kahle 30 years ago. Operating within a global network that includes Internet Archive Canada and Europe, this hub leverages St. Gallen's thousand-year tradition of scholarly archiving and innovation to create a resilient regional library. Initial work will focus on saving endangered global archives and collecting digital content related to the current generative AI wave. A key partnership with the University of St. Gallen's School of Computer Science, led by Professor Damian Borth, will establish a specialized Gen AI Archive to set standards for rapidly evolving AI models. These efforts will be further explored at a UNESCO conference in November 2026 in Paris regarding protection methods for endangered archives. Executive Director Roman Griesfelder notes that St. Gallen uniquely balances stability with innovation, stating, "stability and innovation go hand in hand" regarding cultural heritage. The new foundation sets a powerful precedent for local digital history preservation serving a broader global mission, accessible at https://internetarchive.ch/.

2026/05/10 2:52

Show HN: Go で作成した、Clojure に似た言語を公開します。起動までの時間はわずか 7 ミリ秒です。

## Japanese Translation: Let-go は、Clojure に類似する言語のために設計されたバイトコードコンパイラおよび仮想マシンであり、同ファミリー内で最小で最も起動が速い選択肢を目指しています。コードを外部インフラストラクチャなしで動作するスタンドアロンのバイナリまたは WebAssembly アプリケーションに直接コンパイルします。主要なパフォーマンス指標には、約 10MB のバイナリサイズ、約 6-7ms のコールドスタート、低いアイドルメモリ使用量(約 14MB)が含まれ、これにより Babashka、GraalVM native、Joker、標準的な JVM 環境と比較して著しく小さく高速化しています。 このツールは、`core`、`core.async`、HTTP、JSON などのほぼすべてのコア Clojure ライブラリ(マクロ、プロトコル、トランスデューサー、永続データ構造など)をサポートし、標準的な `clojure-test-suite` の 95.4% を通過する強力な互換性を提供します。`core.async` チャンネル、HTTP サーバー、JSON/Transit、IO、およびバイナリプロトコル経由の Babashka pod の読み込み(データベース、AWS、Docker など)を含む「ボックスセット」機能をサポートしています。高度な機能としては、Go との相互運用性があり、Go アプリケーションへの埋め込みをサポートし、機能マッピングと双方向の呼び出しを可能にします。 展開オプションは柔軟です:ユーザーは Homebrew または Go モジュールを使用して自己完結型のバイナリを作成したり、ターミナルエミュレーションを含むブラウザ実行のための WebAssembly にコンパイルしたり、Emacs、VS Code、Neovim などのリッチなエディタサポートのための nREPL サーバーを利用できます。非常に効率的ですが、標準的な Clojure/Java ランタイムに見られる特定の機能(Refs/STM は atoms+channels で置き換えられ、Spec、`deftype`、読み込みタグ付きリテラル `#inst` など)は除外されています。 ## Text to translate: ## Summary: Let-go is a bytecode compiler and virtual machine for a language resembling Clojure, designed to be the smallest and fastest-starting option in the family. It compiles code directly into standalone binaries or WebAssembly applications that require no external infrastructure to run. Key performance metrics include a ~10MB binary with approximately 6-7ms cold starts and low idle memory usage (~14MB), making it significantly smaller and faster than alternatives like Babashka, GraalVM native, Joker, and standard JVM environments. The tool offers robust compatibility by supporting nearly all core Clojure libraries (including `core`, `core.async`, HTTP, JSON) and features like macros, protocols, transducers, and persistent data structures, passing 95.4% of the standard `clojure-test-suite`. It enables "batteries included" functionality with support for `core.async` channels, HTTP servers, JSON/Transit, IO, and Babashka pod loading (e.g., databases, AWS, Docker) over a binary protocol. Advanced features include Go interop, allowing embedding in Go apps with feature mapping and bidirectional calls. Deployment options are flexible: users can create self-contained binaries via Homebrew or Go modules, compile to WebAssembly for browser execution with terminal emulation, and utilize an nREPL server for rich editor support (Emacs, VS Code, Neovim). While highly efficient, it excludes certain features found in standard Clojure/Java runtimes, such as Refs/STM (replaced by atoms+channels), Spec, `deftype`, and reader tagged literals like `#inst`.

2026/05/10 6:46

リスト風の Rust

## Japanese Translation: RLisp は、Rust のパフォーマンスと安全性を享受しつつ、LISP の S 式構文の可読性をもたらすための独自のソリューションを提供します。`rustc` を介して直接ネイティブバイナリにコンパイルされるため、ランタイム環境やガーベジコレクターの使用は不要となり、所有権、借用、ライフタイム、ジェネリック、トレイト、パターンマッチングなど、Rust のコア機能を完全にサポートしています。インストールは簡単で、GitHub リポジトリをクローン(`git clone https://github.com/ThatXliner/rlisp.git`)し、`cargo install --path .` を実行するだけです。このツールには、LISP ファイルを変数化するためのコマンドラインユーティリティ(`rlisp compile`)、ビルド(`rlisp build`)、実行(`rlisp run`)が組み込まれています。開発者は非対応の機能のために生の Rust コードをそのまま使用するために `(rust "...")` フォームを採用でき、マクロは Runt のプロシージャルマクロに依存せず、`(quasiquote)`、`(unquote)`、`(unquote-splicing)` などの慣れ親しんだ LISP 構造体を利用してコンパイル時の変換を実行できます。`&rest` でキャプチャされた可変引数は `unquote-splicing` を使用してマクロ出力に平坦化できます。言語は `(while ...)`、`(loop ...)`、`(for ...)` などを含む標準制御構造と解像度付きイテレータをサポートし、型注釈を受け取る typed クロージャ(例:`((x i32) (y i32)) -> i32`)および引数を明示的に移動するための `move` キーワードを提供します。可視性修飾子は Rust の慣習に従います(`pub`、`pub(crate)`、`pub(super)`)。このプロジェクトは MIT ライセンスでリリースされており、マクロ開発を簡素化し、バランスの取れた括弧の構造的編集を可能にし、Rust セマンティクスを低い構文障壁で提供することを目的としています。