Where do we inform 4D about program bugs?

2018-12-14 Thread Chris Belanger via 4D_Tech
Can someone kindly direct me to a link whereby I can inform 4D about program 
bugs I have come across?

thanks,

Chris


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

2018-12-14 Thread Mitchell Shiller via 4D_Tech
Hi,

In process of migrating from v16 32 bit to v17 64 bit all on Mac.
Converted my interpreted database, but can’t find a copy of 4D Write for v17. 
The v16 version won’t load in v 17.
I wanted to convert all my 4D Write to 4D WritePro in 32 bit. Once stable then 
jetison the old 4D Write and compile for 64 bit.

Any idea where I can find the plug in (It is not in the Mac complete 
installer)? Or do I have to do this in v16 first?

Thanks

Mitch
**
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: Windows Server Machine TCP Overload?

2018-12-14 Thread Keisuke Miyako via 4D_Tech
quick Google results, so don't quote me on this

https://support.microsoft.com/en-us/help/832017/service-overview-and-network-port-requirements-for-windows

other pages (old, window server 2008-ish)
says the number socket ports is 65535-49152=16383
but the range can be expanded with "netsh"

e.g

netsh int ipv4 set dynamicport tcp start=1025 num=64511

https://support.microsoft.com/en-gb/help/929851/the-default-dynamic-port-range-for-tcp-ip-has-changed-in-windows-vista

see also

https://serverfault.com/questions/648424/windows-server-2012-r2-runs-out-of-ephemeral-ports-though-it-shouldnt

This feels like some kind of TCP overload to me.


**
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: Runtime error ST GET OPTIONS

2018-12-14 Thread Keisuke Miyako via 4D_Tech
I would use an intermediate local variable instead of using an object notation 
property directly as a command/function parameter.
not all commands work with properties.

---

the grammar makes a distinction between a value and a variable which is a 
container of a value.

formulae that evaluate as undefined would not change the state of the left 
operand in an assignment (:=), in previous versions.
but now (I think since 16R4), an attempt to assign"undefined" is made.

perhaps that is why you are getting a runtime error,

> 2018/12/15 9:47、Two Way Communications via 4D_Tech <4d_tech@lists.4d.com>のメール:
>
> $cellrange:=WP Create range($CellObj;wk start text;wk end text)
> ST GET OPTIONS($cellrange;ST Expressions display mode;$option)
> a4TBL_cellContentType{$i}:=ST Get content 
> type($cellrange;$cellrange.start;$cellrange.start)
>
> On the 3rd line, I get this error: (but only when compiled)
>
> ’The pointer is not properly initialized’




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

Runtime error ST GET OPTIONS

2018-12-14 Thread Two Way Communications via 4D_Tech
Hi,

I am running into a problem when running compiled. In interpreted mode, the 
code works just fine.

This is 4D v17R2 on MacOS High Sierra. I am trying to get the content type from 
a cell of a table in a 4D Write PRO area.


$cellrange:=WP Create range($CellObj;wk start text;wk end text) 

ST GET OPTIONS($cellrange;ST Expressions display mode;$option)
a4TBL_cellContentType{$i}:=ST Get content 
type($cellrange;$cellrange.start;$cellrange.start)

On the 3rd line, I get this error: (but only when compiled)

’The pointer is not properly initialized’

- a4TBL_cellContentType is a longint array (14 elements in this case)
- $i =1
- $cellrange is typed as c_object
- $cellrange.start =114

Any ideas on how to make this work?


Regards,

Rudy Mortier
Two Way Communications bvba 




**
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: Distinct Values on Composite Index

2018-12-14 Thread Two Way Communications via 4D_Tech
Hi,

I am running into a problem when running compiled. In interpreted mode, the 
code works just fine.

This is 4D v17R2 on MacOS High Sierra. I am trying to get the content type from 
a cell of a table in a 4D Write PRO area.


$cellrange:=WP Create range($CellObj;wk start text;wk end text) 

