Re: Output lists

2016-09-16 Thread John DeSoi
macOS changed to Helvetica Neue in Yosemite.

http://www.theverge.com/2014/6/2/5773838/apple-os-x-yosemite-changes-system-font-for-first-time

John DeSoi, Ph.D.

> On Sep 16, 2016, at 2:18 PM, Tim Nevels  wrote:
> 
> I am lazy and just use the system font. Lucida Grande on macOS and Segoe UI 
> on Windows. 
> 
> I’m not looking to make a design or artistic statement with my 4D 
> applications. I want them to be as readable and as usable as possible. I’m 
> betting the designers at Apple and Microsoft made good choices on what fonts 
> work best from a UI perspective. 

**
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: Output lists

2016-09-16 Thread Kirk Brooks
Arial for proportional. Hack for mono spaced.

On Fri, Sep 16, 2016 at 10:49 AM, Lee Hinde  wrote:

> What fonts do you like for output forms, on a Mac?
>
> Helvetica is looking real stale.
> **
> 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
> **




-- 
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: Output lists

2016-09-16 Thread Tim Nevels
On Sep 16, 2016, at 2:00 PM, Lee Hinde wrote:

> What fonts do you like for output forms, on a Mac?
> 
> Helvetica is looking real stale.

I am lazy and just use the system font. Lucida Grande on macOS and Segoe UI on 
Windows. 

I’m not looking to make a design or artistic statement with my 4D applications. 
I want them to be as readable and as usable as possible. I’m betting the 
designers at Apple and Microsoft made good choices on what fonts work best from 
a UI perspective. 

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: Output lists

2016-09-16 Thread Guy Algot
Monaco? ;-)

I like Lucida Grande.

> On Sep 16, 2016, at 11:49 AM, Lee Hinde  wrote:
> 
> What fonts do you like for output forms, on a Mac?
> 
> Helvetica is looking real stale.
> **
> 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
**

Re: No Preemptive processing on client

2016-09-16 Thread Cannon Smith
Thanks for the info, Add.

--
Cannon Smith
Synergy Farm Solutions Inc.
Hill Spring, AB Canada
403-626-3236




> On Sep 16, 2016, at 11:32 AM, Add Komoncharoensiri  
> wrote:
> 
> With our current Agile development model, you will continue to see the
> evolution of the preemptive processing in 4D. Stay tuned:)

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

Output lists

2016-09-16 Thread Lee Hinde
What fonts do you like for output forms, on a Mac?

Helvetica is looking real stale.
**
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 Add Komoncharoensiri
Hi All,

Indeed, currently the preemptive processing on 4D remote is not yet
available. It does not mean that it will not be there. The whole business
about making preemptive processing available everywhere in all areas
cannot be done in one shot, but rather in phases. The scope and priority
depends on where we see the heavy processing will be and you will most
benefit from it. In all cases, 4D Server had to be done first which most
likely will be running from the machine with the most number of cores (not
HT) anyway.

With our current Agile development model, you will continue to see the
evolution of the preemptive processing in 4D. Stay tuned:)

Regards,

Add


On 9/16/16, 9:37 AM, "4D_Tech on behalf of Tim Nevels"
<4d_tech-boun...@lists.4d.com on behalf of timnev...@mac.com> wrote:

>On Sep 16, 2016, at 10:38 AM, Jeffrey Kain wrote:
>
>> Hopefully that's temporary, otherwise why bother?
>> 
>> I wonder why.
>
>Pure speculation but it could be related to networking. How do you
>preempt code that is making calls to 4D Server over the network? I¹m sure
>it¹s possible but requires doing it the right way so that it actually
>works in any preemptive situation. I can see this becoming very
>complicated.
>
>Maybe that was one of the reasons why they implemented the new network
>layer. To lay the foundation to all of this preemptive stuff.
>
>My guess it is temporary due to the complexity of the networking 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
>**

