Re: 4D Web Server Security

2019-11-25 Thread Richard Wright via 4D_Tech
I’m only interested in serving through On Web Connection, no static pages. So 
why do I need anything in front of 4D? Are there known vulnerabilities in 4D 
other than bad programming? Is there anyway to “break” into the data? Or 
“break” into files that don’t exist in the web folder? What does putting 
something in front of 4D gain?


Richard Wright
DataDomain
rwri...@datadomainsoftware.com


> Date: Sat, 23 Nov 2019 03:04:43 -0700 (MST)
> From: Paul Dennis  <mailto:i...@completepicture.co.uk>>
> 
> I always run 4d webserver behind an niginx web proxy. Nginx can server static
> content then forward valid requests. You can use the rewrite rules to
> validate requests. 4D then does the rest via on web Connection
> authentication. Nginx is open source, I run the Windows version as a
> service.
> 
> http://nginx-win.ecsds.eu/ <http://nginx-win.ecsds.eu/>
> 
> Paul

**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

4D Web Server Security

2019-11-21 Thread Richard Wright via 4D_Tech
Anyone care to share their experience and insights as to the security of the 4D 
Web Server? There’s lots of talk these days about DOS and putting in a DMZ, but 
what is really necessary in 4D land? If I understand things correctly, the 
outside world only has access to static pages in the web folder and everything 
else goes through On Web Connection and it has to pass through On Web 
Authentication first.


Richard Wright
DataDomain
rwri...@datadomainsoftware.com <mailto:rwri...@datadomainsoftware.com>


**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: v16 - Verify & Repair log files

2019-09-20 Thread Richard Wright via 4D_Tech
Wouldn’t it be far better to have a few options?

1) Errors only
2) Errors and Warnings
3) Everything

Having tens of thousands of lines in the log that report that something is OK 
is useless and a hindrance to developers in almost all situations. And it’s 
gotten much worse in v17.


Richard Wright
DataDomain
rwri...@datadomainsoftware.com



> Date: Thu, 19 Sep 2019 20:48:56 +
> From: Keisuke Miyako mailto:keisuke.miy...@4d.com>>
> this (written for v17 but you can parse logs from v16) can be a starting 
> point:
> 
> github.com/4D-JP/code-audit/blob/master/parse_verify_log.txt 
> <http://github.com/4D-JP/code-audit/blob/master/parse_verify_log.txt><http://github.com/4D-JP/code-audit/blob/master/parse_verify_log.txt
>  <http://github.com/4D-JP/code-audit/blob/master/parse_verify_log.txt>>
> 
> 2019/09/20 5:42、Chip Scheide via 4D_Tech <4d_tech@lists.4d.com 
> <mailto:4d_tech@lists.4d.com>>のメール:
> is there a parser available?

**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Thread_Safe SQL

2019-08-06 Thread Richard Wright via 4D_Tech
OK, so the online documentation is wrong.


https://docs.4d.com/4Dv17/4D/17.2/Preemptive-4D-processes.300-4386982.en.html

Thanks.


> Date: Tue, 6 Aug 2019 18:02:54 +
> From: Timothy Penner mailto:tpen...@4d.com>>
> Hi Richard,
> 
> Beginning with 4D v17 R4, Begin SQL, End SQL, and the associated SQL 
> statements used with an internal database are now preemptive compliant.
> https://blog.4d.com/begin-end-sql-in-preemptive-mode/ 
> 
> 
> -Tim

**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Thread_Safe SQL

2019-08-06 Thread Richard Wright via 4D_Tech
According to the v17.2 docs:

>  All SQL statements are thread-safe, except for REPLICATE 
> <https://livedoc.4d.com/4D-SQL-Reference-17/SQL-Commands/REPLICATE.300-3786790.en.html>
>  or SYNCHRONIZE 
> <https://livedoc.4d.com/4D-SQL-Reference-17/SQL-Commands/SYNCHRONIZE.300-3786772.en.html>.
>  SQL code inserted in Begin SQL/End SQL blocks must comply with the following 
> conditions : 
> - It shall apply to the 4D Server or 4D local base (but not to ODBC). 
> - it cannot reference interprocess variables


However, a method set to Thread-Safe with the following code generates an error 
when I do a syntax check:

Begin SQL
SELECT Company_Name from Customer INTO :$atStr1
End SQL

The error is: “Cannot us SQL from a method declared as thread-safe.”

The original v17 docs say that you cannot use Begin…End SQL but the v17.2 docs 
clearly say you can with the above restrictions. Has anyone had success getting 
Begin…End SQL to work in a thread-safe method in 17.2?


--------
Richard Wright
DataDomain
rwri...@datadomainsoftware.com <mailto:rwri...@datadomainsoftware.com>


**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Distinct Values on Composite Index

2018-12-13 Thread Richard Wright via 4D_Tech
Is there anyway to get the unique values of a composite index like we can do 
with Distinct Values for a regular index on a field? 


Richard Wright
DataDomain
rwri...@datadomainsoftware.com


**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: table/field token

2018-09-06 Thread Richard Wright via 4D_Tech
I thought you were saying that these characters were not allowed as of v16 R4 
even without enabling the new feature. I’m just hoping that 4D will never 
require us to enable the new feature or, if they do, that they give us plenty 
of advance notice. It’s not trivial to make changes like this to a 30 year old 
application with hundreds of tables and a million lines of code. 


> Date: Wed, 5 Sep 2018 22:49:05 +
> From: Timothy Penner 
> 
> 
> Hi Richard,
> 
>>> * Starting with 4D v16 R4, "." and "[]" characters are no longer allowed in 
>>> names of tokenized objects.
>> I take that to mean they are no loner allowed in “new” names of tokenized 
>> objects.
> 
> I take it to mean they are no longer allowed in tokenized objects, **existing 
> or new**.  To be pedantic, I am interpreting the 'no longer' part of the 
> sentence to apply to *existing* tokenized objects and then the overall 
> sentence I am interpreting would also apply to *new* tokenized objects as 
> well. I don't think it would make sense for this to apply to one and not the 
> other.
> 
> I am not sure what would have been found by the MSC in your specific 
> situation, but I am very curious...
> 
> Quote:
> {
> A specific MSC feature helps you detect names which are incompatible with 
> object notation. Using this feature is highly recommended before enabling the 
> option (see the Verify page section of the "MSC" chapter). As usual, it is 
> recommended to work on a copy of the structure file.
> }
> 
> Did you try running it through the MSC prior to enabling the feature?
> 
> -Tim

**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: table/field token

2018-09-05 Thread Richard Wright via 4D_Tech
> * Starting with 4D v16 R4, "." and "[]" characters are no longer allowed in 
> names of tokenized objects.

I take that to mean they are no loner allowed in “new” names of tokenized 
objects.