ST GET OPTIONS($cellrange;ST Expressions display mode;$option)
a4TBL_cellContentType{$i}:=ST Get content 
type($cellrange;$cellrange.start;$cellrange.start)

On the 3rd line, I get this error: (but only when compiled)

’The pointer is not properly initialized’

- a4TBL_cellContentType is a longint array (14 elements in this case)
- $i =1
- $cellrange is typed as c_object
- $cellrange.start =114

Any ideas on how to make this work?


Regards,

Rudy Mortier
Two Way Communications bvba 




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

Windows Server Machine TCP Overload?

2018-12-14 Thread Tony Ringsmuth via 4D_Tech
(Sorry: I haven’t been on the nug for quite a while: but in real need of some 
ideas at the moment)

 

I’m having what I think is Machine TCP overload.

 

Here’s the situation:

>4D V16.4 64-bit

>Windows, server 2012r6, 48GB Ram, 11 fast processors, Fast SSD disks

 

I have machines that host numerous 4D Servers.  Some of them have several 
batch-workstations (4D clients) also connected into their own host databases 
:processing tasks for the server

 

Today I moved a couple large 4Dserver onto a machine with several 4D server 
instances (4 big instances total, and 6 small instances):  I think I had about 
10 4D Servers, and about 6 4D Clients running on the box:

About 300 users connected to the box.

Lots of Outside requests coming to the bacth-work-station clients.

 

I run a 4D Diagnostic Log (database parameter 79) on all databases:

 

At some point during the day, 3 big databases all get an error 10038 within 
about a minute of eachother:

[4D Server.WI32] ERROR - [10038] An operation was attempted on something that 
is not a socket.

… and things head south from there: one DB crashes, and two more need a 
forced-restart.

 

When I turn OFF my batch workstations, and restart 2 databases: things pretty 
much recover.

 

I think at the root of it ~may~ be some kind of TCP saturation/congestion.  
However: I’m told that Server 2012r2 has massive tcp through-put capabilities.

 

This feels like some kind of TCP overload to me.

 

The machine has plenty of resources to be able to handle the load: the task 
manager was only showing about 20% busy.

 

Has anyone else every had issues like this?

 

Thanks,

--

Tony Ringsmuth

Business Brothers Inc.

763-420-8686

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

Excel copy error while 4D is running (Windows)

2018-12-14 Thread Jim Hays via 4D_Tech
We've seen this error over the years, but not so much recently.   Now it
seems to be back.
This is using Windows 10 build 1803, Office Professional Plus build 1811 ,
4D v12.6, _and_ 4D v17hf3 (32 bit).

"The picture is too large and will be truncated"

Select a fairly large Range in Excel and Copy.  If 4D is running and not
minimized, you may get the message.
Super annoying to accounting types who live in Excel.

It may depend on what is showing in 4D. An window with enterable objects, a
plug-in like AreaList, etc.
It's similar to the old hang when running a Remote Desktop session to a
server running 4D Server.  Killing the rdpclip.exe process fixed that.

Does anyone have any answers to prevent this?  Can we tell 4D to not try to
interpret the clipboard?
"On Deactivate 4D" set Focus to a non-enterable form object?

For what its worth, I did some tests with this code, based on the
documentation.
Copying a Sheet from Excel could produce a 100MB emf picture format, along
with UTF16 and native text.


ARRAY TEXT(4Dsignatures;0)
ARRAY TEXT(nativeTypes;0)
ARRAY TEXT(formatNames;0)

