Tech

WiFiルーターを直列接続で使う

防犯カメラ(Tapo)がv6プラス環境でも動作するようだし、孫たちのゲーム端末(任天堂スイッチ)の対戦ゲームもv6環境で動いているようなので、以前考えていたv6プラスとv4 PPPoE環境との併用は必要ないことが確認できた。

併用のために確保したNEC製WiFiルーター(WG2600HS2)2台を有効活用するために直列接続で使ってみたところかなり有効に機能することがわかった。

v6プラスとIPv4 PPPoEとを併用する

我が家のコラボネット環境をOCN光からGMOとくとくBB光へ事業社移転して懸案のv6プラスの環境を導入した。

ところが孫たちがやってきて任天堂のゲーム機を使うし、TVでYouTubeを見るためにWiFi設定をしている。またPPPoE接続の防犯カメラの導入も計画しているので、これらがv6プラスで動作するか不安定なので、PPPoE専用のネットワーク環境を別途構築することにした。

GMOとくとくBB光の v6プラスは特殊

ここ数年間我が家のISPは、OCN光で運用していた。

動作もサポートも全く不満はなく快適であったのだけれど、突然グループ再編に伴い 2023年6月30日をもって新規申し込み終了とのアナウンス。既存ユーザーはそのまま使えるということではあるが、先行きの不安があるため思い切ってGMOとくとくBB光へ事業社変更をした。

高額キャッシュバックで有名でもあるし、其のための手続き等でハードルが高く悪名を届かせているISPでもあるが、性能的にはAクラスだという評価なので挑戦してみようと思った。

GPG のお話

gpgの導入は難しくないのだけれど、さほど頻繁に扱うものでもないのですぐに忘れてしまう。そこで手順を記しておこうと思う。

私の場合は、Debian環境なので apt installとなる。他のディストリビューションを使っているならそれぞれのインストールコマンドで…

git-cryptを導入したときの備忘録

私の場合は、あくまで個人ユースなのでチームでリポジトリを管理したり共有するというニーズはない。githubはdotfilesの保存場所としていつでもリストアできるようにという目的で使っている。

自宅で固定で使うメイン機から git pushし、外出で持ち歩くためのサブ機は git pullしてメイン機のクローンとして使うというような運用である。以下に記録した方法は邪道的ではあるけれども当面は許容願いたい。私自身のスキルが成長してもっと安全でまともな手法が見つかれば改善していくつもりだ。

VboxでゲストWindowsをヘッドレスで使う

私の環境は、Linux Debianをメインで使っていて、ごくたまにWindows環境を試したいときには再起動してGRUBからWindowsを選ぶようにしている。いわゆるDuall環境というものである。

今回、VboxのゲストOSとしてWindowsをインストールし、これをヘッドレストで起動させることで再起動することなくシームレスなDuall環境が実現できたので記事としてまとめることにした。

この設定によりVM-WindowsをOFFすることなくログアウトしたり、再起動することも可能となる。

Submit時のダブルクリック防止

運用している WEBサイトでフォームからの投稿ボタンやリセットボタンをダブルクリックされての不具合が頻発したので対策を施した。

スマホ端末のユーザーは問題ないのだが、PC環境でダブルクリックの癖が抜けない人が居るらしい。

参考にしたサイトは下記…というかそのまんまである。

JS本体

var dblClickFlag = null;

function ThroughDblClick() {
    // ダブルクリック(連続ポスト)の制御
    if (dblClickFlag == null) {
        dblClickFlag = 1;
        return true;
    } else {
        return false;
    }
}

onSubmitから呼び出す

<script>
var dblClickFlag = null;

function ThroughDblClick() {
    // ダブルクリック(連続ポスト)の制御
    if (dblClickFlag == null) {
        dblClickFlag = 1;
        return true;
    } else {
        return false;
    }
}
</script>

<form action="" method="post" onSubmit="return ThroughDblClick();">
   <input type="submit" value="送信">
</form>

2回目以降がFalseになるかをテスト

test.html に下記をコピペしてテストしてみる。

