2019-08-25

【備忘録】thinclient_drives を隠す

Remote Desktop Protocol(リモート デスクトップ プロトコル、RDP)は、マイクロソフト社によって開発されている、リモートデスクトップサービスが稼動しているサーバにクライアントが接続するリモートデスクトップのプロトコルでです。リモートデスクトップ接続として TCP ポート 3389 および UDP ポート 3389 を使用します。

Wikipedia より抜粋、修正

本記事で対象としている OS は下記の通りです。

OS CentOS 7-1810 (x86_64)

本ブログの記事 [1] [2] で、CentOS 7 に xrdp サーバーを起動して、Windows からリモートログインできることを確認しましたが、デスクトップ画面に表示される thinclient_drives フォルダーは一体何に使われるのか疑問でした。

 リモートログインしたデスクトップ画面左上に表示される thinclient_drives 

参考サイト [3] によると、~/thinclient_drives/.clipboard/ にコピー&ペーストに使用するクリップボードデータを格納するのに使用されるそうですが、デスクトップ上にドライブとして表示されるのはバグではないかということです。

デスクトップ上に thinclient_drives フォルダーを表示させない方法にも触れられていました。デスクトップ・ユーザーが使用しないフォルダー(ドライブ)であれば、隠してしまうことが最良の策のように思います。/etc/xrdp/sesman.ini ファイルの [Chansrv] セクションの設定を下記のように編集します。要するに、FuseMountName がどうやらデスクトップに表示されるドライブで、このファイル名を .(ピリオド)で始まる隠しファイルに設定します。

/etc/xrdp/sesman.ini の編集 
;; See `man 5 sesman.ini` for details

[Globals]
ListenAddress=127.0.0.1
ListenPort=3350
...
(省略)
...
param=96

[Chansrv]
; drive redirection, defaults to xrdp_client if not set
;FuseMountName=thinclient_drives
FuseMountName=.thinclient_drives

[SessionVariables]
PULSE_SCRIPT=/etc/xrdp/pulse/default.pa

/etc/xrdp/sesman.ini を編集・保存した後、既に作成されてしまっている ~/thinclient_drives ディレクトリ(?)を削除して、xrdp サービスを再起動します。

thinclient_drives の削除と xrdp サービスの再起動 
[bitwalk@centos7-pc ~]$ rm -fR thinclient_drives
[bitwalk@centos7-pc ~]$ sudo systemctl restart xrdp

Windows からリモートログインして、thinclient_drives フォルダーが表示されないことを確認します。

 Windows から CentOS の xrdp サーバー (192.168.0.25) へリモートログイン例 

参考サイト

  1. bitWalk's: xrdp のサービスを使う [2019-08-16]
  2. bitWalk's: xrdp のサービスを使う (2) [2019-08-24]
  3. disable $HOME/thinclient_drives/ and $HOME/xrdp-chansrv.log · Issue #218 · neutrinolabs/xrdp [2015-05-01]
  4. Catch22cats Computer Tips: Xrdp creates a strange directory called thinclient_drives [2018-05-23]

 

ブログランキング・にほんブログ村へにほんブログ村

2019-08-24

xrdp のサービスを使う (2)

Remote Desktop Protocol(リモート デスクトップ プロトコル、RDP)は、マイクロソフト社によって開発されている、リモートデスクトップサービスが稼動しているサーバにクライアントが接続するリモートデスクトップのプロトコルでです。リモートデスクトップ接続として TCP ポート 3389 および UDP ポート 3389 を使用します。

Wikipedia より抜粋、修正

本記事で対象としている OS は下記の通りです。

OS CentOS 7-1810 (x86_64)

先日、参考サイト [1] に CentOS 7 で xrdp および関連パッケージをインストールした記事を掲載しましたが、その後、yum update コマンドでパッケージを更新しようとしたところ、xrdp 関連パッケージで依存性の問題が発覚しました、あれこれいじっている中で、一旦 xrdp パッケージなどをアンインストールしたところ、下記のように再インストールができなくなってしまいました。

