ONGroup release's MV# Extensions and Gateway for remote editing on MVON#,QM,Universe,Unidata and D3

687 views
Skip to first unread message

Grant H

unread,
Jun 25, 2018, 9:56:40 AM6/25/18
to Pick and MultiValue Databases
Hi All,

As discussed a week ago, we have put together a gateway to allow people using Visual Studio Code to remotely edit you BASIC code on the above platforms. The MV# Extensions include all the coding features that most other languages have including

Code highlighting for MV# BASIC Programs
Intellisense for the MV# BASIC Statements and Functions
Code folding
Code formatting
Goto/Peek Definition. Automatically jump to and peek internal subroutines
Goto/Peek Definition. Automatically peek/load CALL, CHAIN and INCLUDE routines
Syntax checking for GOTO/GOSUB's, LOOPS, CASE STATEMENTS and IF THE/ELSE statements
Access your remote files and programs
Find all References of a word in current program
Remotely compile and catalog programs

The Gateway is developed in C# and runs on windows however the gateway can connect to other OS's other that Windows.
The FileSystem extension is an in memory extension which means you programs are retrieved from the server when selected and written back to the server when saved.
The programs never reside on your local disk. 

The Gateway installer can be found in C:\Users\{Your Login}\.vscode\extensions\ongroup.mvon-1.32.0\gateway.

To use the gateway create a Workspace with the following entries

{
    "folders": [
        {
            "uri": "GatewayFS:/",
            "name": "Account - PRC",

        }
        
    ],
    "settings": {
        "mvon.Account": "PRC",
        "mvon.Password": "xxxxxxxx",
        "mvon.remoteHost": "127.0.0.1", <= ip or host name of the server running your DB
        "mvon.UserName": "xxxxxxx",
        "mvon.remoteCompiling": true,
        "files.associations": {
            "*": "mvon"
        },
        "mvon.gatewayHost": "localhost", <= ip or hostname of server running the gateway
        "mvon.gatewayPort": "9004",
        "mvon.gatewayType": "QM"
    },
}

The <= …. above is just some documentation.

Press F1 and select "Connect to MVON# Gateway" and extension connect to the required MV DB.

This is the first release so there might be some bugs, if so let me know


Cheers

Andrew Cole

unread,
Jun 25, 2018, 10:21:58 AM6/25/18
to Pick and MultiValue Databases
Have you tried running this on a port besides 9003? I'm trying to see if it will connect to my local mvBase (because why not?) but it seems like it's not recognizing my change in port. I've tried different hosts and the error message reacts accordingly but never to my port changes. Here's the pertinent settings: 

"mvon.remoteHost": "localhost",
"mvon.gatewayHost": "localhost",
"mvon.gatewayPort": "23",
"mvon.gatewayType": "D3"

And error message:

connect ECONNREFUSED 127.0.0.1:9003

Grant H

unread,
Jun 25, 2018, 10:29:39 AM6/25/18
to Pick and MultiValue Databases
Hi Andrew,

We use Uniobjects for connectivity to Universe/Unidata , QMCLib from QM and rocketsoftware.MVSP.Pick for connectivity to D3. I'm afraid there are no connectors currently for mvBase. If mvBase has a client library in COM or C# we could include it

Cheers

Andrew Cole

unread,
Jun 25, 2018, 10:32:46 AM6/25/18
to Pick and MultiValue Databases
mvBase and d3 share the MVSP API. So the d3 version should be good enough for mvBase.

Grant H

unread,
Jun 25, 2018, 10:37:59 AM6/25/18
to Pick and MultiValue Databases
Hi Andrew,

Make sure the service "MVGateway" is up and running. The Gateway Port is the Port Number that the gateway listens on for messages from VSCode so don't change that. I Checked the code and the D3ClientPort is set to 9900 in the Gateway. I will need to make this configurable. Can you setup your mvBase MVSP to listen on 9900

Cheers

Andrew Cole

unread,
Jun 25, 2018, 10:44:23 AM6/25/18
to Pick and MultiValue Databases
Does not work when I opened up port 9900. However, I opened up port 9003 and it was able to connect. I was met with a different error (which may be my own) but I saw the port logged on with I did a LISTUSERS

Grant H

unread,
Jun 25, 2018, 10:49:22 AM6/25/18
to Pick and MultiValue Databases
Excellent,

At least the gateway is receiving commands from VSCode and establishing a connection with mvBase. If it can establish a connection it executes

SELECT MD WITH A1 = \"D]\" to get list of files.

Nathan Rector

unread,
Jun 25, 2018, 11:09:54 AM6/25/18
to mvd...@googlegroups.com
Might want to include "Q" for the Q-pointers in that selection.

SELECT MD WITH A1 = \"D]\" OR WITH A1 = \"Q]\"
> --
> You received this message because you are subscribed to
> the "Pick and MultiValue Databases" group.
> To post, email to: mvd...@googlegroups.com
> To unsubscribe, email to: mvdbms+un...@googlegroups.com
> For more options, visit http://groups.google.com/group/mvdbms

--

--------------------------------------------
Nathan Rector
International Spectrum, Inc
http://www.intl-spectrum.com
Phone: 720-259-1356

Conference Dates: April 23th-26th
http://www.intl-spectrum.com/conference/

Grant H

unread,
Jun 25, 2018, 11:16:45 AM6/25/18
to Pick and MultiValue Databases
Hi Andrew,

I did an update on the MVGateway with some bug fixes. The latest version 1.33.0 has them

Cheers

Grant H

unread,
Jun 25, 2018, 11:17:05 AM6/25/18
to Pick and MultiValue Databases
Thanks Nathan,

Cheers

