Re: 4D v16.2 false record locks

2017-10-06 Thread Tim Nevels via 4D_Tech
On Oct 6, 2017, at 6:04 PM, David Adams wrote:

> Again:
> 
> Start worker
> Open file.
> Use file
> Close file.
> Kill worker
> 
> Start worker again
> *** FIle lock conflict ***
> 
> 4D's accepted it as a bug as of some months back.

I finally now understand the bug you found. Thanks for finally boiling it down 
to about 20 words. I don’t remember seeing the problem expressed this simply 
and clearly. 

I agree it is a bug. And it appears 4D also agrees that it is a bug since you 
say "4D's accepted it as a bug as of some months back.” Thanks for finding this 
problem.

So you are irritated that they have chosen to not prioritizing the fixing of 
this bug? You want to use workers for writing to log files on disk and you 
can’t. Is that what this is all about?

Question: If you don’t “KILL WORKER” and continue to reuse the same worker over 
and over again to keep writing to files does it work and there is no file lock 
issues?

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: 4D v16.2 false record locks

2017-10-06 Thread David Adams via 4D_Tech
Hey John,

Thanks again for trying. I kill the worker from *within* the worker *after*
closing the file. It *usually* works. But "usually" is worthless when the
consequences of it not working are a dead server.

4D has accepted it as a bug in, I think 16.0. they just haven't fixed it.

For now, I'm not using files from workers. I'm streaming C_OBJECTS over
CALL WORKER, invoking a method that transforms the results, bundles it up
and then pushes the data in batches to Loggly. We'll see how that goes.
**
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: How do workers die?

2017-10-06 Thread David Adams via 4D_Tech
>
> Perhaps I am misunderstanding your question. Do you mean after a worker
> has been killed with KILL WORKER?
>

 Clearly, I asked my question poorly as you and Julio both found my
question unclear in the same way. (Or perhaps it's just that it's unclear
to people who can speak Portuguese?)  In any case, yes, I mean when a
worker has been killed explicitly.

I've tested out workers extensively - I've spent months on CALL WORKER,
etc. and drafted a few hundred pages about them. None of that will ever see
the light of day, but I've spent a fair amount of time studying them. I'm
now trying to put them into production, working with the limitations they
have based on the design choices that were made for this part of 4D. And
bugs.

The way I like to kill workers is to have a method that does it that is
called from *within* the worker. This allows for a more organized shutdown.
Closing files, etc. You can call the worker to execute the method in the
context of the worker very easily.

Tip: It's also easy to forbid method to run outside of the context of a
worker with a specific name.