xrdp のパッケージインストールに失敗 
[bitwalk@centos7-pc ~]$ sudo yum install xrdp
読み込んだプラグイン:fastestmirror, langpacks, priorities
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * centosplus: ftp.tsukuba.wide.ad.jp
 * epel: nrt.edge.kernel.org
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ xrdp.x86_64 1:0.9.10-1.el7 を インストール
--> 依存性の処理をしています: xrdp-selinux = 1:0.9.10-1.el7 のパッケージ: 1:xrdp-0.9.10-1.el7.x86_64
--> 依存性の処理をしています: xorgxrdp のパッケージ: 1:xrdp-0.9.10-1.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ xorgxrdp.x86_64 0:0.2.10-4.el7 を インストール
--> 依存性の処理をしています: xorg-x11-server-Xorg(x86-64) = 1.20.4 のパッケージ: xorgxrdp-0.2.10-4.el7.x86_64
---> パッケージ xrdp-selinux.x86_64 1:0.9.10-1.el7 を インストール
--> 依存性解決を終了しました。
エラー: パッケージ: xorgxrdp-0.2.10-4.el7.x86_64 (epel)
             要求: xorg-x11-server-Xorg(x86-64) = 1.20.4
            インストール: xorg-x11-server-Xorg-1.20.1-5.6.el7_6.x86_64 (@updates)
                xorg-x11-server-Xorg(x86-64) = 1.20.1-5.6.el7_6
            利用可能: xorg-x11-server-Xorg-1.20.1-3.el7.x86_64 (base)
                xorg-x11-server-Xorg(x86-64) = 1.20.1-3.el7
            利用可能: xorg-x11-server-Xorg-1.20.1-5.el7.x86_64 (updates)
                xorg-x11-server-Xorg(x86-64) = 1.20.1-5.el7
            利用可能: xorg-x11-server-Xorg-1.20.1-5.1.el7.x86_64 (updates)
                xorg-x11-server-Xorg(x86-64) = 1.20.1-5.1.el7
            利用可能: xorg-x11-server-Xorg-1.20.1-5.2.el7_6.x86_64 (updates)
                xorg-x11-server-Xorg(x86-64) = 1.20.1-5.2.el7_6
            利用可能: xorg-x11-server-Xorg-1.20.1-5.3.el7_6.x86_64 (updates)
                xorg-x11-server-Xorg(x86-64) = 1.20.1-5.3.el7_6
 問題を回避するために --skip-broken を用いることができます。
 これらを試行できます: rpm -Va --nofiles --nodigest
[bitwalk@centos7-pc ~]$

どうやら、インストールする xrdp パッケージ xrdp.x86_64 1:0.9.10-1.el7 が依存している xorgxrdp.x86_64 0:0.2.10-4.el7 パッケージに、解決できない依存性の問題があってインストールが出来ないようです。調べてみると、参考サイト [2] に同様な症状の問題についての対応策がありましたので試してみたのですが、残念なことに改善しませんでした。

やむなく、xorgxrdp.x86_64 0:0.2.10-4.el7 の SRPM ファイルを入手して、自分が使っている CentOS 7 の環境で必要なパッケージをインストールしてリビルドしてみました。このパッケージをインストールした後にあらためて xrdp と tigervnc-server パッケージをインストール、xrdp サービスを起動したところ、Windows からリモートログインが出来るようになりました。

もしも同じ問題で困っている方がいらっしゃれば、ご自分で xorgxrdp の RPM パッケージをリビルドしてみるか、あるいは、今回リビルドしたパッケージを参考サイト [3] にアップしましたので、このサイトから xorgxrdp-0.2.10-4.el7.x86_64.rpm をダウンロードして yum localinstall コマンドでインストールしてみてはいかがでしょうか。

今後の CentOS パッケージの更新などで、パッケージの依存性の問題の状況が変わる可能性があります。このことをご理解頂いた上で、自己責任で試されることをお願い致します。

 

※ 毎日、パッケージの更新を確認できる環境にはないのですが、8 月 30 日(金)に yum update で更新したところ、大きなパッケージ更新があり、リビルドした xorgxrdp パッケージで再び依存性の問題が出ました。一旦削除してパッケージ斧更新を実施し、改めて CentOS オリジナルの xrdp 関連のパッケージをインストールしました。

参考サイト

  1. bitWalk's: xrdp のサービスを使う [2019-08-16]
  2. CentOS7でxrdpがインストールできない場合の対応方法 - Qiita [2018-11-29]
  3. CentOS rebuilt RPMs Wiki - OSDN

 

ブログランキング・にほんブログ村へにほんブログ村

2019-08-17

機械学習と株価

R の quantmod (Quantitative Financial Modelling Framework) パッケージは、クオンツ取引 (qualitative trading) [1] において、統計的手法に基づいた取引モデルの構築、検証および運用の支援ができるように提供されています [2] [3]。このパッケージの getSymbols() 関数を使うと、例えば Yahoo!ファイナンス のサイトから指定した証券コードの株価データを取得することができます。

株価予測に機械学習を応用

今年初めにこのパッケージを使ってみて、株価を大量に取得できることを知って大いに驚きました。これは機械学習の応用分野に最適だと考え、予測モデルを作ることに取り組むことにしました [4] [5]。手始めに以下のようなテーマを掲げました。

当日の株関連情報を用いて、翌日(次回)のソフトバンク株式会社 (9434.T) の始値を予測せよ。

ソフトバンクグループ (SBG) の国内通信子会社、ソフトバンク株式会社 (9434.T) に注目した理由は、昨年 12 月 19 日に東京証券取引所第1部に上場したからです [6]。これでデータの取得開始日を 2019-12-19 に設定することができました。当日株価を取得してデータベースに追加、データを学習させて次回の始値を予測するという R スクリプトを作成し、毎晩そのスクリプトを実行して予測パフォーマンスを評価していました。

私は平日のほとんどが出張でホテル暮らしです。会社から支給されたノート PC の他に、プライベートで使用する Linux をインストールしたノート PC も携行し、仕事から戻って毎晩、株価データを更新、翌日の始値の予測値を算出していました。しばらく続けると当然データが増えてくるので、それだけ毎日の学習データが増えます。計算に時間がかかるようになりましたが、その分、予測トレンドがもっともらしくなってきました。

スクリプトのアプリ化

そろそろ手作業でやっている部分を自動化したいと思うようになり、R の Shiny パッケージを使って Web のアプリ化に取りかかり始めたのが先月のことです。今週一週間、夏休みにすることができたので、じっくり手を入れてひとまず使えそうな UI に仕上げる事ができました(下図)。

 stock-explorer 0.2 の実行例 