Steve Trimble

unread,
Jun 25, 2018, 11:57:16 AM6/25/18
to mvd...@googlegroups.com

grant...@prosol.co.za

unread,
Jun 25, 2018, 1:44:42 PM6/25/18
to Pick and MultiValue Databases

Thanks Steve

Cheers

Ryan Ladd

unread,
Jun 25, 2018, 5:06:13 PM6/25/18
to Pick and MultiValue Databases
Grant,
  What version of Visual Studio Code is this extension allowed to run on?

  I am currently stuck using a company provided version (1.19.0) and I am getting an error: "Unable to install because, the extension 'ongroup.mvon' compatible with current version '1.19.0' of VS Code is not found.".

  Is the extension using abilities since the 1.19.0 release?  If not, is it possible for you to open it up to be compatible with prior releases?

Ryan

Jan Van Schalkwyk

unread,
Jun 25, 2018, 8:50:32 PM6/25/18
to Pick and MultiValue Databases
Hi Grant,

This code shown returns "is not defined as a label" - Invalid GOTO/GOSUB

GOSUB JSON.EXITERR; RETURN

If I put a space between the label reference and the ";" the error goes away

GOSUB JSON.EXITERR ; RETURN

Work you magic and fix this one too (please)

Cheers
Jan

Grant H

unread,
Jun 26, 2018, 3:06:49 AM6/26/18
to Pick and MultiValue Databases
Hi Ryan,

Unfortunately we use the FileSystem API which was only released in 1.22.0. Without that API we cannot connect remotely to your MV server. It will be quite a job to rework the extension without the API.

Apologies. 

Grant H

unread,
Jun 26, 2018, 7:45:10 AM6/26/18
to Pick and MultiValue Databases
Hi Jan,

Latest version should fix it

Cheers

Andrew Cole

unread,
Jun 26, 2018, 7:59:44 AM6/26/18
to Pick and MultiValue Databases
With the new update I still do not see the connector pick up my change in port. I have both open but set to use different mvBase ports so I can track which one VSC connects to.

Do you run that query before or after your MVSP logto call? Also, just to be clear, do I have the correct values in these settings?

mvon.Account //mvBase/d3 Account name where data is stored
mvon.Password // MVSP User password
mvon.UserName // MVSP username

Grant Hart

unread,
Jun 26, 2018, 8:18:56 AM6/26/18
to mvd...@googlegroups.com

Hi Andrew,

 

I have not worked with mvBase yet. In MSVP what do you normally pass as Account and Password when you do MSVP.Logto(Account,Password)

 

I could be messing up call?

 

Cheers

--

Andrew Cole

unread,
Jun 26, 2018, 8:43:45 AM6/26/18
to Pick and MultiValue Databases
Alright so upon looking at my snippet, maybe to add mvBase support (if you wanted, I wouldn't be offended if you didn't xD ) you have to change the driver string? Below is a code snippet from one of my Java MVSP classes. Note the driver string and how with MVSP we need two sets of credentials. The one in the Properties is the MVSP credential while the one in the logTo method is the mvBase account that's been enabled for use with MVSP. So in my earlier post I was trying to get clarity on which set of credentials goes where in your connector settings. I'm 99% certain d3 requires two sets of authentication as well.

public MVConnection create() {
MVConnection conn = null;
Properties props = new Properties();
props.setProperty("username", "mvspUserName"); //Edited for security
props.setProperty("password", "mvspPassword"); //Edited for security
try {
//Live
System.out.println(" Connecting");
conn = new MVConnection("jdbc:mv:mvBase:serverIP:serverPort", props); //Edited for security
System.out.println(" Connected");
conn.logTo("MVaccount", "MVPassword"); //Edited for security
System.out.println(" Logged In");
} catch (MVException e) {
System.err.println("========MVConnection Error========");
System.err.println(e.getMessage());
System.err.println(e.getErrorCode());
System.err.println("==================================");
}
return conn;
}

Grant H

unread,
Jun 26, 2018, 8:49:51 AM6/26/18
to Pick and MultiValue Databases
Hi Andrew

Thanks for clarifying this for me. I will add an account password option for d3/mvBase. I will let you know when the extension is updated

Cheers

Grant H

unread,
Jun 26, 2018, 9:01:05 AM6/26/18
to Pick and MultiValue Databases
Hi Andrew

1.36.0 has been published. There is a new setting for AccountPassword which must be set. You will also need to re install the gateway

Cheers

Grant H

unread,
Jun 26, 2018, 10:19:03 AM6/26/18
to Pick and MultiValue Databases
Hi Andrew,

Any luck on connecting to mvBase?

Cheers

MAV

unread,
Jun 26, 2018, 10:21:49 AM6/26/18
to Pick and MultiValue Databases
Hi all,

I'm testing with QM but I have problems...
I wrote this sttings.code-workspace:
{
    "folders": [
        {
            "uri": "GatewayFS:/",
            "name": "GESCO",
        }
       
    ],
    "settings": {
        "mvon.Account": "GESCO",
        "mvon.Password": "xxxxx",
        "mvon.remoteHost": "192.168.1.250",
        "mvon.UserName": "uuuu",       
        "mvon.useGateway": true,

        "mvon.remoteCompiling": true,
        "files.associations": {
            "*": "mvon"
        },
        "mvon.gatewayHost": "localhost",
        "mvon.gatewayPort": 9004,
        "mvon.gatewayType": "QM"
    },
}
Then QM server is in 192.168.1.250 and it's accesible via qmclient. I have installed MVGateway (1.13.6). However, when I press F1 and select  "Connect to MVON# Gateway" I don't obtain any file. Only I obtain 3 messages:
Conecting to Gatewaylocalhost
Conecting to MVON# Gateway
Connected to Gateway

