-
Notifications
You must be signed in to change notification settings - Fork 2
DevHRSoftUsingJVLinkToSQLite
ここでは、新しく競馬ソフトを開発する際、JVLinkToSQLite を使って JV-Data を SQLite データベースに変換し、ご自分で開発された予想理論のソフトで活用するための手順を説明します。
- ビルド手順
- 設計のポイント
JVLinkToSQLite のビルドには、Visual Studio 2022 以降で、Professional エディション相当の機能を持つ開発環境が必要になります。競馬ソフトであれば、基本的に「個人開発」が想定される使用シナリオになるはずですので、以下のページから無料のコミュニティ エディションを入手していただくことが可能です。
Windows 向けのパッケージ マネージャーとして Chocolatey をインストールします。
Chocolatey のインストールが終わっていれば、以下の手順でインストール可能です:
- 管理者権限で PowerShell を実行します。
- 以下のコマンドを投入します:
PS C:\> choco install nuget.commandline -yChocolatey のインストールが終わっていれば、以下の手順でインストール可能です:
- 管理者権限で PowerShell を実行します。
- 以下のコマンドを投入します:
PS C:\> choco install 7zip -yJRA-VAN データラボの「ソフト登録の流れ」に従い、作者 ID/ソフトウェア IDを発行しておきます(未発行の場合でも手順は進められますが、最終的には発行した各種 ID をお使いください)。
- JVLinkToSQLite のソース コードを clone するなどして取得します(以下、
C:\git\JVLinkToSQLiteフォルダに取得したものとして説明しています)。 - 「開発者コマンド プロンプト for VS 2017」を起動し、取得したフォルダに移動します:
**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.8.3
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
C:\Program Files\Microsoft Visual Studio\2022\Professional>cd "C:\git\JVLinkToSQLite"
C:\git\JVLinkToSQLite>
- 「開発者コマンド プロンプト for VS 2017」内で PowerShell を起動します:
C:\git\JVLinkToSQLite>powershell
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6
PS C:\git\JVLinkToSQLite>
- 以下のコマンドを投入し、公開鍵/秘密鍵を生成します:
PS C:\git\JVLinkToSQLite> $rsa = New-Object System.Security.Cryptography.RSACryptoServiceProvider
PS C:\git\JVLinkToSQLite> $rsa.ToXmlString($false) | Out-File public.txt -Encoding utf8
PS C:\git\JVLinkToSQLite> $rsa.ToXmlString($true) | Out-File private.txt -Encoding utf8
PS C:\git\JVLinkToSQLite>
- 発行した作者 ID/ソフトウェア ID/公開鍵(
public.txtの内容)を指定し、Build.ps1を実行します:
PS C:\git\JVLinkToSQLite> .\Build.ps1 -AuthorId '<ここに作者 ID を指定>' -SoftwareId '<ここにソフトウェア ID を指定>' -PublicKey '<ここに公開鍵を指定>'
・・・略
PS C:\git\JVLinkToSQLite>
なお、作者 ID/ソフトウェア ID が未発行の場合は、オプションを何も指定せずに、Build.ps1 を実行してください。
PS C:\git\JVLinkToSQLite> .\Build.ps1
・・・略
PS C:\git\JVLinkToSQLite>
- ビルド結果は、
workディレクトリに出力されます。ここに生成される自己解凍形式のファイルは、簡単な使い方の「インストール」で扱う自己解凍形式ファイルと同等のものになります。展開結果を、ご自分の予想理論ソフトから参照できる箇所に配置・集積するなどしてご利用ください。
PS C:\git\JVLinkToSQLite> dir .\work\
ディレクトリ: C:\git\JVLinkToSQLite\work
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2024/01/07 17:46 4092833 JVLinkToSQLiteArtifact_0.1.0.0.exe
PS C:\git\JVLinkToSQLite>
以下は JVLinkToSQLite を活用した予想理論ソフトを開発する際の設計のポイントになります:
- ライセンスの考慮
- 実行時
- 動作設定の更新時
- SQLite データベースの使用時
以下の理由から、JVLinkToSQLite は、ライセンスとして GPLv3 を採用しています:
- 「JVLinkToSQLite とは」に記載の通り、競馬ソフトの開発者が本来やりたいのは、予想理論の実装や支援機能の開発であり、独自性が強いデータを使いやすい形式に変換することではありません。そういった共通的な機能は、誰でも再利用できるよう、オープン ソースになっているべきです。
- しかし、オープン ソースな競馬ソフトにするには、不自由なソフトウェアライセンス部分※1が問題になります。コピー レフトではないオープン ソース ライセンスは、その条件の緩さからか、明確な区分けができません。これを解決するため、例えば、MIT ライセンスに独自の条項を加えている方もいらっしゃいましたが、独自ライセンスは一般的な理解が定まりにくいリスクがあり、やはり標準的なライセンスで対応できることが望ましいです。
- この点、GPLv3 では、こういう不自由なライブラリを利用するソフトウェアを書くことも標準で考慮されており、追加の許可を認めるだけで、それが可能になるのです。
ただ、GPLv3 は、周知の通り、「ウイルス性」や「ライセンス感染」などとまで呼ばれる強いコピー レフト性を持つライセンスです。それを考慮し、JVLinkToSQLite とご自分で実装された予想理論のソフトが、別々のプログラムであり続けるよう設計をお願いします。ポイントは次節以降にまとめました。
あいうえお
かきくけこ
さしすせそ
===============================================================================
※1)開発に必要な JRA-VAN Data Lab. SDK の「JV-Data構造体\C#版\JVData_Struct.cs」など。一般的に、ライセンスなしと呼ばれる、OSS にできないものになる。
- JVLinkToSQLite とは
- 簡単な使い方
- 動作設定の仕様
-
テーブルの仕様
- NL_TK_TOKUUMA テーブル
- NL_TK_TokuUmaInfo テーブル
- NL_RA_RACE テーブル
- NL_SE_RACE_UMA テーブル
- NL_HR_PAY テーブル
- NL_H1_HYOSU_ZENKAKE テーブル
- NL_H1_HyoTansyo テーブル
- NL_H1_HyoFukusyo テーブル
- NL_H1_HyoWakuren テーブル
- NL_H1_HyoUmaren テーブル
- NL_H1_HyoWide テーブル
- NL_H1_HyoUmatan テーブル
- NL_H1_HyoSanrenpuku テーブル
- NL_H6_HYOSU_SANRENTAN テーブル
- NL_H6_HyoSanrentan テーブル
- NL_O1_ODDS_TANFUKUWAKU テーブル
- NL_O2_ODDS_UMAREN テーブル
- NL_O3_ODDS_WIDE テーブル
- NL_O4_ODDS_UMATAN テーブル
- NL_O5_ODDS_SANREN テーブル
- NL_O5_OddsSanrenInfo テーブル
- NL_O6_ODDS_SANRENTAN テーブル
- NL_O6_OddsSanrentanInfo テーブル
- NL_WF_INFO テーブル
- NL_JG_JOGAIBA テーブル
- NL_UM_UMA テーブル
- NL_KS_KISYU テーブル
- NL_CH_CHOKYOSI テーブル
- NL_BR_BREEDER テーブル
- NL_BN_BANUSI テーブル
- NL_RC_RECORD テーブル
- NL_HN_HANSYOKU テーブル
- NL_SK_SANKU テーブル
- NL_BT_KEITO テーブル
- NL_DM_INFO テーブル
- NL_TM_INFO テーブル
- NL_CK_CHAKU テーブル
- NL_CK_KisyuChaku テーブル
- NL_CK_ChokyoChaku テーブル
- NL_CK_BanusiChaku テーブル
- NL_CK_BreederChaku テーブル
- NL_HC_HANRO テーブル
- NL_YS_SCHEDULE テーブル
- NL_HS_SALE テーブル
- NL_HY_BAMEIORIGIN テーブル
- NL_CS_COURSE テーブル
- NL_WC_WOOD テーブル
- RT_RA_RACE テーブル
- RT_SE_RACE_UMA テーブル
- RT_HR_PAY テーブル
- RT_O1_ODDS_TANFUKUWAKU テーブル
- RT_O2_ODDS_UMAREN テーブル
- RT_O3_ODDS_WIDE テーブル
- RT_O4_ODDS_UMATAN テーブル
- RT_O5_ODDS_SANREN テーブル
- RT_O5_OddsSanrenInfo テーブル
- RT_O6_ODDS_SANRENTAN テーブル
- RT_O6_OddsSanrentanInfo テーブル
- RT_H1_HYOSU_ZENKAKE テーブル
- RT_H1_HyoTansyo テーブル
- RT_H1_HyoFukusyo テーブル
- RT_H1_HyoWakuren テーブル
- RT_H1_HyoUmaren テーブル
- RT_H1_HyoWide テーブル
- RT_H1_HyoUmatan テーブル
- RT_H1_HyoSanrenpuku テーブル
- RT_H6_HYOSU_SANRENTAN テーブル
- RT_H6_HyoSanrentan テーブル
- RT_WH_BATAIJYU テーブル
- RT_WE_WEATHER テーブル
- RT_AV_INFO テーブル
- RT_JC_INFO テーブル
- RT_TC_INFO テーブル
- RT_CC_INFO テーブル
- RT_DM_INFO テーブル
- RT_TM_INFO テーブル
- RT_WF_INFO テーブル
- SY_PROC_FILES テーブル
- JVLinkToSQLite を使った競馬ソフトの開発