If (Current process name # "YourWorkerNameHere")
// Deal with the illegal call.
Else
 // Do your thing
End if

That's a solution to a problem not everyone will run into, but it's a tidy
little trick when it is appropriate.
**
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: How do workers die?

2017-10-06 Thread David Adams via 4D_Tech
Julio,

Thanks for taking a stab at it. I should have been more clear, I mean when
workers are killed. I do this from within the worker to try and have an
orderly shutdown. Your reading of the docs is correct though. Workers are a
thread of execution, like any other process, but 4D has its own magic loop
waiting for incoming 'messages'. These messages aren't really messages,
they're blocks of code that are appended to the worker's thread of
execution and then run through EXECUTE. At least, that's how they behave.
**
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/ 


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: 4D v16.2 false record locks

2017-10-06 Thread John Baughman via 4D_Tech
OOOPS!

In my last example with the worker killing itself there should only be one line…

CALL WORKER(“worker”;”LogSomething”) //worker opens the file/logs something to 
the file/closes the file/Kills itself

Don’t need to kill the process again.

John


> On Oct 6, 2017, at 12:32 PM, John Baughman  wrote:
> 
> CALL WORKER(“worker”;”LogSomething”) //worker opens the file/logs something 
> to the file/closes the file/Kills itself
> KILL WORKER(“worker”)

John Baughman
Kailua, Hawaii
(808) 262-0328
john...@hawaii.rr.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 
> 
> 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: 4D v16.2 false record locks

2017-10-06 Thread John Baughman via 4D_Tech
Hi David,

   How/when are you killing the worker. You must give the worker time to 
close the file. This will not work…

CALL WORKER(“worker”;”LogSomething”) //worker opens the file/logs something to 
the file/closes the file
KILL WORKER(“worker”)

The worker will be killed before it closes the file.

This will work…

CALL WORKER(“worker”;”LogSomething”) //worker opens the file/logs something to 
the file/closes the file
DELAY PROCESS(Current Process;10) //or more if it takes longer than 10 ticks to 
open and close the file
KILL WORKER(“worker”)

When I tested this at first I used a Repeat loop to make sure that the 
file was closed. I then found that a DELAY PROCESS worked just as well…

CALL WORKER(“worker”;”LogSomething”) //worker opens the file/logs something to 
the file/closes the file
$onErrCall:=Method called on error
ON ERR CALL("ExpectedError")
Repeat 
vError:=False
$docRef:=Open document($file)
If (Not(vError))
CLOSE DOCUMENT($docRef)
End if 
Until (Not(vError))
ON ERR CALL($onErrCall)
KILL WORKER(“worker”)

EVEN BETTER! I just thought, why not have the worker kill itself? Wow! 
just test and it works!

CALL WORKER(“worker”;”LogSomething”) //worker opens the file/logs something to 
the file/closes the file/Kills itself
KILL WORKER(“worker”)

//worker method
$docRef:=Open document($file)
//record the event or whatever
CLOSE DOCUMENT($docRef)
KILL WORKER("worker")

Does this work for you?

John




> On Oct 6, 2017, at 12:02 PM, David Adams via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Again:
> 
> Start worker
> Open file.
> Use file
> Close file.
> Kill worker
> 
> Start worker again
> *** FIle lock conflict ***
> 
> 4D's accepted it as a bug as of some months back.
> **
> 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
> **

John Baughman
Kailua, Hawaii
(808) 262-0328
john...@hawaii.rr.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
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:
>   
> 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: 4D v16.2 false record locks

2017-10-06 Thread David Adams via 4D_Tech
Again:

Start worker
Open file.
Use file
Close file.
Kill worker

Start worker again
*** FIle lock conflict ***

4D's accepted it as a bug as of some months back.
**
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: 4D v16.2 false record locks

2017-10-06 Thread David Adams via 4D_Tech
Hey Chip, thanks or chiming in.

I've always been disciplined about opening and closing files on my own, I
have no idea what 4D's defaults are on this...or if there is even a
documented (promised) behavior. The traces of old, dead workers I was
referring to *might* not actually exist and that wasn't what I was talking
about. I'm talking closing the file explicitly, killing the worker
explicitly, and then the worker is restarted. And that's when you can run
into a conflict. Which should never happen, but it does.

Regarding <>whatever, you can't use that kind of variable in a preemptive
process of any kind. That's one of the more painful costs of admission, but
it also makes sense.
**
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: Create multi array

2017-10-06 Thread stardata.info via 4D_Tech

Thank to all


/Ferdinando/


Il 06/10/2017 17:48, 4d_tech-requ...@lists.4d.com ha scritto:

Message: 1
Date: Fri, 06 Oct 2017 10:16:04 +0100
From: Jeremy Roussak
To: 4D iNug Technical<4d_tech@lists.4d.com>
Subject: Re: Create multi array
Message-ID:<90d57a97-1192-4856-821f-7685fe7da...@mac.com>
Content-Type: text/plain;   charset=us-ascii

EXECUTE FORMULA should do the trick.

For ($i;1;17)
$s:="ARRAY REAL(aANA_"+String($i)+";0)"
EXECUTE FORMULA($s)
End for

Jeremy

Jeremy Roussak
j...@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: [offish]Volume of mail

2017-10-06 Thread David Eddy via 4D_Tech

> On Oct 06, 2017, at 11:48 AM, 4d_tech-requ...@lists.4d.com wrote:
> 
> From: Peter Jakobsson >
> To: 4D iNug Technical <4d_tech@lists.4d.com >
> Subject: Re: [offish]Volume of mail
> 
> 
>> On 5 Oct 2017, at 21:15, Jeffrey Kain via 4D_Tech <4d_tech@lists.4d.com 
>> > wrote:
>> 
>> We have a lot of 4D developers working here, but I'm on the only who 
>> participates actively in the list. Also, 4D has a lot fewer "issues" these 
>> days than in the old days.
> 
> I’m probably in this category on both counts.
> 
> I hardly ever post on the list, yet I work in 4D every day.

Several other issues here...

1/ - we’re all swamped by more “messaging” than we can keep up with (at least I 
am).  I point out to friends that 4D has a baseline documentation of 3,000 
pages.  Ouch.

2/ - as products stabilize over time there’s less need to chase odd bugs.  I 
learned my mechanical engineering, debugging skills from my 1953 Chevy.  Today 
I haven’t looked under the hood of my Honda Accord in years.  My son as a 
professional mechanical engineer has never seen a spark plug.

3/ - the 90-9-1 effect.  In social/discussion list forums, it’s quite common 
for 90% of the “members” to be silent lurkers, 9% will post occasionally & 1% 
will keep things moving with good questions & relevant answers.

NOTE: whereas I produced 10% of the message traffic on Peter de Jager’s Y2K 
list, here I probably haven’t posted more than a dozen times.  I’m firmly in 
the 90% class.


I first encountered the 90-9-1 rule-of-thumb when I was a CompuServe CASE Forum 
section leader in early 90s.

Encountered it again at a Mitre presentation on “tagging” in 2008.

Now there’s a Wiki page, so it must be gospel truth.   
https://en.wikipedia.org/wiki/1%25_rule_(Internet_culture)


David Eddy
Babson Park, MA

de...@davideddy.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 David Eddy via 4D_Tech

> From: Michael McCall  >
> To: 4D iNug Technical <4d_tech@lists.4d.com >
> 
> 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 
> 

There appears to be an understandable lag between documentation be posted as 
links & then eventually becoming downloadable PDFs.

So patience appears to be in order.  

Personally I much prefer the PDFs… and eventually they appear to catch up.

No idea if this is an official publishing policy, but I can certainly 
understand there being a lag.


David Eddy
Babson Park, MA

W: 781-455-0949

de...@davideddy.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 Arnaud de Montard via 4D_Tech

> Le 6 oct. 2017 à 17:48, Michael McCall via 4D_Tech <4d_tech@lists.4d.com> a 
> écrit :
> 
> Hi Richard,
> 
> I think the documentation is available if I understand your question. I find 
> it for R4 at:

Michael, 
I think Richard complains about v16r2 and r3 tabs, they're gone from the main 
page. 
In v16, we have all "r" between v15 and v16 here:

It seems each time a new "r" is released, the previous "r" tab in the main page 
is erased. And there's no equivalent of the link above. 

Richard, 
in case you don't know it already, the "what's new" page may help:
• static

 ()
•  livedoc 

(note: livedoc shows more, but needs to be connected and is slower…)

-- 
Arnaud de Montard 




**
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 Add Komoncharoensiri via 4D_Tech
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: 4D v16.2 false record locks

2017-10-06 Thread Chip Scheide via 4D_Tech
you cut out the first part :
while doing testing  :)