What is the problem? 
Am I missing any settings?

Thanks and congratulations!

Marcos Alonso

Dick Thiot

unread,
Jun 26, 2018, 10:25:03 AM6/26/18
to mvd...@googlegroups.com
Marcos,

I am experiencing the same problem.  I understand from Martin that QMClient requires username and password.  If I get this worked out I will post an update.

Dick

--

Andrew Cole

unread,
Jun 26, 2018, 10:27:20 AM6/26/18
to Pick and MultiValue Databases
Just ran a test and it failed. I show that VSC connected but it's still logged in to the MVSP account and not the ANDREWC account I'm trying for. FWIW, the error VSC throws is "Cannot read property 'length' of undefined". 


On Tuesday, June 26, 2018 at 10:19:03 AM UTC-4, Grant H wrote:
Hi Andrew,

Grant H

unread,
Jun 26, 2018, 10:37:35 AM6/26/18
to Pick and MultiValue Databases
Hi Andrew

This is C# code I am using to connect. My D3 server unfortunately wont boot to do some testing. Can you spot anything out of the ordinary?


case ServerTypes.D3:
                    if (pickSession == null)
                    {
                        try
                        {
                            pickSession = new Pick();
                        }
                        catch(Exception)
                        {
                            throw new ServerSessionException("Unable to create Pick Session", new Exception());
                        }
                    }
                    if (pickSession.dbConnected) { return; } // if we are already connected, dont reconnect
                    bool connect = pickSession.Connect(server.IpAddress, nbDefaults.D3ClientPort, server.LoginId, server.Password);
                    pickSession.Logto(accountName, AccountPassword);               
                    break;

Grant H

unread,
Jun 26, 2018, 10:42:18 AM6/26/18
to Pick and MultiValue Databases
Hi Marcos,

There are a few users having a similar issue. As soon as I have an answer I will let you know.

Cheers

Andrew Cole

unread,
Jun 26, 2018, 10:45:20 AM6/26/18
to Pick and MultiValue Databases
That looks fine according to me (I checked the docs to be sure) but I know when I was building my app in Java I had to use a different connect method. If you look at Rocket's docs they have 4 different connect methods. The reason my code above uses Properties for the MVSP attributes is I found that using the java method that looks like the .NET method you're using did not work. So if you can get your d3 to boot try using the various connect methods? I'm also glad to keep testing though :)

Grant H

unread,
Jun 26, 2018, 10:55:37 AM6/26/18
to Pick and MultiValue Databases

Hi Andrew,

I just notices that you have to press the Refresh icon on the workspace toolbar to refresh the file list once it is connected

Grant H

unread,
Jun 26, 2018, 10:56:32 AM6/26/18
to Pick and MultiValue Databases
Hi Marcos,


See my post to Andrew

On Tuesday, June 26, 2018 at 4:21:49 PM UTC+2, MAV wrote:

Prem Whineray

unread,
Jun 26, 2018, 6:58:25 PM6/26/18
to Pick and MultiValue Databases
Hi Grant,

Firstly, thanks for this, as it is awesome, the work you have done is outstanding.

I found a minor syntax highlighting issue which is a quick fix :)

In the above example, you can see that my variable is P.CASE, yet it is highlighting CASE like its a reserved keyword.

In the below example, I am using regex word boundaries to ensure that it matches the full word (which by default Regex will consider a fullstop as a word boundary).

"patterns": [{
    "name": "keyword.control",
    "match": "\\b(?<!\\.)(IF|THEN|CASE)(?!\\.)\\b"
 }]

Looking forward to using this more,

Thanks,
Prem
Auto Generated Inline Image 1
Auto Generated Inline Image 2

Jan Van Schalkwyk

unread,
Jun 27, 2018, 3:20:38 AM6/27/18
to Pick and MultiValue Databases
Perfect!

Thanks Grant

MAV

unread,
Jun 27, 2018, 3:52:20 AM6/27/18
to Pick and MultiValue Databases
Hi Grant,

I still have problems in QM...

I pressed the refresh icon and I only obtained one list with the element "1":



Reading your source code I saw that you do this query:


SELECT VOC WITH F1 LIKE F... AND F4 LIKE Directory…


In QM this query would not return any items. I guess the gateway will translate this query to each type of MVserver (QM, D3, U2, etc...). Am I right, or is it necessary to change that query?


Regards,


Marcos Alonso Vega


Andrew Cole

unread,
Jun 27, 2018, 7:39:23 AM6/27/18
to Pick and MultiValue Databases
I believe I have a different issue. This time I've included a whole screen shot showing my settings and the panel that's been refreshed.


grant...@prosol.co.za

unread,
Jun 27, 2018, 9:35:46 AM6/27/18
to Pick and MultiValue Databases
Many thanks Prem

I will add the changes and publish your changes. I am out of the office today so it will have to be tomorrow

Cheers

grant...@prosol.co.za

unread,
Jun 27, 2018, 9:40:08 AM6/27/18
to Pick and MultiValue Databases
Hi Marcos

There are two file system providers. One for MVON# and another for the Gateway, the code you are looking at is for the MVON# filesystem provider.

My testing before releasing the extension was with everything on the localhost (school boy error).

Sorry for the frustration. We are setting up a real world environment to iron out the problems.

Will let you know as soon as we have it sorted

Cheers

grant...@prosol.co.za

unread,
Jun 27, 2018, 9:42:03 AM6/27/18
to Pick and MultiValue Databases
Hi Andrew

As I just explained to Marcos, we tested on single machine before releasing.Sorry for the frustration.