GET PASTEBOARD DATA TYPE(4Dsignatures;nativeTypes;formatNames)
$totalSize_r:=0
For ($i;1;Size of array(4Dsignatures))
  If (4Dsignatures{$i}#"")
$size_r:=Pasteboard data size(4Dsignatures{$i})
$totalSize_r:=$totalSize_r+$size_r
$msg:=4Dsignatures{$i}+": "+String($size_r;"###,###,### bytes")
ALERT($msg)
  End if
End for

ALERT("Total Size:  "+String($totalSize_r;"###,###,###"))

Thanks,

Jim
**
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: Coding/Development Style Guide?

2018-12-14 Thread Tom Benedict via 4D_Tech
Hi Chip,

Thanks for pointing out that forms can be inherited. I’ve looked at Inherited 
Forms in the past and they struck me as having limited value since they cannot 
be modified on the child form. Record navigation and CRUD buttons are simple 
and can been generic, but custom features, function, workflow etc needs objects 
which can be modified in the child form.

I think what I really want is a “clone form” button in the form creation dialog 
which copies the objects from an existing form into the new form. I’ve always 
done that manually, which is OK, but it would be nice to have that ability 
integrated into 4D.

Tom

> On Dec 14, 2018, at 09:12, Chip Scheide <4d_o...@pghrepository.org> wrote:
> 
> Tom,
> They do - 
> you can create a form and then inherit it.
> Form properties -> Inherited form table --- only if the form is from a 
> table
> Form properties -> Inherited form Name
> 
> This is what I do for list forms when I need to add functionality 
> different from my base list form.
> 
> Chip
> On Fri, 14 Dec 2018 09:07:10 -0800, Tom Benedict via 4D_Tech wrote:
>> 
>> I’d be interested in more comments about UI standards. I’ve often 
>> wished that 4D allowed the creation of custom form ‘templates’. I 
>> know that 4D has built-in form templates, button etc, but I’ve never 
>> found them appealing and the templates didn't support for dialog 
>> forms very well.
> 

**
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: Coding/Development Style Guide?

2018-12-14 Thread Chip Scheide via 4D_Tech
Tom,
They do - 
you can create a form and then inherit it.
Form properties -> Inherited form table --- only if the form is from a 
table
Form properties -> Inherited form Name

This is what I do for list forms when I need to add functionality 
different from my base list form.

Chip
On Fri, 14 Dec 2018 09:07:10 -0800, Tom Benedict via 4D_Tech wrote:
> 
> I’d be interested in more comments about UI standards. I’ve often 
> wished that 4D allowed the creation of custom form ‘templates’. I 
> know that 4D has built-in form templates, button etc, but I’ve never 
> found them appealing and the templates didn't support for dialog 
> forms very well.
---
Gas is for washing parts
Alcohol is for drinkin'
Nitromethane is for racing 
**
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: Coding/Development Style Guide?

2018-12-14 Thread Tom Benedict via 4D_Tech
Thanks Pat and Arnaud,

Seems it’s common to include datatype in variable/field names, whether it’s 
prefix or suffix is a matter of style. I find it very useful to know at a 
glance the type of an object, so I use a similar “modified Hungarian” notation 
too. For booleans I use the “is” prefix, which kinda breaks the rule, but reads 
so very logically. 

A few years ago I stopped differentiating between integer and longInt, since 4D 
stopped. Likewise for string and text which 4D treats the same (except for when 
they are arrays).

I’m a fan of camelCase rather than underscores for word breaks, mainly for 
economy, but I like underscores after module prefixes in method names.

> On Dec 14, 2018, at 07:48, Pat Bensky via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> We have a fairly simple but effective set of rules for naming variables.
> 
> Begin each variable name with a character to specify what type it is:
> 

> On Dec 14, 2018, at 08:11, Arnaud de Montard via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> we're using something similar for variables (except it's suffixes: myText_t, 
> myDate_d, myTwoDimentionalArrayText_a2t, myObject_o, etc.)

And I like Arnaud’s convention for tables and fields:
> 
> Structure items 
> - tables uppercase
> - fields camelCase
> - primary keys "PK"
> - foreign keys "FK_primaryKeyTableName"
> - relations 1 to N "tableNname__F" (foreign)
> - relations N to 1 "table1name__P" (primary)
> 


I’d be interested in more comments about UI standards. I’ve often wished that 
4D allowed the creation of custom form ‘templates’. I know that 4D has built-in 
form templates, button etc, but I’ve never found them appealing and the 
templates didn't support for dialog forms very well.

