diff --git a/ComputingServices/ComputingServices.vbproj b/ComputingServices/ComputingServices.vbproj
index 931d285..24afa37 100644
--- a/ComputingServices/ComputingServices.vbproj
+++ b/ComputingServices/ComputingServices.vbproj
@@ -218,6 +218,39 @@
x86
MinimumRecommendedRules.ruleset
+
+ true
+ true
+ true
+ bin\node-debug\
+ sciBASIC#.ComputingServices.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ full
+ AnyCPU
+ MinimumRecommendedRules.ruleset
+
+
+ true
+ true
+ true
+ bin\x64\node-debug\
+ sciBASIC#.ComputingServices.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ full
+ x64
+ MinimumRecommendedRules.ruleset
+
+
+ true
+ true
+ true
+ bin\x86\node-debug\
+ sciBASIC#.ComputingServices.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ full
+ x86
+ MinimumRecommendedRules.ruleset
+
diff --git a/Distribute_computing/ComputingServices.sln b/Distribute_computing/ComputingServices.sln
index ab9b4db..18b3468 100644
--- a/Distribute_computing/ComputingServices.sln
+++ b/Distribute_computing/ComputingServices.sln
@@ -79,6 +79,9 @@ Global
mysqli_X64_release|Any CPU = mysqli_X64_release|Any CPU
mysqli_X64_release|x64 = mysqli_X64_release|x64
mysqli_X64_release|x86 = mysqli_X64_release|x86
+ node-debug|Any CPU = node-debug|Any CPU
+ node-debug|x64 = node-debug|x64
+ node-debug|x86 = node-debug|x86
ProteoWizard.d|Any CPU = ProteoWizard.d|Any CPU
ProteoWizard.d|x64 = ProteoWizard.d|x64
ProteoWizard.d|x86 = ProteoWizard.d|x86
@@ -174,6 +177,12 @@ Global
{87383048-1B31-49B7-9FB7-0DED1B80ACE8}.mysqli_X64_release|x64.Build.0 = GCModeller(Release_X64)|x64
{87383048-1B31-49B7-9FB7-0DED1B80ACE8}.mysqli_X64_release|x86.ActiveCfg = GCModeller(Release_X64)|x86
{87383048-1B31-49B7-9FB7-0DED1B80ACE8}.mysqli_X64_release|x86.Build.0 = GCModeller(Release_X64)|x86
+ {87383048-1B31-49B7-9FB7-0DED1B80ACE8}.node-debug|Any CPU.ActiveCfg = node-debug|Any CPU
+ {87383048-1B31-49B7-9FB7-0DED1B80ACE8}.node-debug|Any CPU.Build.0 = node-debug|Any CPU
+ {87383048-1B31-49B7-9FB7-0DED1B80ACE8}.node-debug|x64.ActiveCfg = node-debug|x64
+ {87383048-1B31-49B7-9FB7-0DED1B80ACE8}.node-debug|x64.Build.0 = node-debug|x64
+ {87383048-1B31-49B7-9FB7-0DED1B80ACE8}.node-debug|x86.ActiveCfg = node-debug|x86
+ {87383048-1B31-49B7-9FB7-0DED1B80ACE8}.node-debug|x86.Build.0 = node-debug|x86
{87383048-1B31-49B7-9FB7-0DED1B80ACE8}.ProteoWizard.d|Any CPU.ActiveCfg = Publish|Any CPU
{87383048-1B31-49B7-9FB7-0DED1B80ACE8}.ProteoWizard.d|Any CPU.Build.0 = Publish|Any CPU
{87383048-1B31-49B7-9FB7-0DED1B80ACE8}.ProteoWizard.d|x64.ActiveCfg = Publish|x64
@@ -288,6 +297,12 @@ Global
{FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.mysqli_X64_release|x64.Build.0 = mysqli_X64_release|x64
{FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.mysqli_X64_release|x86.ActiveCfg = mysqli_X64_release|x86
{FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.mysqli_X64_release|x86.Build.0 = mysqli_X64_release|x86
+ {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.node-debug|Any CPU.ActiveCfg = node-debug|Any CPU
+ {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.node-debug|Any CPU.Build.0 = node-debug|Any CPU
+ {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.node-debug|x64.ActiveCfg = node-debug|x64
+ {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.node-debug|x64.Build.0 = node-debug|x64
+ {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.node-debug|x86.ActiveCfg = node-debug|x86
+ {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.node-debug|x86.Build.0 = node-debug|x86
{FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.ProteoWizard.d|Any CPU.ActiveCfg = ProteoWizard.d|Any CPU
{FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.ProteoWizard.d|Any CPU.Build.0 = ProteoWizard.d|Any CPU
{FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.ProteoWizard.d|x64.ActiveCfg = ProteoWizard.d|x64
@@ -402,6 +417,12 @@ Global
{E3367B88-5D0C-495A-8273-331656D4B5AA}.mysqli_X64_release|x64.Build.0 = DEMO|x64
{E3367B88-5D0C-495A-8273-331656D4B5AA}.mysqli_X64_release|x86.ActiveCfg = DEMO|x86
{E3367B88-5D0C-495A-8273-331656D4B5AA}.mysqli_X64_release|x86.Build.0 = DEMO|x86
+ {E3367B88-5D0C-495A-8273-331656D4B5AA}.node-debug|Any CPU.ActiveCfg = node-debug|Any CPU
+ {E3367B88-5D0C-495A-8273-331656D4B5AA}.node-debug|Any CPU.Build.0 = node-debug|Any CPU
+ {E3367B88-5D0C-495A-8273-331656D4B5AA}.node-debug|x64.ActiveCfg = node-debug|x64
+ {E3367B88-5D0C-495A-8273-331656D4B5AA}.node-debug|x64.Build.0 = node-debug|x64
+ {E3367B88-5D0C-495A-8273-331656D4B5AA}.node-debug|x86.ActiveCfg = node-debug|x86
+ {E3367B88-5D0C-495A-8273-331656D4B5AA}.node-debug|x86.Build.0 = node-debug|x86
{E3367B88-5D0C-495A-8273-331656D4B5AA}.ProteoWizard.d|Any CPU.ActiveCfg = Publish|Any CPU
{E3367B88-5D0C-495A-8273-331656D4B5AA}.ProteoWizard.d|Any CPU.Build.0 = Publish|Any CPU
{E3367B88-5D0C-495A-8273-331656D4B5AA}.ProteoWizard.d|x64.ActiveCfg = Publish|x64
@@ -516,6 +537,12 @@ Global
{A43EC013-2B55-4D25-B9F1-96BD5FB1E577}.mysqli_X64_release|x64.Build.0 = DEMO|x64
{A43EC013-2B55-4D25-B9F1-96BD5FB1E577}.mysqli_X64_release|x86.ActiveCfg = DEMO|x86
{A43EC013-2B55-4D25-B9F1-96BD5FB1E577}.mysqli_X64_release|x86.Build.0 = DEMO|x86
+ {A43EC013-2B55-4D25-B9F1-96BD5FB1E577}.node-debug|Any CPU.ActiveCfg = node-debug|Any CPU
+ {A43EC013-2B55-4D25-B9F1-96BD5FB1E577}.node-debug|Any CPU.Build.0 = node-debug|Any CPU
+ {A43EC013-2B55-4D25-B9F1-96BD5FB1E577}.node-debug|x64.ActiveCfg = node-debug|x64
+ {A43EC013-2B55-4D25-B9F1-96BD5FB1E577}.node-debug|x64.Build.0 = node-debug|x64
+ {A43EC013-2B55-4D25-B9F1-96BD5FB1E577}.node-debug|x86.ActiveCfg = node-debug|x86
+ {A43EC013-2B55-4D25-B9F1-96BD5FB1E577}.node-debug|x86.Build.0 = node-debug|x86
{A43EC013-2B55-4D25-B9F1-96BD5FB1E577}.ProteoWizard.d|Any CPU.ActiveCfg = Publish|Any CPU
{A43EC013-2B55-4D25-B9F1-96BD5FB1E577}.ProteoWizard.d|Any CPU.Build.0 = Publish|Any CPU
{A43EC013-2B55-4D25-B9F1-96BD5FB1E577}.ProteoWizard.d|x64.ActiveCfg = Publish|x64
@@ -630,6 +657,12 @@ Global
{1B42809B-603F-4CEA-A0DB-91276582B9CA}.mysqli_X64_release|x64.Build.0 = DEMO|x64
{1B42809B-603F-4CEA-A0DB-91276582B9CA}.mysqli_X64_release|x86.ActiveCfg = DEMO|x86
{1B42809B-603F-4CEA-A0DB-91276582B9CA}.mysqli_X64_release|x86.Build.0 = DEMO|x86
+ {1B42809B-603F-4CEA-A0DB-91276582B9CA}.node-debug|Any CPU.ActiveCfg = node-debug|Any CPU
+ {1B42809B-603F-4CEA-A0DB-91276582B9CA}.node-debug|Any CPU.Build.0 = node-debug|Any CPU
+ {1B42809B-603F-4CEA-A0DB-91276582B9CA}.node-debug|x64.ActiveCfg = node-debug|x64
+ {1B42809B-603F-4CEA-A0DB-91276582B9CA}.node-debug|x64.Build.0 = node-debug|x64
+ {1B42809B-603F-4CEA-A0DB-91276582B9CA}.node-debug|x86.ActiveCfg = node-debug|x86
+ {1B42809B-603F-4CEA-A0DB-91276582B9CA}.node-debug|x86.Build.0 = node-debug|x86
{1B42809B-603F-4CEA-A0DB-91276582B9CA}.ProteoWizard.d|Any CPU.ActiveCfg = Publish|Any CPU
{1B42809B-603F-4CEA-A0DB-91276582B9CA}.ProteoWizard.d|Any CPU.Build.0 = Publish|Any CPU
{1B42809B-603F-4CEA-A0DB-91276582B9CA}.ProteoWizard.d|x64.ActiveCfg = Publish|x64
@@ -744,6 +777,12 @@ Global
{44396667-3358-4529-BC45-722CD0CD3997}.mysqli_X64_release|x64.Build.0 = Release|Any CPU
{44396667-3358-4529-BC45-722CD0CD3997}.mysqli_X64_release|x86.ActiveCfg = Release|Any CPU
{44396667-3358-4529-BC45-722CD0CD3997}.mysqli_X64_release|x86.Build.0 = Release|Any CPU
+ {44396667-3358-4529-BC45-722CD0CD3997}.node-debug|Any CPU.ActiveCfg = node-debug|Any CPU
+ {44396667-3358-4529-BC45-722CD0CD3997}.node-debug|Any CPU.Build.0 = node-debug|Any CPU
+ {44396667-3358-4529-BC45-722CD0CD3997}.node-debug|x64.ActiveCfg = node-debug|x64
+ {44396667-3358-4529-BC45-722CD0CD3997}.node-debug|x64.Build.0 = node-debug|x64
+ {44396667-3358-4529-BC45-722CD0CD3997}.node-debug|x86.ActiveCfg = node-debug|Any CPU
+ {44396667-3358-4529-BC45-722CD0CD3997}.node-debug|x86.Build.0 = node-debug|Any CPU
{44396667-3358-4529-BC45-722CD0CD3997}.ProteoWizard.d|Any CPU.ActiveCfg = Release|Any CPU
{44396667-3358-4529-BC45-722CD0CD3997}.ProteoWizard.d|Any CPU.Build.0 = Release|Any CPU
{44396667-3358-4529-BC45-722CD0CD3997}.ProteoWizard.d|x64.ActiveCfg = Release|Any CPU
@@ -858,6 +897,12 @@ Global
{0BB4E012-AD1A-47FC-BAC6-FF480299A50C}.mysqli_X64_release|x64.Build.0 = Publish|x64
{0BB4E012-AD1A-47FC-BAC6-FF480299A50C}.mysqli_X64_release|x86.ActiveCfg = Publish|Any CPU
{0BB4E012-AD1A-47FC-BAC6-FF480299A50C}.mysqli_X64_release|x86.Build.0 = Publish|Any CPU
+ {0BB4E012-AD1A-47FC-BAC6-FF480299A50C}.node-debug|Any CPU.ActiveCfg = node-debug|Any CPU
+ {0BB4E012-AD1A-47FC-BAC6-FF480299A50C}.node-debug|Any CPU.Build.0 = node-debug|Any CPU
+ {0BB4E012-AD1A-47FC-BAC6-FF480299A50C}.node-debug|x64.ActiveCfg = node-debug|x64
+ {0BB4E012-AD1A-47FC-BAC6-FF480299A50C}.node-debug|x64.Build.0 = node-debug|x64
+ {0BB4E012-AD1A-47FC-BAC6-FF480299A50C}.node-debug|x86.ActiveCfg = node-debug|Any CPU
+ {0BB4E012-AD1A-47FC-BAC6-FF480299A50C}.node-debug|x86.Build.0 = node-debug|Any CPU
{0BB4E012-AD1A-47FC-BAC6-FF480299A50C}.ProteoWizard.d|Any CPU.ActiveCfg = Publish|Any CPU
{0BB4E012-AD1A-47FC-BAC6-FF480299A50C}.ProteoWizard.d|Any CPU.Build.0 = Publish|Any CPU
{0BB4E012-AD1A-47FC-BAC6-FF480299A50C}.ProteoWizard.d|x64.ActiveCfg = Publish|x64
@@ -972,6 +1017,12 @@ Global
{7283C179-F852-4EAD-8D8F-B82EF2CBD7DB}.mysqli_X64_release|x64.Build.0 = DEMO|x64
{7283C179-F852-4EAD-8D8F-B82EF2CBD7DB}.mysqli_X64_release|x86.ActiveCfg = DEMO|x86
{7283C179-F852-4EAD-8D8F-B82EF2CBD7DB}.mysqli_X64_release|x86.Build.0 = DEMO|x86
+ {7283C179-F852-4EAD-8D8F-B82EF2CBD7DB}.node-debug|Any CPU.ActiveCfg = node-debug|Any CPU
+ {7283C179-F852-4EAD-8D8F-B82EF2CBD7DB}.node-debug|Any CPU.Build.0 = node-debug|Any CPU
+ {7283C179-F852-4EAD-8D8F-B82EF2CBD7DB}.node-debug|x64.ActiveCfg = node-debug|x64
+ {7283C179-F852-4EAD-8D8F-B82EF2CBD7DB}.node-debug|x64.Build.0 = node-debug|x64
+ {7283C179-F852-4EAD-8D8F-B82EF2CBD7DB}.node-debug|x86.ActiveCfg = node-debug|x86
+ {7283C179-F852-4EAD-8D8F-B82EF2CBD7DB}.node-debug|x86.Build.0 = node-debug|x86
{7283C179-F852-4EAD-8D8F-B82EF2CBD7DB}.ProteoWizard.d|Any CPU.ActiveCfg = Publish|Any CPU
{7283C179-F852-4EAD-8D8F-B82EF2CBD7DB}.ProteoWizard.d|Any CPU.Build.0 = Publish|Any CPU
{7283C179-F852-4EAD-8D8F-B82EF2CBD7DB}.ProteoWizard.d|x64.ActiveCfg = Publish|x64
@@ -1086,6 +1137,12 @@ Global
{487D7C92-D05A-4908-BF81-E6BABA0BF592}.mysqli_X64_release|x64.Build.0 = Biodeep|x64
{487D7C92-D05A-4908-BF81-E6BABA0BF592}.mysqli_X64_release|x86.ActiveCfg = Biodeep|x86
{487D7C92-D05A-4908-BF81-E6BABA0BF592}.mysqli_X64_release|x86.Build.0 = Biodeep|x86
+ {487D7C92-D05A-4908-BF81-E6BABA0BF592}.node-debug|Any CPU.ActiveCfg = node-debug|Any CPU
+ {487D7C92-D05A-4908-BF81-E6BABA0BF592}.node-debug|Any CPU.Build.0 = node-debug|Any CPU
+ {487D7C92-D05A-4908-BF81-E6BABA0BF592}.node-debug|x64.ActiveCfg = node-debug|x64
+ {487D7C92-D05A-4908-BF81-E6BABA0BF592}.node-debug|x64.Build.0 = node-debug|x64
+ {487D7C92-D05A-4908-BF81-E6BABA0BF592}.node-debug|x86.ActiveCfg = node-debug|x86
+ {487D7C92-D05A-4908-BF81-E6BABA0BF592}.node-debug|x86.Build.0 = node-debug|x86
{487D7C92-D05A-4908-BF81-E6BABA0BF592}.ProteoWizard.d|Any CPU.ActiveCfg = Publish|Any CPU
{487D7C92-D05A-4908-BF81-E6BABA0BF592}.ProteoWizard.d|Any CPU.Build.0 = Publish|Any CPU
{487D7C92-D05A-4908-BF81-E6BABA0BF592}.ProteoWizard.d|x64.ActiveCfg = Publish|x64
@@ -1200,6 +1257,12 @@ Global
{3C79AE03-A766-4B61-BDC4-824D78481B53}.mysqli_X64_release|x64.Build.0 = Publish|x64
{3C79AE03-A766-4B61-BDC4-824D78481B53}.mysqli_X64_release|x86.ActiveCfg = Publish|Any CPU
{3C79AE03-A766-4B61-BDC4-824D78481B53}.mysqli_X64_release|x86.Build.0 = Publish|Any CPU
+ {3C79AE03-A766-4B61-BDC4-824D78481B53}.node-debug|Any CPU.ActiveCfg = node-debug|Any CPU
+ {3C79AE03-A766-4B61-BDC4-824D78481B53}.node-debug|Any CPU.Build.0 = node-debug|Any CPU
+ {3C79AE03-A766-4B61-BDC4-824D78481B53}.node-debug|x64.ActiveCfg = node-debug|x64
+ {3C79AE03-A766-4B61-BDC4-824D78481B53}.node-debug|x64.Build.0 = node-debug|x64
+ {3C79AE03-A766-4B61-BDC4-824D78481B53}.node-debug|x86.ActiveCfg = node-debug|Any CPU
+ {3C79AE03-A766-4B61-BDC4-824D78481B53}.node-debug|x86.Build.0 = node-debug|Any CPU
{3C79AE03-A766-4B61-BDC4-824D78481B53}.ProteoWizard.d|Any CPU.ActiveCfg = Publish|Any CPU
{3C79AE03-A766-4B61-BDC4-824D78481B53}.ProteoWizard.d|Any CPU.Build.0 = Publish|Any CPU
{3C79AE03-A766-4B61-BDC4-824D78481B53}.ProteoWizard.d|x64.ActiveCfg = Publish|x64
@@ -1314,6 +1377,12 @@ Global
{FC125B0D-1942-496F-B502-9C0EB80E35B6}.mysqli_X64_release|x64.Build.0 = Biodeep_UNIX_x64|x64
{FC125B0D-1942-496F-B502-9C0EB80E35B6}.mysqli_X64_release|x86.ActiveCfg = Biodeep_UNIX_x64|x86
{FC125B0D-1942-496F-B502-9C0EB80E35B6}.mysqli_X64_release|x86.Build.0 = Biodeep_UNIX_x64|x86
+ {FC125B0D-1942-496F-B502-9C0EB80E35B6}.node-debug|Any CPU.ActiveCfg = node-debug|Any CPU
+ {FC125B0D-1942-496F-B502-9C0EB80E35B6}.node-debug|Any CPU.Build.0 = node-debug|Any CPU
+ {FC125B0D-1942-496F-B502-9C0EB80E35B6}.node-debug|x64.ActiveCfg = node-debug|x64
+ {FC125B0D-1942-496F-B502-9C0EB80E35B6}.node-debug|x64.Build.0 = node-debug|x64
+ {FC125B0D-1942-496F-B502-9C0EB80E35B6}.node-debug|x86.ActiveCfg = node-debug|x86
+ {FC125B0D-1942-496F-B502-9C0EB80E35B6}.node-debug|x86.Build.0 = node-debug|x86
{FC125B0D-1942-496F-B502-9C0EB80E35B6}.ProteoWizard.d|Any CPU.ActiveCfg = Publish|Any CPU
{FC125B0D-1942-496F-B502-9C0EB80E35B6}.ProteoWizard.d|Any CPU.Build.0 = Publish|Any CPU
{FC125B0D-1942-496F-B502-9C0EB80E35B6}.ProteoWizard.d|x64.ActiveCfg = Publish|x64
@@ -1428,6 +1497,12 @@ Global
{203BC68F-A0CD-443A-AB62-4AF4110F752F}.mysqli_X64_release|x64.Build.0 = Publish|x64
{203BC68F-A0CD-443A-AB62-4AF4110F752F}.mysqli_X64_release|x86.ActiveCfg = Publish|x86
{203BC68F-A0CD-443A-AB62-4AF4110F752F}.mysqli_X64_release|x86.Build.0 = Publish|x86
+ {203BC68F-A0CD-443A-AB62-4AF4110F752F}.node-debug|Any CPU.ActiveCfg = node-debug|Any CPU
+ {203BC68F-A0CD-443A-AB62-4AF4110F752F}.node-debug|Any CPU.Build.0 = node-debug|Any CPU
+ {203BC68F-A0CD-443A-AB62-4AF4110F752F}.node-debug|x64.ActiveCfg = node-debug|x64
+ {203BC68F-A0CD-443A-AB62-4AF4110F752F}.node-debug|x64.Build.0 = node-debug|x64
+ {203BC68F-A0CD-443A-AB62-4AF4110F752F}.node-debug|x86.ActiveCfg = node-debug|x86
+ {203BC68F-A0CD-443A-AB62-4AF4110F752F}.node-debug|x86.Build.0 = node-debug|x86
{203BC68F-A0CD-443A-AB62-4AF4110F752F}.ProteoWizard.d|Any CPU.ActiveCfg = Publish|Any CPU
{203BC68F-A0CD-443A-AB62-4AF4110F752F}.ProteoWizard.d|Any CPU.Build.0 = Publish|Any CPU
{203BC68F-A0CD-443A-AB62-4AF4110F752F}.ProteoWizard.d|x64.ActiveCfg = Publish|x64
@@ -1542,6 +1617,12 @@ Global
{3291389C-EA87-4B33-A9A5-65A2D60BA3E2}.mysqli_X64_release|x64.Build.0 = Publish|x64
{3291389C-EA87-4B33-A9A5-65A2D60BA3E2}.mysqli_X64_release|x86.ActiveCfg = Publish|x86
{3291389C-EA87-4B33-A9A5-65A2D60BA3E2}.mysqli_X64_release|x86.Build.0 = Publish|x86
+ {3291389C-EA87-4B33-A9A5-65A2D60BA3E2}.node-debug|Any CPU.ActiveCfg = node-debug|Any CPU
+ {3291389C-EA87-4B33-A9A5-65A2D60BA3E2}.node-debug|Any CPU.Build.0 = node-debug|Any CPU
+ {3291389C-EA87-4B33-A9A5-65A2D60BA3E2}.node-debug|x64.ActiveCfg = node-debug|x64
+ {3291389C-EA87-4B33-A9A5-65A2D60BA3E2}.node-debug|x64.Build.0 = node-debug|x64
+ {3291389C-EA87-4B33-A9A5-65A2D60BA3E2}.node-debug|x86.ActiveCfg = node-debug|x86
+ {3291389C-EA87-4B33-A9A5-65A2D60BA3E2}.node-debug|x86.Build.0 = node-debug|x86
{3291389C-EA87-4B33-A9A5-65A2D60BA3E2}.ProteoWizard.d|Any CPU.ActiveCfg = Publish|Any CPU
{3291389C-EA87-4B33-A9A5-65A2D60BA3E2}.ProteoWizard.d|Any CPU.Build.0 = Publish|Any CPU
{3291389C-EA87-4B33-A9A5-65A2D60BA3E2}.ProteoWizard.d|x64.ActiveCfg = Publish|x64
@@ -1656,6 +1737,12 @@ Global
{076315EE-B598-40DC-9280-C71CDF9B6A48}.mysqli_X64_release|x64.Build.0 = Biodeep_UNIX_x64|x64
{076315EE-B598-40DC-9280-C71CDF9B6A48}.mysqli_X64_release|x86.ActiveCfg = Biodeep_UNIX_x64|x86
{076315EE-B598-40DC-9280-C71CDF9B6A48}.mysqli_X64_release|x86.Build.0 = Biodeep_UNIX_x64|x86
+ {076315EE-B598-40DC-9280-C71CDF9B6A48}.node-debug|Any CPU.ActiveCfg = node-debug|Any CPU
+ {076315EE-B598-40DC-9280-C71CDF9B6A48}.node-debug|Any CPU.Build.0 = node-debug|Any CPU
+ {076315EE-B598-40DC-9280-C71CDF9B6A48}.node-debug|x64.ActiveCfg = node-debug|x64
+ {076315EE-B598-40DC-9280-C71CDF9B6A48}.node-debug|x64.Build.0 = node-debug|x64
+ {076315EE-B598-40DC-9280-C71CDF9B6A48}.node-debug|x86.ActiveCfg = node-debug|x86
+ {076315EE-B598-40DC-9280-C71CDF9B6A48}.node-debug|x86.Build.0 = node-debug|x86
{076315EE-B598-40DC-9280-C71CDF9B6A48}.ProteoWizard.d|Any CPU.ActiveCfg = Publish|Any CPU
{076315EE-B598-40DC-9280-C71CDF9B6A48}.ProteoWizard.d|Any CPU.Build.0 = Publish|Any CPU
{076315EE-B598-40DC-9280-C71CDF9B6A48}.ProteoWizard.d|x64.ActiveCfg = Publish|x64
@@ -1770,6 +1857,12 @@ Global
{CCBF36AB-506D-48A2-9150-A3762D4120EC}.mysqli_X64_release|x64.Build.0 = Publish|x64
{CCBF36AB-506D-48A2-9150-A3762D4120EC}.mysqli_X64_release|x86.ActiveCfg = Publish|Any CPU
{CCBF36AB-506D-48A2-9150-A3762D4120EC}.mysqli_X64_release|x86.Build.0 = Publish|Any CPU
+ {CCBF36AB-506D-48A2-9150-A3762D4120EC}.node-debug|Any CPU.ActiveCfg = node-debug|Any CPU
+ {CCBF36AB-506D-48A2-9150-A3762D4120EC}.node-debug|Any CPU.Build.0 = node-debug|Any CPU
+ {CCBF36AB-506D-48A2-9150-A3762D4120EC}.node-debug|x64.ActiveCfg = node-debug|x64
+ {CCBF36AB-506D-48A2-9150-A3762D4120EC}.node-debug|x64.Build.0 = node-debug|x64
+ {CCBF36AB-506D-48A2-9150-A3762D4120EC}.node-debug|x86.ActiveCfg = node-debug|Any CPU
+ {CCBF36AB-506D-48A2-9150-A3762D4120EC}.node-debug|x86.Build.0 = node-debug|Any CPU
{CCBF36AB-506D-48A2-9150-A3762D4120EC}.ProteoWizard.d|Any CPU.ActiveCfg = Publish|Any CPU
{CCBF36AB-506D-48A2-9150-A3762D4120EC}.ProteoWizard.d|Any CPU.Build.0 = Publish|Any CPU
{CCBF36AB-506D-48A2-9150-A3762D4120EC}.ProteoWizard.d|x64.ActiveCfg = Publish|x64
@@ -1884,6 +1977,12 @@ Global
{F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.mysqli_X64_release|x64.Build.0 = Release|x64
{F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.mysqli_X64_release|x86.ActiveCfg = Release|Any CPU
{F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.mysqli_X64_release|x86.Build.0 = Release|Any CPU
+ {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.node-debug|Any CPU.ActiveCfg = node-debug|Any CPU
+ {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.node-debug|Any CPU.Build.0 = node-debug|Any CPU
+ {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.node-debug|x64.ActiveCfg = node-debug|x64
+ {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.node-debug|x64.Build.0 = node-debug|x64
+ {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.node-debug|x86.ActiveCfg = node-debug|Any CPU
+ {F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.node-debug|x86.Build.0 = node-debug|Any CPU
{F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.ProteoWizard.d|Any CPU.ActiveCfg = Release|Any CPU
{F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.ProteoWizard.d|Any CPU.Build.0 = Release|Any CPU
{F045B4BF-7E34-4E31-9D44-E3D4C7DD3098}.ProteoWizard.d|x64.ActiveCfg = Release|x64
@@ -1998,6 +2097,12 @@ Global
{1F9B3E34-9470-4E57-86EA-350D5179C720}.mysqli_X64_release|x64.Build.0 = Publish|x64
{1F9B3E34-9470-4E57-86EA-350D5179C720}.mysqli_X64_release|x86.ActiveCfg = Publish|Any CPU
{1F9B3E34-9470-4E57-86EA-350D5179C720}.mysqli_X64_release|x86.Build.0 = Publish|Any CPU
+ {1F9B3E34-9470-4E57-86EA-350D5179C720}.node-debug|Any CPU.ActiveCfg = node-debug|Any CPU
+ {1F9B3E34-9470-4E57-86EA-350D5179C720}.node-debug|Any CPU.Build.0 = node-debug|Any CPU
+ {1F9B3E34-9470-4E57-86EA-350D5179C720}.node-debug|x64.ActiveCfg = node-debug|x64
+ {1F9B3E34-9470-4E57-86EA-350D5179C720}.node-debug|x64.Build.0 = node-debug|x64
+ {1F9B3E34-9470-4E57-86EA-350D5179C720}.node-debug|x86.ActiveCfg = node-debug|Any CPU
+ {1F9B3E34-9470-4E57-86EA-350D5179C720}.node-debug|x86.Build.0 = node-debug|Any CPU
{1F9B3E34-9470-4E57-86EA-350D5179C720}.ProteoWizard.d|Any CPU.ActiveCfg = Publish|Any CPU
{1F9B3E34-9470-4E57-86EA-350D5179C720}.ProteoWizard.d|Any CPU.Build.0 = Publish|Any CPU
{1F9B3E34-9470-4E57-86EA-350D5179C720}.ProteoWizard.d|x64.ActiveCfg = Publish|x64
diff --git a/Distribute_computing/GridDynamics_plugins/CalculateFitness.vb b/Distribute_computing/GridDynamics_plugins/CalculateFitness.vb
index 0b9a65c..2436a4f 100644
--- a/Distribute_computing/GridDynamics_plugins/CalculateFitness.vb
+++ b/Distribute_computing/GridDynamics_plugins/CalculateFitness.vb
@@ -9,6 +9,7 @@ Imports Microsoft.VisualBasic.MachineLearning.Darwinism.NonlinearGridTopology
Imports Microsoft.VisualBasic.Net.Http
Imports Microsoft.VisualBasic.Parallel.Tasks
Imports Microsoft.VisualBasic.Serialization.JSON
+Imports Microsoft.VisualBasic.Text
Imports sciBASIC.ComputingServices.TaskHost
Public Structure SlaveTask
@@ -80,14 +81,25 @@ Public Module CalculateFitness
Private Function writeMemory(Of T)(dataset As T) As String
Dim ref$ = App.GetNextUniqueName($"memory://GA_dataset/{App.PID}_")
+ Dim json As String = dataset.GetJson
+ Dim jsonBytes As Byte() = Encodings.UTF8WithoutBOM _
+ .CodePage _
+ .GetBytes(json)
- Using writer As New StreamWriter(CommandLine.OpenForWrite(ref))
- Call writer.WriteLine(dataset.GetJson)
+ Using writer = CommandLine.OpenForWrite(ref, size:=jsonBytes.Length)
+ Call writer.Write(jsonBytes, Scan0, jsonBytes.Length)
End Using
Return ref
End Function
+ Private Function readJSON(Of T)(file As String) As T
+ Dim jsonStr$ = New StreamReader(CommandLine.OpenForRead(file)).ReadToEnd.Replace(ASCII.NUL, "")
+ Dim obj As T = jsonStr.LoadJSON(Of T)
+
+ Return obj
+ End Function
+
'''
''' 这个函数输入的两个参数都是内存文件的引用位置
'''
@@ -95,10 +107,8 @@ Public Module CalculateFitness
'''
'''
Public Function SlaveProcess(genomes$, trainingSet$) As NamedValue(Of Double)()
- Dim grids As GridMatrix() = New StreamReader(CommandLine.OpenForRead(genomes)).ReadToEnd.LoadJSON(Of GridMatrix())
- Dim trainingData = New StreamReader(CommandLine.OpenForRead(trainingSet)) _
- .ReadToEnd _
- .LoadJSON(Of NamedValue(Of Double())()) _
+ Dim grids As GridMatrix() = readJSON(Of GridMatrix())(genomes)
+ Dim trainingData = readJSON(Of NamedValue(Of Double())())(trainingSet) _
.Select(Function(d)
Return New TrainingSet With {
.targetID = d.Name,
diff --git a/Distribute_computing/GridDynamics_plugins/GridDynamics_plugins.vbproj b/Distribute_computing/GridDynamics_plugins/GridDynamics_plugins.vbproj
index d292499..5684f21 100644
--- a/Distribute_computing/GridDynamics_plugins/GridDynamics_plugins.vbproj
+++ b/Distribute_computing/GridDynamics_plugins/GridDynamics_plugins.vbproj
@@ -86,6 +86,28 @@
x64
MinimumRecommendedRules.ruleset
+
+ true
+ true
+ true
+ bin\node-debug\
+ GridDynamics_plugins.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ full
+ AnyCPU
+ MinimumRecommendedRules.ruleset
+
+
+ true
+ true
+ true
+ ..\..\build\node\
+ GridDynamics_plugins.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ full
+ x64
+ MinimumRecommendedRules.ruleset
+
diff --git a/Distribute_computing/thinking/CLI.vb b/Distribute_computing/thinking/CLI.vb
index 47ffd70..48bc0cf 100644
--- a/Distribute_computing/thinking/CLI.vb
+++ b/Distribute_computing/thinking/CLI.vb
@@ -4,6 +4,7 @@ Imports Microsoft.VisualBasic.CommandLine
Imports Microsoft.VisualBasic.CommandLine.InteropService.SharedORM
Imports Microsoft.VisualBasic.CommandLine.Reflection
Imports Microsoft.VisualBasic.Serialization.JSON
+Imports Microsoft.VisualBasic.Text
Imports sciBASIC.ComputingServices
Imports sciBASIC.ComputingServices.TaskHost
@@ -38,9 +39,11 @@ Imports sciBASIC.ComputingServices.TaskHost
Dim invokeInfo As InvokeInfo = endpointJSON.LoadJSON(Of InvokeInfo)
Dim result As Rtvl = RemoteCall.Invoke(invokeInfo)
+ Dim resultJSON = result.GetJson
+ Dim jsonBytes As Byte() = Encodings.UTF8WithoutBOM.CodePage.GetBytes(resultJSON)
- Using output As StreamWriter = args.OpenStreamOutput("/out")
- Call output.WriteLine(result)
+ Using output As StreamWriter = args.OpenStreamOutput("/out", size:=jsonBytes.Length)
+ Call output.BaseStream.Write(jsonBytes, Scan0, jsonBytes.Length)
End Using
Return 0
diff --git a/Distribute_computing/thinking/thinking.vbproj b/Distribute_computing/thinking/thinking.vbproj
index 3ef726b..59cd965 100644
--- a/Distribute_computing/thinking/thinking.vbproj
+++ b/Distribute_computing/thinking/thinking.vbproj
@@ -94,6 +94,30 @@
MinimumRecommendedRules.ruleset
true
+
+ true
+ true
+ true
+ bin\node-debug\
+ thinking.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ full
+ AnyCPU
+ MinimumRecommendedRules.ruleset
+ true
+
+
+ true
+ true
+ true
+ ..\..\build\node\
+ thinking.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+ full
+ x64
+ MinimumRecommendedRules.ruleset
+ true
+