We will setup the correct environment and let you know as soon as I have ironed out the issues.

Cheers

Andrew Cole

unread,
Jun 27, 2018, 9:44:15 AM6/27/18
to Pick and MultiValue Databases
No worries, I'm glad to be a guinea pig for new features!

MAV

unread,
Jun 27, 2018, 9:52:53 AM6/27/18
to Pick and MultiValue Databases
No problem. It's a fantastic job and I'm sure it will be even better. Congratulations.

Marcos Alonso Vega

Grant H

unread,
Jun 29, 2018, 1:41:52 PM6/29/18
to Pick and MultiValue Databases
Hi Marcos, Andrew and all testing  the gateway.

With the help of Maverick Systems and Dick Thiot, we have isolated the issues you guys have been having. As stated earlier "school boy error" on my part.
There were a few issues with connectivity to QM regarding permissions but the real issue was 32bit vs 64bit. The Gateway was a 32 bit system and off course we have to support both 32 bit and 64 bit.

We will be building new installers for the Gateway this weekend for both 32 bot and 64 bit.

Cheers

grant...@prosol.co.za

unread,
Jul 2, 2018, 2:29:46 PM7/2/18
to Pick and MultiValue Databases

Hi All,

We have published a new version of the extensions and gateway today. I believe the issues that frustrated you earlier should be resolved.
You are going to need to to re install the gateway for the changes to become effective.

We have tested the following:

QM - sorted out the 32 bit and 64 bit issues.
JBASE - added JBASE connectivity, you will need to have a *F* pointer in the MD for files to be accessible.
D3 - All files and not only program files are accessible. Our mvBase testing is ongoing but it might work. Let me know
Universe - all working
Unidata - you will need to specify the Unidata home directory as a setting in the config.

I will publish the settings that we used for testing all of the environments tomorrow.

If anyone has any issues using the gateway please let me know

Cheers

MAV

unread,
Jul 3, 2018, 5:45:48 AM7/3/18
to Pick and MultiValue Databases




Hi All,

The new changes are fantastic. We managed to connect to our QM server. Now the problem is in special characters such as tildes or "ñ".

This program has been created with ED. Our server uses the 850 character set:


However, when we open it with VSCode and specify the correct character set, the special characters cause a line break:





Are we doing something wrong? Are we missing some kind of configuration?

Thank you very much,

Marcos Alonso Vega

Grant H

unread,
Jul 3, 2018, 8:36:47 AM7/3/18
to Pick and MultiValue Databases
Hi Marcos,

The gateway is using iso8859-1 encoding on the messages between vscode and QM.
I am going to have to look into supporting different encodings in the Gateway and vscode

Grant H

unread,
Jul 3, 2018, 8:53:53 AM7/3/18
to Pick and MultiValue Databases
Hi Marcos,

Would you be able to email a copy of your test program?

Cheers

On Tuesday, July 3, 2018 at 11:45:48 AM UTC+2, MAV wrote:

MAV

unread,
Jul 3, 2018, 9:56:14 AM7/3/18
to Pick and MultiValue Databases
The program is very simple:

      COUNTRY = "España"
      CITY = "Gijón"
      PRINT CITY:" - ":COUNTRY


Regards,

Grant H

unread,
Jul 3, 2018, 10:07:38 AM7/3/18
to Pick and MultiValue Databases
If copy and paste in QM it drops the Spanish characters

Cheers

MAV

unread,
Jul 3, 2018, 11:56:32 AM7/3/18
to Pick and MultiValue Databases
OK, but I don't nkow your email... 

MAV

unread,
Jul 3, 2018, 12:17:01 PM7/3/18
to Pick and MultiValue Databases
I send the program as an attachment to this message (TEST).

Thanks,

Marcos
TEST

grant...@prosol.co.za

unread,
Jul 3, 2018, 1:38:34 PM7/3/18
to Pick and MultiValue Databases
Thanks Marcos

I will attend to it in the morning

Cheers

KOSDAY SOLUTIONS

unread,
Jul 3, 2018, 1:39:43 PM7/3/18
to Pick and MultiValue Databases
Hi Marcos:
Only to check, try with encoding Windows 1252
Pedro

Peter McMurray

unread,
Jul 3, 2018, 6:05:03 PM7/3/18
to Pick and MultiValue Databases
Hi
Regarding the Spanish issue.
I feel that people are confusing code with data.
For many moons now it has been the standard that code is in ASCII and data is stored in the database that the code reads.
All numbers are calculated using the digits 0...9, Variable names use A to z plus a few specific ASCII characters.
Even then there are people who do awkward things. I remember one person who thought it was clever to write all variable names in Latin. Absolutely useless for the company.
On the other hand Python recommends that all code be stored in UTF-8 that cannot be confused between code-pages. That works great with Pick because ASCII and UTF-8 are identical.
Congratulations and thank you for a great enhancement to the Pick arena.

On Monday, June 25, 2018 at 11:56:40 PM UTC+10, Grant H wrote:
Hi All,

As discussed a week ago, we have put together a gateway to allow people using Visual Studio Code to remotely edit you BASIC code on the above platforms. The MV# Extensions include all the coding features that most other languages have including

Code highlighting for MV# BASIC Programs
Intellisense for the MV# BASIC Statements and Functions
Code folding
Code formatting
Goto/Peek Definition. Automatically jump to and peek internal subroutines
Goto/Peek Definition. Automatically peek/load CALL, CHAIN and INCLUDE routines
Syntax checking for GOTO/GOSUB's, LOOPS, CASE STATEMENTS and IF THE/ELSE statements
Access your remote files and programs
Find all References of a word in current program
Remotely compile and catalog programs