Also, Coding Style is a very big universe and many books are written on the 
subject. I got Steve Connoly's Code Complete many years ago and found it to be 
a great source of guidance. 

Tom

**
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: Coding/Development Style Guide?

2018-12-14 Thread Chip Scheide via 4D_Tech
no -
I probably should...
my UI is fairly simple in design:
- color coded entry areas
 -- Black - optional
 -- Red - non enterable (display only)
 -- Green - mandatory


I use the same record navigation buttons on all forms : Philadelphia 
 from 4D v2003?
these are arranged vertically on the left side of the page.


My list forms either directly calla Project form with a listbox, or use 
the same project form as a parent where I need to add/remove 
functionality. So these always look the same. The standard list form 
has the following controls in the header (top) of the list form
- controls:
 - add button (if appropriate)
 - delete button  (if appropriate)
 - Print button (prints the related listing)
 - Search entry area (iTunes like) which searches the current selection 
on a specific field (selectable via popup)
 - 'Quick Search' drop down menu containing pre defined searches which 
are difficult for the user to construct (like searching for a field 
which contains any value vs no value), searches across non related 
tables, or searches across relations 2 or more level deep.
 - optional buttons specific to the table.


I generally use just a few Style-sheets - various font sizes as needed
Lucida-Grande [bold] (mac), Arial Baltic (windows) for buttons
Lucida-Grande (mac), Tahoma (windows) for entry areas and labels
  Printing - various font sizes as needed
Helvetica, Times/times New Roman, and Courier for printing


As of placement of entry areas on the screen, what ever order seems to 
make the most sense for the purpose. I usually try to constrain the 
width of entry form to the width of the listing form so no resizing is 
needed when switching from list to entry form.


Tab controls/related record listbox are always on the bottom, with a 
standard set of 'controls'
- controls:
 - add button (if appropriate)
 - delete button  (if appropriate)
 - Print button (prints the related listing)
 - Search entry area (iTunes like) which searches the current selection 
on a specific field (selectable via popup)
 - optional buttons to open (separate process) other table list forms 
for Drag-N-Drop (if appropriate)


I have not created a project form for inheritance for entry forms... 
maybe I should. But I do have project form which contains all the base 
components of my entry forms which I copy/paste as needed.
- header area
- navigation buttons
- a combobox & label
- a text entry area & label one each of differing color
- a couple of buttons for whatever need on the entry form
- cancel & accept buttons for dialogs
- invisible buttons for catching key strokes to close entry forms and 
list form
  - command-period, esc, command-w, Alt-F4 etc

On Fri, 14 Dec 2018 08:28:09 -0800, Tom Benedict wrote:
> Thanks Chip. Very comprehensive! Do you have a similar guide for User 
> Interface?
> 
> Tom
> 
>> On Dec 14, 2018, at 08:18, Chip Scheide <4d_o...@pghrepository.org> wrote:
>> 
>> 
>> you asked for it   :)
>> 
>> here is my 'conventions' comment only method -
>> I place this in every project.
>> 
>> 
>> On Fri, 14 Dec 2018 07:28:21 -0800, Tom Benedict via 4D_Tech wrote:
>>> Anybody out there have a style guide for development that they’ve 
>>> written? 
> 
---
Gas is for washing parts
Alcohol is for drinkin'
Nitromethane is for racing 
**
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: Coding/Development Style Guide?

2018-12-14 Thread Tom Benedict via 4D_Tech
Thanks Chip. Very comprehensive! Do you have a similar guide for User Interface?

Tom

> On Dec 14, 2018, at 08:18, Chip Scheide <4d_o...@pghrepository.org> wrote:
> 
> 
> you asked for it   :)
> 
> here is my 'conventions' comment only method -
> I place this in every project.
> 
> 
> On Fri, 14 Dec 2018 07:28:21 -0800, Tom Benedict via 4D_Tech wrote:
>> Anybody out there have a style guide for development that they’ve 
>> written? 
**
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: Coding/Development Style Guide?

