変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

[node.js]v12.18.3

事前準備

$ sudo apt-get install build-essential libssl-dev

gccのインストールは、https://ssiscirine.moe.hm/?p=28263 参照

pythonのインストールは、ReadyNasの管理画面のアプリからインストール。

ソースのダウンロード

$ sudo wget https://nodejs.org/dist/v12.18.3/node-v12.18.3.tar.gz
$ tar xvzf node-v12.18.3.tar.gz
$ cd node-v12.18.3

環境変数の追加 ※以下、sudo -E で追加した環境変数が引き継がれる様にすること。

$ export CCFLAGS='-march=armv7-a'
$ export CXXFLAGS='-march=armv7-a'

makefile作成

sudo -E ./configure

ビルド

date; sudo -E make -j8 ; date;

インストール
しかし、コンパイルしまくりなので、上か下だけで良いような気がした。

$ date; sudo -E make install ; date;

と云うか、この手のパッケージは環境を破壊しやすく、再構築の時は長~いビルド時間(この手のNASでは数時間)を省いてインストールしたくなるものだと思うんだけどね。(笑)

と書いたら install は2分ほどで終わった。
もう一度 install しても2分ほどで終わった。

ビルドしたイメージをtar圧縮化して、再構築したNASで解凍した際にpythonをインストし忘れたがinstall自体は動き続けたので、何か変なコトが起こったかもしれない。



[gcc]10.2.0のビルド

ビルドすると容量がかなり大きいので rootではなく、
管理者のアカウントを使う。
sudoも入っていないのでインストし、管理者をsudoグループに加入。

$ su root -
# apt-get install sudo
# usermod -G sudo ${development-user}
# exit

まずは、開発用の必須パッケージをインスト。

$ sudo apt-get install build-essential
$ sudo apt-get install libssl-dev

gccのソースをダウンロードして解凍する。


$ wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-10.2.0/gcc-10.2.0.tar.gz
$ tar xzf gcc-10.2.0.tar.gz
$ cd gcc-10.2.0

gccのビルドに必要なパッケージ類をインスト。

$ ./contrib/download_prerequisites

2020-07-25 01:37:12 URL:http://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 [2383840/2383840] -> "./gmp-6.1.0.tar.bz2" [1]
2020-07-25 01:37:14 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2 [1279284/1279284] -> "./mpfr-3.1.4.tar.bz2" [1]
2020-07-25 01:37:15 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz [669925/669925] -> "./mpc-1.0.3.tar.gz" [1]
2020-07-25 01:37:17 URL:http://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2 [1658291/1658291] -> "./isl-0.18.tar.bz2" [1]
gmp-6.1.0.tar.bz2: OK
mpfr-3.1.4.tar.bz2: OK
mpc-1.0.3.tar.gz: OK
isl-0.18.tar.bz2: OK
All prerequisites downloaded successfully.

makefileの設定。

$ mkdir build
$ cd build/
$ ../configure --enable-languages=c,c++ --prefix=/usr/local/gcc-10.2.0 --disable-bootstrap

それではビルド!

$ date; make; date
Sat Jul 25 12:21:24 JST 2020

※再ログイン後に反映されるので。ビルドの間に管理者やsudoのPATHの設定を変えておく。

$ vi ~/.bash_profile
export PATH=/usr/local/gcc-10.2.0/bin:$PATH
$ su -
# ls /etc/sudoers
-r--r----- 1 root root 669 Feb  2 08:23 /etc/sudoers
# chmod +w /etc/sudoers
# sudo vi /etc/ld.so.conf.d/arm-gcc-10.2.0.conf
Defaults        secure_path="/usr/local/gcc-10.2.0/bin:/usr...
# chmod -w /etc/sudoers
# gcc-10.2.0 configuration
/usr/local/gcc-10.2.0/lib
# exit

gccのビルドが無事終わったら、共有ライブラリィの設定を更新。

Sat Jul 25 15:11:22 JST 2020
$ date; sudo make install; date
Sat Jul 25 15:24:17 JST 2020
・・・
Sat Jul 25 15:25:40 JST 2020
$ sudo ldconfig
/sbin/ldconfig.real: /usr/local/gcc-10.2.0/lib/libstdc++.so.6.0.28-gdb.py is not an ELF file - it has the wrong magic bytes at the start.