I revert to local or process (as appropriate) in final version

On Fri, 6 Oct 2017 06:59:30 -1000, John Baughman wrote:
>> 
>> I do this:
>> <>Doc_Ref:=Open Document
> 
> 
> Great idea. That is unless you think global variables are evil ;-)
---
Gas is for washing parts
Alcohol is for drinkin'
Nitromethane is for racing 
**
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: 4D v16.2 false record locks

2017-10-06 Thread John Baughman via 4D_Tech

> On Oct 6, 2017, at 6:24 AM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I do this:
> <>Doc_Ref:=Open Document


Great idea. That is unless you think global variables are evil ;-)

As any one working in 4D for any length of time knows, you have to close a 
document as soon as possible, immediately is not too early. So the issue should 
only be one faced during development. Deployed, the developer should have 
insured that a file would never be left open inadvertently.  I think this is 
where David has run into problems with his logging efforts and workers.

That being said, I think Chip has hit the nail on the head with regard to 
David’s issue with file locking and workers. Files do not unlock when any type 
of process dies unless they were explicitly unlocked before the process died. 
Why would it be any different with workers?

We developers have learned to work around this poor behavior without complaint 
forever so David’s request for a fix is given a priority so low it may never 
bubble up to the top. 

John

John Baughman
Kailua, Hawaii
(808) 262-0328
john...@hawaii.rr.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
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
**

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

