偏光フィルターの原理

Share

偏光フィルター(C-PLフィルター)は、写真用アクセサリーのなかで唯一、後処理では再現できない効果をもたらす光学素子だ。NDフィルターの効果はシャッタースピードの変更で、グラデーションNDの効果はHDR合成で代替できる。しかし偏光の選択的除去は、光がセンサーに届く前に行うしかない。

本稿では、偏光板の物理的機構から出発し、PLフィルターとC-PLフィルターの違い、ブリュースター角による反射の偏光、大気散乱光の偏光パターン、植生表面の鏡面反射など、偏光フィルターが写真にもたらす効果とその限界を、電磁気学の言葉で体系的に記述する。

偏光の定義

電磁波としての光で論じたように、光は電場と磁場が互いに直交しながら進行方向にも直交して振動する横波である。電場ベクトルの振動方向が偏光(polarization)だ。

電場の振動が一つの平面内に固定されている場合を直線偏光と呼ぶ。位相が90°ずれた二つの直交する直線偏光を等振幅で重ね合わせると、電場ベクトルの先端が螺旋を描く円偏光が生じる。振幅が異なる場合や、位相差が90°以外の場合には楕円偏光となる。楕円偏光は直線偏光と円偏光を特殊な場合として含む、偏光の最も一般的な形態だ。

太陽光や電球の光は、あらゆる方向に振動する電磁波がランダムに重なり合った非偏光(unpolarized light)だ。非偏光の電場ベクトルは時間的にランダムに方向を変え、平均的にはどの振動方向にも偏りがない。

偏光状態を数学的に表現する方法のひとつがジョーンズベクトルである。進行方向を $z$ 軸にとり、 $x$ 方向と $y$ 方向の電場振幅と位相をまとめて

$$ \mathbf{E} = \begin{pmatrix} E_x \, e^{i\phi_x} \\ E_y \, e^{i\phi_y} \end{pmatrix} $$

と書く。 $x$ 方向の直線偏光は $(1, 0)^T$、 $y$ 方向は $(0, 1)^T$、右回り円偏光は $\frac{1}{\sqrt{2}}(1, -i)^T$ で表される。ジョーンズベクトルは光学素子の透過特性をジョーンズ行列として記述する際の基盤となり、後述するC-PLフィルターの動作原理の理解に不可欠だ。

偏光板の物理的機構

偏光フィルターの中核は偏光板(polarizer)である。写真用偏光フィルターに使われる偏光板は、吸収型偏光子(dichroic polarizer)に分類される。

二色性の物理

二色性(dichroism)とは、物質が偏光方向によって異なる吸収係数を示す性質だ。現代の偏光板の大半は、エドウィン・ランドが1938年に開発したHシート型偏光板の改良版である。

製造過程は次のとおりだ。ポリビニルアルコール(PVA)フィルムを一方向に強く延伸し、高分子鎖を配向させる。次にこのフィルムをヨウ素溶液に浸漬すると、ヨウ素分子がPVAの配向した鎖に沿って吸着し、ポリヨウ化物イオン鎖( $\mathrm{I}_3^-$、 $\mathrm{I}_5^-$ など)を形成する。このポリヨウ化物鎖が二色性の起源だ。

鎖の長軸方向に平行な電場成分は、鎖に沿って自由に移動できる電子( $\pi$ 電子)を効率よく駆動し、光のエネルギーを吸収する。鎖に垂直な方向の電場成分は電子をほとんど駆動できないため、吸収されずに透過する。

結果として、高分子鎖と平行な振動成分は吸収され、垂直な成分だけが透過する。透過軸(transmission axis)は吸収軸に直交する方向に定義される。理想的な偏光板では、透過軸方向の偏光成分の透過率は100%、吸収軸方向は0%となるが、実際の偏光板では透過軸方向で約80〜90%、吸収軸方向で0.01〜0.1%程度の透過率を示す。

