fetburner.core

コアダンプ

江戸の電話を長崎で取る

 初めは音声信号に乗せたパケットを電話網で伝送してインターネットに接続していた筈が、いつしかUDPパケットに音声信号を乗せてIP網で伝送するようになり、当初は文字通り可搬式の電話だった携帯電話も情報端末として使う事の方が多くなってしまった昨今ですが、地方だと使わなくても一応固定電話の契約を残している家庭も多いのではないでしょうか?地方でなくとも、NTT系の回線だと/64のIPv6アドレスの代わりに/56のアドレスを貰う契約にすると勝手にIP電話の契約が付いてくるので、そちらを目当てに契約する人も居るかもしれません。

 うちの実家でもNTT西日本が提供するIP電話サービスであるひかり電話を契約しているのですが、折角契約しているのに使わないのは勿体無いので、僕の自宅に置いた電話機から発着信を行えるようにしてみます。

続きを読む

NECのVPNルータをひかりTVに対応させる

 前回の記事では実家のネットワークにNECVPN対応ルータであるIX2215を導入しましたが、その際ひかりTVの対応に少し手間取ったのでメモがてら記事に残しておきます。

 もっとも、本記事での設定は公式資料に裏打ちされたものではなく実機の挙動を基にしているため、将来的には仕様変更等により情報が古くなってしまう恐れがある点に注意して下さい。

続きを読む

NECのVPN対応ルータで自宅と実家の間にVPNを張った話

 自宅サーバは一台あるだけで人生に彩りを与えてくれる素晴らしいものですが、帰省などで暫く家を留守にしていると、外出先からアクセスしたくなるもののインターネットに公開するのはセキュリティ的に怖い、といったジレンマが頭を擡げてきます。お正月の特番を眺めながら、これを録画サーバで撮れていればと何度思ったことでしょうか。

 こんな時に丁度良いのがVPN接続で、通信内容を秘匿しながら自宅に居るかのようにネットワーク接続できるため、サーバをファイアウォールの外に晒す心配がありません。

 本記事では、NECVPN対応ルータであるIX2215を2個使って、自宅LANと実家LANとの間をVPNで接続したようなネットワークを構築します。これにより、セキュリティを担保しながら実家から自宅サーバにアクセスできるだけでなく、自宅に居ながらの実家ネットワーク保守も可能になる*1ことでしょう。

*1:果たしてそれは良い事なのだろうか…

続きを読む

どこのご家庭にもあるNASにPi-holeを導入して、ネットワーク側で広告を非表示にした話

 例えば死、戦争、飢餓、この世には無くなった方が幸せになれるものが沢山存在しているが、Web広告もその一つだろう。 流石に死だとか戦争だとかは厳しいかもしれないが、広告に関してはネットワーク技術の力で消し去ることができる。

 本記事では、我が家で常時稼働しているNASにPi-holeを導入し、ネットワーク側で広告ブロックを試みる。この手法はクライアント側で特別な対応を必要としないため、スマートフォンタブレットと言った非力な端末でのブラウジングでも体験を損なわない事が期待される。

続きを読む

Synology DS920+を使って外付け光学ドライブをネットワークに共有する

 光学ディスクの重要性が低下し、巷で売られているPCに読み取り用のドライブが標準搭載されなくなって久しくなりましたが、それでもCDの類を読み込みたくなる機会は度々訪れます。今ほどダウンロード販売が盛んではなかった頃に買ったソフトウェアのインストーラ、PCに付属のリカバリーディスク、昔ハマったアニメのBDなど、日常的に使う訳ではないけど一応読み込みの手段は残しておきたい光学ディスクも多いでしょう。

 内蔵式のドライブをめっきり見なくなった今、光学ディスクの読み出し手段を確保しようと思えばUSB等で接続される外付けドライブに頼る事になると思うのですが、PCを複数持っている場合は接続を切り替えるのが面倒だし、この光学ドライブと言う奴は結構電力を食うせいで接続できるポートが限られるので困ったものです。適当なポートに外付けドライブを接続しておいて、ネットワークからアクセスできれば良いのにと思うのは自然な発想でしょう。

 Windowsにはネットワーク経由でファイルを共有する機能が標準で備わっていますから、適当なマシンに外付けドライブの光学ドライブを接続し、ネットワークからアクセスできるようにするのは難しくありません。しかし、適当なWindowsマシンを常に起動しておくのも消費電力が気になるところですから、サーバーとして常時稼働する事を前提としたマシン、例えばNASなんかを使いたい気持ちになります。

 本記事では、我が家で使っているSynology社のNAS、DS920+に接続した外付け光学ドライブをネットワークで共有し、ローカルネットワーク上の他のマシンから見られるようにした際の手順を紹介します。実機で検証はしていませんが、Synology Virtual Machine Managerをサポートしている同社のNASであれば同様の手段で光学ドライブを共有できるものと思われます。

続きを読む

ダイクストラ法の一般化と,その正当性の Coq を用いた検証

 AtCoder Beginner Contest の E 問題で2回続けてダイクストラ法が出題される昨今,いかがお過ごしでしょうか?[^1]

 その2つの E 問題のうち,先に出題された E - Come Back Quickly はいかにも典型的だなあといった問題なので良いのですが,後に出題された E - Train は一筋縄ではいかないものでした.典型的な最短経路問題は辺の長さが定数であるようなグラフを対象としていますが,その問題では辺の長さが,その辺に辿り着くまでの経路長に依存するようなグラフに対してダイクストラ法を適用するのが想定解だったからです.

 本記事では,頂点uに辿り着くまでの経路長 c に頂点 u から頂点 v に伸びる辺の長さを加えたものが関数 d_{uv}(c) として与えられた際に,d_{uv}(c) が単調増加関数かつ  {c \leq d_{uv}(c)} を満たせばダイクストラ法が最短経路を返すことを解説します.加えて,ナイーブな実装ではありますが,そのようなグラフに対してのダイクストラ法が最短距離を返すことを Coq で証明します.

続きを読む

List.fold_right で List.fold_left を書く

 この記事は ML Advent Calendar 2020 の14日目の記事です.

 リストの Church encoding と言えば List.fold_right で表現することが多いように思いますが,果たして List.fold_right だけしか使わずに様々なリストについての再帰関数を表現できるのか疑問に思う人も多いのではないでしょうか? 本記事では,List.fold_right を用いて List.fold_left を実装する方法を紹介します.後者は末尾再帰なのでわざわざ回りくどいことをせずに直接使った方が良いのはもっともなのですが,foldr/build なんかを考える時に頭の片隅にあると便利かもしれません.

続きを読む