投稿

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

Wine 11.0でAcrobat Reader導入にチャレンジしました

 1.概要 Wine上でAdobe Photoshopの起動に成功の記事が出ていました。それならば、Adobe Acrobat Readerは簡単に動くのではないかと考えて、試してみましたが、日本語版、英語版共に動かすことができません。また、Windowsアプリのhdbenchも試してみました。こちらは動作しました。Wineはユーザー作成アプリの実行にニーズがあると思いました。その内容を記述します。 2.詳細 環境はi3環境で前回と同じ環境です。LinuxMint-21.3です。 acrobat Readerを下記URLからDownloadしました。 https://get.adobe.com/jp/reader/otherversions 日本語版をDownload後、InstallするとInstallerの表示が文字化けして導入方法がわかりません。そこで、英語版を再度Downloadして、Installは問題なく実行できました。起動をしようとしたのですが、実行モジュールの場所がわかりません。.wineの中を探したのですが、見つからず実行できませんでした。tab-keyを利用してDirectory名やFile名を補完したいのですが、スペース文字を含んだ文字列が邪魔をします。 pdfはFirefoxで参照できるのでAcrobat ReaderをLinuxで導入する必要性はありません。また、InstallerにLinuxの選択肢もなく、対象にされてもいません。Acrobat Readerは、以前、必須のアプリでしたが、もう使わなくなって何年も経っています。 PCの性能評価をするhdbenchは昔よく利用していたことを思い出しました。Downloadするとlzh形式ですが、問題なく解凍できます。Installerはなく、exeを実行するだけです。こちらはterminal上にエラーを出力しますが、処理は実行されました。このことからアプリケーションが利用するWindowsのAPIを準備できても、その実行環境を決定するInstallerが介在するものはWineで動かすことが難しい気がしています。 このことを踏まえると、ベンダー提供アプリでなく、ユーザーが開発したWindows上のアプリを動かすことならば、ニーズがあると思います。私自身はWindows上のアプリを開発し...

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

1.概要 awkをよく利用します。awkで処理に困ったことがあり、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桁までは整数になりますが、それ以上は浮動小数点になります (2) gawk sudo apt install gawk gawkのversionを確認します $ awk -V GNU Awk 5.1.0, API: 3.0 (GNU MPFR 4.1.0, GNU MP 6.2.1) Copyright (C) 1989, 1991-2020 Free Software Foundation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at...

LinuxMint 21.3にWine 11.0を導入しました

 1.概要 Wine 11.0がリリースされました。メジャーアップデートで「Wine 11.0 6300以上の変更と600件以上の不具合修正を反映」と記載されています。早速、試してみることにしました。少し前にWinBoatを導入したことと比較すると、とても簡単でミスをすることはありません。しかし、Windowsのアプリを動かす意味を考え直すことになりました。 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 上記手順でWine 11.0の導入が終わります。3分間程度なので負担はありません。 何をしようかと考えて、動かしたいWindowsのアプリがないことにWine導入をして気付きました。思い浮かぶのはWindows95時代のゲームですが、Dosbox以上にはならないと思っています。Windows全盛期の時には、様々なWindowsアプリを利用していましたが、現在はスマホに移ってしまい、PCで動かす専用アプリは減っていると実感しました。 ふと、iTunesのWindows版を導入しようと思ったのですが、Micr...

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

 1.概要 ntp.jst.mfeed.ad.jpのfiller設定をYAMAHAルータ(RTX)に実施したのですが、NTP同期ができなくなりました。調べた結果、round robin方式のURLをfilter設定する場合は、全ての候補をfiltter許可設定しなければ、正しいアクセス制御ができないとわかりました。その内容を記述します。 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を設定したためです。 これを回避するには、上記ラウンドロビンの3つのURLをフィルタリング設定で通過を許可して、クライアント側はntp.jst.mfeed.ad.jpを設定しなければならないことに気が付きました。 参考 PUBLIC NTP https://www.mfeed.ad.jp/ntp/detail.html

postgreSQLのレコード長による処理速度比較をしました