ワイヤーグリッド偏光子との比較

歴史的には、偏光を選択する別の方法としてワイヤーグリッド偏光子がある。波長より十分に細い金属ワイヤを平行に並べた構造で、ワイヤに平行な電場成分は自由電子を駆動して反射・吸収し、ワイヤに垂直な成分は透過する。原理はPVA偏光板と共通しているが、金属ワイヤの代わりに有機高分子鎖の $\pi$ 電子系を使っているのがHシート型の特徴だ。赤外領域ではワイヤーグリッド偏光子が広く使われるが、可視光域ではPVA系偏光板がコスト・性能・薄さの点で圧倒的に優れている。

マリュスの法則

偏光フィルターの定量的な動作はマリュスの法則で記述される。電磁波としての光で導出したように、直線偏光が透過軸と角度 $\theta$ をなす偏光板に入射するとき、透過光の強度は

$$ I = I_0 \cos^2\theta $$

で与えられる。 $I_0$ は入射光の強度だ。 $\theta = 0°$ で全透過、 $\theta = 90°$ で完全遮断となる。

物理的な機構は単純だ。入射する電場ベクトル $\mathbf{E}$ のうち、透過軸方向の成分 $E\cos\theta$ だけが通過する。光の強度は電場振幅の二乗に比例するから、 $I \propto (E\cos\theta)^2 = I_0\cos^2\theta$ となる。

非偏光が偏光板を通過する場合、すべての振動方向が等確率で含まれているから、 $\cos^2\theta$ の全方向平均を取る。

$$ \langle \cos^2\theta \rangle = \frac{1}{2\pi}\int_0^{2\pi}\cos^2\theta \, d\theta = \frac{1}{2} $$

したがって、非偏光が1枚の偏光板を通過すると強度は半分になり、透過光は直線偏光となる。写真撮影において偏光フィルターを装着すると約1〜2段の露出損失が生じるのは、この物理的帰結だ。

直線偏光板(PL)と円偏光板(C-PL)

写真用偏光フィルターには、PLフィルター(直線偏光板)とC-PLフィルター(円偏光板)の二種類がある。偏光を選択するという光学的効果は同一だが、カメラの内部光学系との相互作用が決定的に異なる。

PLフィルターの問題

一眼レフカメラの内部には、ファインダーへの光路と撮像センサーへの光路を分割するハーフミラー(ビームスプリッター)がある。このハーフミラーの反射率と透過率は、入射光の偏光状態に依存する。

PLフィルターを透過した光は直線偏光である。直線偏光がハーフミラーに入射すると、偏光方向によって反射・透過の比率が変動し、TTL測光(Through The Lens、レンズを通過した光で露出を測る方式)が正確な値を返さなくなる。さらに、位相差検出AFのセンサーも偏光状態に依存した信号を受け取るため、合焦精度が低下する。

C-PLフィルターの構造

C-PLフィルターは、直線偏光板の背面に1/4波長板(quarter-wave plate)を貼り合わせた構造だ。

1/4波長板は複屈折性を持つ光学素子で、互いに直交する二つの偏光成分に対して異なる屈折率を示す。この屈折率差により、二つの成分の間に位相差が蓄積される。1/4波長板は、この位相差がちょうど $90°$(波長の1/4に相当)になるように厚さが設計されている。

ジョーンズ行列で記述する。速軸(fast axis)を $x$ 軸にとると、1/4波長板のジョーンズ行列は

$$ \mathbf{Q} = \begin{pmatrix} 1 & 0 \\ 0 & e^{-i\pi/2} \end{pmatrix} = \begin{pmatrix} 1 & 0 \\ 0 & -i \end{pmatrix} $$

で表される。直線偏光板の透過軸が1/4波長板の速軸に対して $45°$ 傾いているとき、偏光板を透過した直線偏光のジョーンズベクトルは