簡単な売買シミュレーション

予測パフォーマンスを眺めているだけでは飽きますので、簡単な投資シミュレーションの機能を付けてみました。予測モデルの精度が高いことはもちろん望ましいことですが、それだけでは投資ができないので、次のテーマに進むことにしたわけです。

とりあえず想定上 100 万円を元手に 2019 年 2 月 1 日に対象銘柄の株を 100 株単位で買えるだけ買って、そこから売買のシミュレーションをしています。証券会社に支払う手数料や税金はまだ考慮していません。

現在の売買基準は、予測した次の取引の始値が購入価格より高ければ売却し、本日の始値より安ければ(買えるだけ)購入するという保守的でシンプルなものです。投機的攻めの売買基準ではないので取引頻度は低いのですが、幸い、シミュレーションでは対象としている銘柄はどれも利益を出しています。ただ、手数料などを考慮に入れれば、利益は小遣い程度にしかならないでしょう。いまのところ、実現可能な投資資金をターゲットにして、アルゴリズムに工夫を加えて利益を高めるためのシミュレーションを重ねます。単一銘柄への投資方法がある程度固まったら、(同一の資金で)複数銘柄を扱うシミュレーションができるようにしたいです。

環境の整備

この夏休みに向けて、家庭内 LAN につなげて常時稼動させるサーバーを導入しようとあれこれ品定めをしていたのですが、ぴったりな PC が Amazon.jp にあったので 8 月に入って早々に買ってしまいました [7] [8]。8 月になったら CentOS 8 の RC (Release Cendidate) 版が公開されるだろうと踏んでいて、この新しいサーバーにインストールしようと思っていました。しかし予測が外れてしまったので、現行の CentOS 7 をインストールして使い始めています。

このサーバーの用途のひとつに、本件の株価データ更新分および翌日の始値の予測値の自動算出があります。crontab コマンドで毎日午後 8 時(後に午後 7 時に変更)に更新用のプログラムを起動するように設定して、この一週間(と言っても 4 日しかありませんでしたが)問題なく動作することを確認しました [9]

今後

現在、このアプリ (stock-explore) はバージョン 0.2 です。まだまだ先の話ですが、誰でも使えるように汎用化を進めて、正式リリース (1.0) の目処が立って、需要がありそうだと見込めれば github に公開したいなあと思っています。

参考サイト

  1. 【WSJで学ぶ経済英語】第280回 クオンツ投資 - WSJ
  2. quantmod: Quantitative Financial Modelling Framework
  3. CRAN - Package quantmod
  4. bitWalk's: Rで株価を扱う 〜 quantmod パッケージ [2019-01-16]
  5. bitWalk's: Rで株価を扱う 〜 始値を予測してみた [2019-02-03]
  6. ソフトバンク上場、終値1282円 公開価格を15%下回る:日本経済新聞 [2018-12-19]
  7. bitWalk's: Skynew m2s (1) [2019-08-03]
  8. bitWalk's: Skynew m2s (2) [2019-08-04]
  9. bitWalk's: crontab を使う [2019-08-15]

一番左は、R のパッケージ Shiny について書かれた邦書の入門書が少ない中で書かれた意欲的な著作です。しかし、実際に買って読んでみると Shiny について体系的にまとめるにはページ数が足りなかったという印象を持ちます。もし英文を読むのが苦でなければ、残り三冊の中から何冊かを副読本として読むことをオススメします。

ブログランキング・にほんブログ村へにほんブログ村

2019-08-16

xrdp のサービスを使う

Remote Desktop Protocol(リモート デスクトップ プロトコル、RDP)は、マイクロソフト社によって開発されている、リモートデスクトップサービスが稼動しているサーバにクライアントが接続するリモートデスクトップのプロトコルでです。リモートデスクトップ接続として TCP ポート 3389 および UDP ポート 3389 を使用します。

Wikipedia より抜粋、修正

RDP は Windows 間の接続ばかりでなく、Windows クライアントから Linux への接続にもオープンソースの実装を利用して接続することができます。xrdp はオープンソースの実装のひとつです。これによって Windows のリモートディスクトップのように Linux の xrdp サーバーに接続して、Windows 上で Linux のデスクトップを扱うことができます。

今まで Fedora で xrdp サービスを起動して試してきましたが、なかなか安定した接続状態を実現できませんでした。ところが、CentOS で試して、あっさりフツーに接続できてしまったので、その顛末をまとめました。

OS CentOS 7-1810 (x86_64)

CentOS を xrdp サーバーに設定する

xrdp は CentOS 7 のデフォルトのパッケージには含まれてません。外部レポジトリの EPEL を利用できるようにしておきます。 EPEL レポジトリの追加方法は、参考サイト [1] [2] などを参考にしてください。

その上で、xrdp と tigervnc-server をインストールします。

xrdp と tigervnc-server のインストール 
[bitwalk@centos7-pc ~]$ sudo yum install xrdp tigervnc-server
[sudo] bitwalk のパスワード:
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
...
(省略)
...
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 Package                アーキテクチャー  バージョン        リポジトリー  容量
================================================================================
インストール中:
 tigervnc-server        x86_64            1.8.0-13.el7      base          215 k
 xrdp                   x86_64            1:0.9.10-1.el7    epel          422 k
