投稿

OpenWrt での USB メモリースティックドライブ

イメージ
(公式ガイド:👉 Using storage devices)関連パッケージのインストール opkg install kmod-usb-storage opkg install usbutils opkg install block-mount opkg install gdisk opkg install f2fs-tools opkg install kmod-fs-f2fsUSB ドライバーは kmod-usb-storage のみusbutils はコマンド lsusb -t を使って USB メモリーが接続されているかどうかを調べるため(オプショナル)block-mount はコマンド block info を使ってパーティション情報を表示するため(オプショナル)gdisk はパーティション操作のため(後述)f2fs-tools と kmod-fs-f2fs が USB メモリースティック用のファイルシステムのためのドライバーgdisk によるパーティション操作今回は 2GB の USB メモリースティックを使い、そのうち 256MB を swap パーティションに、残り 1.6GB をデータ用パーティションにした。gdisk コマンドでデバイス(/dev/sd*)を指定して実行すれば、あとは対話形式でパーティションデザインを行う形となる。 Disk /dev/sda: 3915776 sectors, 1.9 GiB Model: Storage Media Sector size (logical/physical): 512/512 bytes Disk identifier (GUID): 257F8D9E-B548-49DA-AC35-DF64271AA16E Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 3915742 Partitions will be aligned on 2048-sector boundaries Total free space is 2014 secto…

複式簿記システムの構築

イメージ
[STEP 1] Google SpreadSheets に蓄積した仕訳を SQLite + Python で処理するシステムの確立個人的に青色申告による複式簿記が必要なので、そのための必要十分なシステムを構築する。
(市販の会計ソフトは決して「必要十分」ではなく、単なる「十分」(つまり不必要な余計な要素を過剰に備えている)ので、論外。)おおまかなイメージとしては:逐次発生する会計イベントは人手によって「仕訳」してデータを入力し、1 年を通じてデータベース(仕訳帳)に蓄積する年間の蓄積された仕訳帳に基く年度末の「総勘定元帳の集計」と「決算整理仕訳」と「損益計算書の作成」は、Python プログラムで自動化する。具体的には:仕訳帳は Google SpreadSheets を利用して家族で共有集計・決算整理・損益計算は、Google SpreadSheets から TSV をダウンロードして、SQLite にインポートし、Python で SQL を駆動してそれらの定型化された作業を行い、結果を複数の TSV としてアウトプットする。最後にそれら TSV を単一の .xlsx ファイルにマージして一つの総勘定元帳として得る。仕訳帳のスキーマ(Google SpreadSheets) create table Journal ( id integer primary key, parent_id integer, date date, amount integer, debit text, credit text, description text ); ID は Google SpreadSheets 上では、単に「行番号+1」の計算式を使っただけのもの。親IDは、借方 or 貸方が諸口(複数科目)となる場合の「一対多」または「多対多」の仕訳のために用意した要素。グルーピングするエントリーのIDを親ID として指し示す。通常の一対一の仕訳「ID」「日付」「金額」「借方科目」「貸方科目」を示し、「親ID」は NULL一対多(または多対多)の仕訳の親エントリー「ID」「日付」を示し、「親ID」は NULL
「金額」「借方科目」「貸方科目」は両方とも「諸口」の場合は NULL だが、片方が単一の場合は、そのままその科目…

実家ネットワークの微修正