$$ \mathbf{E}_{\text{lin}} = \frac{1}{\sqrt{2}}\begin{pmatrix} 1 \\ 1 \end{pmatrix} $$

これに1/4波長板を作用させると

$$ \mathbf{E}_{\text{circ}} = \mathbf{Q} \cdot \mathbf{E}_{\text{lin}} = \frac{1}{\sqrt{2}}\begin{pmatrix} 1 \\ -i \end{pmatrix} $$

これは円偏光のジョーンズベクトルだ。直線偏光が円偏光に変換された。

なぜ円偏光ならカメラが正常に動作するのか

円偏光はすべての瞬間において電場ベクトルが一方向に偏っていない。電場ベクトルの先端は螺旋を描いて回転しており、時間平均すると特定の偏光方向への偏りがない。ハーフミラーにとって、円偏光は非偏光と同等に振る舞う。反射・透過の比率が偏光方向に依存しなくなるため、TTL測光もAFも正常に機能する。

C-PLフィルターの動作を時系列で整理する。

  1. 被写体からの光(部分偏光を含む)がC-PLフィルターの前面に到達する
  2. 直線偏光板が特定方向の振動成分だけを透過させる(偏光選択)
  3. 1/4波長板が透過した直線偏光を円偏光に変換する
  4. 円偏光がカメラ内部に入射し、ハーフミラーやAFセンサーに対して非偏光的に振る舞う

偏光の選択(ステップ2)はレンズに入る前に完了しているから、偏光フィルターとしての光学的効果はPLと同一だ。ステップ3はカメラの内部光学系との互換性を確保するための追加処理にすぎない。

ミラーレスカメラでの議論

ミラーレスカメラにはハーフミラーが存在しない。ではPLフィルターで問題ないのか。

答えは「多くの場合は問題ないが、C-PLが安全」だ。ミラーレスカメラの位相差AFセンサーは撮像センサー上に組み込まれており、一部のセンサー設計では特定のマイクロレンズ構造が偏光に感度を持つ可能性がある。実用上の問題が報告されることは稀だが、C-PLを使っておけばこの懸念を完全に排除できる。追加コストはわずかであり、C-PLを選択しない積極的な理由はない。

ブリュースター角と反射光の偏光

偏光フィルターが反射を除去できる物理的根拠は、界面での反射光が偏光するという事実にある。

フレネルの式と偏光

光と物質の相互作用で導出したフレネルの式により、界面での反射率はp偏光(入射面に平行な振動)とs偏光(入射面に垂直な振動)で異なる。反射係数は入射角 $\theta_i$ と屈折角 $\theta_t$ を用いて

$$ r_s = \frac{n_1\cos\theta_i - n_2\cos\theta_t}{n_1\cos\theta_i + n_2\cos\theta_t} $$

$$ r_p = \frac{n_2\cos\theta_i - n_1\cos\theta_t}{n_2\cos\theta_i + n_1\cos\theta_t} $$

で与えられる。

ブリュースター角の導出

p偏光の反射係数 $r_p$ がゼロになる条件を求める。 $r_p = 0$ は $n_2\cos\theta_i = n_1\cos\theta_t$ を意味する。スネルの法則 $n_1\sin\theta_i = n_2\sin\theta_t$ と連立すると

$$ \frac{\cos\theta_i}{\cos\theta_t} = \frac{n_1}{n_2}, \quad \frac{\sin\theta_i}{\sin\theta_t} = \frac{n_2}{n_1} $$

これら二つを辺々掛けると

$$ \frac{\sin\theta_i\cos\theta_i}{\sin\theta_t\cos\theta_t} = 1 $$

$$ \sin 2\theta_i = \sin 2\theta_t $$

自明でない解は $2\theta_i + 2\theta_t = 180°$、すなわち $\theta_i + \theta_t = 90°$ である。このとき反射光と屈折光が直角をなす。スネルの法則に代入すると