**
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 Tim Nevels
On Sep 16, 2016, at 10:38 AM, Jeffrey Kain wrote:

> Hopefully that's temporary, otherwise why bother?
> 
> I wonder why.

Pure speculation but it could be related to networking. How do you preempt code 
that is making calls to 4D Server over the network? I’m sure it’s possible but 
requires doing it the right way so that it actually works in any preemptive 
situation. I can see this becoming very complicated.

Maybe that was one of the reasons why they implemented the new network layer. 
To lay the foundation to all of this preemptive stuff. 

My guess it is temporary due to the complexity of the networking 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: 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 
> 
> Hopefully that's temporary, otherwise why bother?
> 
> I wonder why.
> 
> 
>> On Sep 16, 2016, at 11:07 AM, Richard Wright 
>>  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 Jeremy French
How are we suppose to read the availability table (found in the section titled 
"Availability of preemptive mode")?


Does the table mean preemptive mode is available ONLY on server and single-user 
WHEN the database is compiled?

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



> On Sep 16, 2016, at 11:07 AM, Richard Wright  
> 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”.
> 
> 
>> 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
> **

**
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: Constants vs IP vars

2016-09-16 Thread Jim Dorrance
Every thing is so much easier using 4D methods rather than an editor!

I can install my methods (tested and working for over 20 years) for the
price of 1 days' work:)

On Fri, Sep 16, 2016 at 5:37 PM, Jim Dorrance 
wrote:

> Here is 1 of the methods that handles a theme:
>
>   //JD20141120
>   //Method: Ks_PaperSizes  ($patResourcePaths;$pnResID;$
> pnIndex;$pnFamily;$pnValue;$patConstants)
>   //Description:
>
>
> C_TEXT($1;$tDomRoot)  //DOCUMENT ROOT
> C_POINTER($2;$pnResID)  //THE RES ID POINTER
> C_POINTER($3;$pnIndex)  //THE ITEM POINTER
> C_POINTER($4;$pnFamily)  //THE FAMILY POINTER
> C_POINTER($5;$pnValue)  //THE VALUE POINTER
> C_POINTER($6;$patConstants)  //THE STRING ARRAY
>
>
> If (Count parameters=6)
>
> $tDomRoot:=$1
> $pnResID:=$2
> $pnIndex:=$3
> $pnFamily:=$4
> $pnValue:=$5
> $patConstants:=$6
>
> $pnResID->:=$pnResID->+1
> $pnIndex->:=0
> $pnFamily->:=0
> $pnValue->:=0
>
> C_TEXT($tGroupName)
> $tGroupName:="PaperSizes"
>
> ARRAY TEXT($patConstants->;1000)
>
>   //PAPER SIZEShttp://resources.printhandbook.com/pages/paper-
> size-chart.php
>
>   //ALL SIZES ARE IN MM
>
>   //MISCELLANEOUS
>
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_Legal")+":"+"Legal"+":S"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_LegaW")+":"+String(216)+":L"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_LegaH")+":"+String(356)+":L"
>
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_JuniorLegal")+":"+"Junior Legal"+":S"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_JuniorLegalW")+":"+String(127)+":L"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_JuniorLegalH")+":"+String(203)+":L"
>
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_1/3A4")+":"+"1/3 A4"+":S"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_1/3A4W")+":"+String(99)+":L"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_1/3A4H")+":"+String(210)+":L"
>
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_GutenbergBible")+":"+"Gutenberg Bible"+":S"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_GutenbergBibleW")+":"+String(280)+":L"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_GutenbergBibleH")+":"+String(398)+":L"
>
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_CDCaseInsert")+":"+"CD case insert"+":S"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_CDCaseInsertW")+":"+String(120)+":L"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_CDCaseInsertH")+":"+String(120)+":L"
>
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_A4Square")+":"+"A4 square"+":S"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_A4SquareW")+":"+String(210)+":L"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_A4SquareH")+":"+String(210)+":L"
>
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_AFormatPaperback")+":"+"A format paperback"+":S"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_AFormatPaperbackW")+":"+String(110)+":L"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_A0H")+":"+String(178)+":L"
>
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_BFormatPaperback")+":"+"B format paperback"+":S"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_BFormatPaperbackW")+":"+String(130)+":L"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_BFormatPaperbackH")+":"+String(198)+":L"
>
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_48SheetBillboard")+":"+"48 sheet billboard"+":S"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_48SheetBillboardW")+":"+String(6096)+":L"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_48SheetBillboardH")+":"+String(3048)+":L"
>
>
>   //INTERNATIONAL A PAPER SIZES
>
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_A0")+":"+"A0"+":S"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_A0W")+":"+String(841)+":L"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_A0H")+":"+String(1189)+":L"
>
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_A1")+":"+"A1"+":S"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_A1W")+":"+String(594)+":L"
> $patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
> ("kPaper_A1H")+":"+String(841)+":L"
>
> 