The Gateway is developed in C# and runs on windows however the gateway can connect to other OS's other that Windows.
The FileSystem extension is an in memory extension which means you programs are retrieved from the server when selected and written back to the server when saved.
The programs never reside on your local disk. 

The Gateway installer can be found in C:\Users\{Your Login}\.vscode\extensions\ongroup.mvon-1.32.0\gateway.

To use the gateway create a Workspace with the following entries

{
    "folders": [
        {
            "uri": "GatewayFS:/",
            "name": "Account - PRC",

        }
        
    ],
    "settings": {
        "mvon.Account": "PRC",
        "mvon.Password": "xxxxxxxx",
        "mvon.remoteHost": "127.0.0.1", <= ip or host name of the server running your DB
        "mvon.UserName": "xxxxxxx",
        "mvon.remoteCompiling": true,
        "files.associations": {
            "*": "mvon"
        },
        "mvon.gatewayHost": "localhost", <= ip or hostname of server running the gateway
        "mvon.gatewayPort": "9004",
        "mvon.gatewayType": "QM"
    },
}

The <= …. above is just some documentation.

Press F1 and select "Connect to MVON# Gateway" and extension connect to the required MV DB.

This is the first release so there might be some bugs, if so let me know


Cheers

Jan Van Schalkwyk

unread,
Jul 4, 2018, 3:33:21 AM7/4/18
to Pick and MultiValue Databases
Hi Grant,

Another little bug:

ON RESP(I,1) GOTO 110,120,130,140,150,160,170

Not recognising these labels

MAV

unread,
Jul 4, 2018, 3:39:50 AM7/4/18
to Pick and MultiValue Databases
Peter, Thank you for answering but I don't understand very well the meaning of your message. 

I think that I don't confuse any term and I'm only exposing a problem I have with a tool and some specific programs. The reasons for using a coding are varied and are outside the scope of this thread.

 It is a problem that many developers can have and it would be wonderful for this great tool to solve as other tools do.

In my humble opinion, I think that technical questions need to be answered with technical answers (or not answered).

Thanks,

Marcos Alonso Vega


Grant H

unread,
Jul 4, 2018, 4:45:21 AM7/4/18
to Pick and MultiValue Databases
Hi Marcos

How did you setup your QM environment to use Spanish character set?

Cheers

MAV

unread,
Jul 4, 2018, 5:20:15 AM7/4/18
to Pick and MultiValue Databases
Hi Grant,

We don't really make any settings. QM takes the Windows Server configuration. Spanish Windows Server versions have already configured the spanish character set. 

The Windows command "chcp" changes the active code page. If used without parameters, chcp displays the number of the active code page. In our server, chcp returns 850 (Multilingual Latin I).

Syntax
chcp [<NNN>]

Examples of code page:

437  United States
850  Multilingual (Latin I)

Therefore, to set up the Spanish coding, use: "chcp 850"

Cheers


Martin Phillips

unread,
Jul 4, 2018, 5:32:57 AM7/4/18
to mvd...@googlegroups.com

I believe that Marcos may be using the ECS mode version of QM. If this is so, code pages should be irrelevant.

 

 

Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton NN4 6DB, England
+44 (0)1604-709200

--
You received this message because you are subscribed to
the "Pick and MultiValue Databases" group.
To post, email to: mvd...@googlegroups.com
To unsubscribe, email to: mvdbms+un...@googlegroups.com
For more options, visit http://groups.google.com/group/mvdbms

Grant H

unread,
Jul 4, 2018, 6:14:41 AM7/4/18
to Pick and MultiValue Databases
Thanks Martin,

I will install QM with ECS and see if I can assist Marcos

MAV

unread,
Jul 4, 2018, 6:59:44 AM7/4/18
to Pick and MultiValue Databases
Hi Martin.

I'm using Standard 8 bit versión of QM.


Grant H

unread,
Jul 4, 2018, 9:29:38 AM7/4/18
to Pick and MultiValue Databases
Hi Jan,

ON GOTO/GOSUB 1,2,3 etc is fixed in 1.44.0

I have also added the ability to have internal subroutine Intellisense. If you type GOSUB and the CTL-SPACE you can select the labels from Intellisense

Jan Van Schalkwyk

unread,
Jul 4, 2018, 4:20:08 PM7/4/18
to Pick and MultiValue Databases
Thank you Grant and yes the CTL-SPACE works perfect

Peter McMurray

unread,
Jul 4, 2018, 7:20:54 PM7/4/18
to Pick and MultiValue Databases
Marcos said
Hi Marcos
I provided a technical answer. ASCII is the recommended method of writing code and has been for many years. ASCII is a 7 bit code covering decimal 0 to 127 and therefore excludes the use of accented characters for the very good reason that they depend on how a particular machine is set up. Your code included a name that belongs in the database not in the program code and if it had been sent to a user with a different setup it would not work the same.
UTF-8 avoids this issue and is the recommended method for Python that is used in U2 and will be in D3 by November. so that is an alternative to your issue. UTF-8 does not present alternatives to a given character that code-pages do. However my recommendation is do not use non ASCII characters in code but read them into a variable from a database.

I agree entirely with your statement
"In my humble opinion, I think that technical questions need to be answered with technical answers (or not answered)."
Sadly I had a recent thread hijacked by two people who obviously do not understand low level code. I did a carefully considered and tested item on expanding Pick to the full world of languages only to have two people state outright that it was wrong and that Pick delimiters have to be changed. Apparently they do not understand the difference between an immutable string (str) and a mutable byte command in Python.
I hope that this explains your issue more precisely.

MAV