$$ n_1\sin\theta_B = n_2\sin(90° - \theta_B) = n_2\cos\theta_B $$

$$ \tan\theta_B = \frac{n_2}{n_1} $$

これがブリュースター角だ。空気( $n_1 \approx 1.00$)から各媒質への入射の場合、ブリュースター角は次のようになる。

  • 水( $n = 1.333$): $\theta_B = \arctan(1.333) \approx 53.1°$
  • ガラス( $n = 1.50$): $\theta_B = \arctan(1.50) \approx 56.3°$
  • アクリル( $n = 1.49$): $\theta_B \approx 56.1°$

ブリュースター角で界面に入射した非偏光は、p偏光成分が反射されず全て屈折する。反射光にはs偏光成分だけが残り、完全な直線偏光となる。ブリュースター角から離れた入射角では反射光は部分偏光となり、偏光度はブリュースター角に近いほど高い。

偏光フィルターによる反射除去

反射光がs偏光(または部分的にs偏光)であるから、偏光フィルターの透過軸をs偏光の振動方向に対して直交させれば、反射光を選択的に除去できる。マリュスの法則により、フィルターの回転角を連続的に変えることで、反射の除去量を0%から最大値まで自在に調整できる。

水面やガラス面の反射を撮影時に消せるのは、この物理的機構による。ショーウインドウの向こう側を撮影するとき、水面の下の石を写すとき、偏光フィルターが有効なのはブリュースター角近傍の入射角で反射光が強く偏光しているからだ。

金属面には効かない理由

金属は自由電子を大量に含む。金属表面での反射は、誘電体とは異なり、p偏光もs偏光もともに高い反射率を示す。屈折率が複素数( $\tilde{n} = n + i\kappa$、 $\kappa$ は消衰係数)となるため、ブリュースター角のように $r_p = 0$ となる入射角が存在しない。反射光の偏光度は低く、偏光フィルターによる除去効果は限定的だ。クロムメッキのトリムやステンレス鋼の手すりからの反射が偏光フィルターで消えないのは、この理由による。なお、自動車の塗装面は金属ではなく誘電体(クリアコート)の反射が支配的であり、偏光フィルターが有効な場合がある。

大気偏光と空の青

偏光フィルターが空の青を深くする効果は、レイリー散乱による大気偏光の直接的な帰結だ。

レイリー散乱と偏光パターン

太陽光と大気の物理学で詳述したように、レイリー散乱は入射光に偏光を与える。散乱角 $\Theta$ における偏光度は

$$ P(\Theta) = \frac{1 - \cos^2\Theta}{1 + \cos^2\Theta} $$

で与えられる。 $\Theta = 90°$ で $P = 1$(完全偏光)、 $\Theta = 0°$ または $180°$ で $P = 0$(非偏光)だ。

写真撮影における意味は明確だ。太陽から $90°$ の方向にある空が最も強く偏光しており、偏光フィルターの効果が最大になる。具体的には、太陽を左手に指さしたとき、正面の方向の空が最大偏光帯に相当する。

偏光除去による空の深化

散乱によって空を照らしている光の一部は偏光している。偏光フィルターでこの偏光成分を除去すると、空からカメラに届く光の総量が減少する。空の光が減ればセンサー上での空の輝度が下がり、相対的に空の色が濃く、深くなる。

雲は非偏光のミー散乱光で構成されているため偏光フィルターの影響を受けにくく、結果として空と雲のコントラストが向上する。

$P(\Theta) = 1$ の方向(太陽から90°)で偏光フィルターを最適角度に設定すれば、散乱光の偏光成分を最も効率よく除去でき、空の輝度を大幅に低下させられる。ただし実際の大気では多重散乱やエアロゾルの存在により最大偏光度は60〜80%にとどまるため、完全な除去にはならない。

広角レンズの問題