2018-12-14 Thread Chip Scheide via 4D_Tech

you asked for it   :)

here is my 'conventions' comment only method -
I place this in every project.

  //Project Method: _Conventions

  // • Created 2/16/10 by Chip - 
  //• Updated 2/17/16 by Chip - 
  //• Updated 3/24/16 by Chip - 
  //• Updated 9/2/16 by Chip - added object naming, popup naming, 
underscores, tab controls, listboxes

  //Underscores
  //Underscores '_' are used to sperarate words in a name, 
field/variable/object/table/method, This is done to make
  //reading easier, and to make selection of the name simple. However, 
in some cases a good name may be too long,
  //since 4D restricts some names to 32 characters, and so to make a 
good name unserscores may be removed/not included.
  //However the CamelCase (as outlined below) is still respected, again 
to make reading of the name(s) understandable.
  //ex: the variable name : popup_Share_Restriction_Specific is too 
long (more then 32 characters).
  //  the actual name used is : popup_ShareRestrictionSpecific

  //Object names  `• Updated 9/2/16 by Chip - 
  //Object names are the variable, or field name (or as close as 
possible) + the prefix 'obj_'
  //obj_ - indicates that we are referencing the 
item by it's objcet name

  //Variables
  //all process or interprocess vars are preceded by a type designator 
  // I do not hold these conventions for local variables
  //this is in the form of :
  //letter(s)_variablename
  //letters for designator are always lower case

  //Variable names are always 1 word, with separate 'phrases' connected 
by an underscore
  //the first letter of each 'phrase' is always capitalized.  
  //ex: al_My_Longint_Array

  //Variable type designators (trailing underscore NOT included here) :
  //a - array, this will always be followed by another type designator, 
indicating the type of the array
  //b - button nearly always a long integer
  //blb - blob
  //cb - check box
  //cmb - combo box array, may NOT be the array on the form but a 
secondary array of look up values (usually longint)
  //d - date
  //f - boolean (f=flag)
  //grf - graph
  //l - long integer
  //lb - list box
  //obj - is a prefix for OBJECTS, any object, which will be referenced 
in code, or which has an object method
  //pic - picture
  //pop - popup/drop down menu   `• Updated 9/2/16 
by Chip - 
  //ptr - pointer 
  //r - real
  //rb - radio button
  //s - alphanumeric of some designated length -- may start including 
string length but is not currently included (2-16-10)
  //this designator is soon to vanish as string variable 
definitions have been obsoleted (09-02-16)
  //t - time
  //tab - these are text arrays, and are tab controls objects
  //wa - web areas and related variables
  //x - text

  //Tab Controls
  //The titles - for the tab control are stored in internal Lists (as 
of 09-02-16 -- Design -> Tool Box -> Lists).
  //Tab control - title lists are named:   Tab_
  //tab controls - are dimensioned as size 0 text arrays, a List to 
Array command sizes and titles the tab control.
  //tab controls - usually have a project method to manage their 
functioning. This method, if it exists, is named:
  //_Manage_Tab

  //Listboxes
  //listboxes are complex objects. There are 3 modules of code to 
manage these objects:
  //lstbox_Incld_,  `lstbox_Output_   and   
arylstbx_
  //"Incld" - is used for listboxes displayed in an entry form.
  //"Output - is for listing forms,
  //'arylstbx' - is for all array based listboxes
  //Incld and Output listboxes - are expected to be (current) selection 
based listboxes.
  //Output listboxes - are either NOT explicitly created (using a 
default scheme based on {project form} 'List_box_Output'),
  //or are inherited from this same form.
  //Output listing forms - are based on this method call : 
lstbox_Output_Open_Form, while inherited list forms
  //use the same command, but explicitly reference the inherited form's 
name.
  //Ouput listboxes - are expected to be dragable.
  //Incld listboxes - are often droppable (from an output list box, or 
