Where do we inform 4D about program bugs?
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
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?
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
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
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
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?
(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)
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?
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?
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?
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?
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?
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?
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?
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?
> 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?
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
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?
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
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
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 **