Photographer built a medium-format rangefinder

2025/12/07 7:29

Photographer built a medium-format rangefinder

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

要約

Japanese Translation:

Summary

アルバート・コーネリッセンは、自身のオープンソース中判レンズファインダーカメラ「MRF2」の製造を完了し、在庫が売り切れました。価格は1,156ドルで、完全に組み立てられたユニットはもう入手できませんが、設計図・ファームウェア・組立説明書・3Dプリント部品はすべてGitHubに無料公開されており、誰でも自作できます。カメラはマミヤ・プレスレンズマウントを採用し、LiDAR搭載のオートフォーカス、独自設計のPCB、二重OLEDディスプレイ、および露出・バッテリーレベル・フォーマット情報を表示する外部ディスプレイを備えています。内蔵ライトメーターと水平指示器も装備しています。サポートされるフィルムサイズは35 mmパノラマに加えて、6×4.5、6×6、6×7、および6×9です。コーネリッセンの作品は、マリオ氏のSPRKPLGやオスカー・オウエソン氏のPanomicronといった以前のメーカープロジェクトを踏襲しており、彼はポラロイド・パトフインダーカメラ用に3Dプリント部品も制作しています。組み立てはプラグアンドプレイで最小限のハンダ付けのみで済むよう設計されていますが、電子機器部分が主な課題です。ビルダーは彼のYouTubeチュートリアルを参照し、Instagramまたはウェブサイト経由でサポートを受けられます。需要が増えればさらにユニットが入手可能になると示唆しています。設計をオープンに公開することで、コーネリッセンはホビイストや小規模メーカーに中判写真への低コストパスを提供しています。

本文

フォトグラファー・アルバート・コーネリッセン(Albert Cornelissen)が、素晴らしいレンズを使いながらも手ごろな価格で撮影できる中判レンジファインダーを求めていました。第二の制約により伝説的なマミヤ7や富士フイルムGF670は選択肢から外れ、コーネリッセン自身が自作カメラ「MRF2」を完成させました。

「MRF2 は(M)edium‑format(R)ange(F)inder の第2世代であり、古典と最新技術を融合した唯一無二のアナログ写真体験を提供する本当にユニークなカメラです」と彼は語ります。
「マミヤ・プレスレンズシステム向けに設計され、マイクロエレクトロニクスとソフトウェアでモダンなレンズ連結型、LiDAR搭載の中判レンジファインダーを実現しました。」

価格・入手方法

カメラは彼自身のサイトで $1,156(現在は完売)でフル組み立て済みバージョンが販売されていますが、プロジェクト全体は完全オープンソースです。
GitHub から 3D 打ち込みファイルをダウンロードし、取扱説明書に従って自分だけの中判レンジファインダーを組み立てることができます。

「カメラ作りコミュニティは素晴らしい…オスカー・オウズン(Panomicron)、マリオ(SPRKPLG)や他数名が設計したカメラを実際に組み、撮影してきました。Ethan(Cameradactyl)のような人々も非常に刺激的です。どうして恩返しできないでしょうか?」と彼は PetaPixel に語りました。
「オープンソースの精神を信じており、他の人が私の作品を拡張・改良できることを願っています!」

影響

コーネリッセンは仲間からインスピレーションを得ました。

  • マリオの SPRKPLG カメラとマミヤ・プレスレンズをベースに開始。
  • オスカー・オウズンの Thulium が、趣味用電子機器がより手軽になった時期に理想的な基盤となりました。

これらが結集し、数年後に MRF が実現しました。

背景

コーネリッセンは長年にわたりホビーフォトグラファー兼 3D プリントデザイナーとして活動してきました。最初はポラロイド・パスファインダーに「Lomograflok Instax Wide」を取り付け、次いで Bight(小型カメラ)、ポラロイド SLR、4×5 レンジファインダー(MRF の前身)などを作り、アナログ体験を向上させてきました。

彼は MRF2 が「多くの試行錯誤」を経て、できるだけ組み立てやすい形に仕上げたと語ります。最大の障壁は通常電子部品ですが、ほぼプラグ・アンド・プレイで、最小限のはんだ付けで済むようになっています。

「プロセスを楽しみながら多くを学べるはずです」と彼は言います。

YouTube では組立全体を解説した詳細動画が公開されています。

主な特徴

  • カスタム PCB とファームウェア
  • LiDAR ベースのレンズ連結フォーカス
  • デュアル OLED 表示画面
  • 3D プリント部品
  • 複数フィルム形式に対応:35 mm パノラマ、6×4.5、6×6、6×7、6×9
  • ライトメーター、水平計、外部ディスプレイで露出・バッテリー残量・フォーマットを表示

記事内のサンプル画像はカメラの優れた性能を示しています。

自作する

MRF2 を自作したい場合は、Instagram や公式サイトで質問を受け付けています。「いつでも相談に乗り、アドバイスを提供します」と語っています。

写真クレジット:アルバート・コーネリッセン / Identidem.design

同じ日のほかのニュース

一覧に戻る →

2025/12/14 7:58

Linux Sandboxes and Fil-C