広角レンズで空を広く撮影する場合、画面内で太陽からの角度 $\Theta$ が大きく変化する。画面の一部では $\Theta \approx 90°$ で偏光フィルターが強く効き、別の部分では $\Theta \approx 30°$ で効果が弱い。結果として、空の青さが画面内で不均一になり、不自然な色ムラが生じる。

この問題は物理的に回避不可能だ。偏光フィルターは画面全体に対して一つの透過軸しか持てないが、大気の偏光方向は空の各方向で異なる。画角が狭い(焦点距離が長い)レンズでは画面内の角度変化が小さいため問題になりにくいが、35mm換算で焦点距離24mm以下の広角レンズでは顕著になることが多い。

反射除去の実際

ブリュースター角の理論を実際の撮影状況に適用する。

水面

水の屈折率 $n = 1.333$ に対してブリュースター角は約 $53°$ だ。水辺に立って水面を見るとき、この角度は水面を斜めに見下ろす自然な視線にほぼ一致する。つまり、水辺の風景を普通に撮影する構図は、偶然にもブリュースター角に近い条件になりやすい。偏光フィルターが水面の反射除去に効果的であることが多いのは、撮影者の目線の高さとブリュースター角がうまく噛み合うからでもある。

真上(垂直入射、 $\theta_i = 0°$)や水平方向の極端なかすめ角( $\theta_i \approx 90°$)から水面を見る場合は、反射光の偏光度が低いため偏光フィルターの効果は弱まる。

ガラス面

ガラスのブリュースター角は約 $56°$ だ。ショーウインドウや展示ケースを斜めから撮影する場合に偏光フィルターが効く。ただし、ガラスの厚さや内部の多重反射、ガラス背面からの反射も加わるため、反射を完全にゼロにすることは難しい。それでも、反射の大部分を除去することで内部の展示物や風景がより明瞭に写る。

自動車のフロントガラス

フロントガラスは傾斜角が設計されているため、ドライバーの顔が見えるように撮影するにはかすめ角に近い入射角になることが多い。このとき偏光度はブリュースター角からやや外れるが、それでも部分偏光しているため、偏光フィルターでフロントガラスの反射を低減し、車内を写すことが可能だ。

植生の彩度向上

風景写真で偏光フィルターを使うと「緑が鮮やかになる」とよく言われる。これは葉の表面の光学特性と偏光の関係で説明できる。

葉の表面光学

植物の葉の最外層はクチクラ(キューティクル)と呼ばれる蝋質の薄膜で覆われている。クチクラの屈折率は約1.4〜1.5で、ガラスに近い値を示す。

葉に太陽光が当たると、二つの反射成分が生じる。

鏡面反射(specular reflection)。 クチクラ表面で光が反射する成分。フレネルの式に従い、入射光の分光分布をほぼそのまま反映する。つまり白色光が入射すれば、鏡面反射光も白っぽい。

拡散反射(diffuse reflection)。 光がクチクラを透過して葉の内部に入り、葉肉細胞内のクロロフィル(葉緑素)と相互作用した後に散乱されて外に出てくる成分。クロロフィルは赤色光と青色光を吸収し、緑色光を選択的に反射する。この成分が「葉の緑色」の本体だ。

偏光フィルターの効果

鏡面反射成分は誘電体表面(クチクラ)での反射だから、入射角に依存して部分偏光する。ブリュースター角付近の入射角では強く偏光する。

一方、拡散反射成分は葉の内部で多重散乱を経ているため、偏光がランダム化されており、実質的に非偏光だ。

偏光フィルターを装着すると、偏光した鏡面反射(白っぽい)を選択的に除去できる。残るのは非偏光の拡散反射(クロロフィルの緑)だけになる。結果として、白っぽいベールが取り除かれ、葉本来の鮮やかな緑色が回復する。

