投稿

1月, 2026の投稿を表示しています

awkとgawkの整数値の取扱の違い

記事の更新日:2026/09/11 1.概要 awkをよく利用します。awkで処理に困ったことがあり、gawkに変更しました。awkの中でテキストを数値にint関数で変更をしていたのですが、桁数が大きくなるとint関数を利用しているのですが、浮動小数点に変わっていまいました。これは想定外の動きでした。 処理ではintである必要があったので、対処策を探してgawkに変えることにしました。gawkで当面は問題なく処理できるのですが、gawkの場合も桁数が更に大きくなるとint関数の結果が正確ではありません。浮動小数点には変わらないのですが、微妙に数値が変わります。この内容を記述します。 私の評価は以下の通りです。 (1) awkで桁数が大きな値をint関数で数値計算すると、結果が浮動小数点になります (2) これを改善するには、awkをgawkに変えることで改善できます (3) awkをgawkに入れ替えるとシンボリックリンクが変わるだけです (4) gawkでも更に大きな桁数では課題が残ります 2.詳細 基本的には同じですが、gawkの方が精度が高いようです。 (a) awk ubuntu-22.04.5の標準のawkのversionを確認します awk -W version mawk 1.3.4 20200120 Copyright 2008-2019,2020, Thomas E. Dickey Copyright 1991-1996,2014, Michael D. Brennan random-funcs:       srandom/random regex-funcs:        internal compiled limits: sprintf buffer      8192 maximum-integer     2147483647 数字の文字列を数値(int)に変換します echo "1234567890" | awk '{ print int($1) }' 1234567890 echo "12345678901" | awk '{ print int($1) }' 1.23457e+10 10桁までは整...

LinuxMint/UbuntuでWine 11導入!どんなアプリを動かすことができるか

記事の更新日: 2026-09-28 タイトルを短く更新 1.概要 Wine 11.0がリリースされました。メジャーアップデートで「Wine 11.0 6300以上の変更と600件以上の不具合修正を反映」と記載されています。早速、試してみることにしました。 私の評価結果は下記内容です。 (1) メーカー製のインストーラーは途中終了します。レジストリが合わないようです (2) 日本語環境はwinetricksで対応できます (3) exe形式の実行モジュールは動作します。レジストリを必要としないためです (4) Windows版の自作アプリケーションの移行先としてWineは選択肢になります (5) オンラインゲーム分野への対応は進んでいます。Windows環境より良いようです (6) Wine 11.0以降の更新記録も記載( Wine 11.0〜Wine 11.18 ) 2.詳細 環境は、intel i3, Memory 16GBのPCにLinuxMint-21.3を新規導入しました。 Wine 11.0の導入手順を見つけるのに少し手間取りましたが、Wiki/Debian-Ubuntuに詳しく記載されています。 その手順に沿って作業を実施しました。 $ cat /etc/os-release $ sudo mkdir -pm755 /etc/apt/keyrings $ wget -O - https://dl.winehq.org/wine-builds/winehq.key | sudo gpg --dearmor -o /etc/apt/keyrings/winehq-archive.key - $ sudo dpkg --add-architecture i386 $ sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources $ sudo apt update $ sudo apt install --install-recommends winehq-stable $ wine --version $ sudo apt install winetricks $ winetricks cjkfo...

ラウンドロビンを採用するNTPサーバのYAMAHAルータへのフィルタリング設定

記事の更新日:2026/09/29 評価を加筆 1.概要 NTPサーバへのアクセスの規定値を変更しました。また、この設定でYAMAHAルータ上でNTPへのアクセス制御をfilter定義も実施したいと考えて、ドメイン名の定義設定をしました。ntp.jst.mfeed.ad.jpのfiller設定をYAMAHAルータ(RTX)に実施したのですが、NTP同期ができなくなりました。正確にはできない場合とできる場合が起きていました。 原因を調べた結果、ntp.jst.mfeed.ad.jpには3台のNTPサーバが準備されており、同一ドメイン名でラウンドロビン方式で分散アクセス設定されていました。ラウンドロビン方式のURLをfilter設定をしたのは初めてのことです。この場合、全ての候補をfiltter許可設定しなければ、正しいアクセス制御ができないとわかりました。その内容を記述します。 私の評価は以下の通りです。 (1) 有名なNTPサーバがラウンドロビン方式で運営されていると知りませんでした (2) YAMAHAのルータで単純なフィルタリングをすると問題が発生します (3) 動作する場合と動作しない場合が起きてしまい原因を調べることに時間が必要でした (4) 現在のネットは、53/udp, 123/udp, 443/tcpが通ると動作します。NTPは認証に必須です 2.詳細 ntp.jst.mfeed.ad.jpはDNSラウンドロビンの設定で下記URLを利用しています。 ntp1.jst.mfeed.ad.jp ntp2.jst.mfeed.ad.jp ntp3.jst.mfeed.ad.jp NTPへのアクセス制御にntp.jst.mfeed.ad.jpを設定したために、常にNTP同期できなくなってしまいました。クライアント側にもntp.jst.mfeed.ad.jpを設定したのが理由です。RTX側がフィルタリングしたNTPサーバとクライアントがアクセスするNTPサーバが一致しなかったと思われます。 具体的には、YAMAHA上に設定したntp.jst.mfeed.ad.jpは設定したタイミングでntp1.jst.mfeed.ad.jpのip-addressとラウンドロビン設定が一致していたとします。つまり、この時点でntp.jst.mfeed.ad.jpは、ntp1.js...