イメージ
ゲートウェイルーターの置き換え』でゲートウェイルーターを OpenWrt 化した R7800 に置き換える計画は無事完了した。これまで、ホームゲートウェイ直下の実質 DMZ である 192.168.0.0/24 と、ゲートウェイルーター(GateKeeper)の後ろにあるプライベート LAN の 192.168.1.0/24、VPN の仮想ネットワークの 192.168.255.0/24 という風に IP を割り付けていた。しかし、これだと、これら全体の 192.168.0.0/16 を DMZ と LAN に再分割しようとする場合に、LAN にはプライベート LAN と VPN をグルーピングしたいのだが、サブネット的に無理である。192.168.0.0/24 と 192.168.1.0/24 は隣り合っているので、192.168.0.0/23 としてまとめることは可能だが、隔離したいのは DMZ 用の 192.168.0.0/24 の方なので、意味がない。 そこで、プライベート LAN を 192.168.1.0/24 から 192.168.128.0/24 にすることで、192.168.0.0/16 を 192.168.0.0/17 と 192.168.128.0/17 で真っ二つに分けると、前者には DMZ 用の 192.168.0.0/24 が、後者には プライベート LAN 用の 192.168.128.0/24 と VPN 用の 192.168.254.0/24 が含まれるという風に上手くサブネットでデザインできる。(※ ちなみに、VPN 用を192.168.255.0/24 から 192.168.254.0/24 にするのは、単なる気まぐれである。何となく、偶数に揃えたかっただけという)192.168.0.0/1711000000.10101000.00000000.00000000~11000000.10101000.01111111.11111111
すなわち、192.168.0.0~192.168.127.255192.168.128.0/1711000000.10101000.10000000.00000000~11000000.10101000.11111111.11111111
すなわち、192.168.128.0~192.168.255.…

VPN から LAN 内のブリッジ(Aterm WG1200HP)にアクセスできない

イメージ
WireGuard VPN の仮想ネットワーク(192.168.255.0/24)から、接続先の LAN(192.168.1.0/24)内でブリッジ運用している Aterm WG1200HP(192.168.1.254)にアクセスできない。クイック設定 Web だけでなく、PING も反応なし。一方、このブリッジの向こう側にあるホストについては PING 等に応答は戻ってくる。OpenVPN で TAP(ブリッジ)接続すると、WG1200HP に問題なく接続できる。TUN(ルーター)接続だとやはり駄目。要するに、サブネット(セグメント)が異なると駄目なようだ。単にブリッジ運用しているだけなので、VPN からアクセスできなくとも大して支障はないのだが、ともかく気持ち悪かった。調べてみると、「送信元検証機能」が原因だった。(参考 👉 へっぽこ薬剤師のチラシの裏) 「使用しない」にして問題は解消、 VPN(別のサブネット)からでもクイック設定 Web と PING が ok となった。はっきり言って、NEC のマニュアルの表現がおかしい。送信元を詐称した通信を遮断する送信元検証機能により、LAN側、WAN側からのアクセスを監視し、送信元のアドレスが不正なパケットを廃棄します。別に「不正」じゃなくても、敵味方関係なく無差別攻撃しとるやんけ!ユーザーを守る頼もしいヒーローのふりしてカッコつけたりしないで、「単純バカだから、サブネットが異なるのは、何も考えないでパケットを DROP」とでも書けばいいんだよ。こんなだから、ガラパゴス化して、国内トップでも国際競争力ゼロなんだよ……。

クレジットカードの海外事務手数料

最近(2020-07-29 時点)、あちこちで Mastercard / VISA 系の海外事務手数料の値上げが発生しているようなので、まとめてみた。(税込)Mastercard / VISA楽天1.63参照エポス1.63参照ポケット(Mastercard)1.90参照エムアイ2.00参照VIEW2.20参照セゾン2.20参照Yahoo!2.20参照JACCS2.20参照Orico2.20参照三井住友2.20参照MUFG2.20参照d2.20参照ポケット(VISA)2.20参照Gold Point +2.20参照セディナ2.20参照JCBVIEW1.60参照楽天1.60参照Yahoo!1.60参照JACCS1.60参照Orico1.60参照ポケット1.60参照セゾン1.60+0.55参照セディナ2.20参照AmEx楽天2.00参照セゾン2.00参照エムアイ2.00参照

OpenWrt での NTP 設定

イメージ
System 設定Timezone は Asia/Tokyo にした。 NTP サーバー候補ntp.nict.jpntp.jst.mfeed.ad.jp0.openwrt.pool.ntp.org