> Date: Wed, 5 Sep 2018 18:50:28 +
> From: Timothy Penner 
> 
>> Surely something to do with dot notation, but I wonder if it's a bug or 
>> something I miss?
> 
> There is a section of the docs that talks about this:
> http://doc.4d.com/4Dv16R4/4D/16-R4/Using-object-notation-preview.300-3303773.en.html#3304590
> 
> {
> Activating the object notation
> Over any versions, 4D has always accepted dots (.) and square brackets ([ and 
> ]) in tokenized database object names (tables, fields, variables, and 
> methods).
> 
> However, these characters are used to identify language tokens in standard 
> object notation. Thus, databases using names containing dots or square 
> brackets are not compatible with the standard object notation since 
> misinterpretations could break existing code. For example, if the following 
> code is written:
> 
> a.b
> a.b:=c[1]
> 
> ...4D could not know if a.b and c[1] represent standard variable names or if 
> b is a property of the a object and c the second element of a c collection.
> 
> Consequently:
> 
> * In converted databases, you have to select a specific option stating that 
> you want to use the object notation. By selecting this option, you declare 
> that your code is "object notation ready", that is, it does not use any names 
> containing "." or "[]" characters.
> * A specific MSC feature helps you detect names which are incompatible with 
> object notation. Using this feature is highly recommended before enabling the 
> option (see the Verify page section of the "MSC" chapter). As usual, it is 
> recommended to work on a copy of the structure file.
> * Enabling the object notation is a no-return option since it requires a 
> retokenization of the code. Once enabled, it cannot be removed and the 
> database cannot be reopened with a previous version.
> * Starting with 4D v16 R4, "." and "[]" characters are no longer allowed in 
> names of tokenized objects.
> }

**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: [v16.3 64 IC on El Capitan] Receive file

2018-09-05 Thread Richard Wright via 4D_Tech
Can you clarify "in fairness, it is legacy software, free to use and not part 
of the main product line.”

There is a 64 bit version 4D Internet Commands which tells me it’s being 
updated and I see nothing to indicate that it is considered legacy. 


Richard Wright
DataDomain
rwri...@datadomainsoftware.com



> Date: Wed, 5 Sep 2018 00:40:30 +
> From: Keisuke Miyako 
> 
> 
> I think you are referring to ACI0096897 which is described as standard 
> behaviour, that is,
> expected result according to design.
> 
> FTP_GetDirList uses the 'LIST' request.
> When optionnal output parameter if provided to get timestamps, it sends an 
> 'MTDM' request for each file of the directory.
> (and not the 'MLSD' request of RFC 3659)
> 
> the result is that FTP_receive returns error 10048 on certain servers, since 
> 15.4 (was ok until 15.3)
> the workaround is to
> a: not provide last optional array for timestamps in FTP_GetDirList,
> or
> b: call  FTP_Login again after FTP_GetDirList
> 
> the fact that the bug is considered standard behaviour,
> speaks for itself about the level of enthusiasm to maintain the product.
> 
> in fairness, it is legacy software, free to use and not part of the main 
> product line.
> 
> of course. that is not a good enough excuse,
> but I wanted to mention it as a weak explanation.



**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: 4D Write to 4D Write Pro

2018-08-29 Thread Richard Wright via 4D_Tech
That’s a great idea, Tim (and I remember you showing me that code). It might 
not be that much work for us to do for the subset of 4D Write commands that we 
use. Or maybe just create wrapper functions directly in the application that 
contain a switch telling whether to use 4D Write Pro or 4D Write Amateur. That 
could be done upfront and then use Global Find and Replace to swap the wrappers 
for the plugin calls. Still have to figure out the command cross-reference, 
however, which is the real kicker.

I’d love to stay in 32 bit mode that’s soon not going to be possible on the Mac 
side of things.


Richard Wright
DataDomain
rwri...@datadomainsoftware.com



> Date: Wed, 29 Aug 2018 14:38:46 -0500
> From: Tim Nevels 
> 
> On Aug 29, 2018, at 2:00 PM,Richard Wright wrote:
> 
>> Is there a cross reference of language commands between 4D Write and 4D 
>> Write Pro or do we have to all figure it out for ourselves? 
>> 
>> I’m mystified as to why wrappers for the old commands could not have been 
>> created so as to make the move to 4D Write Pro relatively painless. E-node 
>> did this very nicely when they created the new API for AreaList. All the old 
>> commands still work because they are internally mapped to the new ones. Why 
>> can’t this be done for 4D Write Pro? If it’s truly ready to go, scrap 4D 
>> Write but create a shell plugin that maps all the old commands to the new. 
>> With Mac Mojave being the last OS to support 32 applications it’s going to 
>> get serious pretty soon.
> 
> 
> But I have a crazy idea… 
> 
> What if someone created a 4D component that had the major 4D Write Plugin 
> commands with all the same parameters but as 4D component methods. And each 
> method accomplished the same results as the plugin command. Then you could 
> remove the 4D Write Plugin, install the component and run a syntax check to 
> expose every method and line using the plugin commands. Then you open each 
> method and force a retokenization to magically change each line to use the 
> component method instead of the plugin command. That gets you 90% of the way 
> there without a major code rewrite.
> 
> I did exactly this for 2 clients — different than these 2 clients — when I 
> upgraded them from v2004 to v11 and 4D dropped the 4D Open for 4D plugin. I 
> created a “4D Open for 4D SOAP” component that allowed me to not rewrite all 
> the 4D Open code. It was a lot of work, but in the end it was less than 
> rewriting all the existing code. And I could use it for 2 clients. The 2 
> shared the upgrade cost. 
> 
> When I get ready to do the SDI work for 1 client and need to rewrite all the 
> 4D Write code, I’m going to look into doing the same thing. Might be 
> possible. Might not be possible. But at least I’ve done it before so probably 
> a day or two of analysis and prototyping work will tell me if it can be done. 
> 
> Tim
> 
> *
> Tim Nevels
> Innovative Solutions
> 785-749-3444
> timnev...@mac.com
> *



**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: 4D Write to 4D Write Pro

2018-08-29 Thread Richard Wright via 4D_Tech
That’s what I was afraid of. Does it not occur to anyone at 4D that people have 
existing code to manipulate 4D Write documents and that that code has to be 
rewritten to work with 4D Write Pro? The lack of a command cross reference 
makes the process unnecessarily difficult and maybe you end up 90% through the 
process only to find out that a certain functionality has not been retained in 
“Pro". How hard could it be to write such a thing? After all, when 4D Write Pro 
was being written, surely the starting point would have been to retain all 
existing features and then give us all the great new things. So you create a 
list of existing commands and then you check them off as those functions are 
rewritten in “Pro”. How else could you know that you haven’t missed something? 
Reading a bunch of blogs is not all the same thing as an accurate cross 
reference.


Richard Wright
DataDomain
rwri...@datadomainsoftware.com



> Date: Wed, 29 Aug 2018 18:57:19 +
> From: Vance Villanueva 
> 
> Hi Richard,
> 
> 4D Write Pro is a newly developed architecture.  There are no cross 
> references of 4D Write Pro commands from 4D Write.  We have resources to 
> convert 4D Write docs to 4D Write Pro.  Also, we have resources of 4D Write 
> Pro in doc.4d.com, blog.4d.com, and kb.4d.com for the transition from 4D 
> Write.
> 
> Regards,
> 
> Vance Villanueva
> 
> 
> 
> 
> -Original Message-
> From: 4D_Tech [mailto:4d_tech-boun...@lists.4d.com] On Behalf Of Richard 
> Wright via 4D_Tech
> Sent: Wednesday, August 29, 2018 9:45 AM
> To: 4d_tech@lists.4d.com
> Cc: Richard Wright
> Subject: 4D Write to 4D Write Pro
> 
> Is there a cross reference of language commands between 4D Write and 4D Write 
> Pro or do we have to all figure it out for ourselves?
> 
> I’m mystified as to why wrappers for the old commands could not have been 
> created so as to make the move to 4D Write Pro relatively painless. E-node 
> did this very nicely when they created the new API for AreaList. All the old 
> commands still work because they are internally mapped to the new ones. Why 
> can’t this be done for 4D Write Pro? If it’s truly ready to go, scrap 4D 
> Write but create a shell plugin that maps all the old commands to the new. 
> With Mac Mojave being the last OS to support 32 applications it’s going to 
> get serious pretty soon.
> 
> 
> Richard Wright
> DataDomain
> rwri...@datadomainsoftware.com