desktop)
  //Listboxes - often have a project method to manage their 
functioning, this method is named:
  //_Manage_Listbox

  //Constants - 
  //I use the 4D defined constants as needed, however, I have never 
been comfortable with attempting to create my own constants.
  //To this end I use interprocess variables as constants.
  //These "constants" are defined in a variety of methods, all are 
called from "strt_Variable_Assignments".
  //These methods are named in the following manner:
  //IPvars  

  //Method Names
  //Method names are always 1 word, with separate 'phrases' connected 
by an underscore
  //the first character of each 'phrase' is capitalized
  //ex : modul_My_Method_Name

  //Method names attempt to group related methods together. The first 
few (usually 5 or less) characters 
  //indicate the 'module' or table which the method is intended to 
operate on/with
  

RE: Coding/Development Style Guide?

2018-12-14 Thread Justin Will via 4D_Tech
Pat,

Love the j for object.  I had been trying to figure out what I wanted to do for 
that and hadn't yet.  Thanks for the idea.

Justin
**
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: Coding/Development Style Guide?

2018-12-14 Thread Arnaud de Montard via 4D_Tech

> Le 14 déc. 2018 à 16:48, Pat Bensky via 4D_Tech <4d_tech@lists.4d.com> a 
> écrit :
> 
> We have a family simple but effective set of rules for naming variables.
> [...]

Hi, 
we're using something similar for variables (except it's suffixes: myText_t, 
myDate_d, myTwoDimentionalArrayText_a2t, myObject_o, etc.)

Structure items 
- tables uppercase
- fields camelCase
- primary keys "PK"
- foreign keys "FK_primaryKeyTableName"
- relations 1 to N "tableNname__F" (foreign)
- relations N to 1 "table1name__P" (primary)

For methods, often a prefix representing a group of the same "module"… 

-- 
Arnaud de Montard 



**
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: Coding/Development Style Guide?

2018-12-14 Thread Pat Bensky via 4D_Tech
We have a family simple but effective set of rules for naming variables.
It's easy to follow and easy for anybody to know immediately what type of
variable it is:

Variable Naming Conventions

Begin each variable name with a character to specify what type it is:

· String: s

· Text: t

· Boolean: y

· Date: d

· Time: h

· Blob: b

· Integer: i

· Longint: o (because l looks too much like i)

· Real: r

· Object: j (because o has been in use for Longint)

If it’s a string then follow this with the string length.

If it’s an array, preface it with “a”

If it’s a 2-D array, preface it with “a2“

Follow this with a meaningful description of the variable.



Examples:

tErrorMessage (text variable for error messages)

atDocInfos – text array of document info

a2tFileInfos - 2-dimensional text array

On Fri, 14 Dec 2018 at 15:28, Tom Benedict via 4D_Tech <4d_tech@lists.4d.com>
wrote:

> Anybody out there have a style guide for development that they’ve written?
> I know a lot of people use shells that either they or others have written
> and that goes a long way toward supporting ease of maintenance of an app.
> Have you formalized guidelines on coding style, UI standards, naming
> conventions etc? I’m especially looking for examples that have worked well
> in team development.
>
> Thanks for any input.
>
> Tom Benedict
> **
> 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
> **



-- 
*
CatBase - Top Dog in Data Publishing
tel: +44 (0) 207 118 7889
w: http://www.catbase.com
skype: pat.bensky
*
**
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: Managing different indexes for different databases

2018-12-14 Thread Tom Dillon via 4D_Tech
Pat,

Now you've got me intrigued. Not to question the validity of this at all, but 
what does this do for the customer that leaving all the optional indexes on 
would?

Do you, from the design mode, have all the optional indexes turned on, and turn 
off indexes based on the FieldMap settings? If so, if the Designer logged in 
would skipping the code that turns off these indexes allow a developer to work 
without it reindexing? Or, similarly, if a file called "Don't Reindex!" exists 
on the development machine, don't reset the indexes?