/sbin/ldconfig.real: /usr/lib/libreadycloud.so.1 is not a symbolic link

おや?共有ライブラリィの設定がうまくいかない!!!

いや

# sudo gcc --version
gcc (GCC) 10.2.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

gccはちゃんと動いてるから いいか?



[node.js]node.js 0.10.29は、どうでしょう?

# apt-get install nodejs
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libc-ares2 libv8-3.14.5
The following NEW packages will be installed:
  libc-ares2 libv8-3.14.5 nodejs
0 upgraded, 3 newly installed, 0 to remove and 31 not upgraded.
Need to get 1,756 kB of archives.
After this operation, 6,476 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrors.edge.kernel.org/debian jessie/main armel libc-ares2 armel 1.10.0-2+deb8u2 [66.0 kB]
Get:2 http://mirrors.edge.kernel.org/debian jessie/main armel libv8-3.14.5 armel 3.14.5.8-8.1 [1,074 kB]
Get:3 http://mirrors.edge.kernel.org/debian jessie/main armel nodejs armel 0.10.29~dfsg-2 [615 kB]
Fetched 1,756 kB in 0s (1,810 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libc-ares2:armel.
(Reading database ... 17076 files and directories currently installed.)
Preparing to unpack .../libc-ares2_1.10.0-2+deb8u2_armel.deb ...
Unpacking libc-ares2:armel (1.10.0-2+deb8u2) ...
Selecting previously unselected package libv8-3.14.5.
Preparing to unpack .../libv8-3.14.5_3.14.5.8-8.1_armel.deb ...
Unpacking libv8-3.14.5 (3.14.5.8-8.1) ...
Selecting previously unselected package nodejs.
Preparing to unpack .../nodejs_0.10.29~dfsg-2_armel.deb ...
Unpacking nodejs (0.10.29~dfsg-2) ...
Setting up libc-ares2:armel (1.10.0-2+deb8u2) ...
Setting up libv8-3.14.5 (3.14.5.8-8.1) ...
Setting up nodejs (0.10.29~dfsg-2) ...
update-alternatives: using /usr/bin/nodejs to provide /usr/bin/js (js) in auto mode
Processing triggers for libc-bin (2.19-18+deb8u10.netgear1) ...

# nodejs --version
v0.10.29

# apt-get install npm

# npm install mysql
Segmentation fault
!pythonのインストを忘れていたせい
# npm install --global mysql
mysql@2.18.1 /usr/local/lib/node_modules/mysql
tqq sqlstring@2.3.1
tqq safe-buffer@5.1.2
tqq bignumber.js@9.0.0
mqq readable-stream@2.3.7 (process-nextick-args@2.0.1, inherits@2.0.4, util-deprecate@1.0.2, string_decoder@1.1.1, isarray@1.0.0, core-util-is@1.0.2)
# npm install --global http-server
npm WARN engine http-server@0.12.3: wanted: {"node":">=6"} (current: {"node":"0.10.29","npm":"1.4.21"})
npm WARN engine portfinder@1.0.27: wanted: {"node":">= 0.12.0"} (current: {"node":"0.10.29","npm":"1.4.21"})
npm WARN engine http-proxy@1.18.1: wanted: {"node":">=8.0.0"} (current: {"node":"0.10.29","npm":"1.4.21"})
Segmentation fault
!Node.jsが古すぎるらしい。


[MySQL]ODBC接続でフィールドの番号を振り直してみる

MySQLのAutoInc属性は0かNULLを設定した時に自動的に番号を振る機能なので、バックアップ・リストアを繰り返していると、気が付けば、数値が重複していたりする。
※UNIQUE KEYにしておけばそんなことは起きない(ハズ

そんな困った時は

SET @i := 0 ;
UPDATE テーブル名 SET フィールド名 = (@i := @i + 1) ;

なSQLをphpMyAdminから叩けば良いらしいんだけど、MS-ACCESSとかEXCELの【ボタン】から、ODBCでExecuteしてみると・・・・

エラる。

;の後に文字があるせいらしい。

試しにストアードプロシージャっぽく、

“BEGIN
SET @i := 0 ;
UPDATE テーブル名 SET フィールド名 = (@i := @i + 1) ;
END”

をExecuteすると、BEGIN…. 何ソレ美味しいの?状態。

仮にストアードプロシージャを作ったとしても

CALL 採番(’テーブル名’, ‘フィールド名’);

の様に直接パラメータは書けないので、@引数を使って

SET @p1=’テーブル名’;
SET @p2=’フィールド名’;
CALL 採番(@p1, @p2);

と呼ばないといけないらしい。てか、行数増えてるし・・・(汗

@変数を使うSQLをODBCで扱うのは、土台無理なんだろうか?

正解は、

1行づつやらせれば良い。

Dim sql(1) As String
sql(0) = “SET @i := 0 ;”
sql(1) = “UPDATE テーブル名 SET フィールド名 = (@i := @i + 1) ;”);

あるいは
Dim sql() as String
sql = split(“…….”, vbCrLf)

for idx =lbound(sql) to ubound(sql)
ds.Execute(sql(idx),dbSQLPassThrough)
next

2行目の処理時間は結構長い。

安易に・・・

Dim cnt As Integer
set rst = odbcConn.OpenRecordset(テーブル名)
Do While rst.EOF = false
rst.edit()
cnt = cnt+1
rst(フィールド名) = cnt
rst.update()
rst.MoveNext
Loop

な事をしてしまうと、レコードが少なければ数秒で終わるけど、全レコードの全フィールドを読み取る事になるので、何万レコードもあったら、何時間かかるか判らない。



DDL

データベースの設定用のスクリプトのこと。
データベースやテーブルの作成をGUIのツールで行うこともできるが、数が多いと操作が多くなりメンドクサイ。

よーく考えてみると、SQL形式でバックアップできるデータベースなら、
中身はSQLなんだから、その中の CREATE TABLE や CREATE INDEX を取り出せば、テーブルを作り直すSQLファイルを作れるはず。

しかし、SQL形式でバックアップできないなら、CREATE TABLEを作成するSQLを作ればいい。

MySQLの場合は、
SHOW COLUMNS FROM テーブル名
でテーブルのカラムの情報が見れる。

FieldTypeNullKeyDefaultExtra
link_idbigint(20) unsignedNOPRINULLauto_increment
link_urlvarchar(255)NO
link_namevarchar(255)NO
link_imagevarchar(255)NO
link_targetvarchar(255)NO
link_descriptionvarchar(255)NO
link_visiblevarchar(20)NOMULY
link_ownerbigint(20) unsignedNO1
link_ratingint(11)NO0
link_updateddatetimeNO0000-00-00 00:00:00
link_relvarchar(255)NO
link_notesmediumtextNONULL
link_rssvarchar(255)NO
link_categorybigint(20)NO0
SHOW COLUMNS FROM wp_links

EXCELに貼る元ネタはとしてはいいけど、これからCREATE TABLE を作るのは面倒。
SHOW CREATE TABLE テーブル名
で、直接DDLがゲットできる。

TableCreate Table
wp_linksCREATE TABLE `wp_links` (
 `link_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
 `link_url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_image` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_target` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_description` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_visible` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ‘Y’,
 `link_owner` bigint(20) unsigned NOT NULL DEFAULT 1,
 `link_rating` int(11) NOT NULL DEFAULT 0,
 `link_updated` datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
 `link_rel` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_notes` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
 `link_rss` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_category` bigint(20) NOT NULL DEFAULT 0,
 PRIMARY KEY (`link_id`),
 KEY `link_visible` (`link_visible`)
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
show create table wp_links

ORACLEの場合は
select DBMS_METADATA.getDDL(‘TABLE’, ‘テーブルの名前’);
でDDLがゲットできるらしい。



XRDPとWindows10の間でクリップボードが使えない等

ことがあったので調べてみた。まだ試してはいない。

3通りあった

まずはリモート接続の設定画面のローカルリソースでクリップボードを使える様にチェックが入っているか?

意外と忘れていることが多い。

ローカルコンピュータポリシーで
「コンピューターの構成」
 「管理用テンプレート」
   「Windowsコンポーネント」
   「リモートデスクトップサービス」
    「リモートデスクトップセッションホスト」
      「デバイスとリソースのリダイレクト」のトコで
「クリップボードのリダイレクトを許可しない」が「無効」になっている?
無効になっていなかったら「無効」にしてリモート接続しなおし。

メモリがギリギリだとDRP経由でクリップボードをやり取りするタスクがエラって仮死してる場合もあるらしい。

接続先のタスクマネージャの
「プロセス」タブに「RDPクリップボードモニタ」があったら、
※もしWindows7だったら「詳細」タブに「rdpclip.exe」が見当たるらしい。
「タスクを終了」し
「ファイル」
 「新しいタスクの実行」で
rdpclip.exe を起動する。

接続先がCentOSなら接続先には無いので、接続元を試すといいのかもしれない。

あと、XRDPは接続するPCに応じてセッションを増やすらしいので、接続を切る時はログアウトした方が良いかもしれない。

できれば、XRDPを再起動するといいだろう。

sudo systemctl restart xrdp
はできる様だが、
sudo service xrdp restart 2013年頃の記事
は無理らしい。
つまり古いバージョンはダメなんだろうね。

CentOSで「半角/全角」キーや「Windows+スペース」キーでかな漢字変換が動かないことがある。そんな場合は

画面右上のステータス・バーの右端で入力を切り替える。

アプリケーション
 システムツール
  設定で
言語と地域を選択し、入力ソースに、「日本語(xxx)」とかをメモって
再登録する。

とかショック療法が効くらしい。



GTX 1650

Core2Duo用のお手軽なDDR2メモリが見当たらなかったので、
外部電源不要な割に使えるグラボGTX750Ti(2GB)の代わりとして
VD6937 ZOTAC/PCP ZT-T16500F-10L (4GB) 16K円(税込)に変えてみた。

まぁまぁ稼いでくれそうである

ではFF14ベンチはどうかな

i5-9400F(16GB)+GTX1650(4GB)+SSD(m.2 NVMe)は、なかなか。
i7-3770T(16GB)+GTX-1060(6GB)+SSD(SATA3)は、ちょっと限界が見えてきたかも。

FF14はCPU性能がそれなりにスコアに反映されるので、純粋にグラボの性能の比較ではないが、1万円台のCPUとグラボを組合わせのサブPCが、9年前の3万円台のCPUと型落ちのグラボなメインPCよりスコアが良いのは、隔世感があり、なかなか良かった。

特にm.2(NVMe)のせいで、ロード時間が倍速になっている!

そろそろ棚に置きっぱなしのサブPCに移行してもいい頃合いの様だ。(大笑

あ、そうそうファンが1つなんでFolding@home中はまぁまぁな音が出るので、ITXでもツインファンの方がいいかも。

あ、どっちもFolding@homeが裏で動きっぱなしだったので取り直し。

i5-9400F(16GB)+GTX1650(4GB)+SSD(m.2 NVMe)、ローディング時間は14.951sec
i7-3770T(16GB)+GTX-1060(6GB)+SSD(SATA3)、ローディング時間は24.928sec

どっちも1万越えましたね。しかも僅差。微妙。



Folding@home

いつも見てるyoutoberがチームを作ってたのでチョット参加してみた。

G3900 CPUのスレッドは2個しかないので、
1日の貢献度 1496(予想)

プロジェクト14339は、武漢肺炎ウイルス(WHOで云うCOVID-19)の研究らしい。

i7-3770T + GTX1060

i7-3770T + GTX1060 の方がなかなか始まらない。
でも暫くすると・・・

GTXのCudaの行列に並んでしまった様だ。

1日の貢献度 72553(予想)

GPUを何に使っているかは不明。

ではこの2台で、ドレくらい貢献差があるのだろう?
G3900が、1500とGTX1060が72,500。

CPUとGPU(Cuda)の性能差がありすぎ(笑)

時間が経って3770の方も何やってるのか表示されるいようになった。

i7-3770T
GTX1060

i7-3770Tが72553だったのはガセでたったの2547でした。

ps. 未だに登録したチームには名前が載らないので、passkeyを取得し設定したら30,000あったポイントがリセットされました。

そのせいか?貰えるポイント数が1桁増えた気がします。

ps. リモート監視について、
Advanced Controleからリモート監視の設定ができます。

まずはリモートのPCで

WindowsのインジケータのFolding Activeから開く
とりあえずパスワード
パスワード付きのAllowに192.168.x.0/24とか追記 xはLANの状況で変わる

【Save】で設定は変えられるけど、読み込ませるためにWindowsのインジケータのFolding ActiveをQuitして、デスクトップのアイコンから再起動しないといけない。

さっきの設定でミスると、自分のPCの状況がAdvanced Controlerから見えなくなることがある。その場合は、C:\{ユーザ}\AppData\Roaming\FAHClient\config.xmlをsample-config.xmlを参考にエディタで直し、再びWindowsのインジケータのFolding ActiveでQuitして再起動しなおしAdvanced Controlerで状態が見れることを確認する。

続いて。自分のPCでAdvanced Controleを開き、

下の【Add】で監視先を追加

監視するPCを追加する。
上の図は既に追加済みの状態だな・・・

相手のIPアドレスとパスワードを設定して【Save】

StatusがOnlineではなくConnectingになる場合は、設定ミスかセキュリティソフトにfahcontole.exeが他のPCと通信できる様に設定が必要になるかもしれない。

インストーラはここまでは設定を入れてくれないからので追加した

これで離れたPCをFolding@homeに参加させっぱなしで寝てしまう問題は解消できるハズ。(笑)

ps.2 メインPCだけだと思ってSTOPにしてなかったらクレジットが50万を越えていた。今月の電気代が心配だ。

ps.
ずーっとPCを点けてるとファンが全力で回り続けるので音が大きい。
試しにGPUのみにしたら結構静かになった。intelのオマケのCPUファンは全開するとうるさい様だ。

ps.
しかし、CPUを外したままにすると、全くタスクが割り当てられなくなったりすることもあるので、元に戻す。

ついに300万台
RankRank
in term
NamePointsWork Unit
59,33779Slanirish6,289,562206
チーム内(4月末)
こんな感じで4月終了
WU200のままだけど


Core 2 Duo E8400

Windows10でまだ動くけどもっさりしている。

マザボはASUSTek P5QPL-AM

チップセットはG41。

BIOSが0408 (03/16/2010)

メモリはDDR2 2GB×2枚。PC2-6400で400MHz動作。※クロック×2動作なので実質800MHz。

グラボはRadeon HD5670、VRAMは512MB。

マザボの情報では

メモリ DDR2 1066(O.C.)/800/667
2スロット 最大8GB

なので、メモリ次第ではまだいけるかもしれない。

PIN入力までの時間が長いし、Windows Updateが非常に時間がかかる。 メモリを8GBにしても、SATA3.0G接続だからHDDをSSDに変えてもダメかな。

手元に古いSSD(SAMSUNG MZ-5PA064A)64GBがあったので、HDDをバックアップしたら差し替えてみよう。しかし、古いマザボなんでLANポートが100Mbpsで転送レートが11Mbps。※後期には1Gbpsになったのかと思ったらLANケーブルが100Mbpsだった。しかし、 古いマザボなんで USBは全て2なので、USB接続しても10Mbpsかな。

やっとバックアップを終え、SSDに取り換えて再インスト。

元が遅すぎたから比較すると非常に速く思える。ボタンを押すとスグPIN入力できる様になるのは凄いと思ったが、 CPUクロックのアクセルをベタ踏み状態なせいであり、やはりi-3770Tに比べれば重い処理は明らかに遅い。また64GBでは1909へのアップグレードの際に空き容量が不足してインストール0%まま待機してしまうので、ディスクのツールからWindowsUpdate関連のバックアップや配信等を削除しないといけなくなるので、128GB以上のSSDか、空き容量が30GBくらいあるUSBメモリを挿しておくと良いだろう。

ま、このPCはCore2Duo耐久テスト用なのでこのままでいいか(笑)

1909の最後の「更新プログラムを構成しています xx%」が1時間ペースなので、いつか中古のDDR2の4GBを2枚見つけて増設し性能UPするのか見てみたい。(爆笑

1909にアップグレードするとネットワークのファイアウォールがパブリックになったり。ファイルの共通や検索が無効になってたり、リモートデスクトップがOFFに変わったりすることがある。またPCによってどの現象が起きるかは判らないので、モニタとキーボードを繋いでからやった方が良さげ。
※本当にバラバラな結果だったので本当に困ったw




top