依存性関連でのインストールをします:
 xorgxrdp               x86_64            0.2.10-1.el7      epel           63 k
 xrdp-selinux           x86_64            1:0.9.10-1.el7    epel           17 k

トランザクションの要約
================================================================================
インストール  2 パッケージ (+2 個の依存関係のパッケージ)

総ダウンロード容量: 716 k
インストール容量: 2.7 M
Is this ok [y/d/N]: y
Downloading packages:
(1/4): xorgxrdp-0.2.10-1.el7.x86_64.rpm                        |  63 kB   00:00     
...
(省略)
...
  検証中                  : 1:xrdp-selinux-0.9.10-1.el7.x86_64              4/4 

インストール:
  tigervnc-server.x86_64 0:1.8.0-13.el7        xrdp.x86_64 1:0.9.10-1.el7       

依存性関連をインストールしました:
  xorgxrdp.x86_64 0:0.2.10-1.el7       xrdp-selinux.x86_64 1:0.9.10-1.el7      

完了しました!
[bitwalk@centos7-pc ~]$ 

xrdp サービスを起動し、さらに OS 起動時に自動実行させるようにしておきます。

xrdp サービスの起動 
[bitwalk@centos7-pc ~]$ sudo systemctl start xrdp
[bitwalk@centos7-pc ~]$ sudo systemctl enable xrdp
Created symlink from /etc/systemd/system/multi-user.target.wants/xrdp.service to /usr/lib/systemd/system/xrdp.service.
[bitwalk@centos7-pc ~]$ 

リモートデスクトップ接続に使用する TCP ポート 3389 がファイヤーウォールを通るように設定します。

ファイヤーウォールの設定 
[bitwalk@centos7-pc ~]$ sudo firewall-cmd --permanent --zone=public --add-port=3389/tcp
success
[bitwalk@centos7-pc ~]$ sudo firewall-cmd --reload
success
[bitwalk@centos7-pc ~]$ 

以上で CentOS 側の設定は終わりです。

Windows 10 からリモート接続

Windows 10 の PC から CentOS の xrdp サーバー (192.168.0.25) へリモート接続します。この Windows 10 は英語版のものを使っています。ただしキーボーとのレイアウトは日本語用です。

 Windows から xrdp サーバー (192.168.0.25) へリモートログイン (1) 

すると下記のようなログイン画面が表示されますので、xrdp サーバーに設定されているアカウントでログインします。

 Windows から xrdp サーバー (192.168.0.25) へリモートログイン (2) 

認証などがパスワードの入力が要求されますが、無事にログインできました。

 リモートログイン後の画面 (1) 
 リモートログイン後の画面 (2) 

英語のキーボードのレイアウトになっていることを報告しているサイトがありましたので、念の為確認してみましたが、日本語キーボードのレイアウトに対応していました。⌨

参考サイト

  1. [CentOS7]EPELリポジトリの簡単な追加方法 | Zero Configuration
  2. EPELとは - bnote
  3. キー配列について - 日本 xrdp ユーザ会

 

ブログランキング・にほんブログ村へにほんブログ村

2019-08-15

crontab を使う

crontab は、Unix 系オペレーティングシステムにおいて、指定コマンドを定時実行するためのスケジュール管理を行うコマンドです。

Wikipedia より抜粋、修正

この夏期休暇に自宅で常時稼動させるサーバーを立てようと、Amazon.jp からファンレスの格安小型 PC [1] を買って使い始めています。OS はとりあえず CentOS 7 をインストールしました [2]。必要な設定が終わり、いよいよ自作アプリケーションのデータを自動更新するため、crond サービスを利用する段階になりました。

参考資料 [3] を見ながら、crontab コマンドで毎日午後 8 時に更新用のプログラムが起動するように設定しました。

crontab でジョブスケジュール設定後の確認 
[bitwalk@centos7-pc ~]$ crontab -l
0 20 * * * /home/bitwalk/shiny-app/stock-explorer/support/update.sh
[bitwalk@centos7-pc ~]$ 

ディレクトリ名を見ての通り、これは Shiny のアプリケーションで、データベース更新のため R のバッチプログラムを定期的に動かします。crontab の設定で直接コマンドを記述しても良かったのですが、なにかと細かな変更の実行確認がしやすいし git で履歴管理できるという理由で、bash 用のスクリプトファイルを用意して、そこに R CMD BATCH ... を記載しています。

指定時刻にジョブが起動したことを htop で確認、非力な CPU ですが、それでも約 20 分後に計算が終了、アプリケーションのデータが更新されていることを確認できてメデタシメデタシなのですが…、

実行したジョブのログ 
[bitwalk@centos7-pc ~]$ tail update.Rout
  70     99.23493  0.9691623  72.76109

RMSE was used to select the optimal model using the smallest value.
The final value used for the model was mtry = 70.
          Date   Code  Predict
155 2019-08-14 9984.T 4981.734
[1] "insert into rf values(18122, '2019-08-14', 2123.54933333333, 2346.01436666667, 282.723566666667, 2139.61413333333, 1051.35863333333, 1412.6698, 2677.06021666667, 1491.37915, 24362.1283333333, 2618.8785, 4981.7339);"
> proc.time()
   ユーザ   システム       経過  
    97.566      1.664   1089.813 