unread,
Jul 5, 2018, 3:46:23 AM7/5/18
to Pick and MultiValue Databases
Peter, I don't want to go into more polemics. I fully understand that it is ASCII, UTF-8, etc. They are very simple terms that need no explanation…
 
I use many editors (WED de AccuTerm for example) to maintain programs like the one shown in the example. We have to maintain programs with character strings with tildes for decades. They are programs that work perfectly and don't need to be rewritten. Some have passed without modification from the old R83, passing through D3 and finishing in QM. None needed to be rewritten. VSCode and MVON Gateway is a tool, whose purpose is to write new programs and to MANTAIN programs already done. If I cannot modify programs, I will not be able to use it, but the solution to a question about a problem with an editor can never be that I have to modify programs already done that work correctly.

Don't stray the real problem. The problem is simple and sure that the phenomenal team of MVON will manage to solve it as it has been able to do a phenomenal job.  This is to prevent characters such as tildes from generating a carriage return. In this way thisr tool will be able to edit any type of program.


Marcos Alonso Vega


Grant H

unread,
Jul 5, 2018, 7:55:39 AM7/5/18
to Pick and MultiValue Databases
Hi Marcos,


Finally solved your Spanish Code Page issues. We have added a new parameter "mvon.encoding" to the extensions. You will need to set this to "CP850"

   "mvon.encoding":"CP850",
        //"files.encoding":"CP850",

Do note set the "files.encoding" parameter. Just edit your code in UTF8 and the translations are all handles for your when you read and write.

You will also need to re-install the MvonGateway

Cheers

MAV

unread,
Jul 5, 2018, 11:08:55 AM7/5/18
to Pick and MultiValue Databases
Hi Grant.

I am very sorry, but now the problem is that then new lines are not interpreted well. The same example:



Thanks,


Marcos Alonso Vega


grant...@prosol.co.za

unread,
Jul 5, 2018, 11:16:51 AM7/5/18
to Pick and MultiValue Databases
Hi Marcos

You will need to uninstall the Gateway and re install the current one

Cheers

MAV

unread,
Jul 5, 2018, 1:24:55 PM7/5/18
to Pick and MultiValue Databases

Ummm, I already did. I've done it again and the result is the same.

Uninstall MVGateway, reinstall it and continue with the problem. I even rebooted the computer after the uninstallation.

Cheers

Marcos Alonso Vega

grant...@prosol.co.za

unread,
Jul 5, 2018, 3:28:21 PM7/5/18
to Pick and MultiValue Databases
Hi Marcos,

I will test again on Monday, sorry for the inconvenience. I am away this weekend.

Cheers

Peter McMurray

unread,
Jul 5, 2018, 5:47:05 PM7/5/18
to Pick and MultiValue Databases
Hi Marcos
The Tilde is an ASCII character that is used for many programming purposes and should not have been used in code as an accented character.
 However this is an issue with Spanish typing that requires you to be aware of the code-pages as I said.
This is not polemical it is a straight forward issue just as Spain runs on a different time-zone to the logical GMT as it is West of London but uses Berlin as the guide.
Programs need to follow standards I appreciate that you have a local problem but my statements are correct,

MAV

unread,
Jul 6, 2018, 4:21:50 AM7/6/18
to Pick and MultiValue Databases
Hi Peter,

I'm sorry, sometimes my bad English plays tricks on me but I don't understand the relationship between the time zone of Spain with the Spanish code pages.

Anyway, Grant has already made a lot of progress to solve our "local" problem.

Thank you very much for the Code Conventions for the JavaScript Programming Language.

Dave Graham

unread,
Jul 6, 2018, 10:29:46 AM7/6/18
to Pick and MultiValue Databases
On a slightly different, but related, topic - Has anyone been able to use the gateway to connect to a Unidata system?

I've tried several times and all I'm getting is an error indicating that an error occurred. If there's a log of what's going on I could likely troubleshoot it myself but I can't seem to find even that.

Any help would be appreciated - this looks like a great tool!

DaveG

grant...@prosol.co.za

unread,
Jul 6, 2018, 10:52:50 AM7/6/18
to Pick and MultiValue Databases
Hi Dave,

Could you share your workspace setting so I can do some testing. Also is your 7 Unidata Windows or Unix. Also where is the gateway running

Cheers

Dave Graham

unread,
Jul 6, 2018, 11:38:23 AM7/6/18
to Pick and MultiValue Databases
Hi Grant - Absolutely! Here it is in all its glory:

{
"git.ignoreMissingGitWarning": true,
"mvon.Account": "/devel/ud/fla9.10",
"mvon.gatewayType": "Unidata",
"mvon.homePath": "/storis/ud",
"mvon.Password": "xxxxxxxxxxxx",
"mvon.remoteHost": "vette",
"mvon.UserName": "dlg"
}

The server is UDT AIX ( WebDE 5 by the way) and the gateway is on my local workstation - Windows 10 pro.

I'm fairly certain I'm doing something wrong here. But I'm just not sure what it is yet.

DaveG

Andrew Cole

unread,
Jul 6, 2018, 12:11:48 PM7/6/18
to Pick and MultiValue Databases
A suggestion for the code folding:

When I fold a subroutine, if there is another label between the subroutine label and the RETURN statement, the fold stops at that next label rather than absorbing it like it does with an IF statement. I would suggest it skips that label and folds through to the RETURN.

grant...@prosol.co.za

unread,
Jul 6, 2018, 4:42:24 PM7/6/18
to Pick and MultiValue Databases
Hi Dave,

You are missing 2 settings mvon.gatewayHost and mvon.gatewayPort, they should be set to localhost and 9004 respectively