Re: Constants vs IP vars

2016-09-16 Thread Jim Dorrance
Here is 1 of the methods that handles a theme:

  //JD20141120
  //Method: Ks_PaperSizes
 ($patResourcePaths;$pnResID;$pnIndex;$pnFamily;$pnValue;$patConstants)
  //Description:


C_TEXT($1;$tDomRoot)  //DOCUMENT ROOT
C_POINTER($2;$pnResID)  //THE RES ID POINTER
C_POINTER($3;$pnIndex)  //THE ITEM POINTER
C_POINTER($4;$pnFamily)  //THE FAMILY POINTER
C_POINTER($5;$pnValue)  //THE VALUE POINTER
C_POINTER($6;$patConstants)  //THE STRING ARRAY


If (Count parameters=6)

$tDomRoot:=$1
$pnResID:=$2
$pnIndex:=$3
$pnFamily:=$4
$pnValue:=$5
$patConstants:=$6

$pnResID->:=$pnResID->+1
$pnIndex->:=0
$pnFamily->:=0
$pnValue->:=0

C_TEXT($tGroupName)
$tGroupName:="PaperSizes"

ARRAY TEXT($patConstants->;1000)

  //PAPER SIZES
http://resources.printhandbook.com/pages/paper-size-chart.php

  //ALL SIZES ARE IN MM

  //MISCELLANEOUS

$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_Legal")+":"+"Legal"+":S"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_LegaW")+":"+String(216)+":L"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_LegaH")+":"+String(356)+":L"

$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_JuniorLegal")+":"+"Junior Legal"+":S"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_JuniorLegalW")+":"+String(127)+":L"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_JuniorLegalH")+":"+String(203)+":L"

$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_1/3A4")+":"+"1/3 A4"+":S"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_1/3A4W")+":"+String(99)+":L"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_1/3A4H")+":"+String(210)+":L"

$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_GutenbergBible")+":"+"Gutenberg Bible"+":S"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_GutenbergBibleW")+":"+String(280)+":L"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_GutenbergBibleH")+":"+String(398)+":L"

$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_CDCaseInsert")+":"+"CD case insert"+":S"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_CDCaseInsertW")+":"+String(120)+":L"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_CDCaseInsertH")+":"+String(120)+":L"

$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_A4Square")+":"+"A4 square"+":S"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_A4SquareW")+":"+String(210)+":L"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_A4SquareH")+":"+String(210)+":L"

$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_AFormatPaperback")+":"+"A format paperback"+":S"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_AFormatPaperbackW")+":"+String(110)+":L"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_A0H")+":"+String(178)+":L"

$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_BFormatPaperback")+":"+"B format paperback"+":S"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_BFormatPaperbackW")+":"+String(130)+":L"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_BFormatPaperbackH")+":"+String(198)+":L"