同じ原理は紅葉の赤や黄にも適用できる。秋の葉のクロロフィルが分解されてアントシアニン(赤)やカロテノイド(黄)が現れた状態でも、クチクラ表面の鏡面反射は白っぽい偏光光として存在する。偏光フィルターでこれを除去すれば、紅葉の色彩がより鮮やかに記録できる。

コントラストの回復

遠景が白っぽく霞んで見える現象は、太陽光と大気の物理学で導入したエアライトモデルで記述される。

$$ I_{\text{obs}}(\lambda) = I_{\text{obj}}(\lambda) \cdot e^{-\beta(\lambda) \cdot d} + I_{\text{air}}(\lambda) \cdot (1 - e^{-\beta(\lambda) \cdot d}) $$

第一項が被写体固有の光、第二項がエアライト(大気散乱光の加算成分)だ。

エアライトの主成分はレイリー散乱光であり、散乱角に応じて偏光している。偏光フィルターでエアライトの偏光成分を低減すると、第二項の寄与が小さくなり、被写体固有の色とコントラストが相対的に回復する。

この効果は、太陽から約 $90°$ の方向を撮影するときに最も顕著だ。散乱角90°付近のエアライトは偏光度が高いため、偏光フィルターによる除去効率が最大になる。山岳写真や都市の遠景撮影でPLフィルターが霞を軽減するメカニズムはここにある。

ただし、太陽に向かう方向やその反対方向では散乱光の偏光度が低いため、効果は限定的だ。また、ミー散乱が支配的な条件(高湿度、エアロゾルが多い環境)では散乱光の偏光度が全体的に低く、偏光フィルターによる霞除去の効果は弱まる。

偏光フィルターの限界

偏光フィルターは万能ではない。物理的な制約をまとめる。

露出の損失

非偏光が偏光板を通過すると強度は半分になる。実際のC-PLフィルターでは、偏光板の吸収損失と1/4波長板の透過損失が加わり、合計で約1.5段から2段の露出損失が生じる。暗い環境ではシャッタースピードの低下やISO感度の上昇を強いられる。

広角レンズでの不均一

前述のとおり、大気偏光の方向は空の各方向で異なるため、広角レンズでは偏光フィルターの効果が画面内で不均一になる。焦点距離28mm以下(35mm換算)では注意が必要であり、24mm以下では目立つ色ムラが生じることが多い。

曇天での効果減

雲を構成する水滴はミー散乱を生じ、散乱光は波長非依存かつほぼ非偏光だ。曇天時の空からの光は偏光成分が少ないため、偏光フィルターで空を深くする効果はほとんど得られない。反射除去の効果は曇天でも有効だが、空の表現に関しては晴天でなければ意味がない。

金属面への無効

前述のとおり、金属面の反射光は偏光度が低く、偏光フィルターでは効果的に除去できない。ステンレス鋼、アルミニウム、クロムメッキなどの金属表面からの反射には別の対策(撮影角度の調整、照明の工夫など)が必要だ。

虹への影響

虹・ハロ・蜃気楼の光学で述べたように、虹の光は水滴内での屈折と反射を経ているため部分偏光している。偏光フィルターの回転角によっては虹の輝度を増強することも、逆に消してしまうこともある。虹を撮影するときは、フィルターの回転角に注意が必要だ。虹の弧の各位置で偏光方向が異なるため、広角で撮る場合はフィルターなしのほうが自然な描写になることもある。

ケラレ

C-PLフィルターは直線偏光板と1/4波長板を重ねた構造のため、通常のフィルターより枠が厚くなる。超広角レンズ(焦点距離20mm以下)では、フィルター枠が画角内に入り込み、画面の四隅が暗くなるケラレが生じることがある。薄枠タイプのフィルターで対処できるが、薄枠はフィルター前面にレンズキャップやフードを装着しにくくなるトレードオフがある。

可変NDフィルター: マリュスの法則の直接応用

2枚の偏光板を重ねて回転させると、可変NDフィルター(Variable ND Filter)として機能する。これはマリュスの法則の直接応用だ。