Let me know if it works

Cheers

grant...@prosol.co.za

unread,
Jul 6, 2018, 4:44:22 PM7/6/18
to Pick and MultiValue Databases
Thanks Andrew

I am using the default code folding in VSCode. I will need to update the linter to manage folding

Cheers

Peter McMurray

unread,
Jul 6, 2018, 8:49:30 PM7/6/18
to Pick and MultiValue Databases
Hi Marcos
My remarks are aimed at the larger audience many of whom are unaware of the need to understand locale or program standards.
An API is fantastic to bring the power of the wider world to the wonderful Pick environment.
However over 40 years of Pick development I have seen a great deal of code written with no care to standards.
Judging by my experience of web sites many programmers seem to think that the US is the only country with states.
Regarding time zones I have had phone calls from England at 2am because they do not understand.
As for code I note that you say Javascript but they are actually standards that have existed since I started programming 50 years ago.
However they are essential for any of the major languages such as Python that is being integrated into Rocket MV.
UTF-8 is the universal standard for web interface and Python because it is precise. There is only one valid expression for a particular character such as your e acute. Unlike code-pages that can use the same number for a variety of characters although most do keep the first 128 for ASCII.
Windows 10 now has region selection for just about everywhere.
My reference to Spanish typing is because I was heavily involved with genuine typewriters before PCs were invented, and yes other language groups had dead keys for the diaresis or unique keys.
Now the API is bringing Pick developers into the wider world they do need to understand that the flexibility of Pick is not an excuse for ignoring standards.

MAV

unread,
Jul 9, 2018, 4:19:30 AM7/9/18
to Pick and MultiValue Databases
He Peter,

Thank you very much your valuable comments, but it is difficult to understand that you use for 50 years many of the standard you comment (for example, UTF-8 was presented 25 years ago). Anyway I have exposed a specific problem and it would be wonderful to have a solution. I don't have time to continue arguing if the programs follow a standard or not (also being inherited code)…

Marcos Alonso Vega

Grant H

unread,
Jul 9, 2018, 7:07:16 AM7/9/18
to Pick and MultiValue Databases

Grant H

unread,
Jul 9, 2018, 7:08:04 AM7/9/18
to Pick and MultiValue Databases
Hi Marcos

Is you QM running on windows or Linux?

On Thursday, July 5, 2018 at 7:24:55 PM UTC+2, MAV wrote:

George Siourounis

unread,
Jul 9, 2018, 7:52:15 AM7/9/18
to Pick and MultiValue Databases
Hi All,

i've just stumbled on this thread,..

i am having difficulties getting the extension to work with D3.

here are my workspace settings.

{
"folders": [
{ "uri": "GatewayFS:/",
"name":"Local D3"
}
],
"settings": {
        "mvon.Account": "SOP",
        "mvon.Password": "SOP",
"mvon.remoteHost": "127.0.0.1",  
"mvon.UserName": "d3code",
        "mvon.remoteCompiling": true,
        "files.associations": {
            "*": "mvon"
        },
        "mvon.gatewayHost": "localhost", 
        "mvon.gatewayPort": 9004,
        "mvon.gatewayType": "D3"
    },
}

I keep on receiving 'Error connecting to the Gateway on local host.

i have installed the gateway, even changed my D3 mvsp port to listen on port 9900..

any help would be greatly appreciated.

cheers

Andrew Cole

unread,
Jul 9, 2018, 7:58:39 AM7/9/18
to Pick and MultiValue Databases
Try port 9003

Grant H

unread,
Jul 9, 2018, 9:13:22 AM7/9/18
to Pick and MultiValue Databases
Hi George,

Please update your extensions to 1.46.0
Uninstall the MvonGateway and re-install the Gateway

The D3/mvBase tcp/ip port is 9003

Let me know if you are able to connect

Cheers

Dick Thiot

unread,
Jul 9, 2018, 10:02:49 AM7/9/18
to mvd...@googlegroups.com
George,

Andrew is referring to running D3 MVSP on 9003, rather than 9900.

Dick

--
You received this message because you are subscribed to
the "Pick and MultiValue Databases" group.
To post, email to: mvd...@googlegroups.com
To unsubscribe, email to: mvdbms+un...@googlegroups.com
For more options, visit http://groups.google.com/group/mvdbms

Dave Graham

unread,
Jul 9, 2018, 11:27:49 AM7/9/18
to Pick and MultiValue Databases
Hi Grant,
Thanks for that information.

I added the two additional settings (see below) and still no joy. I'm feeling a bit stupid at this point. Any thoughts?

DaveG

{
"git.ignoreMissingGitWarning": true,
"mvon.Account": "/devel/ud/fla9.10",
"mvon.gatewayType": "Unidata",
"mvon.homePath": "/storis/ud",
"mvon.Password": "xxxxxxxxxxxxx",
"mvon.remoteHost": "vette",
"mvon.gatewayHost": "localhost",
"mvon.gatewayPort": "9004",
"mvon.UserName": "dlg"
}

MAV

unread,
Jul 9, 2018, 11:32:09 AM7/9/18
to Pick and MultiValue Databases
Hi Grant

My QM is running on Windows

Thanks,

Marcos Alonso Vega

Grant H

unread,
Jul 9, 2018, 11:38:04 AM7/9/18
to Pick and MultiValue Databases
Hi Dave,

Make sure you can ping the machine "vette" from your machine.
The MSVP port is set 9003.

Dave Graham

unread,
Jul 9, 2018, 12:49:59 PM7/9/18
to Pick and MultiValue Databases
Hi Grant - I an definitely ping vette (I can telnet to it too using wIntegrate and other clients on port 23)