## Japanese Translation: メモリ安全性とサンドボックスはプログラムの異なる部分を保護するため、両方が強力なセキュリティに必要です。純粋な Java プログラムはメモリ安全であってもファイルシステムの syscalls を通じて任意のファイルを書き込むことができるし、逆にすべての能力を取り消したアセンブリプログラムでもメモリバグがある場合がありますが、カーネルが特権 syscalls を殺すためサンドボックスから逃げられません。サンドボックスは意図的に許容範囲を広く設計しているため、攻撃者は残されたメモリ安全性のバグを利用してブローカー・プロセスへ到達することができるので、両方の防御を組み合わせるとより強固な保護が得られます。 本書では、C/C++ 用に設計され、システムコールまで安全性を保証し、init や udevd などの低レベルコンポーネントで使用できるメモリ安全ランタイム「Fil‑C」への OpenSSH の seccomp ベース Linux サンドボックス移植方法について説明します。OpenSSH は既に chroot を採用し、`sshd` ユーザー/グループとして特権なしで実行し、`setrlimit` を使用し、非許可 syscalls を `SECCOMP_RET_KILL_PROCESS` で殺す seccomp‑BPF フィルタを適用しています。Fil‑C はその runtime 内で自動的にこれらの syscalls を許可することで簡素化します。背景スレッドは存続させつつスレッド生成を防ぐため、Fil‑C は API `void zlock_runtime_threads(void)` を追加し、必要なスレッドを事前確保してシャットダウンを無効にします。 OpenSSH の seccomp フィルタは強化されています。失敗時の挙動が `SECCOMP_RET_KILL` から `SECCOMP_RET_KILL_PROCESS` に変更され、mmap 許可リストに新たに `MAP_NORESERVE` フラグが追加され、`sched_yield` が許可されています。サンドボックスは二つの `prctl` コール(`PR_SET_NO_NEW_PRIVS` と `PR_SET_SECCOMP`)で構築され、エラー検出も行われます。Fil‑C のランタイムは `filc_runtime_threads_handshake` で全スレッドとハンドシェイクし、各スレッドが no_new_privs ビットと seccomp フィルタを持つことを保証します。複数のユーザー スレッドが検出された場合、安全エラーが発生します。 メモリ安全性とサンドボックスを組み合わせることで、OpenSSH はより厳格な隔離を実現し、メモリバグによる権限昇格リスクを低減します。このアプローチは他のセキュリティクリティカルプロジェクトにも採用を促す可能性があります。

2025/12/14 9:34

An Implementation of J

## Japanese Translation: ## 改訂版要約 本書は、技術仕様の構造化された目次であり、以下のように整理されています。 1. **第0章 – はじめに** 2. **第1章 – 文を解釈する** - 1.1 単語生成 - 1.2 構文解析 - 1.3 トレイン(列車) - 1.4 名前解決 3. **第2章 – 名詞** - 2.1 配列 - 2.2 型 - 2.3 メモリ管理 - 2.4 グローバル変数 4. **第3章 – 動詞** - 3.1 動詞の構造 - 3.2 ランク - 3.3 原子(スカラー)動詞 - 3.4 オブヴァース、同一性、および変種 - 3.5 エラー処理 5. **第4章 – 副詞と接続詞** 6. **第5章 – 表現** - 5.1 原子表現 - 5.2 ボックス化された表現 - 5.3 木構造表現 - 5.4 線形表現 7. **第6章 – ディスプレイ** - 6.1 数値表示 - 6.2 ボックス化表示 - 6.3 フォーマット済み表示 主要セクションの後に、付録A〜F(インキュナブルム、スペシャルコード、テストスクリプト、プログラムファイル、外国接続詞、およびシステム概要)が補足資料として提供されます。書末には参考文献・用語集・索引が付されています。 この構成(目次 → 詳細セクション → 付録 → 参照資料)は、読者に全体枠組みを最初に把握させたうえで、必要に応じて詳細へ掘り下げたり補足資料を参照したりできる明確かつ階層的な道筋を提供します。

2025/12/14 8:39

Closures as Win32 Window Procedures

## Japanese Translation: **改訂版要約:** この記事では、Win32 のウィンドウプロシージャに追加のコンテキストポインタを渡す方法を示しています。これは、WndProc が通常 4 つしか引数を取らないため、ネイティブ API には備わっていない機能です。著者は x64 アセンブラで小さなトランスペイル(trampoline)を作成し、実行時に JIT コンパイルして 5 番目の引数スロットを挿入し、呼び出し前に必要なコンテキストを格納します。これにより、各ウィンドウがグローバル変数や `GWLP_USERDATA` を使わずに独自の状態を保持できるようになります。トランスペイルは GNU アセンブラで書かれ、`.exebuf` セクション(`bwx` フラグ付き)から 2 MiB の実行可能バッファが確保されます。C ヘルパー関数 `make_wndproc(Arena *, Wndproc5, void *arg)` は 2 つのバイトオフセットプレースホルダーを修正してトランスペイルを生成します。作成後は `set_wndproc_arg(WNDPROC p, void *arg)` を使ってコンテキストを変更できます。アロケータ例では、異なる状態オブジェクト用に複数のトランスペイルを生成したり、動的に切り替えたりする方法を示しています。この手法は、トランスペイルがアンウインドテーブルを持たないため Windows Control Flow Guard 下でも安全に機能し、グローバル変数を使わずにウィンドウごとのデータを付与する低レベルの手段を示しています。