2017-10-06 Thread bob.miller--- via 4D_Tech
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: oh sweet

2017-10-06 Thread Peter Jakobsson via 4D_Tech

> On 6 Oct 2017, at 17:54, Nigel Greenlee via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> How long have i wanted this….

+1 Nigel !


**
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: 4D v16.2 false record locks

2017-10-06 Thread Chip Scheide via 4D_Tech
David,
my experience with file locks - not concurrently (in as much as you are 
trying to do), but generically while trying to read/write/ etc disk 
files:

I do not do this when testing any more
$Doc_ref:=Open Document

I do this:
<>Doc_Ref:=Open Document

Why?
because when the process that opened the document is killed/crashes/etc 
and an explicit Close Document($Doc_Ref) command is not executed the 
file REMAINS OPEN (i.e. locked in write mode) forever, until a restart 
of 4D.

as far as I am aware 4D has NEVER closed a file due to the opening 
process dying/aborting/crashing/or even completing in a normal fashion, 
if the appropriate Close Document command is not executed the file 
remains open, and locked for further/other writing.

back to <>Doc_Ref - this way if I kill the process in which the 
document was opened, because it does not behave as I desire, I can 
close the open document from anywhere.

Now this is not to say that the issue you are having is directly 
related, but it is, as far as I know one of those "...it is just the 
way 4D works..." things  :(

Chip

On Fri, 6 Oct 2017 10:58:49 +0200, David Adams via 4D_Tech wrote:
> My problem boils down to how workers deal with file locks.
---
Gas is for washing parts
Alcohol is for drinkin'
Nitromethane is for racing 
**
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 Jeremy French via 4D_Tech
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


> On Oct 6, 2017, at 11:40 AM, Richard Wright via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Is there a way to search the doc center for new features in a particular 
> version?

**
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: How do workers die?

2017-10-06 Thread John Baughman via 4D_Tech
On Oct 5, 2017, at 11:06 PM, David Adams via 4D_Tech <4d_tech@lists.4d.com> 
wrote:
> 
> * New process () / Execute on server () When they finish, they're dead.
> They're supposed to release file locks, record locks, etc. If you start a
> new copy of the process with the same name, it starts off in a "virginal"
> state.
> 
> Which is it for workers? I thought it was like New process(), but am seeing
> evidence that it's not always the case. The docs aren't explicit. I take
> the implication to be that they should be fully dead, even if started
> almost instantly. But this doesn't seem to be true.

Perhaps I am misunderstanding your question. Do you mean after a worker has 
been killed with KILL WORKER?

Workers are not like New Process/EXECUTE ON SERVER processes in that they do 
not die "When they finish...". To me that is the whole idea of workers.

If you are asking with respect to your other issue with file locks, I hear you. 
I have not tested the problem, but if files. or anything else, are remaining 
locked after a worker is killed with KILL WORKER then indeed Houston We Have a 
Problem. With respect to locked files, killing a worker should have the same 
effect on any files locked by the worker as one would see if you restarted 4D. 
My guess is, unfortunately, that the unlocking files when 4D quits is managed 
by the OS not 4D as is would be the case with workers.