**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: 4D Write Pro WP feature request - need your support

2018-08-29 Thread Richard Wright via 4D_Tech
You’re kidding, right? 4D Write Pro can’t read and write Word documents?


> Date: Wed, 29 Aug 2018 05:56:51 -0700 (MST)
> From: ADeeg 
> 
> 
> FR from Alfonso: 4D Write Pro Import-Export Word
> link: http://forums.4d.com/Post/DE/25361165/1/25361166
> 

**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

4D Write to 4D Write Pro

2018-08-29 Thread Richard Wright via 4D_Tech
Is there a cross reference of language commands between 4D Write and 4D Write 
Pro or do we have to all figure it out for ourselves? 

I’m mystified as to why wrappers for the old commands could not have been 
created so as to make the move to 4D Write Pro relatively painless. E-node did 
this very nicely when they created the new API for AreaList. All the old 
commands still work because they are internally mapped to the new ones. Why 
can’t this be done for 4D Write Pro? If it’s truly ready to go, scrap 4D Write 
but create a shell plugin that maps all the old commands to the new. With Mac 
Mojave being the last OS to support 32 applications it’s going to get serious 
pretty soon.


Richard Wright
DataDomain
rwri...@datadomainsoftware.com


**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: New record numbering system and CALL WORKER

2018-08-28 Thread Richard Wright via 4D_Tech
It allows you to work with related records as if they were subrecords. For 
example, you open an Invoice and start a transaction so that changes to line 
items can be rolled back if the Invoice is cancelled (something that 
automatically happened with subrecords). But then you want to drill down to 
another table related to Invoices and have those changes treated independently 
of the whether or not you cancel the Invoice. This is also how it worked with 
subrecords and was actually a very important feature of subrecords—that they 
were considered part the parent record and not independent; like structured 
data within a field.


Richard Wright
DataDomain
rwri...@datadomainsoftware.com



> Date: Mon, 27 Aug 2018 13:08:32 -0700
> From: Kirk Brooks 
> 
> Hey guys - the very issue with the record counter is sketched out in the
> discussion about Suspending Transactions:
> 
> http://doc.4d.com/4Dv16/4D/16.3/Suspending-transactions.300-3652126.en.html
> 
> 
> I had missed this - it's quite a feature.
> 
> On Mon, Aug 27, 2018 at 7:54 AM Keisuke Miyako via 4D_Tech <
> 4d_tech@lists.4d.com> wrote:
> 
>> transactions can be paused since v16
>> 
> 
> -- 
> Kirk Brooks
> San Francisco, CA
> ===



**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Query by Formula bug Client/Server with Automatic Relations

2018-08-03 Thread Richard Wright via 4D_Tech
The Query is run from code; no forms involved. “Execute Query by Formula on 
Server” is Off (the same problem happens when it is On). I also tried using SQL 
joins for Query By Formula but it made no difference. 

Interestingly, this bug goes back to at least 4D v13 yet no one else seems to 
have encountered it. We ran into it during a subtable conversion where we 
replaced Query Subrecords with Query Selection by Formula because because Query 
Subrecords also uses formulas (multiple criteria combined) and so it is an easy 
substitution.


Richard Wright
DataDomain
rwri...@datadomainsoftware.com


> Date: Thu, 2 Aug 2018 23:23:46 +
> From: Keisuke Miyako mailto:keisuke.miy...@4d.com>>
> 
> thank you for the correction and clarification!
> 
> incidentally, is the query executed from a UI (i.e. running the query on a 
> table form)?
> 
> what is the status of the "execute formula on server" compatibility setting?
> 
> 2018/08/03 2:47、Richard Wright via 4D_Tech <4d_tech@lists.4d.com 
> <mailto:4d_tech@lists.4d.com><mailto:4d_tech@lists.4d.com 
> <mailto:4d_tech@lists.4d.com>>>のメール:
> 
> The incorrect behavior in step 2 is not dependent on the query conditions or 
> whether or not any records are found. It happens if you simply do the 
> following:
> 
> Query Selection by Formula ([Many_Table];True)
> 

**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Query by Formula bug Client/Server with Automatic Relations

2018-08-02 Thread Richard Wright via 4D_Tech
The selection of One records is not changed based on the Many records, the 
selection is lost. 

Further in the documentation it states:

> Some of the commands listed in the previous table (such as the query 
> commands) load a current record after the task is completed. In this case, 
> the record that is loaded does not automatically select the records related 
> to it. Again, if you need to access the related data, you must explicitly 
> select the related records by using RELATE ONE or RELATE MANY.

So, the Query commands should never automatically selected related records. 
However, they can use data from related tables when automatic relations is on. 
I think this is what is meant by the portion of the documentation you quoted. 
To be clear, I’m looping through a selection of One records, querying for 
related Many records and then further narrowing the selection of Many records 
using Query Selection By Formula:

Automatic Many-to-One is turned On
Get selection of One records and Loop. For each record:

1.  Query for related Many records - this does not affect the selection in the 
One table (correct according to the above documentation)
2.  Query Selection by Formula on Many records - this doesn’t just change the 
selection in the One table, it removes it. There is no selection anymore.

The incorrect behavior in step 2 is not dependent on the query conditions or 
whether or not any records are found. It happens if you simply do the following:

Query Selection by Formula ([Many_Table];True)

--------
Richard Wright
DataDomain
rwri...@datadomainsoftware.com




> Date: Thu, 2 Aug 2018 00:56:13 +
> From: Keisuke Miyako 
> 
> according to the documentation:
> 
> http://doc.4d.com/4Dv17/4D/17/About-Relations.300-3730102.en.html
> 
> QUERY BY FORMULA "will use existing automatic Many-to-One relations" and 
> "will use automatic One-to-Many relations"
> 
> so as soon as a record of the many table becomes current, it automatically 
> changes the current record on the 1 table.
> 
> isn't that how automatic relations are supposed to work?
> 
> 2018/08/02 7:46、Richard Wright via 4D_Tech 
> <4d_tech@lists.4d.com<mailto:4d_tech@lists.4d.com>>のメール:
> I discovered this in v16 R2 but it’s also a problem in v13.5. Has anyone else 
> seen this problem?



**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Query by Formula bug Client/Server with Automatic Relations

2018-08-01 Thread Richard Wright via 4D_Tech
I just ran into a problem where running a Query By Formula bug in Client/Server 
that has apparently been around for a long time:

Client/Server
Two related tables and automatic many-to-one is turned on

1.  Select a record in the One table
2.  Run a standard query to get the related records in the Many table
3.  Run Query Selection By Formula on the Many table where the formula uses 
nothing from the One table at all

The current record and entire selection of the One table is lost. You don’t 
even need step 2. Just run Query By Formula on the Many table. Even though the 
formula has nothing in it that touches the One table, the One table’s selection 
is cleared. It works fine in standalone.