OpenWrt での SSH 設定

イメージ
Wi-Fi の有効化作業に次いで、この SSH の有効化作業もインストール後に最優先となる作業だ。OpenWrt の設定・管理は LuCI だけでは作業が完結させることができず、SSH でログインして CUI 環境で作業しなければならないこともある。そのままでもパスワード認証で SSH にログインできるが、面倒なので、認証用の公開鍵を登録しておいた。System > Administration で(まだパスワードを設定していない場合にはルーターのパスワードを設定し、)SSH 用の公開鍵を登録しておく。 また、WAN に直接繋がっておらず LAN 内部からしかアクセスできないルーターならば気にしなくてもいいかもしれないが、(DMZ に設置したり、公開用の WWW サーバーを兼ねている等の)WAN 側からアクセス可能なルーターの場合は、Dropbear の設定で Interface を LAN のものに絞っておくことによって、SSH が LAN 内部からしかアクセスできないようにした方がいいだろう。一方、公開鍵を登録した場合、パスワード認証の方を無効化することも可能だが、上記設定により LAN 内部からしかアクセスできない状態にしているため、それほどセキュリティを心配する必要がないと考え、(Dropbear の設定で)パスワード認証を無効化するようなことはしていない。むしろ現状では、設定を色々といじっていて公開鍵認証でログインができなくなったりした場合に、パスワードで SSH ログインできないと面倒なことになるというリスクの方が大きい。

OpenWrt での Wi-Fi 設定

イメージ
OpenWrt をインストールしたら、まず最初に手を付ける作業が Wi-Fi(Network > Wireless で該当デバイスを Edit)。初期状態では Wi-Fi が無効化されているため、Wi-Fi を有効化しておかないと、有線 LAN で直結していないノート PC(Macbook)から作業できない、というのが個人的には決定的な理由。設定自体は特に難しくはなく、基本的には 2.4G 帯と 5G 帯それぞれについて、暗号化キーを決め、SSID や周波数チャンネル、出力強度をカスタムしたりする程度。最後に Enable して Save & Apply する。Device 設定5G のチャンネルは auto で問題ないと思うが、2.4G の方は auto にすると、12ch 以降が選ばれてしまう場合があり、受信側端末によっては 11ch までしか対応していないこともあるので、手動で 1~11ch を選んだ方が良い。 あと、出力について、OpenWrt や DD-WRT ではパブロフの犬のように「出力が 10mW を超えると日本で違法どーだこーだ」の話になりやすいようだが、物好き者「dd-wrtの電波出力調整に関して」によると:電波法でいう10mWっていうのは、10mW/MHzです。
このMHzというのは帯域幅のことですので通常のWi-Fiは1chにつき20MHz幅です。つまり10x20=200(mW)までは日本の電波法の許す上限になります。28mWも63mWも可愛いものです。アンテナを4dBi程度のものにしてもまだまだ余裕があります。日本のホテルのロビーや公共施設なんかに備えられてるWi-Fiはもっと強いですよ。ちなみに特小は1000mWまで無免許で使えますがWi-Fiは特小に含まれてません。40MHz幅や80MHz幅のチャンネルを広く使って速度をあげる製品も出てますが、文字通りの解釈ですと10x40=400(mW)とか10x80=800(mW)がOKになりそうなものですが、総務省も馬鹿ではないので、40MHz幅の場合は5mW/MHz、80MHz幅の場合は2.5mW/MHz、160MHz幅の場合は1.25mW/MHzと明記してます。それなら最初から200mWまでって書けば良いのにと思いますけど。ということらしい。例えば Buffalo WZR-HP-…

板読み投資術