John


John Baughman
Kailua, Hawaii
(808) 262-0328
john...@hawaii.rr.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
**

oh sweet

2017-10-06 Thread Nigel Greenlee via 4D_Tech
All


How long have i wanted this….



https://blog.4d.com/passing-data-back-and-forth-between-forms/?utm_content=buffer15244_medium=social_source=twitter.com_campaign=buffer

joy joy joy of 4D


Nigel Greenlee
**
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 Michael McCall via 4D_Tech
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 


**
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: How do workers die?

2017-10-06 Thread Julio Carneiro via 4D_Tech
Well, documentation says Workers don’t die. You have to kill them, or quit 4D.
From 4D 16.2 Docs, About Workers page: "Unlike the New process command, a 
worker process remains alive after the execution of the process method ends.”

Web process stay dormant for awhile and then die if no new request arrives. If 
you use 4D’s session management, the Web processes retain their Session ID, and 
are reused only for new requests with the same Session ID cookie.

New process() die when their method ends, so if you want to keep them alive as 
a daemon, you have to loop forever with a Delay Process() at some point. 
Nothing new there with latest versions.

That’s my understanding from the docs. I have not used Workers yet, so cannot 
confirm the docs.

cheers,
julio

> On Oct 6, 2017, at 6:06 AM, David Adams via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Does anyone know or can they find out the following?
> 
> What happens when workers die? 4D has at least two different approaches to
> this:
> 
> * HTTP processes wait before dying, but then die if there are no new
> requests after some time. (Or at least they used to.) Meaning, an HTTP
> process may or may not have old variables and so forth in place.
> 
> * New process () / Execute on server () When they finish, they're dead.
> They're supposed to release file locks, record locks, etc. If you start a
> new copy of the process with the same name, it starts off in a "virginal"
> state.
> 
> Which is it for workers? I thought it was like New process(), but am seeing
> evidence that it's not always the case. The docs aren't explicit. I take
> the implication to be that they should be fully dead, even if started
> almost instantly. But this doesn't seem to be true.
> 
> The difference is pretty important.
> 
> Is there a way to find out authoritatively? I've sent it to Wayne for tech
> support, so maybe that will work in time...but perhaps someone knows or has
> a shortcut to finding out?

--
Julio Carneiro
jjfo...@gmail.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-06 Thread Arnaud de Montard via 4D_Tech

> Le 5 oct. 2017 à 22:35, Richard Wright via 4D_Tech <4d_tech@lists.4d.com> a 
> écrit :
> 
> Perhaps it’s partially due to the fact that some post mysteriously never get 
> through and also do not bounce back. [...]

Apple mail uses the currently selected account (or something like that) and I 
often forget to verify I'm sending with the one known by inug: could it be your 
problem?

-- 
Arnaud de Montard 


**
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-06 Thread Peter Jakobsson via 4D_Tech

> On 5 Oct 2017, at 21:15, Jeffrey Kain via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> We have a lot of 4D developers working here, but I'm on the only who 
> participates actively in the list. Also, 4D has a lot fewer "issues" these 
> days than in the old days.

I’m probably in this category on both counts.

I hardly ever post on the list, yet I work in 4D every day.

Peter

**
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-06 Thread Jim Medlen via 4D_Tech


I am relatively new to this list so I do not have a perspective on past
history
but I read the emails every day and have found the list extremely helpful.

I have posted a few questions and received helpful advice.

I find it much easier to keep up on the mailing list vs. remembering to
browse
the forum looking for current issues and questions.

Thanks,

Jim Medlen
Computer & Information Systems
Functional Devices, Inc.
j.med...@functionaldevices.com
phone (765) 883-5538 x 428
fax (765) 883-4262
http://www.functionaldevices.com
This email was transmitted on 100 percent recycled electrons