[bitwalk@centos7-pc ~]$ 

crontab コマンドで設定した内容はどこ?

crontab -e で設定した内容はどこに格納されているのでしょうか?ユーザーディレクトリ内を探してもそれらしいファイルがありません。いろいろ調べてみると、参考サイト [4] に説明がありました。/var/spool/cron/アカウント名 にあります。

念の為ということでもないのですが、自力で確認しきれなかったのが悔しくて、crontab コマンドが含まれているパッケージ (cronie) が管理しているディレクトリも確認しました。

crontab の設定保存先 
[bitwalk@centos7-pc ~]$ rpm -qf /usr/bin/crontab
cronie-1.4.11-20.el7_6.x86_64
[bitwalk@centos7-pc ~]$ rpm -ql cronie
/etc/cron.d
/etc/cron.d/0hourly
/etc/cron.deny
/etc/pam.d/crond
/etc/sysconfig/crond
/usr/bin/crontab
/usr/lib/systemd/system/crond.service
/usr/sbin/crond
/usr/share/doc/cronie-1.4.11
...
(省略)
...
/usr/share/man/man8/crond.8.gz
/var/spool/cron
[bitwalk@centos7-pc ~]$ ls /var/spool/cron
ls: ディレクトリ /var/spool/cron を開くことが出来ません: 許可がありません
[bitwalk@centos7-pc ~]$ sudo ls /var/spool/cron
[sudo] bitwalk のパスワード:
bitwalk
[bitwalk@centos7-pc ~]$ sudo cat /var/spool/cron/bitwalk
0 20 * * * /home/bitwalk/shiny-app/stock-explorer/support/update.sh
[bitwalk@centos7-pc ~]$ 

ちなみに、crond サービスを利用できる(できない)ユーザーは、/etc/cron.allow/etc/cron.deny にユーザー名を記載して管理します。この CentOS 7 の cronie パッケージの設定のように、/etc/cron.allow が無くて、空の /etc/cron.deny が存在する場合は、このシステムの全てのユーザーが crond サービスを利用できます。つまり crontab コマンドで自動処理のスケジュールを設定できるということです。

本記事のように個人ユースで使うサーバーならともかく、複数のユーザーがアクセスする環境では、ユーザーが使用できる crond サービスの適用範囲ついてはルールを決めて運用する必要があります。

参考サイト

  1. bitWalk's: Skynew m2s (1) [2019-08-03]
  2. bitWalk's: Skynew m2s (2) [2019-08-04]
  3. Linuxコマンド【 crontab 】cronの設定 - Linux入門 - Webkaru
  4. Linux crontab command help and examples

 

ブログランキング・にほんブログ村へにほんブログ村

2019-08-14

共立数学公式 〜 プログラミングに興味を持つきっかけだった

FORTRAN の名前を知ったのは高校生だった時分(1980 年代)、共立数学公式 [1] という本を買った時だと思います。今ではすっかり古書と呼べる本ですが、関数を函数と表記していることから判るように、当時でもすでに古い本でした。💦

※ 古い記憶を手繰り寄せ、インターネットで検索を繰り返して、ようやく本書を見つけ出しました。

この本の「電子計算機」の章に FORTRAN 66 と ALGOL 60 の説明があったと記憶しています。FORTRAN の説明がそれなりに充実していました。高校数学の公式集としてはそれほど実用的でないのになぜこの本を買ったのか思い出せないのですが、たぶんこれが購入動機だったのでしょう。とにかくこの章は不思議な魅力を放っており、内容を具体的に理解できないながらも飽きずに何度も読み返していました。

理解が十分でないながらも判ったことがあります。電子計算機を制御するために言語が考案され、しかも 1960 年とか 1966 年というように、ずいぶんと前に既に言語仕様の規格が制定されていたということです。JIS とか ANSI とかの規格が何なのかを正確に理解していたわけではありませんが、少なくとも世間で「それ」が多くの分野で利用されるからこそ、共通の仕様を取り決める必要が出てくるのだろうな、ぐらいにはイメージできました。この事実に驚き、そして自分が知らない電子計算機の世界で、既に実用的に使われているであろうプログラミングというものに、猛烈な興味を抱いたのでした。

まもなく、カシオ計算機のプログラム関数電卓 FX-502P でプログラミングらしいことをはじめました。父親が毎月買ってきてくれた「科学朝日」という科学雑誌の広告に載っていたのに惹かれ、小遣いを貯めて買ったのでした。その後、バイトをして貯めたお金でマイコンを買って、この世界にどんどんのめり込んでいったのです。

本書について、それ以外の内容には殆ど記憶がありません。まったく、高い買い物をしたものです。でもプログラミングに興味を持つ大きなきっかけを作ってくれました。大学をなんとか卒業し、社会人になってからも持っていましたが、引っ越しを繰り返す中で処分してしまったようです。

参考サイト

  1. 共立数学公式 ―附函数表― 改訂増補 / 泉 信一 近藤 基吉 穂刈 四三二 永倉 俊充 編集 | 共立出版
  2. bitWalk's: FX-502P の思い出と格安 PC [2016-05-29]

 