I discovered this in v16 R2 but it’s also a problem in v13.5. Has anyone else 
seen this problem?



Richard Wright
DataDomain
rwri...@datadomainsoftware.com


**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: [Odd] Compiler directives

2018-07-20 Thread Richard Wright via 4D_Tech
Just think what might have happened if it had been

C_POINTER(ARYLSTBX_UPDATE_DISPLAY;${SQRT(-1)})



> Date: Fri, 13 Jul 2018 11:24:19 -0400
> From: Chip Scheide <4d_o...@pghrepository.org 
> >
> 
> I came across this compiler directive:
> 
> C_POINTER(ARYLSTBX_UPDATE_DISPLAY;${-1})
> 
> ARYLSTBX_UPDATE_DISPLAY is a method. I have corrected it... but wow! 

**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Macro question - using project methods in a macro

2018-07-06 Thread Richard Wright via 4D_Tech
Self-modifying AI code running interpreted is better than dumb code running 
compiled. Besides, I rarely write code anymore, my AI program does it for me 
(when it’s not driving my car).

> Date: Fri, 6 Jul 2018 10:50:02 -0700
> From: Kirk Brooks 
> 
> Richard,
> Well you couldn't do that compiled in any event. What you could do is write
> code that runs scripts external to the compiled structure using Process
> Tags.
> 
> On Fri, Jul 6, 2018 at 9:47 AM Richard Wright via 4D_Tech <
> 4d_tech@lists.4d.com> wrote:
> 
>> Yeah, but how am I supposed to implement AI in 4D without self-modifying
>> code? ;-)
>>> Date: Fri, 6 Jul 2018 01:08:17 +
>>> From: Keisuke Miyako 
>>> 
>>> you want to exclude the macro method from accidentally editing itself.
> 

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Macro question - using project methods in a macro

2018-07-06 Thread Richard Wright via 4D_Tech
Yeah, but how am I supposed to implement AI in 4D without self-modifying code? 
;-)