On 10/6/17, 5:07 AM, "4d_tech-boun...@lists.4d.com on behalf of
4d_tech-requ...@lists.4d.com" <4d_tech-boun...@lists.4d.com on behalf of
4d_tech-requ...@lists.4d.com> wrote:

>On 5 oct. 2017, at 18:52, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com>
>wrote:
>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
>---
>Gas is for washing parts
>Alcohol is for drinkin'
>Nitromethane is for racing


**
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: Create multi array

2017-10-06 Thread Arnaud de Montard via 4D_Tech

> Le 6 oct. 2017 à 12:43, Spencer Hinsdale via 4D_Tech <4d_tech@lists.4d.com> a 
> écrit :
> 
> 
> 1) Use a Two Dimensional Array:

Two dimensional array would be my choice too. Using EXECUTE FORMULA to 
"declare" a variable seems ugly, especially in compiled environment… 


> The Docs call them Rows. 

yes, and that drives me nuts, it's 1000 times wrong… Who would say that 'Size 
of array' returns the number of *columns* in a mono dimensional array? 
• 1D array has 1 column and N rows
• 2D array is a collection of 1D arrays of the same type, each of them is a 
column… 


> If you decide to use array zero, then you must REMEMBER to Clear it yourself.

CLEAR VARIABLE does that… with one exception: 

array text($arr;1)
$arr{0}:="123"
clear variable($arr)
assert($arr{0}="")  //OK

array text($arr;1;1)
$arr{0}{0}:="123"
clear variable($arr)
assert($arr{0}{0}="")  //OK

array text($arr;0;0)
$arr{0}{0}:="123"
clear variable($arr)
assert($arr{0}{0}="")  //ko * goToTAOW:=true *

-- 
Arnaud de Montard 



**
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: Create multi array

2017-10-06 Thread Spencer Hinsdale via 4D_Tech

1) Use a Two Dimensional Array:
http://doc.4d.com/4Dv16/4D/16.2/Two-dimensional-Arrays.300-3433911.en.html

2) Decide if your arrays are Rows or Columns.  The Docs call them Rows.  If you 
decide your arrays are Columns, then you must REMEMBER the Docs need 
"translation" anytime you refer to them.

3) Decide if you will use array zero.  If you decide to use array zero, then 
you must REMEMBER to Clear it yourself.


That's it.


You will want to fill your arrays, so you may want to pass them to another 
method, or perhaps another process, or even another computer (method with 
execute-on-server attribute).  You will want to declare them.  You can declare 
20 arrays in 20 lines.  Or, see #1.

You may want to display your arrays.  If so, you will use a List Box.  And your 
arrays will be Columns.  See #2.

And you may want somewhere to put additional info, that goes with the data when 
you pass the arrays, and stays synchronized when your user moves or sorts your 
List Box.  And once your users see these arrays they will want others.  If so, 
you will likely re-use your code, your List Box, and your arrays.  In which 
case, see #3.


HTH,

Spencer




> On Oct 6, 2017, at 1:57 AM, stardata.info via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi All,
> 
> I need to create 20 arrays that have a similar name.
> I can do this using the pointers?
> I try with this code, but in compiled mode not work.
> 
> For ($I;1;17)
> $vPoint:=Get pointer("aAna_"+String($I))
> ARRAY REAL("aAna_"+String($I);0)
> End for
> 
> Have suggestions?
> 
> Thanks
> Ferdinando
> **
> 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
> **

**
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
**

AW: Create multi array

2017-10-06 Thread Flury Olivier via 4D_Tech
I would not do this unless there is no other solution for the problem I want to 
solve.

Better solutions:

- Pre-declare a number of arrays (Array text(MyArray_001 etc.) and use them by 
get pointer (Get pointer ("MyArray_"+string($lCounter))
- On interface level you can address most elements without declaring a process 
variable, e.g. Listbox columns.

If you do an EXECUTE FORMULA check this:

http://doc.4d.com/4Dv16/4D/16.2/Using-tokens-in-formulas.300-3432926.en.html

-Ursprüngliche Nachricht-
Von: 4D_Tech [mailto:4d_tech-boun...@lists.4d.com] Im Auftrag von Jeremy 
Roussak via 4D_Tech
Gesendet: Freitag, 6. Oktober 2017 11:16
An: 4D iNug Technical <4d_tech@lists.4d.com>
Cc: Jeremy Roussak 
Betreff: Re: Create multi array

EXECUTE FORMULA should do the trick.

For ($i;1;17)
$s:="ARRAY REAL(aANA_"+String($i)+";0)"
EXECUTE FORMULA($s)
End for 

Jeremy

Jeremy Roussak
j...@mac.com



> On 6 Oct 2017, at 09:57, stardata.info via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi All,
> 
> I need to create 20 arrays that have a similar name.
> I can do this using the pointers?
> I try with this code, but in compiled mode not work.
> 
> For ($I;1;17)
> $vPoint:=Get pointer("aAna_"+String($I)) ARRAY 
> REAL("aAna_"+String($I);0) End for
> 
> Have suggestions?
> 
> Thanks
> Ferdinando

**
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: Create multi array

2017-10-06 Thread Jeremy Roussak via 4D_Tech
EXECUTE FORMULA should do the trick.

For ($i;1;17)
$s:="ARRAY REAL(aANA_"+String($i)+";0)"
EXECUTE FORMULA($s)
End for 

Jeremy

Jeremy Roussak
j...@mac.com



> On 6 Oct 2017, at 09:57, stardata.info via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi All,
> 
> I need to create 20 arrays that have a similar name.
> I can do this using the pointers?
> I try with this code, but in compiled mode not work.
> 
> For ($I;1;17)
> $vPoint:=Get pointer("aAna_"+String($I))
> ARRAY REAL("aAna_"+String($I);0)
> End for
> 
> Have suggestions?
> 
> Thanks
> Ferdinando
**
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
**

How do workers die?

2017-10-06 Thread David Adams via 4D_Tech
Does anyone know or can they find out the following?

What happens when workers die? 4D has at least two different approaches to
this:

* HTTP processes wait before dying, but then die if there are no new
requests after some time. (Or at least they used to.) Meaning, an HTTP
process may or may not have old variables and so forth in place.

* New process () / Execute on server () When they finish, they're dead.
They're supposed to release file locks, record locks, etc. If you start a
new copy of the process with the same name, it starts off in a "virginal"
state.

Which is it for workers? I thought it was like New process(), but am seeing
evidence that it's not always the case. The docs aren't explicit. I take
the implication to be that they should be fully dead, even if started
almost instantly. But this doesn't seem to be true.

The difference is pretty important.

Is there a way to find out authoritatively? I've sent it to Wayne for tech
support, so maybe that will work in time...but perhaps someone knows or has
a shortcut to finding out?
**
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: 4D v16.2 false record locks

2017-10-06 Thread David Adams via 4D_Tech
> Not an anomaly.

John & Neil, thanks for the reports, I find them encouraging.

We're dealing with somewhat different situations. You're going through US
Tech Support, which I have no contact with and you're using the TAOW, which
we don't currently have access to in AU/NZ. The business case for 4D
devoting resources to rolling their own bulletin boards and help desk
software instead of renting tools from Atlassian (Aussie! Aussie! Aussie!
Oi! Oi Oi) or similar escapes mebut that's a different discussion.

Anyway, our tech support is Wayne Stewart. Everyone loves Wayne. If I made
anyone think that I was criticizing Wayne, I am sorry and also sad. Wayne
is a helpful *to a fault*. Even now he's trying to come up with workaround
for my particular bug. But here's the thing, it's a *concurrency problem*
and it is *inside of 4D*. That's not a problem we can fix. The only thing
Wayne can do (and has done months ago) is kick it to France. Its their bug
and only they can fix it. Wayne told me that they accepted it as a bug
months ago, and that's the last we heard.

Why do I care about this bug? No one here will have noticed, but I don't
talk about bugs a whole lot. For the most part, I don't care. If 4D can't
do it one way and I can find another, I'll do that. If 4D can't do it, I'll
find another tool. In this case I *do* care. Here's why: It's an important
bug that blocks certain designs and leaves me mistrusting workers and
preemptive mode quite fundamentally.

My problem boils down to how workers deal with file locks. In theory, a
worker processes requests in strict order. (They're not requests, they're
EXECUTE statements run in the context of the worker, but nevermind).  So,
if you have a worker and close a file, it should be closed completely. If
you kill the worker and it restarts, the file close done explicitly in the
worker should finish before the worker dies. Managing file locks
across/amongst process is the sort of basic concurrency problem that was
worked out over 50 years ago. And when I say "worked out", I don't mean
"dude wrote some code" I mean the basic reality and mathematics of
concurrency were worked out. In that process, the semaphore was invented.
Why? Because it is necessary in many situations.

Are semaphores hard to get your head around? Yes. But what's _really_ at
issue are the issues of concurrent computing themselves, that's what's hard
to grasp. I remember how many smart people just could not accept that
semaphores were necessary to lock shared resources when V3 introduced
semaphores. Some people _still_ don't seem to grasp them. Here are the
options that you've got for a situation where a race condition might occur:

1) You develop a system that is *provably* never going to have the problem,
ever.
2) You are inevitably going to encounter the problem.