Pat Bensky via 4D_Tech wrote:

>In our app (CatBase) each customer can manage their own tables and fields
>and one of the things they can do is specify whether a particular field is
>indexed. Since these indexes are different for each customer, when they get
>a program update from us, the indexes have to be recreated and built (there
>is a FieldMap table which stores each field's attributes). This is n't a
>problem for our customers, but for us developers, it means that if we are
>working on several projects, each time we switch from one customer's
>database to another, the indexes are all rebuilt. One project I'm currently
>working on has about 4 million records and it takes ages to rebuild all the
>indexes! The only way around it as far as I can see is to keep two copies
>of the structure - one to use just with that database and one for all the
>others. But that would introduce all kinds of possibilities for error ...
>
>Anybody got a better idea for managing this?
>
>Pat

-- 
   --
   Tom Dillon  375 S Main St #405
   DataCraft   Moab, UT 84532
   tomdil...@datacraft-inc.com   720/209-6502
   --
 Only the turtle strong enough to dig itself out of its sandy
 birthplace makes it to the sea to become a snack for the
 waiting barracuda.  --- Sunastar
   --


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

Coding/Development Style Guide?

2018-12-14 Thread Tom Benedict via 4D_Tech
Anybody out there have a style guide for development that they’ve written? I 
know a lot of people use shells that either they or others have written and 
that goes a long way toward supporting ease of maintenance of an app. Have you 
formalized guidelines on coding style, UI standards, naming conventions etc? 
I’m especially looking for examples that have worked well in team development.

Thanks for any input.

Tom Benedict
**
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: Managing different indexes for different databases

2018-12-14 Thread Chip Scheide via 4D_Tech
turn the indexes on the customer tables OFF?
for development - indexed or not should not matter signifcantly.

Chip

On Fri, 14 Dec 2018 14:25:08 +, Pat Bensky via 4D_Tech wrote:
> In our app (CatBase) each customer can manage their own tables and fields
> and one of the things they can do is specify whether a particular field is
> indexed. Since these indexes are different for each customer, when they get
> a program update from us, the indexes have to be recreated and built (there
> is a FieldMap table which stores each field's attributes). This is n't a
> problem for our customers, but for us developers, it means that if we are
> working on several projects, each time we switch from one customer's
> database to another, the indexes are all rebuilt. One project I'm currently
> working on has about 4 million records and it takes ages to rebuild all the
> indexes! The only way around it as far as I can see is to keep two copies
> of the structure - one to use just with that database and one for all the
> others. But that would introduce all kinds of possibilities for error ...
> 
> Anybody got a better idea for managing this?
> 
> Pat
> 
> -- 
> *
> CatBase - Top Dog in Data Publishing
> tel: +44 (0) 207 118 7889
> w: http://www.catbase.com
> skype: pat.bensky
> *
> **
> 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
> **
---
Gas is for washing parts
Alcohol is for drinkin'
Nitromethane is for racing 
**
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
**

Managing different indexes for different databases

2018-12-14 Thread Pat Bensky via 4D_Tech
In our app (CatBase) each customer can manage their own tables and fields
and one of the things they can do is specify whether a particular field is
indexed. Since these indexes are different for each customer, when they get
a program update from us, the indexes have to be recreated and built (there
is a FieldMap table which stores each field's attributes). This is n't a
problem for our customers, but for us developers, it means that if we are
working on several projects, each time we switch from one customer's
database to another, the indexes are all rebuilt. One project I'm currently
working on has about 4 million records and it takes ages to rebuild all the
indexes! The only way around it as far as I can see is to keep two copies
of the structure - one to use just with that database and one for all the
others. But that would introduce all kinds of possibilities for error ...

Anybody got a better idea for managing this?

Pat

-- 
*
CatBase - Top Dog in Data Publishing
tel: +44 (0) 207 118 7889
w: http://www.catbase.com
skype: pat.bensky
*
**
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
**