> Date: Fri, 6 Jul 2018 01:08:17 +
> From: Keisuke Miyako 
> 
> there is no need to use the clipboard.
> 
> I don't which example you saw, but I have always used SET MACRO PARAMETER 
> since v11 (Macros v2).
> 
> One piece of advise is to protect the method called from macro by doing 
> something like
> 
> Macro_MyMethod(; />)
> 
> C_TEXT($1;$2)
> 
> $methodName:=$1
> $methodPath:=$2
> 
> If ($methodPath#Current method path)
> 
> GET MACRO PARAMETER(Full method text;$methodCode)
> 
> //do stuff
> 
> SET MACRO PARAMETER(Full method text;$adjustedMethodCode)
> 
> End if
> 
> you want to exclude the macro method from accidentally editing itself.

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Scroll position of display-type subform

2018-06-12 Thread Richard Wright via 4D_Tech
Thanks, Miyako, that works!


> From: Keisuke Miyako 
> To: 4D iNug Technical <4d_tech@lists.4d.com>
> Subject: Re: Scroll position of display-type subform
> Message-ID: <30f1fc18-68d9-4b1b-9413-aba4d7db5...@4d.com>
> Content-Type: text/plain; charset="utf-8"
> 
> haven't tried,
> but I wonder if CONVERT COORDINATES would be smart enough to take into 
> account the scrolled amount of a detail subform.
> 
> http://doc.4d.com/4Dv16/4D/16.3/CONVERT-COORDINATES.301-3651760.en.html
> 
>> 2018/06/12 7:37、Richard Wright via 4D_Tech <4d_tech@lists.4d.com> のメール:
>> I need to get the position of an object on a display-type subform in global 
>> coordinates and the subform may be scrolled.
> 

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Scroll position of display-type subform

2018-06-11 Thread Richard Wright via 4D_Tech
Does anyone know how to get the scroll position of a display-type subform? 
OBJECT GET SCROLL POSITION apparently works only for list-type subforms. I need 
to get the position of an object on a display-type subform in global 
coordinates and the subform may be scrolled.


Richard Wright
DataDomain
rwri...@datadomainsoftware.com


**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: SQL Date Math

2018-05-07 Thread Richard Wright via 4D_Tech
So it would seem that while there are numerous functions to extract parts of a 
timestamp into it’s component parts, there is no function to create a date from 
a piece of text, no date operators nor any date functions by which you can add 
or subtract days or other component parts of a time stamp. In Oracle, for 
example, you can do the following to create a date:

To_Date(‘2018-05-07’,’-MM-DD’)

or to subtract days:

SYSDATE -3  (you can also use fractions of days)

or to add months:

ADD_MONTHS(SYSDATE,2)
  
But 4D SQL has nothing like these. This seems like a big oversight.




> Date: Sat, 5 May 2018 03:28:29 +
> From: Keisuke Miyako 
> the error message seems to be in line with what is explain in the 
> documentation:
> 
>> Automatic data type conversion is implemented between numeric types.
>> A string that represents a number is not converted to a corresponding 
>> number. There are special CAST functions that will convert values from one 
>> type to another.
> 
> http://doc.4d.com/4Dv16R6/4D/16-R6/4D-SQL-engine-implementation.300-3628406.en.html
> 
> in other words, you can't expect 4D to implicitly convert numeric 2 to 
> TIMESTAMP.
> 
> besides, with an expression such as
> Select someDate - 2
> it is unclear whether you want to subtract 2 years, months, days, hours, 
> minutes, second or milliseconds.
> 
> in addition to that, there is no way to express 2 days as TIMESTAMP.
> this is mentioned in the same URL, that 4D SQL does not support date 
> constants where the month or day is 0.
> in other words, you can't use { d '-00-02' } to specify 2 days.
> and in case you are wondering, you can't use {t '48:00:00'} either,
> because a time constant that exceeds 24 hours throws a parser error.
> 
> even if you find a way to specify 2 days in a way that the parser can 
> understand,
> there is the fundamental problem that arithmetic expressions between VK_TIME 
> (TIMESTAMP) values are type unsafe in 4D SQL.
> 
> so I think the best option is to use {FN () } with an "Add to date" wrapper
> 
> http://doc.4d.com/4Dv16R6/4D/16-R6/4d-function-call.300-3628422.en.html

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

SQL Date Math

2018-05-04 Thread Richard Wright via 4D_Tech
What kind of date math does 4D’s SQL support? The following gives an error 
where I’m trying to subtract 2 days from the date:

Select someDate - 2
From someTable

The error returned is “Operation VK_TIME - VK_LONG8 is not type safe. Failed to 
validate SELECT command.”

Same thing if you put that kind of date expression in the Where clause.  The 
manual is silent on date math as far as I can tell.


Richard Wright
DataDomain
rwri...@datadomainsoftware.com


**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: 4D Summit 2018 Comments

2018-04-10 Thread Richard Wright via 4D_Tech
> Date: Mon, 09 Apr 2018 23:03:31 -0500
> From: Tim Nevels <timnev...@mac.com>
> 
> The 4D SQL engine is a layer above the 4D database engine. SQL statements 
> must be translated into a form that the 4D database engine can process. And 
> that can take many forms. Some would work but be super slow, others could be 
> optimized to take advantage of the 4D database engine and be fast. So you 
> have to create a parse that can make this happen. It can be done, but it is 
> not an easy task. Hence the need for “quality individuals” to make this 
> happens. 

I seem to remember being specifically told back in the early days of v11 that 
the SQL engine was not a layer on top of the 4D engine, but that it was 
completely separate.


--------
Richard Wright
DataDomain
rwri...@datadomainsoftware.com


**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: 4D Summit 2018 Comments

2018-04-10 Thread Richard Wright via 4D_Tech
> Date: Mon, 9 Apr 2018 21:46:17 -0400
> From: Jim Crate <j...@quevivadev.com>
> 
> On Apr 9, 2018, at 10:06 AM, Tim Nevels via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
>> So you want an example of ORDA and changes to the 4D language? Here’s one 
>> form JPR’s advanced class. (Hope I am not doing copywriter infringement 
>> here.) 
>> 
>> You have a table called “Employee”. Just one table. It has a “managerID” 
>> field and has a relation back to the “ID” field of the same table. (Yeah, 
>> that’s not possible in the current version of 4D, but it is in v17.) The 
>> name of the relation is “manager”. Find all Employees working for a manager 
>> whose “firstname” is “Laurel”. Here is how you would do it now:
>> 
>> QUERY([Employee];[Employee]firstname="Laurel")  // First Query 
>> ARRAY LONGINT($arIDs;0)
>> SELECTION TO ARRAY([Employee]ID;$arIDs)
>> QUERY WITH ARRAY([Employee]managerID;$arIDs)
>> 
>> That gives you a selection of [Employee] records. Here is how you do it via 
>> ORDA in v17:
>> 
>> $entSel:=ds.Employee.query("manager.firstname = ‘Laurel’ “)
>> …
>> And it can be recursive. Say you want to find the managers of the managers 
>> whose name is “Laurel”. You do it like this:
>> 
>> $entSel:=ds.Employee.query("manager.manager.firstname = ‘Laurel’ “)
> 
> Ruby on Rails has had similar syntax since the 2005 timeframe (part of the 
> ORM), but it’s nice to see these concepts finally making their way to 4D. It 
> will definitely reduce the pointless amount of 4D code you have to write to 
> do almost anything. 
> 
> Considering that query language like this has been implemented in other ORMs 
> for decades, primarily on top of SQL databases, it’s likely that 4D is 
> actually using the 4D SQL engine underneath the new query language. The SQL 
> implementation already queries the database without changing the (one) 
> current selection, and in your example above, $entSel is not a “current 
> selection” (they referred to having as many “selections” as you want), it is 
> a collection of entity objects.

4D’s SQL support self joins right now:

Select b.ID From Employee as ‘b’, Employee as ‘a’ Where a.firstname = ‘Laurel’ 
And a.ID = b.managerID

I think all this new stuff is great but I’d like to see some significant 
improvements in 4D’s SQL because that is still the standard and that’s how 
people need to get data out of 4D using ODBC. Improvements like the ability to 
do a select from a subquery and set operations, for example, would hugely 
increase it’s value. And some speed improvements for joins are sorely needed. I 
feel like 4D’s SQL is an abandoned child which is really a shame.



Richard Wright
DataDomain
rwri...@datadomainsoftware.com


**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: 4D Summit 2018 Comments

2018-04-09 Thread Richard Wright via 4D_Tech
I’ll be interested in learning how this differs from Views, not necessarily 
4D’s rather simplistic implementation, but something like Oracle’s, along with 
their very powerful SQL implementation.


Richard Wright
DataDomain
rwri...@datadomainsoftware.com



> Date: Mon, 09 Apr 2018 12:32:09 -0500
> From: Tim Nevels <timnev...@mac.com>
> 
> Something that may not be immediately obvious is that using ORDA will reduce 
> the amount of code needed to query the database. In relational databases you 
> have to query this table, join to another table, query selection, relate 
> many, etc. We are all used to doing this and we need to know exactly what the 
> database structure is. What table is the one table, what table is the many 
> table, is there a many-to-many intermediate table we need to deal with, etc. 
> 
> ORDA can remove the need to know this level of detail in many cases. By 
> naming relations in a “logical” way you can write code to get the “manager” 
> of an employee, or get the “direct reports" for an employee. And from that 
> you can then further filter the results by using a “query” member function. 
> You let the 4D database figure out if it needs to relate many selection, or 
> relate one selection for you. And you can make these named relations very 
> complex if you want. There is a lot of power here that is just starting to be 
> exposed. 


**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: "Goodbye 4D Write" email

2018-02-01 Thread Richard Wright via 4D_Tech
If 4D Write Pro doesn’t, and won’t, have all the features of 4D Write then 4D 
should give it a different name instead of pretending that it’s a replacement. 
I’ve been totally baffled by this seemingly endless piecemeal rollout of a 
“pro” product. I remember getting an email a couple years ago announcing the 
spectacular ability of 4D Write Pro to save documents!! What’s the point? 
Why not finalize it and then announce it? Eventually 32 bit support is going 
away and that means 4D Write is going away and if 4D Write Pro isn’t going to 
have all the features then we ought to be told the details now so we can make 
the appropriate plans. Here’s my feature request: I want 4D Write Pro to have 
all the features of 4D Write.


Richard Wright
DataDomain
rwri...@datadomainsoftware.com


> Date: Wed, 31 Jan 2018 22:49:11 +
> From: Brian Young <byo...@4d.com>
> 
> Hi Don,
> 
> If you haven’t already, please add your concern about "Export to MS Word" to 
> the 4D Forum where the Product team can see it and respond. Here is a feature 
> request you can up-vote:
> 
> http://forums.4d.com/Post/EN/20813501/1/20814772#20814772
> 
> Among the posts linked in the email today is one that gives example code to 
> build a toolbar similar to the one in 4D Write:
> 
> https://blog.4d.com/4d-write-like-toolbar-example-for-4d-write-pro/
> 
> We are working to make sure you and the 4D community are aware of the 
> resources already available by bundling 4D Write Pro related info together.
> 
> my very best
> 
> -Brian



**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

RE: SQL error

2017-11-01 Thread Richard Wright via 4D_Tech
May I kindly suggest reading a basic primer on SQL. 

> Date: Wed, 1 Nov 2017 17:15:01 +
> From: Timothy Penner 
> 
> I think you have multiple issues with this SQL Statement.
> 
> I don’t think you can select a COUNT(*) along with other fields in the same 
> SQL Statement;
> Count returns a number, not an array.
> While the fields return an array.
> 
> In addition to that, what is 'HAVING Count(*) > 1' supposed to do?
> 
> And then as already mentioned you were missing the : before the variable.
> 
> See also: http://livedoc.4d.com/4Dv15/help/Command/en/page18316.html
> 
> -Tim

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: San Fransisco Font

2017-10-10 Thread Richard Wright via 4D_Tech
I don’t recall seeing any such recommendation or discussion in the manuals. 
I’ve been using the System Font in a couple of style sheets for years without 
issues, for generic dialogs and buttons. It doesn’t make sense that one can 
select it for a Style Sheet if 4D is recommending not to select it. I’m also 
not sure what you’re trying to convey with the links. I took a look at the 
Apple page on CTFont and don’t see any mention of a System font, just a list of 
font functions.



Richard Wright
DataDomain
rwri...@datadomainsoftware.com


> Date: Tue, 10 Oct 2017 00:46:50 +
> From: Keisuke Miyako <keisuke.miy...@4d.com>
> 
> on the use of system font:
> 
> the only correct (that is, intended) way to use the system font in 4D is to 
> use it indirectly with the automatic stylesheet feature.
> 
> it is NOT recommended to use "system font" via the default stylesheet, or any 
> stylesheet, except the automatic stylesheet, or change an object's font to 
> "system font" using OBJECT SET FONT. all these features simply reference the 
> font by its name, but the system font is not just another font name, it is 
> more than that.
> 
> from a technical point of view, it is resolved via the Theme API on Windows
> https://msdn.microsoft.com/en-us/library/windows/desktop/bb773210(v=vs.85).aspx
> and CoreText API on macOS.
> https://developer.apple.com/documentation/coretext/ctfont?language=objc
> 
> the system font is rendered according to context, that is, the control (form 
> object) type, its size (notably its height) the screen DPI on Windows and 
> even the language or languages that appear in the text. if you simply apply 
> the SF font like any other font, you won't get the full benefit of the system 
> font feature.

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: What happened to 4D documentation in R releases - found some of them

2017-10-06 Thread Richard Wright via 4D_Tech
It turns out you can still get the upgrade manuals for v14R and v15R here:

ftp://ftp-public.4d.fr/Documents/Products_Documentation/ 
<ftp://ftp-public.4d.fr/Documents/Products_Documentation/>

But no such luck for v16R. For these, just bug fixes. Please 4D, give us real 
reference manuals for each version! Keep your blogs, there fine, but please 
don’t make them the  only way to get information. 


----
Richard Wright
DataDomain
rwri...@datadomainsoftware.com


**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: What happened to 4D documentation in R releases?

2017-10-06 Thread Richard Wright via 4D_Tech
Ad,

The blogs are fine and are helpful but they’re no substitute for a proper 
reference of changes for each version. It’s really important for us to be able 
to clearly and easily see which changes are in each R version, not just major 
versions. And you can’t do this from the blog. 

Jeremy pointed out that there’s a What’s New link on the Language reference 
page of the online docs and that’s great, but it’s not implemented very well. 
And I can’t download a PDF for reference later on. For example, where are the 
Upgrade References for the v15 R versions? It’s all combined into one doc and I 
don’t see anything that tells me which version a particular feature appeared in.

For example, changes to the Query Editor:

http://docs.4d.com/4Dv15/4D/15/Query-editor.300-2005957.en.html

R2, R3, R4 or R5? It doesn’t say. And for v14 there’s no upgrade manual at all 
in the doc center, either for the regular line or the R releases. I happen to 
know that the ability to assign the id_added_by_converter field was added in 
v14R3 because I have the PDF upgrade manual for that but it’s no longer in the 
doc center.


Richard Wright
DataDomain
rwri...@datadomainsoftware.com



> Date: Fri, 6 Oct 2017 17:11:58 +
> From: Add Komoncharoensiri <akomoncharoens...@4d.com>
> 
> Hi everyone,
> 
> I can understand the confusion. The format on the documentation page is a bit 
> different these days. There are 2 sections you want to look for from the main 
> documentation page. Under Core Documentation section, you’ll find “4D v16 R4 
> – Upgrade” and “Deprecated and Removed Features” sections. These 2 sections 
> described the changes made in 4D products (both enhanced and removed).
> 
> In the “4D v16 R4 – Upgrade section, you can either click on the title or 
> “What’s new page” (direct link to the landing page for all new features for 
> the version). Please notice the Read documentation link at the bottom of each 
> feature. Next to it, there is a link to a blog post that offers a 
> downloadable example.
> 
> Obviously, this change will take some getting used to. But we do hope that 
> you will find it to be more beneficial in a long term.
> 
> Regards,
> Add Komoncharoensiri



**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: What happened to 4D documentation in R releases?

2017-10-06 Thread Richard Wright via 4D_Tech
I couldn’t agree more. Each version needs it’s own document that lists it’s 
changes. I also agree about keeping an archive of documentation for each R 
release. There’s new stuff in each one, that’s the whole point, and an R 
release is no different than a major version release - once you get to v16R5 
that’a the last - the next one is v17.



Richard Wright
DataDomain
rwri...@datadomainsoftware.com


> On Fri, Oct 6, 2017, at 2:00 PM, 4d_tech-requ...@lists.4d.com wrote:
> 
> Message: 6
> Date: Fri, 6 Oct 2017 12:39:40 -0400
> From: bob.mil...@parker.com
> To: 4d_tech@lists.4d.com
> Subject: RE: What happened to 4D documentation in R releases?
> Message-ID:
>   <of1d804ade.6da3fe9d-on852581b1.005a7e7a-852581b1.005b9...@parker.com>
> Content-Type: text/plain; charset="US-ASCII"
> 
> Yes, v16 brings a somewhat frustrating "new" approach to documentation. In 
> fact, I postponed looking at v16 until there were PDF docs, which were not 
> released until several _months_ after v16 came out (there were html docs, 
> but no PDF docs). 
> 
> I am also frustrated by how the documentation has been handled with the 
> R-releases; if you look at the website right now, there are pages (I won't 
> call it documentation) for "What's New" for both v16R5beta and v16r4, 
> which is great - but there's nothing on v16r3 and v16r2.  Why would I be 
> interested in those docs, since those features are included in r4? Because 
> the Upgrade manual is so useful to describe the incremental changes in 
> that release.  Without it, I have to really dig to find out what I might 
> have missed in r2, r3. 
> 
> Richard brings up another frustration: Starting with v16 r-releases, there 
> really have not been Upgrade manuals, there have been "What's New" pages, 
> and I agree - this is NOT documentation.  While one can jump into the 
> documentation guided by the "What's New" page, just try to find "What's 
> New" page for v16r2 and v16r3...they just aren't there anymore.
> 
> I respecfully request that when any version, R-release or not, is 
> released, that an Upgrade manual is released in tandem that describes each 
> new feature in detail -eg. "real" documentation" - and that these Upgrade 
> manuals remain posted in perpetuity just like they have been for pre-v16 
> versions.
> 
> My $.02 -
> 
> Bob Miller
> Chomerics, a division of Parker Hannifin Corporation



**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: What happened to 4D documentation in R releases?

2017-10-06 Thread Richard Wright via 4D_Tech
Thanks, Jeremy, that’s a big help.

> Date: Fri, 06 Oct 2017 12:20:56 -0400
> From: Jeremy French 
> 
> Hi Richard,
> 
> There is a link titled “What’s New”.
> 
> This link appears **only** when you view the Language Reference “Table of 
> Contents”.That’s the page that appears after choosing Language Reference for 
> a specific version of 4D.
> 
> Snapshot of Language Reference’s “Table of Contents"
> https://s1.postimg.org/6fjw2aafgf/p01_table_of_contents.png 
> 
> 
> Snapshot of “What’s New” link near end of “Table of Contents” page
> https://s1.postimg.org/33dxm2yfxr/p02_what_s_new.png 
> 
> 
> 
> As soon as you go to **any other page** in the Language Reference, the 
> “What’s New” link **disappears**. The link is also absent from the Language 
> Reference’s side bar listing themes/commands.
> 
> 
> Hope this helps.
> 
> Jeremy French

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: What happened to 4D documentation in R releases?

2017-10-06 Thread Richard Wright via 4D_Tech
I’m looking for the documentation of new features and other upgrade info. All 
they have in the doc center for this is a link to their blog which is not the 
same thing at all.

> Date: Fri, 6 Oct 2017 15:48:23 +
> From: Michael McCall 
> 
> Content-Type: text/plain; charset="utf-8"
> 
> Hi Richard,
> 
> I think the documentation is available if I understand your question.  I find 
> it for R4 at:
> 
> http://doc.4d.com/4Dv16R4/index.en.html
> 
> Hope this helps.
> 
> Mike

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

What happened to 4D documentation in R releases?

2017-10-06 Thread Richard Wright via 4D_Tech
I’m trying to get the upgrade documentation for v16 R2-R4. The only thing that 
I can find in the doc center is a link to their blog for new features in v16R4. 
It’s really annoying that I seemingly can’t download or even view online a 
single document for each version that lists what’s new. There aren’t even pages 
in the doc center for prior R releases - only the most recent. The blog is real 
cute but it’s not documentation. Yes there are links to documentation but then 
I have to walk through each and every entry and they’re in no particular order, 
no table of contents. And I have to wade through the marketing overview of the 
new features to get to the documentation link for real programmers. I’ve got 
far better uses for my time. I’m not trying to find cooking recipes, I’m trying 
to find serious documentation. Whatever blogs are they are not references.

Is there a way to search the doc center for new features in a particular 
version? If there is it isn’t obvious. Any suggestions are welcome.


Richard Wright
DataDomain
rwri...@datadomainsoftware.com <mailto:rwri...@datadomainsoftware.com>


**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: [offish]Volume of mail

2017-10-05 Thread Richard Wright via 4D_Tech
Perhaps it’s partially due to the fact that some post mysteriously never get 
through and also do not bounce back. I’m having that problem right now with 
another message I’ve tried posting twice and am waiting to hear back from the 
list boss. In between, I posted a “test” message which went through immediately.


> Date: Thu, 5 Oct 2017 12:52:47 -0400
> From: Chip Scheide <4d_o...@pghrepository.org>
> 
> I know that many of you have been on this list for a long time, as have 
> I.
> 
> I have noticed, over the past couple of years, that the volume of email 
> on this list has dropped - a lot -. It used to be, that if I was out of 
> the office, or whatever, and unable/unwilling to check email for 1 or 
> more days, I could expect to see ~100 emails/day from this list. While 
> I have not done an actual count, I believe that currently this list 
> sees, on average about 100 emails a week.
> 
> While this might be a good thing (less bugs to report/talk about etc), 
> I find it troubling in that it likely reflects a significantly 
> diminished use of the 4D product.
> 
> Thoughts, Anyone?
> Chip



**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Test

2017-10-05 Thread Richard Wright via 4D_Tech
Test
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

RE: Love 4D's math interpretation...

2017-09-28 Thread Richard Wright via 4D_Tech
So you’re saying there’s been a bug for at least 14 years in 4D math operations 
when running compiled and it’s never been fixed. How hard can it be? Saying to 
use parenthesis to ensure the order of operations is a workaround. Are we 
supposed to use parenthesis around every single math operation to make sure 4D 
obeys it’s own rules?

(3+4)*5)^2)/6)-3)*(1+2)