楽しみにしていた夏期休暇になり、休み中に読もうと市内の丸善書店で買い込んだ本のうちの一冊です。ひさしぶりに今どきの Fortran に触れてみようと参考書として買いました。Linux 上で Eclipse に Photran という Fortran 用のプラグインを入れ、gfortran を使って遊んでいる時に、ふと、FORTRAN を知った昔のことを思い出しました。

ブログランキング・にほんブログ村へにほんブログ村

2019-08-12

RHEL 7.7 リリース

2014年に最初のリリースが公開されたRHEL 7 系の最新版「Red Hat Enterprise Linux 7.7」が、8 月 6 日(米国時間)にリリースされました。

RHEL は、リリースされてから 10 年間は Red Hat 社により、セキュリティアップデートを含めた公式サポートを受けることができます。RHEL 7 系は 2024 年までサポートされます。今年 5 月に最新版 RHEL 8 がリリースされていて、この 7.7 のリリースをもって RHEL 7 系は Maintenance Phase I に入ります。今後の RHEL 7 系リリースでは新機能の追加は行われず、安定性の維持が中心となります。

参考サイト

  1. 「RHEL 7.7」公開、今後7系はメンテナンスフェイズへ | OSDN Magazine [2019-08-07]
  2. 「Red Hat Enterprise Linux 7.7」リリース - ZDNet Japan [2019-08-07]
  3. 7.7 リリースノート - Red Hat Customer Portal

 

ブログランキング・にほんブログ村へにほんブログ村

2019-08-11

大人の科学 / USB 特撮カメラを Linux で試す

大人の科学.net

USB 特撮カメラが大人の科学マガジン(学研教育出版)の付録に付いていたのは、2013 年 9 月 28 日に発売された Vol. 40 でした。6 年近くも前です。当時はちっとも興味が無かったのですが、今日、丸善 ラゾーナ川崎店に行ったところ、(Vol .40 ばかりでなく、他の号もあったのですが)何冊も並んでおり、付録の USB 特撮カメラに対応する OS が Windows/MacOS X ではありましたが、Linux でも使えるだろうと見当をつけて買ってしまいました。💦

帰宅して早速、付録のカメラを組み立てました。

 組み立てた USB 特撮カメラ 

今どきのデスクトップ環境を提供している Linux ディストリビューションであれば、どれでも動作するとは思いますが、使用した環境を下記に示しました。

OS Fedora 30 (x86_64)
ソフトウェア Cheese 3.32.1

Cheese は Web カメラを扱うための GNOME デスクトップ環境のアプリです。ちょっと机の上を撮ってみました。まあまあの近接撮影です。

 Cheese で試し撮り(写真) 

いまさらですが、少し遊んでみようと思います。

USB 特撮カメラ仕様(大人の科学マガジン USB特撮カメラ 63 ページより引用) 
本体サイズ(幅×高さ×奥行) 40 × 40 × 20 mm
ケーブル長 約 100 cm
本体重量 約 58 g
フォーカス 0.1 mm ~ ∞(マニュアル)
画角 55°
画像センサー 200 万画素 CMOS
画面縦横比 4:3
フレームレート 明るさにより可変
内蔵マイク モノラル(無指向性)
露出 自動
ゲイン(ホワイトバランス) 自動
レンズ プラスチック 3 群 4 枚
接続 I/F USB 2.0
対応 OS Winodws XP (SP2) / Vista / 7 / 8, MacOS X 10.6 / 10.7 / 10.8

USB 特撮カメラを Linux に接続することは、上記の通り、仕様外の使い方です。

参考サイト

  1. USB特撮カメラ | 大人の科学マガジン | 大人の科学.net(2013年9月28日発売)

 


ブログランキング・にほんブログ村へにほんブログ村

2019-08-04

Skynew m2s (2)

小学生の頃、夏休みが近づいてくると、今年の自由研究は何をやろうかとワクワクしながら作戦を練っていたものですが、成長していないようで大人になってもそれは変わらず、ちょっと長い休暇を前に同じような気分になります。今年は、まもなくリリースされるであろう CentOS 8 を夏季休暇中にいじり倒すために、専用のサーバーを立てようと Amazon.jp でチープな小型 PC, Skynew m2s を買ってしまったのでした [1]

現時点で、CentOS 8 は RC (Release Candidate) 版の公開に向けて作業が始まっていますが、正式版がいつリリースされるのかはアナウンスされていません。しかし DevConf.US 2019 [2] がボストンで開催される 8 月 15 日までには、少なくとも RC 版の公開はされるだろうと推測しています。RC 版が公開されるまでは、現行の CentOS 7 をインストールして設定の予行練習をするつもりです。

CentOS 7 のインストール

8GB のメモリ、256GB の SSD に換装後、CentOS 7 を(最小限のインストールで)インストールしました。インストール時にパーティションはおまかせ(自動)にせず、/home と /var に概ね同じぐらいの領域を割り当てました。CentOS 8 がリリースされれば、もう少し大きな容量の mSATA SSD を買って差し替えるかもしれません。