$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_48SheetBillboard")+":"+"48 sheet billboard"+":S"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_48SheetBillboardW")+":"+String(6096)+":L"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_48SheetBillboardH")+":"+String(3048)+":L"


  //INTERNATIONAL A PAPER SIZES

$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_A0")+":"+"A0"+":S"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_A0W")+":"+String(841)+":L"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_A0H")+":"+String(1189)+":L"

$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_A1")+":"+"A1"+":S"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_A1W")+":"+String(594)+":L"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_A1H")+":"+String(841)+":L"

$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_A2")+":"+"A2"+":S"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_A2W")+":"+String(420)+":L"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_A2H")+":"+String(594)+":L"

$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET
("kPaper_A3")+":"+"A3"+":S"
$patConstants->{TBox_Increment ($pnIndex)}:=Ks_TBox_SubString_tGET

Re: Constants vs IP vars

2016-09-16 Thread Jim Dorrance
Here is my Ks method:

  //Method: Ks ($bConfirm)
  //Description:


C_BOOLEAN($1;$bConfirm)
If (Count parameters>0)
$bConfirm:=$1
Else
$bConfirm:=True
End if

  //XLIFF DOCUMENT NAME AND ROOT NAME

C_TEXT($tXLIFF_FileName;$tXLIFF_DomRoot)
$tXLIFF_FileName:="ksLabels"

C_POINTER($ptXLIFF_FileName;$ptXLIFF_DomRoot)
$ptXLIFF_FileName:=->$tXLIFF_FileName
$ptXLIFF_DomRoot:=->$tXLIFF_DomRoot

  //OPEN FILE

C_TEXT($tErrorMethod)
$tErrorMethod:=Ks_TBox_Build_Open_tGET
($tXLIFF_FileName;$ptXLIFF_FileName;$ptXLIFF_DomRoot)

  //INITIALIZE A STRING ARRAY OF CREATED CONSTANTS

ARRAY TEXT($atConstants;0)
C_POINTER($patConstants)
$patConstants:=->$atConstants

  //COUNTERS/VALUES

ARRAY LONGINT($anFieldColumnValues;4)
C_POINTER($panIndices;$pnResID;$pnIndex;$pnFamily;$pnValue)
$panIndices:=->$anFieldColumnValues
$pnResID:=->$anFieldColumnValues{1}  //THE CURRENT CONSTANT'S RESOURCE ID
$pnIndex:=->$anFieldColumnValues{2}  //THE CURRENT CONSTANT'S ARRAY ELEMENT
IN $patConstants
$pnValue:=->$anFieldColumnValues{3}  //A LONGINT USED FOR INCREMENTAL
VALUES (WHEN USEFULL)
$pnFamily:=->$anFieldColumnValues{4}  //A LONGINT USED FOR THE FAMILY
MODULO (WHEN USEFULL)

$pnResID->:=1  //WILL BE AUGMENTED FOR EACH NEW LOGICAL GROUP
$pnIndex->:=0
$pnFamily->:=0
$pnValue->:=0

  //BUILD CONSTANTS ( YOUR METHODS HERE)

Ks_Labels
($tXLIFF_DomRoot;$pnResID;$pnIndex;$pnFamily;$pnValue;$patConstants)
Ks_PaperSizes
($tXLIFF_DomRoot;$pnResID;$pnIndex;$pnFamily;$pnValue;$patConstants)
Ks_SVG ($tXLIFF_DomRoot;$pnResID;$pnIndex;$pnFamily;$pnValue;$patConstants)

  //CLOSE CREATED FILES

Ks_TBox_Build_Close ($ptXLIFF_FileName;$ptXLIFF_DomRoot)

  //RESTORE ERROR HANDLER

ON ERR CALL($tErrorMethod)

ARRAY TEXT($atConstants;0)

If ($bConfirm)
C_TEXT($tConfirm)
$tConfirm:="Do you want to restart the data base
now?"+Char(13)+Char(13)+"The constants will be charged with the next
opening with your data base."
CONFIRM($tConfirm;"Yes";"No")
End if