<script>
var dblClickFlag = null;

function ThroughDblClick() {
    console.log(dblClickFlag == null);
    // ダブルクリック(連続ポスト)の制御
    if (dblClickFlag == null) {
        dblClickFlag = 1;
        return true;
    } else {
        return false;
    }
}
</script>

<form action="" method="post" onSubmit="return ThroughDblClick();">
   <input type="submit" value="送信">
   <input type="button" value="test" onclick="ThroughDblClick();">
</form>
  1. Chromeで test.html ファイルを表示させてデベロッパーツールを起動
  2. testボタンをダブルクリック
  3. Consoleタブで 1度目 true / 2度目以降 false となることを確認できればOK

1回で複数のリモートoriginに`git push`する

SVCはバックアップという使命もあるので、特に重要なものを以下のTipsを参考に複数のリモートリポジトリにpushできるようにした。

*1回のgit pushで複数のoriginに送信する

サブのリモートに対して直接pushするとややこしくなると思うので、メインのリモートに不具合が生じたときなどにサブのリモートからでもpullできるというだけのメリットだが、これが保険として役に立つときがあるのも困るのである。

リモートリポジトリをGithubからXserverへ移転させる

Githubには、パブリックリポジトリとプライベートリポジトリがあって、Freeプランの場合、プライベートリポジトリのは容量的な制限があったが、最近仕様変更がありFreeプランでも容量無制限になったらしい。実行時間には制限があるが個人的な用途では実用上問題ないと思う。

ただ、現状のルールが未来永劫保証されることはなく、再び制限が厳しくなる可能性も考えられるので、プライベートリポジトリをレンタルサーバーのxserverへ引っ越すことにした。

Xserverへgitの最新版をインストールした

PrivateリモートリポジトリをGithubからxserverへ引越しさせた。xsrverには、デフォルトでgitインストール済みで特に不自由は感じなかったのだけれど、かなり古いバージョンだったので最新版をインストールした。

参考にしたTips

前者のTipsは、~/local/bin/ へinstallするというものだったけれど上手く行かなかった。 後者のTipsを試して最終的には成功したのですが、若干説明不足というか補足が必要な感じなので備忘録として残すことにした。

GNU gettextをインストール

$ cd tmp  # 作業ディレクトリへ移動
$ wget https://ftp.gnu.org/gnu/gettext/gettext-0.21.tar.gz
$ tar zxf gettext-0.21.tar.gz
$ rm gettext-0.21.tar.gz
$ cd gettext-0.21
$ ./configure --prefix=/home/YOUR USERNAME/opt
$ make install

インストールが成功したらmsgfmt のインストールを確認します。 無事バージョン情報が表示されたら成功です。

$ ~/opt/bin/msgfmt --version    # msgfmt のインスト―確認(インストールしたバージョン情報が表示されればOK)
$ cd  ..
$ rm -rf gettext-0.21  # 不要になったので削除
$ cd

パスを設定する

$ which msgfmt 

としても存在しないと叱られるので.basrc にPATHを設定します。 vim ~/.bashrc として下記の行を追加します。

# msgfmt
export PATH=$HOME/opt/bin:$PATH

終わったら、設定を適応させて確認します。

$ source .bashrc
$ which msgfmt       # パスを通したのでインストール先の確認
~/opt/bin/msgfmt   # インストール先が表示されればOK

gitをインストール

$ cd tmp  # 作業ディレクトリへ移動
$ wget https://www.kernel.org/pub/software/scm/git/git-2.30.0.tar.gz
$ tar zxf git-2.30.0.tar.gz
$ rm git-2.30.0.tar.gz
$ cd git-2.30.0
$ ./configure --prefix=/home/YOUR USERNAME/opt
$ make all
$ make install
$ ~/opt/bin/git --version   # git のインスト―確認(インストールしたバージョン情報が表示されればOK)
$ cd  ..
$ rm -rf git-2.30.0  # 不要になったので削除

先の設定で ~/opt/binにはすでにPATHが通っているので、確認する。