Are you saying that I need to open port 9003 between my client and vette? (That may take some effort because corporate would get involved and they probably won't like that - security, PCI compliance and all of that).

DaveG

Grant H

unread,
Jul 9, 2018, 2:34:26 PM7/9/18
to Pick and MultiValue Databases
Hi Dave,

Yes, MVSP uses port 9003 and that would need to opened on the firewall to enable remote access. MVSP does have an encrypted connection which I haven't tested yet. But you will need to have 9003 opened for incoming connections

Cheers

Jan Van Schalkwyk

unread,
Jul 10, 2018, 3:33:50 AM7/10/18
to Pick and MultiValue Databases
Hi Grant,

Any obvious reason why Code formatting is now working.
Tried it on a simple 30 line program and nothing happens.

Right Click - > Format document

Nothing happens?

Is it because the program does not have a bp suffix?

Cheers
Jan


On Monday, 25 June 2018 23:56:40 UTC+10, Grant H wrote:
Hi All,

As discussed a week ago, we have put together a gateway to allow people using Visual Studio Code to remotely edit you BASIC code on the above platforms. The MV# Extensions include all the coding features that most other languages have including

Code highlighting for MV# BASIC Programs
Intellisense for the MV# BASIC Statements and Functions
Code folding
Code formatting
Goto/Peek Definition. Automatically jump to and peek internal subroutines
Goto/Peek Definition. Automatically peek/load CALL, CHAIN and INCLUDE routines
Syntax checking for GOTO/GOSUB's, LOOPS, CASE STATEMENTS and IF THE/ELSE statements
Access your remote files and programs
Find all References of a word in current program
Remotely compile and catalog programs




Cheers

Grant H

unread,
Jul 10, 2018, 3:53:42 AM7/10/18
to Pick and MultiValue Databases
Hi Jan,

Make sure that the program is associated with MVON# Basic

Cheers

On Monday, June 25, 2018 at 3:56:40 PM UTC+2, Grant H wrote:
Hi All,

As discussed a week ago, we have put together a gateway to allow people using Visual Studio Code to remotely edit you BASIC code on the above platforms. The MV# Extensions include all the coding features that most other languages have including

Code highlighting for MV# BASIC Programs
Intellisense for the MV# BASIC Statements and Functions
Code folding
Code formatting
Goto/Peek Definition. Automatically jump to and peek internal subroutines
Goto/Peek Definition. Automatically peek/load CALL, CHAIN and INCLUDE routines
Syntax checking for GOTO/GOSUB's, LOOPS, CASE STATEMENTS and IF THE/ELSE statements
Access your remote files and programs
Find all References of a word in current program
Remotely compile and catalog programs

Message has been deleted

grant...@prosol.co.za

unread,
Jul 10, 2018, 4:23:14 PM7/10/18
to Pick and MultiValue Databases
Hi Jan

That’s strange. I just tested and my formatting is working. Can you send me a screenshot?

Cheers
Message has been deleted

grant...@prosol.co.za

unread,
Jul 10, 2018, 4:42:23 PM7/10/18
to Pick and MultiValue Databases
Hi Jan

Sorry can’t open it on my iPad. I will check it out first thing in the morning.
BTW do other programs format correctly?

Cheers

Ian McGowan

unread,
Jul 10, 2018, 5:36:25 PM7/10/18
to Pick and MultiValue Databases
If you move the SUBROUTINE THIS.DAY.NEXT(NEXT.DATE,TODAY,MONTHS)

to the top of the program, above the comments, Shift-Alt-F does seem to format, at least for me.

On Tuesday, July 10, 2018 at 1:25:03 PM UTC-7, Jan Van Schalkwyk wrote:
Hi Grant,

This is the program that refuses to be formatted

Cheers
Jan

Dick Thiot

unread,
Jul 10, 2018, 5:46:24 PM7/10/18
to mvd...@googlegroups.com
Did you have comments prior to your SUBROUTINE statement?  Which MV flavor and platform are you running on?  Forgive me if you already posted that.

Dick

--

Grant H

unread,
Jul 11, 2018, 6:03:11 AM7/11/18
to Pick and MultiValue Databases
Hi Jan,

I noticed there are quite a few lines of comments with starting with an '*' or '!' . What MV platform are you on, I tried to compile the code on QM , MVON#, Universe, Unidata etc and none of them compile the code.
The reason the formatting is not working is in the lines prior to SUBROUTINE you have the following keywords while, case, end and until. Because the lines are not treated as comments, the formatter builds a list of level indentations using those comments

Cheers

On Tuesday, July 10, 2018 at 10:25:03 PM UTC+2, Jan Van Schalkwyk wrote:
Hi Grant,

This is the program that refuses to be formatted

Cheers
Jan

On Tuesday, 10 July 2018 17:53:42 UTC+10, Grant H wrote:

Andrew Cole

unread,
Jul 11, 2018, 6:13:58 AM7/11/18
to Pick and MultiValue Databases
Grant, I know Jbase allows the use of ! As comments but I'm not sure as to the rules that allow it to be used like that.

Steve Trimble

unread,
Jul 11, 2018, 6:15:05 AM7/11/18
to mvd...@googlegroups.com
QM, D3, and mvBASE also allow ! as comment lines
just fyi
Computerized Data Mgmt Inc
Steve Trimble
(501) 615-8674 office
(501) 772-3450 cell / text


On Wed, Jul 11, 2018 at 5:14 AM Andrew Cole <andrew...@gmail.com> wrote:
Grant, I know Jbase allows the use of ! As comments but I'm not sure as to the rules that allow it to be used like that.

Message has been deleted
It is loading more messages.
0 new messages