If (OK=1)
OPEN DATA FILE(Data file)
End if


On Fri, Sep 16, 2016 at 5:34 PM, Jim Dorrance 
wrote:

> Once again,
>
> Constants are not necessary after compilation, ie they take up no place in
> memory if they are deleted. They must only be saved if they are used as a
> parameter in an Execute method.
>
> Here is some code from my On Startup methode:
>
>   //WEB20141006
>   //Method: Ks_TBox_OnStartup
>   //Description:
>
>   //DELETES Ks IF THE BASE IS COMPILED (IF NECESSARY),
>   //OR RE-CREATES THEM IF THE BASE IS INTERPRETED  (IF NECESSARY)
>
> C_TEXT($tFolderPath)
> $tFolderPath:=Get 4D folder(Current Resources folder)
> If (Test path name($tFolderPath)=Is a folder)
>
> C_TEXT($tFilePath)
> $tFilePath:=$tFolderPath+"ksLabels.xlf"
>
> C_BOOLEAN($bKsExist)
> $bKsExist:=(Test path name($tFilePath)=Is a document)
>
> If (Is compiled mode)
>
> If ($bKsExist)
> DELETE DOCUMENT($tFilePath)
> End if
>
> Else
>
> If (Not($bKsExist))
> Ks
> End if
>
> End if
>
> End if
> --
> Jim Dorrance
> jim.dorra...@gmail.com
> 4...@dorrance.eu
> www.4d.dorrance.eu
>
> PS: If you know of anyone that needs an experienced 4D programmer to add
> energy and experience to their team, please let me know. I have
> experience in many areas. Reasonable rates. Remote or Paris only.
>



-- 
Jim Dorrance
jim.dorra...@gmail.com
4...@dorrance.eu
www.4d.dorrance.eu

PS: If you know of anyone that needs an experienced 4D programmer to add
energy and experience to their team, please let me know. I have
experience in many areas. Reasonable rates. Remote or Paris only.
**
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 Jeffrey Kain
Hopefully that's temporary, otherwise why bother?

I wonder why.


> On Sep 16, 2016, at 11:07 AM, Richard Wright  
> 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
**

Re: Constants vs IP vars

2016-09-16 Thread Jeffrey Kain
And constants should be part of the language, not some weird resourcy-thing 
that you have to maintain in a special editor.

> On Sep 16, 2016, at 4:39 AM, David Adams  wrote:
> 
> The real problem is that 4D hasn't made constants first-class citizens.
> Given that the feature was first introduced in 4D 6.5 (!), it feels overdue.

**
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: Deployment of Vertical Market 4D App in AWS Cloud

2016-09-16 Thread Balinder Walia
+ 1 to the message from Paul Dennis. Let's break the entire process down
into different steps manually first and then Automate everything:

- Setup a new server for the client when the client sign up for an account
with us (in this case Synergist - Perhaps triggered by an online
registration form which registers the customer in DB with appropriate
templates to enable/disable selected services from a list and then add next
action in the sequence of events - set up new server windows machine.
- Above step we presume customer paid successfully and ready to launch
Synergist Instance preconfigured and tailored for their needs
- We spin a new bare bone machine EC2 with windows 2008 or 2012 server
software ( data centre edition of windows 64 bit OS) should do.
- Download Synergist code and default sample datafile or startup empty
datafile. Let's say we pull latest code from GitHub
- Install Synergist code (might be merged app server or single user) not
sure yet. Also make sure latest web folder is copied form a central
repository.
- Install 4D server or runtime if not merged
- Install 4D licences
- Copy the demo .4DD from a single source server with some sample data
perhaps tailored as per the selected services from the list by the client
- Create 4DLink file to make sure 4DB/4DC are wedded with .4DD file we just
copied
- Make sure web server config is setup, setup appropriate ports for
http/https server. Make sure we record the IP of the new machine. If behind
NAT then we need to know private network IP so we can then add into NGINX
to work as a proxy at the front.
- Open ports in the firewall 80/443 as required
- Launch the Synergist web server
- Notify the registered client about how to login to the new system

All of the steps can be automated with config mgmt. systems such as
Ansible, Jenkins, Chef and PuppetLabs etc. Or you can use simple batch
files, ssh files to automate all steps.

I was thinking about one linux machine small instance at the front for each
client but then you will need one linux box per machine and then windows
box for Synergist backend DB/App. So you could just setup one nginx large
instance which takes care of the entire traffic. Wildcard DNS entry can
also be pre-ready and all set. So the entire traffic to the backend
instances for each client can be proxied via one linux box with nginx using
sub domains system with wildcard DNS entry all pre-pointing to Linux Box
IP. Enable caching of static content on the nginx linux machine itself so
once cached back-end machine do not even care about serving static files.

I will send you some ideas via email in private!!!

Regards / Bal



On 15 September 2016 at 09:01, Paul Dennis 
wrote:

> Keith,
>
> I run my application and a few oem versions on webfusion windows vps ie
> similar to aws but cheaper. I use nginx on windows with this build
>
> http://nginx-win.ecsds.eu/
>
> This means you can run the proxy on the same machine as 4D which has some
> advantages if you need to cache static files so that they are not served by
> the 4D server. I'm running 4 versions of the application on single server
> and nginx proxies requests to each depending on the domain name. The server
> has a public IP address  and nginx proxies to local host and different port
> numbers.
>
> For ssl I use lets envrypt and nginx does the ssl bit so 4d is http only.
>
> Regards
> Paul
>
>
>
> --
> View this message in context: http://4d.1045681.n5.nabble.
> com/Deployment-of-Vertical-Market-4D-App-in-AWS-Cloud-
> tp5747380p5747398.html
> Sent from the 4D Tech mailing list archive at Nabble.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
> **
>
**
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: Deployment of Vertical Market 4D App in AWS Cloud

2016-09-16 Thread Balinder Walia
Thanks Keith,

I will reply to your private email shortly with some ideas and next steps.

Cheers / Bal

On 16 September 2016 at 09:05, Keith White  wrote:

> Hi
>
> Thanks for the replies.
>
> Balinder - I've sent you a private email about this.
>
> Best regards
>
> Keith White
> Synergist Express Ltd, UK.
> **
> 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
**

Re: Constants vs IP vars

2016-09-16 Thread Arnaud de Montard

> Le 16 sept. 2016 à 02:38, David Adams  a écrit :
> 
> 4D should have a constants editor, just like it has the list editor. 

Hi David, 
I do agree… 
Using constants is really uneasy when working in C/S. 
Since a long time I took a bad habit, I use functions:

//K_myFavoriteColor_l -> long
//no comment, read the name
  c_longint($0)
  $0:=0x00FF

- type ahead
- colleagues working with me can use it at once 
- help tip is welcome
- can be altered inside for testing purpose 
[$0:=Choose(userLevel;value1;value2…)]
- easy to rename, replace 
…

I'm supposed to replace these methods by "true" constants later… sometimes I 
do. 

-- 
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: Deployment of Vertical Market 4D App in AWS Cloud

2016-09-16 Thread Keith White
Hi

Thanks for the replies.

Balinder - I've sent you a private email about this.

Best regards

Keith White
Synergist Express Ltd, UK.
**
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: Refactoring and Testing -- Was: Re: Go watch Thomas Maul's presentation.

2016-09-16 Thread Epperlein, Lutz (agendo)
> This is awesome:
> https://github.com/markschaake/UnitTester4D

It's great, we use it on a regular basis. And it's open source, if you don't 
like something, improve it!

Regards
Lutz

--  
Lutz Epperlein  
--
Agendo Gesellschaft für politische Planung mbH
Köpenicker Str. 9
10997 Berlin
http://www.agendo.de/
--



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