1.概要 postgreSQLのレコード件数の性能は、データ項目が5項目の場合、200万件の挿入に7秒と高速でした。データ項目数を増加させた場合にどのようになるかを試験で確かめました。その内容を記述します。 2.詳細 前回は5項目でreal部分が2項目でした。 date       daytime       number  real      real    2025-12-27,2025-12-27 16:39:16,1,0.924046,0.593909 このreal部分を100項目、200項目、300項目、400項目、500項目に変化させました。レコード件数は200万件です。 2項目  レコード長=64バイト     処理時間=7秒        100項目   レコード帳=456バイト    処理時間=60秒 200項目   レコード長=856バイト    処理時間=109秒 300項目   レコード長=1256バイト   処理時間=155秒 400項目   レコード長=1656バイト   処理時間=216秒 500項目   レコード長=2056バイト   処理時間=296秒 レコード長に比例して、処理時間を必要としています。つまり、レコード長が大きなデータをpostgreSQLに保存すると処理時間を必要で負担が増えることを示しています。postgreSQLには8KBのレコード長上限があり、それを超えることはできません。物理的な制限が来る前に、じわりとレコード長の長さによる影響が現れてくるので設計には注意が必要です。 参考 postgreSQL explain analyze https://ubuntults.blog.fc2.com/blog-entry-250.html

LinuxMint 21.3にWinBoat導入を試してみました

1.概要 WinBoatの記事をgigazine.netで見つけたので、リニューアルしたと思って、再度チャレンジしました。結果は、再度、期待はずれです。今回はWindowsアプリケーションの起動まで実施しました。記事ではEDGEを起動していますが、私の環境ではサインイン表示なしにEDGEが起動しました。コマンドプロンプトとエクスプローラは試してみて普通に動作しましたが、遅く感じます。この内容に関して記述します。 2.詳細 今回はWinBoatの導入に手こずりました。WinBoatにチャレンジをする方はOSを元に戻せる準備をしてから作業を開始しましょう。私は5回ほど元に戻しました。 HW環境は前回と同じで、AMD Ryzen、Memory 16GB, 4core, SSD 256GBです。 OSも合わせようとしたのですが、Ubuntu-22.04.5を導入するとFirefoxが起動しません。 snapdの問題と思ったのですが、2.72を超えていたので新しい問題と考えて諦めました。 OSをLinuxMint 21.3に変更してチャレンジです。 導入手順も少し変化しており、詳細手順は下記URLに従いました。 https://github.com/TibixDev/winboat 最初の問題はDocker環境です。Ubuntu標準にdocker composeの変更ではうまく行かず、全てやり直しをしました。 次の問題はMemoryです。16GBだけでは不足してハングしたようになりました。swapを8GB追加して問題解決しました。Memoryに関して以前実施したときは16GBで不足することはなかったと認識しています。 環境構築からInstallationのFinishまで約1時間必要です( Windows11 pro japanese選択 ) やっとInstallationが終了したと思うとリソースモニターのCPUが100%でハングです。 CPU 2Virtual Core Frequency: 3.60と表示された環境です(gigazineの表示はFrequency: 1.50) Power Offして再起動して、WinBoatは正常に起動しました。 そこで、EDGEとコマンドプロンプトとエクスプローラを試験しましたが、導入に1時間かけて使いたいとは思わない環境です。 試し...

postgreSQLでexplain analyzeの出力結果を分析した

 昨年11月頃からUbuntu-22.04.5からLinuxMint-21.3へ移行をしました。まだ、全ての移行を確認できていませんが、今年からはLinuxMintを主体に使う予定です。ubuntultsがBaseのディストリビューションなのでUbuntuとの大差はありません。Ubuntu-20.04までに近い環境へ移行できたと思っています。 1.概要 昔勉強をしたことでも時間が経過すると忘れてしまうことは沢山あります。RDBでSQLが実行されるときに統計情報が参照されて具体的な検索手順が決まることは多数経験をしていました。同じような性能問題はどこでも発生するものですが、原因究明は基本を正しく把握しているか否かの影響が大きいと思います。posrgreSQLのexplain analyzeに関して調べたのでその内容を記述します。 3.詳細 データ項目は下記5項目で、データ件数は200万件です。 データの例 date             daytime                     number  real  real    2025-12-27,2025-12-27 16:39:16,1,0.924046,0.593909 実行環境はi3-7100です。 primary keyはdaytime、2次key(index)はnumberとします。 insertで200万件のデータを登録後、下記select文を調べてみました。 select * from my_table where number = '1000000' 毎回drop tableを実施後、insertからやり直しをしました。 (1)primary keyのみ  Gather  (cost=1000.00..26106.97 rows=7353 width=64) (actual time=108.051..111.861 rows=1 loops=1)    Workers Planned: 2    Work...