1枚目の偏光板を通過した光は直線偏光になる。2枚目の偏光板の透過軸が1枚目に対して角度 $\theta$ をなすとき、透過強度は

$$ I = I_0 \cdot \frac{1}{2} \cdot \cos^2\theta $$

$1/2$ の因子は非偏光が1枚目の偏光板で直線偏光になる際の減衰だ。 $\theta = 0°$ で $I = I_0/2$(約1段の減光)、 $\theta = 90°$ で $I = 0$(完全遮断)となる。

2枚目を回転させることで、1段から理論上は無限大段までの連続的な減光が可能になる。実際の可変NDフィルターは2〜8段程度の範囲で使用される。 $\theta$ が $90°$ に近づくと、偏光板の不完全性により色かぶりやXパターン(十字ムラ)が生じるため、実用上は $\theta \leq 80°$ 程度に留めるのが賢明だ。

市販の可変NDフィルターは、2枚の直線偏光板を重ねた構造を基本としている。原理が同じであるため、手持ちのC-PLフィルター2枚を重ねて可変NDを代用する技法も写真家の間で知られている。

まとめ

偏光フィルターの物理は、電磁波としての光の横波性に根ざしている。偏光板の二色性吸収が特定方向の電場振動を選択的に除去し、マリュスの法則 $I = I_0\cos^2\theta$ がその定量的な記述を与える。C-PLフィルターは1/4波長板によって直線偏光を円偏光に変換し、カメラの内部光学系との互換性を確保する。

偏光フィルターが写真にもたらす効果は四つに大別される。大気のレイリー散乱光を除去して空を深くすること。ブリュースター角付近で偏光した反射光を除去して水面やガラス面の向こうを写すこと。植物のクチクラ表面の鏡面反射を除去して緑や紅葉の彩度を回復すること。そしてエアライトの偏光成分を低減して遠景のコントラストを回復すること。

これらの効果はいずれも、光の偏光状態を選択するという一つの物理的操作の異なる表れにすぎない。フレネルの式が反射光の偏光を、レイリー散乱の偏光度関数が大気散乱光の偏光を、それぞれ定量的に記述し、マリュスの法則がフィルターによる選択の効率を決定する。

偏光フィルターは、光の波としての性質を最も直接的に利用する写真用アクセサリーだ。露出の損失、広角レンズでの不均一、金属面での無効という制約はあるが、後処理では再現不可能な効果を撮影時に与えるという意味で、デジタル時代においてもなお代替不可能な光学素子であり続けている。

Read more

Dependabotの対応が面倒なのでRenovateを導入する

Dependabotくんはある程度の依存関係の更新を通知してくれるが、山のようにprojectを抱えているとなんとも痒いところに手が届かない。 ということで、Renovateを使ってみる。 Build software better, togetherGitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects.GitHub ここからGitHub Appを入れる。 あとは、指示に従ってポチポチするだけで、超かんたんだった。 感想 自動化最高。

By Sakashita Yasunobu

nodejsのバグを見つけたのでPRを投げてみた

概要 要するに、node --testで特定のバイナリを標準出力に書くと、テストランナーが固まったり、異常終了したりするバグです。 バグ自体は既知のものだったようで、修正がされていました。 test_runner: infinite loop in FileTest#drainRawBuffer when child stdout contains FF 0F followed by large size bytes · Issue #62693 · nodejs/nodeVersion v25.9.0 (also reproduced on v24.14.1 LTS, v22.21.0 LTS, v23.4.0) Platform Darwin 25.

By Sakashita Yasunobu
青空文庫のParser

青空文庫のParser

青空文庫のParserを作ってます。 GitHub - P4suta/aozora: Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks.Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks. - P4suta/aozoraGitHubP4suta Rustで作ってますが、配布物はcargoのほかにnpm/pypiでも入手できます Documentation * Playground — try it in

By Sakashita Yasunobu