Not exactly easy to read.

And is the problem with exponentiation only related to addition or is it with 
others as well? Does

2*2^3

give a different result running compiled?

The language reference is very clear:

"The order in which an expression is evaluated is called precedence. 4D has a 
strict left-to-right precedence, in which algebraic order is not observed...To 
override the left-to-right precedence, you MUST use parentheses.”

The manual does not list an exception to this rule for exponentiation when 
running compiled and it’s crazy that we can’t depend on math to be performed 
the same compiled vs interpreted.


Richard Wright
DataDomain
rwri...@datadomainsoftware.com



> Date: Thu, 28 Sep 2017 18:16:25 +
> From: Timothy Penner <tpen...@4d.com>
> 
> Parenthesis should always be used with 4D's math operations as a way to force 
> the order of operations.
> 
> If you do not use Parenthesis then you may find different values in compiled 
> mode vs interpreted mode -
> 
> For example:
> 
> interpreted: 2+2^3=64
> compiled: 2+2^3=10
> 
> This behavior has existed since at least 4D 2003...
> 
> -Tim


**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Encrypted Data at Rest

2017-08-02 Thread Richard Wright via 4D_Tech
Not sure why you say for personal use only. FileVault supports 256 AES and 
benefits from hardware acceleration in the CPU. I’ve never done timing 
comparisons but there are no noticeable performance effects at all. Some people 
have tested, years ago, and found at most only 2-3% degradation.