坂本慎太郎『朝 9 時 10 分までにしっかり儲ける板読み投資術』(東洋経済新報社、2017-07-27)年収 1 億円ディーラーの投資術板読みの基本の基本板読み投資の基本テクニック銘柄選びの基本テクニック板読み投資の実践テクニック最後はメンタル──テクニックよりも大切なこと第 1 章:年収 1 億円ディーラーの投資術「板が薄いから誰も売ってこないんだよ」
目から鱗とは、まさにこのことです。
私は、いつでも逃げられるように買い板の厚い銘柄を選んでトレードしていましたが、この先輩は、「買い板が薄くて逃げにくい銘柄だから、誰も売らないので株価が安定している」というロジックで、わざわざ買い板の薄い銘柄を選んでいたのです。ときどき成行の投げ売りをしてくる投資家もいますが、それで株価が下げたときには、単なるイレギュラーによる売りだから、買えばいいというスタンスなのです。この話を聞いたとき、これは株式投資の縮図だと思いました。
やはり、イレギュラーによって生じた株価のブレを取りに行くのが、トレードの基本です。そう考えると、この先輩のトレードは、究極の板読みではないかとも思えたものです。
何しろ、いまはここの買い板が無いけれども、いずれ株価が下がれば自然のうちに買い板が出てくるという考え方に基づいて、それに先回りしてポジションを取っているのですから、これは上級の板読みトレードです。したがって、この先輩は常に 30 銘柄、50 銘柄というように、実に幅広い銘柄に分散投資していました。
たくさんの銘柄に買いを入れていくので、この先輩はまだ板がほとんど出ていないような、朝の 8 時くらいから、それこそ数百銘柄の板を見ていました。
そして引けた後、もう一度、数百銘柄の板を見ているのです。
こうして数千円、1 万円という小さな利益を積み重ねて、1 日の利益を生み出していました。第 2 章:板読みの基本の基本約定ルール(優先順位)成行より高い買い指値、より安い売り指値より早い注文強い板・弱い板買い板の厚い板を選ぶのは、「確実に上がる」からではなく、いち早く他の買い勢に売り付けて逃げるため。上がる目算の方は、売り板の薄さで選ぶ。この双方での期待値的なイレギュラー度の高さを板の「強さ」と捉えているようだ。板に表れる投資家機関投資家ダラダラと続く儲けたいアルゴリズムスキャルピング高速売買で板情報…

WireGuard の OpenWrt での運用

イメージ
VPN と言えば、以前は OpenVPN だったが、最近のトレンドは WireGuard(言うなれば、Apache に対する nginx のような?)。先日まで OpenVPN の設定を徹底的にやり込んで納得行く状態が確立できたばかりなので、引き続き、VPN のこと自体にある程度フレッシュな知見がある今のうちにと思って、手がけてみることにした。ソフトウェアR7800(hnyman ビルド)では、デフォルトで wireguard-tools、kmod-wireguard、luci-app-wireguard、luci-proto-wireguard がインストールされていたので、wireguard のみ、LuCI から追加でインストールした。鍵ペアの用意 mkdir -p /etc/wireguard cd /etc/wireguard wg genkey | tee privatekey | wg pubkey > publickey/etc/wireguard/privatekey と /etc/wireguard/publickey が生成される。さらに、おまけとして presharedkey も使う場合には: wg genpsk > presharedkey/etc/wireguard/presharedkey を生成する。以上のファイルのパーミッションを念のため、600 にしておく。 chmod 600 *keyネットワークインターフェースの追加Network > Interfaces で WireGuard 用の論理ネットワークインターフェースを追加する。プロトコルを WireGuard VPN にするのがポイント。名前は wg0 にしておいた。 OpenWrt では、LuCI では専用のメニューが用意されている OpenVPN と違い、WireGuard はこの Network の Interface としての設定ですべてを管理するようになっているようだ(つまり /etc/config/network に記載される)。Private Key の欄に /etc/wireguard/privatekey の内容をコピー&ペーストListen port: 51820(標準のポート番号を使うことにした)IP Addresses: 192.168…