パーティションとメモリの状況 
[bitwalk@centos7-pc ~]$ df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    50G  953M   50G    2% /
devtmpfs                  3.6G     0  3.6G    0% /dev
tmpfs                     3.6G     0  3.6G    0% /dev/shm
tmpfs                     3.6G  8.7M  3.6G    1% /run
tmpfs                     3.6G     0  3.6G    0% /sys/fs/cgroup
/dev/sda1                1014M  151M  864M   15% /boot
/dev/mapper/centos-var     97G   88M   96G    1% /var
/dev/mapper/centos-home    84G   33M   84G    1% /home
tmpfs                     727M     0  727M    0% /run/user/1000
[bitwalk@centos7-pc ~]$ free -h
              total        used        free      shared  buff/cache   available
Mem:           7.1G        189M        6.7G        8.7M        223M        6.7G
Swap:          7.4G          0B        7.4G
[bitwalk@centos7-pc ~]$ 

OS のインストール後に、EPEL などのパッケージのレポジトリを追加 [3]、htop をインストールして 4 つのコアの稼働状況をわかるようにしました。

 htop によるリソース使用状況 

パフォーマンス

クロスプラットフォームでベンチマークを計測できる Geekbench 4 で、CPU 性能を計測して、最初の Windows 10 の時と、メモリと SSD を換装して CentOS 7 (Linux) をインストールした時を比較しています。Linux のマルチコアのスコアが Windows より低くなってしまっていますが、既に Linux である程度の設定をしてしまっており、バックグラウンドでデーモンがいくつも動いていることが影響しているのかもしれません。

Geekbench によるベンチマーク(Windows と Linux でそれぞれ計測)
#NamePlatformArchitectureSingle-core ScoreMulti-core Score
14160252 To be filled by O.E.M. To be filled by O.E.M.
AMD A6-1450 1000 MHz (4 cores)
Linux 64 x86_64 804 1841
14148314 To be filled by O.E.M. To be filled by O.E.M.
AMD A6-1450 997 MHz (4 cores)
Windows 64 x86_64 779 1943

まとめ

チープなノート PC に Linux をインストールするのが趣味でいろいろ試してきましたが、家庭内 LAN に常時稼働させるのを目的に PC を導入するのは初めてです。CPU ファンも無く静かに、ときどき筐体が熱くなりながら稼働している弁当箱のような小さい PC にちょっと感動しています。共有情報の保存先をはじめとして、パッケージのビルドやメインの PC で開発したアプリの実装テストなどに使えそうです。

 CentOS 7 インストール後に設置・稼働している Skynew m2s 

参考サイト

  1. bitWalk's: Skynew m2s (1) [2019-08-03]
  2. DevConf.US | August 15-17, 2019 - Boston, USA
  3. yumリポジトリ追加リスト 完全版 - Qiita [2018-04-04]

 


 


ブログランキング・にほんブログ村へにほんブログ村

2019-08-03

Skynew m2s (1)

まだ夏期休暇になっていませんが、休暇中に取り組もうと考えているテーマに使おうと、Amazon.jp でチープな PC を買ってしまいました。なんと 22,200 円です!休暇中に取り組むテーマとは何か?それは、まもなくリリースされるであろう CentOS 8 をインストールして遊ぶことです。💦

遊ぶといっても、今回は家庭内 LAN にサーバを立てて常時稼動させ、いろいろなことを試すために使うことを考えています。常時稼働させるには、CPU の性能よりも消費電力が低いエコなものが望ましいです。そんな用途にマッチしたのが、今回買った Skynew の m2s という小型パソコンです。

以下に主な仕様をまとめました。

skynew m2s の主な仕様 
ブランド・型番 Skynew m2s
本体サイズ・重量 16 x 10.7 x 3.3cm, 621g
CPU AMD A6-1450、コア数・スレッド数 4・4、ベース動作周波数 1GHz、ターボ・ブースト 1.4GHz、クロック・レート 1000 - 1400MHz、キャッシュ 2MB、TDP 8 - 15W、Manufacturing Technology 28nm
グラフィックス AMD Radeon HD 8250、バース動作周波数 300 - 400 (Boost) MHz、DirectX DirectX 11.1、Shader 5.0
マザーボード AMD KABINI CRB
メモリ 4GB DDR3-1600KHz(最大 8GB)1x SO DIMMスロット
ストレージ 64GB SSD M-SATA、データ転送率 600MB/秒、ストレージのインタフェース mSATA III、1x mSATA スロット、S.M.A.R.T,APM,48-bits LBA,NCQ対応
映像出力 HDMI, VGA
有線LAN 10/100/1000Mbps (Realtek RTL8111F)
Wi-Fi 802.11 a/b/g/n/ac 2.4G & 5G (Qualcomm Atheros AR9462-AL3A)
Bluetooth 4.0
USB ポート USB3.0×2,USB2.0×4
オーディオ Realtek HD ALC662
インターフェース 1xHDMI、1xVGA、1xLAN、2xUSB 3.0、4xUSB 2.0、1x音声出力とマイクインのコンボジャック、1x給電DCポート
消費電力 8W
OS Windows10 Pro 64bit、バージョン1803、ライセンス付き

搭載されている CPU は 2013 年に発表された AMD A6-1450 で、テクノロジー・ノードは 28nm です。