> Date: Wed, 02 Aug 2017 13:21:09 -0500
> From: Tim Nevels 
> 
> On Aug 2, 2017, at 12:51 PM,Chip Scheide wrote:
> 
>> depending on the computer system.
>> This is built into (software) OS X it is called 'FileVault'.
>> I believe that Windows 7+ has a similar feature, but this might not be 
>> true at all, or only for newer (8 and or 10).
>> 
>> I do not have explicit experience (I'm sure Jody does), i would expect 
>> there to be some performance hit with Filevault, as it is software.
> 
> Remember that what Jody is talking about the encryption is handled in 
> hardware by the drive controller so performance hit is negligible as they 
> say. Don’t confuse the issue by including consumer level software encryption 
> like FileVault. FileVault is for personal use only.
> 
> Just making the point for any amateurs out there reading this thread. The 
> people running 4D Server on a Mac Mini and they think “I’ll be more secure 
> and put my data file in FileVault." Yeah, it should work. But I think you 
> would be hard pressed to find anyone that would recommend doing that. 
> 
> And also keep in mind that drive level encryption has no impact on database 
> performance when you are accessing the data cache. No encryption of the data 
> cache and memory. So the negligible decryption performance hit only impacts 
> the first read from disk to load the data cache. And there is a negligible 
> encryption performance hit when writing to disk. But that only happens when 
> the cache is flushed. And the flush happens in a separate thread on a 
> separate core on 4D Server. So that makes it super negligible.
> 
> Tim
> 
> 
> Tim Nevels
> Innovative Solutions
> 785-749-3444
> timnev...@mac.com
> 

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Subtable compatibility and conversion...

2017-02-02 Thread Richard Wright
Unconverted subtables continue to work with the old subtable commands. Once you 
break the subtable link they will not work, however, and you have to use the 
regular table commands.  Did [Plant_IU] used to be a subtable, i.e., [Plant]IU 
? If it’s been converted you can no longer use _o_FIRST SUBRECORD. If it hasn’t 
been converted then you must have changed that line of code because 4D would 
not change it by itself.

How there could there be thousands of syntax errors simply by converting from 
v11 to v15?


Richard Wright
DataDomain
rwri...@datadomainsoftware.com


> Date: Wed, 1 Feb 2017 22:54:01 -0600
> From: Robert ListMail <listm...@usersoft.com>
> 
> I’m working with a database that’s still being used in v11 and where the 
> current development version is in v15. There have been thousands of syntax 
> error fixes and now I’m dealing with the 7 existing subtables. Shouldn’t the 
> compatibility mode provided by the conversion continue to work in v15 and 
> possibly v16?  I have the following error that’s being flagged during a 
> compiler syntax check… Specifically:
> 
> _o_FIRST SUBRECORD([Plant_IU])  //Error: Did not expect a table
> 
> Is there a way to continue in compatibility mode?  Why am I getting the error 
> above?
> 
> Is there a detailed tech-note that maps out the migration path from a v14R3 
> or later database approach?
> 
> Thanks,
> 
> Robert



**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Tokens for Methods?

2016-11-10 Thread Richard Wright
I want to create a complete call chain (there may be several) of a given 
method. I know I can do this manually but it’s pain in complicated structures. 
If I could find a way to determine all methods called by a given method, I 
could do this for each method, store the info in database and easily create my 
call chain. In other words, I want to parse all methods like 4D Insider did and 
then used the parsed information to create the call chain in one easy step. I’m 
only interested in methods at this point. The latest Get Method Code does 
return some tokens, but not for methods; otherwise I could use that. 


> Date: Thu, 10 Nov 2016 01:33:39 +0100
> From: Keisuke Miyako <keisuke.miy...@4d.com>
> 
> would you be willing to share what is it you want accomplish?
> normally I would select a method in the Explorer and "search for 
> dependencies" from the context menu.
> the result contains the method it self, which is a bit weird, but you can 
> drag and drop the list to any text editor.
> 
>> 2016/11/10 7:18、Richard Wright <rwri...@datadomainsoftware.com> のメール:
>> Does anyone know how 4D tokenizes method names? I can get the method 
>> resource into a blob using API Pack and would very much like to be able to 
>> extract all methods that are called.
> 

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Tokens for Methods?

2016-11-09 Thread Richard Wright
Does anyone know how 4D tokenizes method names? I can get the method resource 
into a blob using API Pack and would very much like to be able to extract all 
methods that are called.


Richard Wright
DataDomain
rwri...@datadomainsoftware.com


**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Does it matter if you lock an IP object before updating?

2016-11-01 Thread Richard Wright
Yes, I’ve seen it happen. 4D language is multi-threaded already - it’s 
cooperative instead of pre-emptive prior to v16.  A method looping through an 
interprocess array can easily be paused while another method updates that same 
array.


Richard Wright
DataDomain
rwri...@datadomainsoftware.com


> Date: Mon, 31 Oct 2016 22:43:48 -0700
> From: Kirk Brooks <lists.k...@gmail.com>
> 
> 
> David,
> Great points - but, respectfully, does it ever actually happen? Can you
> write an example db that does this?
> 
> And bear in mind I'm talking about conditions on a client - not the server.
> And I'm not talking about situations where an external client might be
> attempting to set variables either. Just plain old accessing IP vars from
> multiple processes.
> 
> On Mon, Oct 31, 2016 at 10:12 PM, David Adams <dpad...@gmail.com> wrote:
> 
>> Sure, it's absolutely possible to encounter a race condition if you write
>> to a shared resource (IP arrays in your case) without a locking mechanism.
>> It's likelihood increases in compiled mode and as you add more
>> participants. Even if you can't predict how often you'll encounter a race
>> condition, you already know that the chance is greater than zero.
>> ​...
>> 
>> 
>> * Hoping that it won't happen isn't a sound strategy. Maybe it won't, maybe
>> it will. It definitely might.
>> 
> 
> -- 
> Kirk Brooks
> San Francisco, CA
> ===




**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Multi Sort Array bug

2016-10-04 Thread Richard Wright
Hmm. So the Design Reference has always been wrong? In the Order By Editor 
section, Sort Levels paragraph:

"When sorting the contents of fields, 4D is not case sensitive (i.e., “Smith” = 
“smith”) or diacritical sensitive (i.e., “Aá” = “Aa”). However, if you are 
using an international version of 4D and your operating system is diacritical 
sensitive (e.g., “Aá” ¦ “Aa”), sorting operations will also take diacritical 
marks into account”