Because science. There is no third option other than "it doesn't seem
likely, so I'll risk it." See outcome 2.

In my case, I'm architecting some stuff that is going to be very high
volume, so option 2 isn't a choice. So I need a truly safe solution. I
stumbled across the file lock problem *by accident*. I don't want this bug
to exist. But here's the thing, if what we've been told about workers and
preemptive process is all correct, then this bug is *impossible*. But it's
there. So there's something most definitely wrong. Is the problem very
narrow? Is it widespread? I have no way of knowing and 4D has told me
exactly nothing. (I asked on the Forums but was a) told nothing or b)
accused of trying to "sabotage" the command, whatever that means.) So, I
have to go with what I can see:

It is not safe to rely on file open/close in workers.

I tried a delay and a bunch of other things and they don't solve the
problem. I guess never closing the file might work, but that's not an
option. (I don't want a 2GB HTTPD log file, thanks.) And here's the thing,
there is no workaround to a concurrency bug.

It's 4D's bug, only they can fix it.

So, in my case, to get my custom log data out I have to avoid files
entirely. Again, high volume - race condition possible = race condition
inevitable. I've got two different architectures:

Source process ---> CALL WORKER ---> HTTP Request --> Logging platform

Or

[Log_Record]
Read with a standard process
Write to a log file

There is so much data involved that log records aren't a sustainable
solution. (The last time we went down this road we killed 4D and then
InnoDB in MySQL. Postgres, you're next!)

As I've been unclear: The lock problem manifests differently in cooperative
and preemptive processes, but occurs in both.

There is no workaround, only alternative architectures and an actual fix to
4D.

My frustration is not with tech support - Wayne's great - it's with France
not fixing their bugs. And, as it has _always_ been for me, they're an
informational black hole. I don't get any information from them. A few
times over the years, ever. That's it. So, how am I to know if they're
working on this? 

Create multi array

2017-10-06 Thread stardata.info via 4D_Tech

Hi All,

I need to create 20 arrays that have a similar name.
I can do this using the pointers?
I try with this code, but in compiled mode not work.

For ($I;1;17)
 $vPoint:=Get pointer("aAna_"+String($I))
 ARRAY REAL("aAna_"+String($I);0)
End for

Have suggestions?

Thanks
Ferdinando
**
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
**