Amazon.jp のページでは超低電力プロセッサを謳っていますが、TDP 8W が低電力と言えるかどうかはちょっとわかりません。しかし CPU ファンは無く、筐体全体が熱伝導率の高いアルミ材でできていてそれがヒートシンクになっています(右写真)。コンパクトなサイズですが、ヒートシンクになっているため 600g 程の筐体はずっしりと重く感じます。しかし、少々重くとも電源を入れっぱなしで部屋の片隅でひっそりと稼働していてくれれば OK なのです。

世代が古い CPU なので、性能に過大な期待はできませんが、それでも 4 コア、4 スレッドありますので、重い処理ばかりでなければ、評価目的で家庭内 LAN に設置するサーバとして使えそうです。

ただ、メモリ 4GB、ストレージ 64GB はさすがに少ないので、8GB のメモリーと 256GB の SSD も一緒に買っています。換装する前に、現状での動作確認をしました。

Windows の起動

Windows は要らないのですが、動作確認のためにディスプレイやキーボード&マウスを接続して起動し、プリインストールされている Windows 10 Pro を(金曜日の夜から)一晩かけてアップデートしました。PC を買って、使いはじめに立ちはだかる Windows のアップデートには、いつもイライラします。でもこれが不良をみつけるための動作確認だと考えれば、なんとか我慢もできるかなと思うようになりました。

サウンド、有線ネットワーク、WiFi および Bluetooth デバイスが動作することを確認できましたので、動作確認はとりあえず良しとしました。

 プリインストールされている Windows 10 Pro 

パフォーマンス

クロスプラットフォームでベンチマークを計測できる Geekbench 4 で、CPU 性能を計測して比較しています。下表上段の「To be filled by O.E.M. To be filled by O.E.M.」が今回買った Skynew m2s で、下段に 3か月ほど前に買った Alldocube iwork10 Pro のスコアを比較用にに載せてあります。以前はこれが手持ちの PC で最低のスコアを記録したのですが、今回は最低スコアを更新しました。

Geekbench によるベンチマーク
#NamePlatformArchitectureSingle-core ScoreMulti-core Score
14148314 To be filled by O.E.M. To be filled by O.E.M.
AMD A6-1450 997 MHz (4 cores)
Windows 64 x86_64 779 1943
12954540 ALLDOCUBE i1002SG
Intel Atom x5-Z8350 1439 MHz (4 cores)
Windows 64 x86_64 878 2341

CentOS 7 ライブイメージの起動

首を長くしてリリースを待っている CentOS 8 はまだ RC 版すらリリースされていないので、とりあえず CentOS 7 のライブ版を使って起動できることを確認しました。CentOS-7-x86_64-LiveGNOME-1810.iso を焼いた USB メモリを挿入して起動後すぐに Esc キーをタイプして BIOS 設定画面にします。ブート順を USB メモリが最初に起動するように変更して CentOS のライブ版を起動します。

 CentOS 7 ライブ版の画面 

とりあえず CentOS 7 のライブ版が起動して問題なさそうだったので、メモリと SSD を換装して、CentOS 7 をとりあえずインストールしてみます。

参考サイト

  1. Skynew m2sというパソコンを見つけたのでレビューをまとめてみる | ITist [2018-12-19]
  2. skynew 小型パソコン ミニPC 静音 M2S | kanato's hobby life [2019-05-03]

 


 


ブログランキング・にほんブログ村へにほんブログ村

2019-08-01

待ち遠しい CentOS 8 (2)

CentOS は、Red Hat Enterprise Linux (RHEL) と機能的に互換性があることを目指したフリーの Linux ディストリビューションです。ターゲットは RHEL と同様に企業のサーバやデスクトップ環境の構築としています。また、ライセンス費用が無償であるにもかかわらず、非常に長いサポート期間のあることが特徴です。

Wikipedia より抜粋、修正

RHEL 8 が 2019 年 5 月 7 日に出荷開始されて、いつ CentOS 8 がリリースされるかと首を長くして待っているのですが、なかなかリリースされません。参考サイト [1](下表に転載しました。)を頻繁にチェックして開発状況を見ていますが、ついに RC (Release Candidate) 版が出てくる段階に差し掛かったようです。

Current Timeline(8月1日現在)

Item Started Ended Status
Sources pushed to CentOS Git 2019-05-07 2019-05-08 DONE
Source code evaluation 2019-05-07 mid-june DONE
New Build System Setup 2019-05-07 2019-05-08 DONE
Debranding patches added 2019-05-07 YYYY-MM-DD Ongoing
Artwork Requested 2019-03-07 2019-05-07 DONE
Artwork Selections 2019-05-09 YYYY-MM-DD Ongoing
Build Loop 0 2019-05-07 2019 mid June DONE
Build Loop 1 2019 mid June mid-june DONE
Build Loop N 2019-06-20 2019-06-28 DONE
Installer work 2019-06-16 YYYY-MM-DD Ongoing
QA work 2019-06-28 YYYY-MM-DD Ongoing
RC work 2019-07-26 YYYY-MM-DD Ongoing
Release work YYYY-MM-DD YYYY-MM-DD Not started

お盆休みに CentOS 8 をインストールできればと期待しつつ、楽しみに待つことにします。😁

参考サイト

  1. About/Building 8 - CentOS Wiki
  2. bitWalk's: 待ち遠しい CentOS 8 [2019-06-16]

 

ブログランキング・にほんブログ村へにほんブログ村