http://doc.4d.com/4Dv15R5/4D/15-R5/Order-by-editor.300-2964328.en.html

As far as I know I’m using the English version of 4D, not an international 
version (although I don’t know to verify that).



> Date: Mon, 3 Oct 2016 22:46:37 +0200
> From: Keisuke Miyako <keisuke.miy...@4d.com>
> 
> there has always been 2 levels of text comparison in 4D,
> one for search, find, equality operators,
> and another for sort, order by, greater/less than operators.
> 
> sorting has always been case sensitive.
> 
>> 2016/10/04 1:28、Richard Wright <rwri...@datadomainsoftware.com> のメール:
>> Apparently Multi Sort Array performs case-sensitve searches, unlike anything 
>> else in 4D.

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Multi Sort Array bug

2016-10-03 Thread Richard Wright
Apparently Multi Sort Array performs case-sensitve searches, unlike anything 
else in 4D. This is certainly not documented. Try this:

-
ARRAY TEXT(aHistIsbn;8)
ARRAY DATE(aHistDate;8)
 
aHistIsbn{1}:="abcde"
aHistIsbn{2}:="abcde"
aHistIsbn{3}:="Abcde"
aHistIsbn{4}:="aBcde"
aHistIsbn{5}:="abcDE"
aHistIsbn{6}:="ABCDE"
aHistIsbn{7}:="xyz10"
aHistIsbn{8}:="XYZ10"
 
aHistDate{1}:=!01/01/2016!
aHistDate{2}:=!02/01/2016!
aHistDate{3}:=!03/01/2016!
aHistDate{4}:=!04/01/2016!
aHistDate{5}:=!05/01/2016!
aHistDate{6}:=!06/01/2016!
aHistDate{7}:=!01/01/2016!
aHistDate{8}:=!02/01/2016!
 
MULTI SORT ARRAY(aHistIsbn;>;aHistDate;<)
-

and you’ll get this:

abcde 2/1/16
abcde 1/1/16
abcDE 5/1/16
aBcde 4/1/16
Abcde 3/1/16
ABCDE 6/1/16
xyz10     1/1/16
XYZ10 2/1/16



Richard Wright
DataDomain
rwri...@datadomainsoftware.com


**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: No Preemptive processing on client

2016-09-16 Thread Richard Wright
Yeah, it’s of limited use if it’s only for stored procedures. I wonder if it 
has to do with the server twin process somehow. It would be good to hear from 
4D if this limitation will go away rather then wasting time rewriting code to 
run on the server if we don’t have to.


> Date: Fri, 16 Sep 2016 11:14:14 -0400
> From: Jeffrey Kain <jeffrey.k...@gmail.com>
> 
> Hopefully that's temporary, otherwise why bother?
> 
> I wonder why.
> 
> 
>> On Sep 16, 2016, at 11:07 AM, Richard Wright 
>> <rwri...@datadomainsoftware.com> wrote:
>> 
>> Here:
>> 
>>  
>> http://doc.4d.com/4Dv15R5/4D/15-R5/Preemptive-4D-processes.300-2965368.en.html
>> 
>> There is a section near the top called “Availability of preemptive mode”.
> 

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: No Preemptive processing on client

2016-09-16 Thread Richard Wright
Here:

   
http://doc.4d.com/4Dv15R5/4D/15-R5/Preemptive-4D-processes.300-2965368.en.html

There is a section near the top called “Availability of preemptive mode”.


> Date: Fri, 16 Sep 2016 04:21:27 +0200
> From: Andreas Overmeyer 
> 
> where did you find this information?
> 
> andreas
> 
> 
>> Am 16.09.2016 um 02:39 schrieb 4d_tech-requ...@lists.4d.com:
>> 
>> Is anyone else disappointed that preemptive processing is not available on 
>> the client? Seems odd since it is supported in single-user.
> 

**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**