Re: setting row and cell color in entity selection listboxes

2021-08-05 Thread Dani Beaubien via 4D_Tech
This page of the documentation gives the mechanism to use to do what you are 
wanting.
https://developer.4d.com/docs/en/FormObjects/propertiesText.html#meta-info-expression
 


Dani Beaubien
Open Road Development

> On Aug 5, 2021, at 5:29 PM, Michael Ferguson via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Hi,
> 
> I can’t find anything on this in the documentation. Can someone show me how 
> to do this? 
> 
> Thanks,
> 
> Michael Ferguson
> 
> 
> **
> 4D Internet Users Group (4D iNUG)
> New Forum: https://discuss.4D.com
> 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 Internet Users Group (4D iNUG)
New Forum: https://discuss.4D.com
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: Base64 Image

2021-06-04 Thread Dani Beaubien via 4D_Tech
Seeing comments like that this make me sad. So un-necessary and hurtful to 
others that read this list.

Dani Beaubien
Open Road Development

> On Jun 4, 2021, at 7:43 AM, Jörg Knebel via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> G’day Koen,
> 
>> On 04 /06 /2021, at 23:19, Koen Van Hooreweghe via 4D_Tech 
>> <4d_tech@lists.4d.com> wrote:
>> 
>> Personally I liked this e-mail mailing list, but fact is there is little 
>> activity recently. 
> 
> Well thanks to that forum this list is free of the white noise and smart ass 
> wanke**, which I never see/sow as activity.
> 
> Let’s keep this list as the area for real 4D-Pros and divert all the rubbish 
> to the forum for the self-proclaimed specialists.
> 
> With 30+ years in 4D I can’t stand Newbie-BS.
> 
> 
>> Maybe sometimes one just has to follow the crowd,…
> 
> Thanks but NO thanks! That is the job for all the lemmings!
> 
> In other words, I’ll post and answer HERE ONLY and I’m willing to help the 
> best I can as long as this list exist.
> 
> Private communications will be an options as long as I program in 4D.
> 
> Cheers
> Jörg
> 
> **
> 4D Internet Users Group (4D iNUG)
> New Forum: https://discuss.4D.com
> 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 Internet Users Group (4D iNUG)
New Forum: https://discuss.4D.com
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: JSON Plugin for 4Dv17

2021-04-08 Thread Dani Beaubien via 4D_Tech
4Dv17 supports C_OBJECT typed variables directly that can be converted to and 
from JSON text.
Take a look at the JSON Parse and JSON Stringify commands.

https://doc.4d.com/4Dv17/4D/17.5/JSON.201-5255335.en.html 


Dani Beaubien
Open Road Development

> On Apr 8, 2021, at 12:33 AM, Tarawerkz via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi All,
> 
> I have a client whose database application currently outputs a series of text 
> files in an exchange with an independent web database.
> In an effort to further streamline this functionality, it have been proposed 
> to convert and integrate the various text file output to a JSON file format 
> instead.
> 
> Is there currently any 4D plugin for creating JSON files in 4D that is 
> compatible with 4Dv17 (Windows)?
> Thank you.
> 
> Regards,
> Ronnie
> Tarawerkz
> 
> 
> 
> 
> **
> 4D Internet Users Group (4D iNUG)
> New Forum: https://discuss.4D.com
> 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 Internet Users Group (4D iNUG)
New Forum: https://discuss.4D.com
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: creating csv files

2019-11-06 Thread Dani Beaubien via 4D_Tech
You might want to consider not using Excel for viewing csv files. Excel often 
doesn’t show you the data exactly as it is in the file. It can change formats 
of dates, times and numbers (as you have seen). And then if you “Save’ then it 
writes out the changes values to the csv file.

Dani Beaubien
Open Road Development

> On Nov 6, 2019, at 2:38 PM, Luc Devar via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi Chuck
> 
> A single apostrophe ' before a number will force Excel to treat a number as 
> text (including a default left align)
> 
> Luc Devar
> **
> 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 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: Procedural printing HTML or a WebArea

2019-11-03 Thread Dani Beaubien via 4D_Tech
I use wkhtmltopdf, It is cross platform and works very well.

https://wkhtmltopdf.org 

Dani Beaubien
Open Road Development

> On Nov 3, 2019, at 9:24 AM, John DeSoi via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I'm not aware of a way to do that in native 4D. I use Node with Puppeteer and 
> headless Chrome. This provides a way to specify parameters such as headers, 
> footers, and orientation. I have it setup to run on the server and clients 
> can call a server procedure to convert HTML to PDF. Very fast and reliable.
> 
> John DeSoi, Ph.D.
> 
> 
>> On Nov 3, 2019, at 10:03 AM, Mitchell Shiller via 4D_Tech 
>> <4d_tech@lists.4d.com> wrote:
>> 
>> Hi,
>> 
>> I generate an HTML document that is displayed in a WebArea.
>> Once completed, I need to generate a PDF procedurally. (No user interaction)
>> 
>> Is there a way to either
>> 1) print out a Web Area ( the contents could be more than 1 page long)
>> 2) convert the HTML to a PDF.
>> 
>> I am on Mac. 4Dv17R5.
>> 
>> 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
> **

**
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: stack error - again

2019-10-11 Thread Dani Beaubien via 4D_Tech
I would suggest contacting 4D Tech Support.

Dani

> On Oct 11, 2019, at 10:56 AM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> In addition to the previous attempts to track this problem down.
> I have recently done the following:
> - examined all forms (both host and component) for recursive calls to 
> their respective form methods (which are project methods). - no 
> recursion found
> - insured that all host methods are NOT shared with the component. to 
> avoid host calling component calling host loops.
> - added* TRACE as the first (or last) line of code in ALL 3500 methods 
> and object scripts
> - added* ALERT(Current Method Name) as first (or last) line of code to 
> all 800 methods and object scripts
> 
> * - done by code, every method *should* have 2 Cr in the comment 
> header, but in case there is code that does not have this the 
> additional line of code (above) was added at the end of the method.
> 
> even after all of this...
> Starting the Host (interpreted) with the interpreted component results 
> in a stack over flow error ---BEFORE--- and of the above traces or 
> alerts fire.
> The Stack error occurs After login (4D user login system) and after the 
> base 4D splash screen opens, but as indicate just above ---BEFORE--- 
> any code in either component or host runs.
> 
> Anyone have any other ideas?!?!?!?!
> 
> Thanks
> Chip
> 
> We have done so much, with so little, for so long;
> We are now qualified to anything with nothing 
>  - unknown
> **
> 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 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: Web aficionados - Not allow user to access file directly

2019-10-01 Thread Dani Beaubien via 4D_Tech
Hi Randy, the setup you are looking for is what I have done for all my projects.

I have two folders: “WEB_Public” and “WEB_Private”.

WEB_Public contains all my static assets like images, javascript, css, etc. 
There are no 4D tags in any of these files.

WEB_Private contains all my application specific code. When a URL comes in, if 
it is for a static file, 4D servers it directly. If it is not then the On Web 
Connection method is triggered and my application log runs. From there I can 
ensure that the session is loaded and I process the request and eventually send 
one of the files out of the WEB_Private folder.

It works very nicely and I have my static and dynamic files separated into 
different folders.

Feel free to reach out directly if you want some more information on my 
approach.

Dani Beaubien
Open Road Development

> On Oct 1, 2019, at 10:33 AM, Kirk Brooks via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Randy,
> On Tue, Oct 1, 2019 at 9:05 AM Randy Engle via 4D_Tech <4d_tech@lists.4d.com>
> wrote:
> 
>> Most of our customers are resistant to proxy servers
>> They think that we should be handling all of it.
>> 
> Are these the same guys who do such a great job protecting themselves from
> ransom ware?
> 
> 
> -- 
> Kirk Brooks
> San Francisco, CA
> ===
> 
> What can be said, can be said clearly,
> and what you can’t say, you should shut up about
> 
> *Wittgenstein and the Computer *
> **
> 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 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: Alternate iOS & Andriod app store

2019-09-27 Thread Dani Beaubien via 4D_Tech
Ya, I would be very careful of letting some other company manage the 
provisioning keys for installing anything on your phone.

Dani Beaubien
Open Road Development

> On Sep 27, 2019, at 2:03 PM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> skimmed from Slashdot 
> (https://apple.slashdot.org/story/19/09/26/2157215/alternative-ios-app-store-doesnt-require-a-jailbreak)
>  
> :
> 
> AltStore works by fooling your device into believing that you're a 
> developer sideloading test apps. It uses an app on your Mac or Windows 
> PC to re-sign apps every seven days, using iTunes' WiFi syncing 
> framework to reinstall them on your device before they expire. You only 
> need a free Apple ID (a throwaway will do) to install apps that Apple 
> would never allow, such as Testut's Delta emulator for Nintendo 
> consoles. 
> 
> For those interested - this *might* allow you to deploy an app without 
> having to todo Apple's (or Google's) song and dance to get 'certified'
> 
> Chip
> ---
> 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
> **

**
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: Please post this!

2019-09-03 Thread Dani Beaubien via 4D_Tech
Hi Sam, you don’t have to use 4D’s PHP. You can install your own version of the 
PHP interpreter and call that through the command line. I had to do that due to 
having a requirement of a specific version of PHP. Works quite well.

Dani Beaubien
Open Road Development


> On Aug 28, 2019, at 10:43 PM, Sam Burnell via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi,
> 
> I am looking for a solution to taking paypal payments on our website (which 
> is served by a 4D Server database), which utilizes paypal's Instant Payment 
> Notification (IPN) system.
> 
> To clarify, our system is already set up to take paypal payments but we get 
> no notification from paypal that a payment was made. The only way we know 
> that we received a payment is when we see the payment in our paypal account. 
> We then have to manually create the necessary database records for the 
> transaction, based on the payment. 
> 
> So we need paypal to notify us when a successful payment is received by them 
> so that we can automate the process (as we do with credit cards).
> 
> Here is what we want to do:
> 
> Upon receiving a payment for our product, paypal will send an IPN (containing 
> transation data) to a url specified by us, where we have a listener set up 
> (in OWC) to intercept that notification and execute a file which receives the 
> data, returns it to paypal, and then receives either a VERIFIED or INVALID 
> response from paypal. If VERIFIED, we use the transaction data to 
> auto-generate the required records in our database.
> 
> The file I just mentioned can be written in php, js, coldfusion, perl, ruby, 
> etc. Paypal provides examples for each language on github.
> 
> So, I tried for weeks to implement the php version, only to find out (through 
> partner support) that 4D's php interpreter is not set up to handle cURL 
> functions, which are part of the php code in paypal's php sample...
> 
> So now I'm trying to work with javascript and not having much success 
> (although more than with php) and I thought I'd put some feelers out there... 
> Seems to me as though there has to be a commercial 4D website/database (or 
> two!) out there that sells products online and takes paypal payments using 
> paypal's IPN. If that is the case, I'm willing to PAY for time, advice, code, 
> etc., so PLEASE contact me if you think you can assist, and thanks in advance.
> 
> Sam
> **
> 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 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: Stylesheet Search?

2019-07-12 Thread Dani Beaubien via 4D_Tech
Might be easier to update it to v17 R5 and save the structure as a project and 
then use a file based search.

Dani Beaubien
Open Road Development

> On Fri, 12 Jul 2019 at 14:22, Robert ListMail via 4D_Tech <
> 4d_tech@lists.4d.com> wrote:
> 
>> Is there a way to search for a specific Stylesheet? I inherited a DB where
>> many objects reference a blank stylesheet name. I guess I could create a
>> stylesheet with a blank name but I’d prefer to find all of the objects that
>> are referencing an non existent stylesheet.
>> 
>> Thanks,
>> 
>> Robert
>> **
>> 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 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 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: Checking If Methods Are Preemptive Ready

2019-04-17 Thread Dani Beaubien via 4D_Tech
I am pretty sure that the METHOD GET ATTRIBUTES command will also return that 
information.

In my Code Analysis component, if you open the “Explorer” window there is the 
ability to filter the methods based on the preemptive capable attributes. Super 
useful and you can do it live.


Dani Beaubien
Open Road Development

> On Apr 11, 2019, at 11:23 AM, Cannon Smith via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi Vincent,
> 
> Perfect. Thank you very much!
> 
> --
> Cannon.Smith
> Synergy Farm Solutions Inc.
> Aetna, AB Canada
> 
> 
> 
> 
>> On Apr 11, 2019, at 11:10 AM, Vincent de Lachaux via 4D_Tech 
>> <4d_tech@lists.4d.com> wrote:
>> 
>> If you activate the generation of the symbol file in the compilation 
>> preferences, compile your database then open the myDtabase_symbols.txt files 
>> created near the structure file, All methods are listed at the end of the 
>> file with the status "Thread Safe" or "Thread Unsafe".
> 
> **
> 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 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: [repost] v13+ Object (not C_Object) references from a Component

2019-03-25 Thread Dani Beaubien via 4D_Tech
Hi Chip, I know that using 4D v16 it is possible to use the OBJECT GET commands 
to get information about the named objects. Not completely sure about versions 
prior to 4D v16. I think some commands would work and some would not.

BTW, your example line for OBJECT GET BEST SIZE is missing the * as a 1st param 
since you are using the name of the object.

Dani Beaubien
Open Road Development


> On Mar 25, 2019, at 11:16 AM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> If a component method is called from the Host system, where a Text is 
> passed to the component method which is an object Identifier (ex: 
> "obj_Accept_button" - which is the object name of a button on an entry 
> form)
> can/does the component reference the host system object?
> 
> Ex :
>  Host system Form Object method:
> my_Component_Method("obj_Accept_Button")
> 
>  Component Method: - my_Component_Method:
> $Object_Name:=$1
> OBJECT GET BEST SIZE($Object_Name;$Best_Width;$Best_Height)
> 
> 
> Will the component 'see' the host form object "obj_Accept_Button", or 
> will the component look for the object within the component and, 
> presumably, find nothing?
> 
> Thanks
> Chip
> 
> ---
> 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
> **

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

Re: 4D Web Log Out

2019-02-28 Thread Dani Beaubien via 4D_Tech
Have you looked at the "WEB CLOSE SESSION” command?

That is probably what you are looking for assuming you are using the built in 
4D sessions.

Dani Beaubien
Open Road Development

> On Feb 28, 2019, at 9:38 AM, Douglas Cryer via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hello folks,
> 
> Forgive me if this question has been asked many times before  but I am a bit 
> stumped.
> 
> Logging on to 4D via a web page is relatively simple wither using the nasty 
> dialog or rolling your own page to submit the httpauth details.
> 
> Logging off however is proving to be more difficult.
> 
> I can give the impression of logging off but the username and password seems 
> to persist on the client browser so re-entering a previously visited page 
> that pulls data just continues to work.  If I manually clear the browser 
> cookies then the access gets denied but the 4DSID cookie cannot be cleared by 
> javascript...
> 
> What are the correct steps to achieve this.  I need help...
> 
> Regards,  Dougie
> 
> 
> telekinetix Limited- J. Douglas Cryer
> Phone : 01234 761759  Mobile : 07973 675 218
> 2nd Floor Broadway House, 4-6 The Broadway, Bedford MK40 2TE
> Email : jdcr...@telekinetix.com  Web : http://www.telekinetix.com 
> 
> 
> 
> 
> 
> 
> **
> 4D Internet Users Group (4D iNUG)
> Archive:  http://lists.4d.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
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: Comparing two structures...

2019-02-27 Thread Dani Beaubien via 4D_Tech
Hi Robert,

Here is a link to v13 version of my CodeAnalysis component. 
http://openroaddevelopment.com/downloads/CodeAnalysis_4Dv13_v1.7.1.zip

Using this you can export all the methods, structure as well as some json that 
describes the forms.

Do this for both structures and then use an external text file comparison 
program to compare the exports.

Dani Beaubien
Open Road Development


> On Feb 26, 2019, at 7:42 PM, Robert ListMail via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> I’ve inherited a v13-based 4D database and I have a need to determine the 
> differences amongst two. So, what are my structure comparison options?
> 
> Thanks,
> 
> Robert
> **
> 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 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-16 Thread Dani Beaubien via 4D_Tech
This says it all...
https://www.itworld.com/article/2823759/enterprise-software/124383-Arg-The-9-hardest-things-programmers-have-to-do.html#slide10
 

Dani Beaubien
Open Road Development

> On Dec 16, 2018, at 3:24 PM, Kirk Brooks via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I agree with Peter. Object names need to convey what their purpose is, at
> best, and be as unambiguous as possible at least. The size of the method
> has a lot to do with how ambiguous a name might be. I have no qualms about
> using $i as an index counter in a method where there is only one loop or
> it's only a few lines long. It's really simple to rename variables if the
> method starts to go long.
> 
> I've seen plenty of code with long var names, type appended, that are just
> as difficult to read as code with abstruse names and no system. Personally
> I think confusing naming schemes arise when the overall purpose of the code
> is lost or poorly defined. A little time making sure we know what we are
> doing might be more productive than typing long variables names.
> 
> Remember what they say, there are only 2 hard things in writing code:
> naming things, clearing the cache and the off-by-one problem.
> 
> On Sun, Dec 16, 2018 at 2:08 PM Peter Bozek via 4D_Tech <
> 4d_tech@lists.4d.com> wrote:
> 
>> On Sun, Dec 16, 2018 at 10:15 PM B.Bippus via 4D_Tech <
>> 4d_tech@lists.4d.com>
>> wrote:
>> 
>>> Begin each variable name with a character to specify what type it is:
>>> · String: s
>>> · Text: t
>>> · Boolean: y
>>> 
>>> To add the Variable Type to the Variablename is a big help. I started
>> many
>>> years ago to prepend the Type. And I am using the "4D Pop Marco
>>> Declaration" to automatically declare every variable. (I have a complete
>>> Regex Setup for prepending the Type if someone need it).
>>> 
>>> But in the last days I am thinking if it would have been better to append
>>> the Type: For example: $t_Name  vs.  $Name_t.
>>> So if you are starting with a variable-name convention: Think about it
>>> first.
>>> 
>>> And because of the Object-Tag names are case-sensitive, it makes sense to
>>> have a convention for the Object-Tag names too. I use: every Name-Part
>>> starts with a uppercase character and the rest is lowercase. Example
>> Tags :
>>> "Last_Changed" , "Simple_Tag".
>>> 
>>> My variable naming conventions :
>>> C_LONGINT($l_WinRef)
>>> C_OBJECT($o_parameter_3)
>>> C_REAL($r_Amount)
>>> C_TEXT($t_Customer_Code)
>>> C_BOOLEAN($b_ok)
>>> C_DATE($d_Budgets_End_Date)
>>> C_OBJECT($o_Parameter)
>>> C_POINTER($p_Table)
>>> C_Blob($bl_Var)
>>> 
>>> ARRAY LONGINT($al_Budgets_Code;0)
>>> ARRAY REAL($ar_Sum_of_Trades;0)
>>> 
>> 
>> I will offer a contrarian view: Some time ago, I was using the same
>> notation (Camel one, but that is detail) but now I decided against it.
>> 
>> I maintain several databases for a long time, so so I have a lot of
>> variables with 's' prefix, what is now text. This is not a big problem, I
>> can understand that 's' and 't' means the same, but it still disturb me a
>> bit. But with integer prefix i had a dilemma, as integer arrays still
>> exists and need to be used with integer fields, so I rather redeclared and
>> renamed all integer variables and arrays with 'l', but are still unsure
>> when I see 'ai' prefix in some old code - did I forgot to redeclare and
>> rename it, or is it still an integer (and should it be changed to longint?)
>> 
>> Second, as I often work with code written by different developer, mix of
>> various styles lead to not really well readable code. And I hate variable
>> names like $day_D (or, even better, $d_D) or $index_L etc. It provides no
>> information and makes the code ugly and unreadable. (Besides, does not 4D
>> now show variable type as cursor hoover above it?)
>> 
>> I now try to provide clear and readable variable names, without prefixes or
>> postfixes. This means I would have
>> C_LONGINT($winRef)
>> C_REAL($amount)
>> C_TEXT($customerCode)
>> 
>> I still use prefix when the type of variable is different from what the
>> name would suggest, but I prefer, when possible, names like $tablePtr;
>> $tableNo and $tableName to $p_table, $l_table and $t_table. I would still
>> use
>> C_BOOLEAN($bOK) but
>> C_LONGINT($OK)
>> 
>> I would still use
>> C_OBJECT($oParameter2)
>> but would try avoid such names.
>> 
>> Such names lead to readable code - like
>> For($index;1;$size)
>>  $sum:=$sum+$amount
>> ...
>> works well with other notations, and are easier to write.
>> 
>> --
>> 
>> Peter Bozek
>> 
> -- 
> Kirk Brooks
> San Francisco, CA
> ===
> 
> *We go vote - they go home*
> **
> 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: What's the thinking on setting/clearing semaphores rapidly?

2018-11-17 Thread Dani Beaubien via 4D_Tech
Are you able to run an A/B test? Perhaps add a bit of code that the semaphore 
is used on “even” hours and not used on “odd” hours. From that you might be 
able to measure if it makes a difference or not.

Dani Beaubien
Open Road Development

> On Nov 17, 2018, at 11:29 AM, Kirk Brooks via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Good questions. I'm assuming there is some reason for the tight loop until
> I know better. Picking it apart bit by bit and the semaphore thing is
> something I recall discussion about.
> 
> On Sat, Nov 17, 2018 at 10:28 AM Robert ListMail via 4D_Tech <
> 4d_tech@lists.4d.com> wrote:
> 
>> The overall performance of the server is sluggish or the log writing
>> routine? Why does the loop have to be so tight? How about writing the log
>> every minute or every 5 minutes I suppose that’s not an option for some
>> reason.
>> 
>> Robert Broussard
>> 
>> Sent from my iPhone
>> 
>>> On Nov 17, 2018, at 10:38 AM, Kirk Brooks via 4D_Tech <
>> 4d_tech@lists.4d.com> wrote:
>>> 
>>> The overall performance is pretty sluggish and
>>> I'm looking at things that may contribute to that.
>> 
>> **
>> 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
>> **
> 
> 
> 
> -- 
> Kirk Brooks
> San Francisco, CA
> ===
> 
> *We go vote - they go home*
> **
> 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 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: activating default user

2018-11-14 Thread Dani Beaubien via 4D_Tech
Sigh, there is a hard limit of 15k admin users in the 4D User system. I am 
working with systems that have more than that # of users. Going to have to come 
up with a different approach. Thinking about having a smaller set of 4D User 
setup that I recycle and link them up to the users in the database when they 
log in. Essentially tie them to the user’s login session. That would keep the # 
of 4D Users down to a reasonable level.

I have enjoyed this topic. Been giving me things to think about.

Dani Beaubien
Open Road Development


> On Nov 14, 2018, at 12:36 PM, Robert ListMail via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Kirk, what was your method of keeping use rand 4d recs in sync?
> 
> Thanks,
> 
> R
> 
>> On Sep 2, 2016, at 10:52 AM, Kirk Brooks  wrote:
>> 
>> You have to explicitly
>> offer some way to log in as a different 4D user or, as I eventually did,
>> tie my user records to a 4D user.
> 
> **
> 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 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: What is the "REST" process for?

2018-11-13 Thread Dani Beaubien via 4D_Tech
I am using 4D V16 R2 and I am seeing those as well. A mystery.

Dani Beaubien
Open Road Development


> On Nov 13, 2018, at 2:31 PM, John DeSoi via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> 4D 17.0 HF3 Mac 64bit. I'm experimenting with creating a lot of records 
> concurrently (different tables) in 5 preemptive processes. As soon as each 
> process launches, 4D launches a second process named "REST". It has origin -3 
> = Web process with no context. The web server is not on and I can't see 
> anything in my code that would cause this. The processes are only there in 
> compiled/preemptive mode. On the server the REST processes go away after each 
> process completes. But in 4D Mono, they all stay alive in idle mode. 
> 
> Did I miss the details about this in the documentation?
> 
> John DeSoi, Ph.D.
> 
> 
> 
> "11": {
>  "process": 11,
>  "name": "Label",
>  "state": 0,
>  "time": 36,
>  "visible": true,
>  "preemptive": true,
>  "processId": 18,
>  "origin": 4
> },
> "12": {
>  "process": 12,
>  "name": "REST",
>  "state": 2,
>  "time": 136,
>  "visible": true,
>  "preemptive": false,
>  "processId": 19,
>  "origin": -3
> },
> **
> 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 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: Icon & Picture Button Sources...

2018-10-23 Thread Dani Beaubien via 4D_Tech
Here are some others….

https://getbootstrap.com/docs/4.1/extend/icons/#more-options 


Dani Beaubien
Open Road Development

> On Oct 23, 2018, at 1:17 PM, Stephen J. Orth via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> We have been using the following purchased icon set for years:
> 
>   https://www.iconexperience.com/
> 
> Well worth the money as they keep current on every trend and have hundreds of 
> professional quality designs.
> 
> 
> Steve
> 
> *
>  Stephen J. Orth
>  The Aquila Group, Inc. Office:  (608) 834-9213
>  P.O. Box 690   Mobile:  (608) 347-6447
>  Sun Prairie, WI 53590
> 
>  E-Mail:  s.o...@the-aquila-group.com
> *
> -Original Message-
> From: 4D_Tech [mailto:4d_tech-boun...@lists.4d.com] On Behalf Of Tim Nevels 
> via 4D_Tech
> Sent: Tuesday, October 23, 2018 2:05 PM
> To: 4d_tech@lists.4d.com
> Cc: Tim Nevels 
> Subject: Re: Icon & Picture Button Sources...
> 
> On Oct 23, 2018, at 2:00 PM, Robert wrote:
> 
>> As I recall, Tim Nevels mentioned a favorite picture button resource which 
>> has escaped me... Tim, can you refresh my memory...?
> 
> https://glyphlab.com
> 
> You have to pay money, but for me it was worth it as I paid once and got a 
> library of high quality images I’ve been using for years in all my projects.  
> For me, well worth the one time price.
> 
> Tim
> 
> **
> 4D Internet Users Group (4D iNUG)
> Archive:  http://lists.4d.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

**
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: Help->v11 to v17 Upgrade or New?

2018-10-21 Thread Dani Beaubien via 4D_Tech
I am not uploading directly from 4D. I thought about implementing that but 
decided against it since 4D is going that direction them selves. Waiting to see 
what they come up with.

My workflow is to use the Code Analysis component to export all my code, 4D 
Structure and form properties (gathered using 4D’s get functions) all into a 
single folder. I then use an external git client to commit changes in that 
folder to a git repository I make sure that I do a commit per bug/feature. When 
I do my commit I include the task id from the bug reporting system that I use 
so I have a complete reference on why certain methods were updated.

I use the external git client for diffs against historical commits and I use 
the Code Analysis component for diffs between what is in the 4D structure 
compares against the last export to the external folder.

Works quite well. Definitely a few extra steps but benefits to be able to go 
back in time and see the change history tied to code commit is amazingly useful.

I ran into an issue where I needed to find out when a particular bug was 
introduced. I was able to use the repository to find the exact commit that 
introduced the bug, what the original (and correct code) used to be and what 
else was changed in that commit. Save me hours and hours of banging my head on 
the keyboard.

Dani Beaubien
Open Road Development


> On Oct 19, 2018, at 5:28 PM, Kirk Brooks via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Dani,
> 
> On Fri, Oct 19, 2018 at 8:22 AM Dani Beaubien via 4D_Tech <
> 4d_tech@lists.4d.com> wrote:
> 
>> I have been using GitHub to track changes on the exported code. I have
>> projects that go back years that are in GitHub.
> 
> Did I just hear you say something about uploading direct from 4D into
> GitHub... 🙄
> 
> -- 
> Kirk Brooks
> San Francisco, CA
> ===
> 
> *We go vote - they go home*
> **
> 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 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: Help->v11 to v17 Upgrade or New?

2018-10-19 Thread Dani Beaubien via 4D_Tech
In this situation, I use Code Analysis is to find out what code has changed due 
to the upgrade to a newer version of 4D.

Here is an example.
I am moving a structure from v16 to v17 and I want to know all the changes that 
occur.
In v16, I use the Code Analysis component to export all the methods.
I upgrade the structure to v17
I then use the Code Analysis component to compare my v17 structure to the 
previously exported v16 code.
From this I can see all the command changes and any other changes.

This is helpful for you to understand any changes that you were not aware of. I 
ran into an update that happened during a v16 R release that changed the blank 
date format from !00/00/00! to !00/00/!. It broke some parsing that I was 
doing and I was able to catch it early.

The component will not change any of your code. So the work of dealing with the 
_o_ must done by you, the developer.

Personally, I prefer to do the work to deal with the “_o_” code manually. It 
forces me to be a bit more deliberate and it avoids unexpected issues. Prior to 
doing that I make sure I do a code export using Code Analysis and then I do a 
code compare and verify each method that the only change that I made was to 
deal with the _o_ calls. Once I am happy, I export the code again and then I 
can continue on with the next chunk.

I have been using GitHub to track changes on the exported code. I have projects 
that go back years that are in GitHub. Super useful when I need to diagnosis an 
issue and find out when a particular change was made.

Dani Beaubien
Open Road Development

> On Oct 19, 2018, at 1:52 AM, Patrick Emanuel via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> About QS_Toolbox, the one I really know, there is a bunch of tools in the 
> Structure Analysis   
> part.
> It works from V15 to V17, but nothing has been added since V16R6.
> QS_Toolbox performed very few update for you. Its goal is to identify what
> you can do, but you keep the control on what you update.
> 
> I'm currently thinking to update it for V17 and surely it will take a while
> for me due to all things I have in my mind.
> 
> About  CodeAnalysis
>   ,
> it is the also a very useful tool. I will let Dani to speak more about it.
> 
> Patrick
> 
> 
> 
> -
> Patrick EMANUEL
> 
> Administrator
> www.association-qualisoft.eu 
> (Soft1002, Simply Asso & QS_Toolbox)
> --
> Sent from: http://4d.1045681.n5.nabble.com/4D-Tech-f1376241.html
> **
> 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 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: Help->v11 to v17 Upgrade or New?

2018-10-17 Thread Dani Beaubien via 4D_Tech
This is a very hard question to give any advice on. There are a lot of factors 
that could affect the decision.

Things to consider:
- Complexity of the structure (# of tables, forms, methods, etc)
- Are there any old style 4D extensions used?
- Are there any plugins that are no longer supported?
- Is the existing code readable and easy to understand?

Have you tried converting it to v17 to see if it is even possible? It might 
convert and everything works and then again it might not.

If they want the data converted as well, then you are going to have to deal 
with the subtables and the existing structure.

Dani Beaubien
Open Road Development


> On Oct 17, 2018, at 1:45 PM, Robert ListMail via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> I have an old v11 database running on Windows that’s not particularly 
> well-designed and where there are more than a few subtables to deal with. 
> Assuming that there is no additional budget for writing a new clean app, 
> would you likely upgrade or re-write in v17 with the old v11 structure as 
> guide?  I’m concerned that the upgrade path will be difficult because of the 
> subtables and that by the time you deal with all of the legacy junk not this 
> database from the early 90s you could have created something fresh and new. 
> How might you approach this?
> 
> Also, the client originally said the new database would not have to migrate 
> data forward from the old system and now they are wanting to have the data 
> too.
> 
> Thanks,
> 
> Robert
> 
> **
> 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 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: EDI(FACT) format

2018-10-17 Thread Dani Beaubien via 4D_Tech
I have experience with the EDI formats regarding medicaid submissions.

This doc might help you. Seems to relate to the format of the message you have 
in the email.
https://www.editeur.org/files/EDIfact%20eancom%20pdfs/EDIfact%20Serials/S2%20EDIFACT%20Transmission%20v1.3%20(serials).pdf

Dani Beaubien
Open Road Development

> On Oct 17, 2018, at 12:34 PM, Axel Kohlepp via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hello.
> 
> does anyone have any experience with this format, or even suitable 4D code?
> 
> Example:
> 
> UNA:+.? '
> UNB+UNOC:3+:+xx4711xx:+181017:1124+8741+'
> UNH+1+INVOIC:D:96A:HE'
> PCD+12:2'
> BGM+380+7410268+9'
> DTM+137:20181016:102'
> RFF+VN:11775607'
> CUX+2:EUR'
> NAD+II+:91++sangro medical service GmbH+Albert-Einstein-Straße 
> 6+Erkrath+40699+DE'
> RFF+VA:DE241684816'
> NAD+IV+:91++MEDTECH GMBH+TANNENWEG 5+BAD MÜNDER+31848+DE'
> NAD+PJ+++MEDTECH GMBH+TANNENWEG 5+BAD MÜNDER+31848+DE'
> LIN+1++4250488601893:EN'
> PIA+1+06718974:SA'
> PIA+1+0802VSGHC 25VE:MF+:GN+:WG+06718974:ZZZ'
> IMD+F++:::GHC SCHLITZKOMPRESSEN 25X2 1 St'
> QTY+47:2:PCE'
> MOA+66:12.10'
> MOA+203:12.10'
> RFF+ON:ECAC181012004518:3'
> RFF+VN:11775607'
> RFF+DQ:7410268:5'
> TAX+7+VAT+++19.000'
> TAX+7+VC+++M19.000'
> NAD+DP+++Herr Olaf Knoerzer+GHP Halstenbek+Elisabeth-Miller-Weg 
> 2+Halstenbek+25469'
> UNS+S'
> CNT+2:1'
> MOA+66:12.10'
> MOA+131:0.00'
> MOA+125:12.10'
> MOA+124:2.30'
> MOA+9:14.40'
> TAX+7+VAT+++:::19.000'
> MOA+124:2.30'
> UNT+33+1'
> UNZ+1+8741'
> 
> Many thanks for all tips in advance
> 
> Axel Kohlepp
> **
> 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 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: Structure to TEXT files... GitHub

2018-10-16 Thread Dani Beaubien via 4D_Tech
You can also use my free Code Analysis component. There are versions of the 
component that work with 4D v12 and on. The code export works very well. You 
can also use it to do a direct comparison from your structure to a previously 
exported methods.

It is possible to export the forms to json. The only downside with that I added 
that piece a few years back and I invented my own json scheme. It is not the 
same as what 4D v17 supports.

Here is a link to get more information and to download:
http://openroaddevelopment.com/projects_4dComponent_CodeAnalysis.html

Dani Beaubien
Open Road Development


> On Oct 16, 2018, at 5:26 PM, Robert ListMail via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Okay, I just found the answer—super-cool!!!
> 
> From the blog: "All of the above scenarios are now possible! Beginning with 
> v17 R3, you can export the .4DB file into multiple text files. This offers 
> you many new possibilities."
> 
> Text files from your structure file – 4D Blog
>> https://blog.4d.com/text-files-from-your-structure-file/ 
>> 
> 
> Robert
> 
>> On Oct 16, 2018, at 6:18 PM, Robert ListMail via 4D_Tech 
>> <4d_tech@lists.4d.com> wrote:
>> 
>> Can you explain how to export my entire source code as shown in this video 
>> by “4D Software”? I don’t seem to have this command in 4D v17R2 or 15.6.
>> 
>> Export your structure file in multiple text files - YouTube
>>> https://www.youtube.com/watch?v=nQlO9bbKNJc&t=1s 
>>>  
>>> >> >
> 
> **
> 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 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: Do I want to use SELECTION TO ARRAY instead of GOTO SELECTED RECORD server-side in V17

2018-09-18 Thread Dani Beaubien via 4D_Tech
This has been a very interesting discussion. I decided to test the various 
techniques using the code I pasted below.

Essentially 6 different ways of building up a large text variable.
1) simplest method, add text directly to the variable
2) use a 2048 buffer, add text to a buffer, once that hits 2048 bytes copy it 
to the text var, clear and repeat
3) use a 4096 buffer, add text to a buffer, once that hits 4096 bytes copy it 
to the text var, clear and repeat
4) Use TEXT TO BLOB just appending and then copy to text var at end
5) Use TEXT TO BLUB but with a 2048 buffer and only copy to blob once the 
buffer hits 2048 bytes
6) Use TEXT TO BLUB but with a 4096 buffer and only copy to blob once the 
buffer hits 4096 bytes

The code loops through target text var sizes up to 10MB in 128k increments.
Each way is run 5 times and then the result is averaged and appended to an 
array. Once the 1-3 techniques exceed 600ms I stop running them since they 
behave so badly.

At the end of the test the results are placed in the clipboard (for pasting 
into Excel and then graphed) and in an Alert.

Based on this test, technique #5/#6 are the fastest by far.
Techniques 4-6 seem to have linear performance.

For 10 MB text var, the #4 came in at 1613ms and #5 came in at 290.6ms

Very interesting. I am currently using techniques #3 when I am creating exports 
and reports to disk. Going to switch to the #5.

Downsize of the blob techniques is that you need double the amount of memory if 
you need to convert the blob back to a text variable like I did in this 
experiment.

Dani Beaubien
Open Road Development



ARRAY LONGINT($sizes;0)
ARRAY REAL($r1;0)
ARRAY REAL($r2;0)
ARRAY REAL($r3;0)
ARRAY REAL($r4;0)
ARRAY REAL($r5;0)
ARRAY REAL($r6;0)

C_BLOB($blob)
C_TEXT($textToAdd;$result)
$textToAdd:="123456789 "
C_BOOLEAN($skip1;$skip3;$skip4)

C_LONGINT($targetVarSize;$maxSize;$outerLoopMax)
$targetVarSize:=0
$maxSize:=1024*1024*10  // 10 MB
$outerLoopMax:=5

C_LONGINT($vs1;$ve1)
C_LONGINT($vs2;$ve2)
C_LONGINT($vs3;$ve3)
C_LONGINT($vs4;$ve4)
C_LONGINT($vs5;$ve5)
C_LONGINT($vs6;$ve6)
C_TEXT($tmpTxt)
C_LONGINT($innerLoopMax)
Repeat 
$targetVarSize:=$targetVarSize+(1024*128)
$innerLoopMax:=Int($targetVarSize/Length($textToAdd))
MESSAGE(" $targetVarSize = "+String($targetVarSize/1024)+" Kb")

If (Not($skip1))
$vs1:=Milliseconds
For ($i;1;$outerLoopMax)
$result:=""
For ($j;1;$innerLoopMax)
$result:=$result+$textToAdd
End for 
End for 
$ve1:=Milliseconds
If ((($ve1-$vs1)/$outerLoopMax)>600)
$skip1:=True
End if 
End if 


If (Not($skip3))
$vs3:=Milliseconds
For ($i;1;$outerLoopMax)
$result:=""
$tmpTxt:=""
For ($j;1;$innerLoopMax)
$tmpTxt:=$tmpTxt+$textToAdd
If (Length($tmpTxt)>2048)
$result:=$result+$tmpTxt
$tmpTxt:=""
End if 
End for 
$result:=$result+$tmpTxt
End for 
$ve3:=Milliseconds
If ((($ve3-$vs3)/$outerLoopMax)>600)
$skip3:=True
End if 
End if 


If (Not($skip4))
$vs4:=Milliseconds
For ($i;1;$outerLoopMax)
$result:=""
$tmpTxt:=""
For ($j;1;$innerLoopMax)
$tmpTxt:=$tmpTxt+$textToAdd
If (Length($tmpTxt)>4096)
$result:=$result+$tmpTxt
$tmpTxt:=""
End if 
End for 
$result:=$result+$tmpTxt
End for 
$ve4:=Milliseconds
If ((($ve4-$vs4)/$outerLoopMax)>600)
$skip4:=True
End if 
End if 


$vs2:=Milliseconds
For ($i;1;$outerLoopMax)
$result:=""
SET BLOB SIZE($blob;0)
For ($j;1;$innerLoopMax)
TEXT TO BLOB($textToAdd;$blob;UTF8 text without 
length;*)
End for 
$result:=BLOB to text($blob;UTF8 text without length)
End for 
$ve2:=Milliseconds


$vs5:=Milliseconds
For ($i;1;$outerLoopMax)
$result:=""
$tmpTxt:=""
SET BLOB SIZE($blob;0)
For ($j;1;$innerLoopMax)
$tmpTxt:=$tmpTxt+$textToAdd
  

Re: PDF generation on Windows - Latest Thinking

2018-09-12 Thread Dani Beaubien via 4D_Tech
There is a risk using a particular version of utility software that is not 
being actively developed. There are a years of bug fixes and compatibility 
fixes that are not there and there is always the risk that a future Windows or 
4D update could break the solution.

With the strong focus on software security, audits of installed software 
highlight software that is out of date or no longer receiving updates. PDF 
Creator v1.7 would fall in to the category.

Always something to consider as well.


> On Sep 12, 2018, at 2:00 PM, Peter Jakobsson via 4D_Tech 
> <4d_tech@lists.4d.com > wrote:
> 
> 
> 
>> On 12 Sep 2018, at 21:22, Tim Nevels via 4D_Tech <4d_tech@lists.4d.com 
>> > wrote:
>> 
>> PDF Creator 1.7 works just fine on Windows 10. No problems. And it has many 
>> more configuration options than the built in Window 10 PDF driver. And it 
>> does not have a nuisance bug the Windows 10 driver has (see below). Now you 
>> have a choice. 
> 
> Very interesting and useful post - thanks !
> 
> The 4D code is configured to use PDF Creator 1.7 at the moment. It would be 
> good if I could just install PDF Creator on Windows 10 and have it work as 
> before without any code modifications. I think I will try this.
> 
> Peter
> 
> **
> 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 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: Sending Text Messages From 4D

2018-08-22 Thread Dani Beaubien via 4D_Tech
I have been using http://plivo.com and it has worked well. I use it for sending 
out PIN #s for people to use when logging in.

Dani


> On Aug 22, 2018, at 8:10 AM, Darin Schroeder via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Tim, we've been using Twilio with a lot of success.
> 
> https://www.twilio.com/sms
> 
> Darin
> 
> On Wed, Aug 22, 2018 at 9:04 AM Tim Nevels via 4D_Tech <4d_tech@lists.4d.com>
> wrote:
> 
>> I have a client that has asked me to add the option to send text messages
>> to cell phones from 4D. I know this is possible via some websites or web
>> services for a fee. Has anyone done this and can recommend a web service
>> that you were able to use from 4D to do this?
>> 
>> Tim
>> 
>> *
>> Tim Nevels
>> Innovative Solutions
>> 785-749-3444
>> timnev...@mac.com
>> *
>> 
>> **
>> 4D Internet Users Group (4D iNUG)
>> Archive:  http://lists.4d.com/archives.html
>> Options: https://lists.4d.com/mailman/options/4d_tech
>> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
>> **
> **
> 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 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: v13+ - injecting code into a host.

2018-08-21 Thread Dani Beaubien via 4D_Tech
Perhaps put it in the Resources of the Component. Makes it a bit more hidden. 

The alternative is to have it saved someplace entirely. But then that makes the 
auto updating of the files a bit more challenging.

Dani


> On Aug 21, 2018, at 10:44 AM, Chip Scheide <4d_o...@pghrepository.org> wrote:
> 
> Thanks
> 
> that is basically what i was in the process of doing.
> a method to run in 'On Shut Down', which (when the component is not 
> compiled) gets the code of the method, and writes to a text file - but 
> in the database folder of the component.
> 
> The resource folder gets shared to clients, and there is no reason for 
> a client to have this source code.
> Chip
> 
> On Tue, 21 Aug 2018 10:38:05 -0600, Dani Beaubien wrote:
>> I have had to do this. I store a copy of the methods I need in a 
>> folder in the Resources folder.
>> 
>> Only downside is that the code is outside of the structure so the 
>> maintenance is a bit more effort. You could add a bit of code to the 
>> On Exit method on the component that updates the copy of the method 
>> on disk from the method in 4D. That helps to make maintenance a bit 
>> easier. 
>> 
>> Dani
>> 
>> 
>>> On Aug 21, 2018, at 10:23 AM, Chip Scheide via 4D_Tech 
>>> <4d_tech@lists.4d.com> wrote:
>>> 
>>> I have written code which injects (creates) needed methods in a host 
>>> database.
>>> The code for injecting works interpretedly, I was just testing the 
>>> component compiled, and ran into an error. I am getting the code of a 
>>> method in the component, and then injecting it into the host.
>>> METHOD GET CODE("Methodname";$Text)
>>> METHOD SET CODE("Methodname";$Text;*)
>>> 
>>> And of course, once the component is compiled, I can no longer GET the 
>>> method's code (duh!).
>>> 
>>> So, anyone who is doing this, how are you going about storing the code 
>>> to inject?
>>> - written to a text file?
>>> - in a data file --problematic for a component
>>> - ???
>>> 
>>> Thanks
>>> 
>>> ---
>>> 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
>>> **
>> 
>> 
> ---
> 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: v13+ - injecting code into a host.

2018-08-21 Thread Dani Beaubien via 4D_Tech
I have had to do this. I store a copy of the methods I need in a folder in the 
Resources folder.

Only downside is that the code is outside of the structure so the maintenance 
is a bit more effort. You could add a bit of code to the On Exit method on the 
component that updates the copy of the method on disk from the method in 4D. 
That helps to make maintenance a bit easier. 

Dani


> On Aug 21, 2018, at 10:23 AM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I have written code which injects (creates) needed methods in a host 
> database.
> The code for injecting works interpretedly, I was just testing the 
> component compiled, and ran into an error. I am getting the code of a 
> method in the component, and then injecting it into the host.
> METHOD GET CODE("Methodname";$Text)
> METHOD SET CODE("Methodname";$Text;*)
> 
> And of course, once the component is compiled, I can no longer GET the 
> method's code (duh!).
> 
> So, anyone who is doing this, how are you going about storing the code 
> to inject?
> - written to a text file?
> - in a data file --problematic for a component
> - ???
> 
> Thanks
> 
> ---
> 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
> **

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

How to show subtotals in a list box

2018-08-20 Thread Dani Beaubien via 4D_Tech
My situation is that I have a list box that has 1 level of break rows and I 
have been asked to add a subtotal of the rows within each break level.

I am looking for suggestions on how to approach this?

Thanks in advance.

Dani Beaubien
**
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: Can't publish on Port 80 - WTF?

2018-07-23 Thread Dani Beaubien via 4D_Tech
This might solve your situation.

https://support.microsoft.com/en-us/help/4338824/windows-81-update-kb4338824 


Dani Beaubien


> On Jul 23, 2018, at 1:56 PM, David Conley via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Randy,
> 
> There is a windows service called World Wide Web that runs on port 80.  If 
> that is running, try disabling the service.
> 
> David
> 
>> On Jul 23, 2018, at 2:34 PM, Randy Engle via 4D_Tech <4d_tech@lists.4d.com> 
>> wrote:
>> 
>> 
>> So this tells me that something "else" is hogging port 80
>> What other sneaky service/app could this possible be?
>> How else to find out what is using Port 80?
>> 
> 
> **
> 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 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: Component scope question

2018-07-10 Thread Dani Beaubien via 4D_Tech
Each component has it’s own namespace for it’s variables. They behave exactly 
as they would as per 4D Rules. Interprocess vars have a scope across all 
processes, process vars only have scope with the specific process.

So in your example, that process var in process 1 would be “A” and in process 2 
it would be “” since it had not been set.

The host structure would not be able to access those vars unless the component 
has a method that the host can call and returns the value of the var.

Hopefully that helps.

Dani



> On Jul 10, 2018, at 11:02 AM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> In a multi-process 4D, less then version v16, environment (not 
> multi-threaded),
> 4D stand alone (single user) or C/S (client side),
> 
> - a component is loaded.
> - In process 1 the component is called, and (internal to the component) 
> a process var (x) is set to value "A"
> - In process 2 the component is called, and (internal to the component) 
> the process var (x) is referenced. What is the value in of x inside the 
> component, in process 2?
> -- "A"
> -- ""
> ???
> 
> 
> Thanks
> Chip
> 
> ---
> Gas is for washing parts
> Alcohol is for drinkin'
> Nitromethane is for racing 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: https://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: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Application Metrics

2018-07-03 Thread Dani Beaubien via 4D_Tech
Probably the easiest way to do this is to create a new table and and create a 
new row per event. Easy to conceptualize and easy to implement. And you can 
then run queries against it easily.

For feature requests, it can help if you know that a feature request is being 
made against an area that is almost never used vs a feature request that is 
made against an area that is heavily used. It helps with the assessment of 
priority and potential impacts.

Dani

> On Jul 3, 2018, at 2:09 PM, Robert ListMail  wrote:
> 
> Dani, how might the app be reporting this data back to the mothership? 
> Imagine, 4D client server not a web app. 
> 
> Also, how would this help with feature requests...? Wouldn’t you need the 
> feature available to the user before you could track it?
> 
> Thanks,
> 
> Rob
> 
> Sent from my iPhone
> 
>> On Jul 3, 2018, at 2:07 PM, Dani Beaubien 
>>  wrote:
>> 
>> This kind of information can really help you understand what aspects of the 
>> program are being used and those that are not. Really helps when you are 
>> trying to work through a long list of feature requests.
> 

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

Re: Quitting without IP var?

2018-07-03 Thread Dani Beaubien via 4D_Tech
Chip, 

Here is the documentation for “Process Aborted”:
The Process aborted command returns True if the process in which it is called 
is about to be interrupted unexpectedly, which means that the execution of the 
command was unable to reach its “normal” completion. For example, this can 
occur after calling QUIT 4D 
.

What I am trying to point out is that “QUIT 4D” causes “Process Aborted” to 
return true.  So using the following code might work for you.

Repeat
// do deamon stuff
until (Process Aborted)

Dani


> On Jul 3, 2018, at 1:40 PM, Chip Scheide <4d_o...@pghrepository.org> wrote:
> 
> Dani,
> a 'Deamon" - a unix/linux term I believe - is a piece of code which 
> once started does a task and then goes to sleep for a while then wakes 
> up and does the task again.
> for example, watching a specific folder for additions, then processing 
> the 'new' files.
> 
> These tasks do not not normally exit. (see repeat loop below), and run 
> for the entire duration of the session. However, up on quitting it is 
> often useful/nice/best practice to exit these forever loops in a 
> controlled manner, rather then have 4D simply quit. Additionally it is 
> possible that one or more of the deamons are in the middle of doing 
> their assigned task, and exiting could result in an incomplete task. 
> So.. a flag, in my case an IP var (<>f_Quit) is used to signal that all 
> actions should be wrapped up before the code exists.
> 
> The exiting code looks something like this (below written in email):
> // Quit_method
> <>f_Quit:=true
> for ($i;1;count processes)
>  resume process($i)
>  call process($i)
> end for
> 
> 
> On Tue, 3 Jul 2018 13:27:14 -0600, Dani Beaubien wrote:
>> Have you looked at the 4d command "Process aborted”?
>> 
>> 
>>> On Jul 3, 2018, at 1:18 PM, Chip Scheide via 4D_Tech 
>>> <4d_tech@lists.4d.com> wrote:
>>> 
>>> My Question is:
>>> How are you signaling to your stored procedures (Deamons) that the user 
>>> is existing, without using an IP var?
>>> 
>>> Currently I am using an IP Var which is set in the Quit method.
>>> This IP var is referenced in all of my 'Deamons' in a repeat loop
>>> 
>>> Repeat
>>> // do deamon stuff
>>> until (<>f_Quit)
>>> 
>>> With this IP var sitting in all my deamons - this makes all of that 
>>> code thread unsafe.
>>> I would like to re-work this code to b more multiprocessor friendly.
>>> 
>>> Thanks
>>> Chip
>>> 
>>> ---
>>> Gas is for washing parts
>>> Alcohol is for drinkin'
>>> Nitromethane is for racing 
>>> **
>>> 4D Internet Users Group (4D iNUG)
>>> FAQ:  http://lists.4d.com/faqnug.html
>>> Archive:  http://lists.4d.com/archives.html
>>> Options: 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)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Quitting without IP var?

2018-07-03 Thread Dani Beaubien via 4D_Tech
Have you looked at the 4d command "Process aborted”?


> On Jul 3, 2018, at 1:18 PM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> My Question is:
> How are you signaling to your stored procedures (Deamons) that the user 
> is existing, without using an IP var?
> 
> Currently I am using an IP Var which is set in the Quit method.
> This IP var is referenced in all of my 'Deamons' in a repeat loop
> 
> Repeat
>  // do deamon stuff
> until (<>f_Quit)
> 
> With this IP var sitting in all my deamons - this makes all of that 
> code thread unsafe.
> I would like to re-work this code to b more multiprocessor friendly.
> 
> Thanks
> Chip
> 
> ---
> Gas is for washing parts
> Alcohol is for drinkin'
> Nitromethane is for racing 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: https://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: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Application Metrics

2018-07-03 Thread Dani Beaubien via 4D_Tech
Hi Robert, since you are talking about usage patterns I suggest you approach it 
from the actions that your user’s are performing. This can help you understand 
what the users are doing most along with some context.

A good place to start would be to track every time the user
- Selects a menu item
- Adds a new record
- Edits a record
- Runs a report
- Performs a search (f you have a custom search it can be useful to track which 
search terms are used).

If you have admin users and regular users that can be helpful as well to track 
along with the actions.

This kind of information can really help you understand what aspects of the 
program are being used and those that are not. Really helps when you are trying 
to work through a long list of feature requests.

Also, if your app is a web app, adding Google analytics (or something similar) 
is a very easy way to add page tracking.

Dani


> On Jul 3, 2018, at 12:55 PM, Robert ListMail via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> I just learned that Facebook is getting rid of a few apps, partially based on 
> low usage. So, in your 4D applications are you tracking usage levels of any 
> kind? I suppose it would be useful to know what features are heavily used and 
> which are almost never used. What metrics does your system collect that 
> you’ve found useful?
> 
> Thanks,
> 
> Robert
> 
> Sent from my iPhone
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

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

Re: Comparing all methods in structures

2018-06-15 Thread Dani Beaubien via 4D_Tech
Hi Jeremy,

Use my Code Analysis component, It will let you export one, then you can open 
the other one and compare against it. That will tell you the code differences.

http://openroaddevelopment.com/projects_4dComponent_CodeAnalysis.html 


Dani Beaubien



> On Jun 15, 2018, at 11:38 AM, Two Way Communications via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Hi Jeremy,
> 
> What I do is to export all methods and forms in text files, using the 
> commands available in ‘Design Object Access’.
> 
> Then I use Text Wrangler (BBEdit will also do this) to compare the text files.
> 
> It will list all the differences. Great tool!
> 
> Regards,
> 
> Rudy Mortier
> Two Way Communications bvba 
> 
> 
> 
>> On 15 Jun 2018, at 19:15, Jeremy Roussak via 4D_Tech <4d_tech@lists.4d.com> 
>> wrote:
>> 
>> I have two structures, which contain quite a few methods. One has been 
>> edited a bit but due to a slapdash approach to record-keeping, I can’t 
>> easily establish which methods have been edited. Is there an easy way to 
>> compare the methods in the two structures?
>> 
>> I suppose running a small method, in each structure, which exports all the 
>> methods into a folder and then using something like BBEdit to do the 
>> comparison would work, but has anyone had to do this and come up with 
>> something better?
>> 
>> Jeremy
>> **
>> 4D Internet Users Group (4D iNUG)
>> FAQ:  http://lists.4d.com/faqnug.html
>> Archive:  http://lists.4d.com/archives.html
>> Options: https://lists.4d.com/mailman/options/4d_tech
>> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
>> **
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

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

Re: Losing memory on 4D web application

2018-06-08 Thread Dani Beaubien via 4D_Tech
Hi Brad,

Are you using ObjectTools? We have a similar setup and we were leaking 
mysteriously.  I did a bunch of research and I landed on that ObjectTools was 
the issue. I switched everything away to C_OBJECTS (no other changes) and the 
memory issues went away.

ObjectTools is pretty heavily used plugin so I as surprised. It might have to 
do with it running in a web process. Not sure. Regardless, my problem was 
solved by going to C_OBJECTs.

Dani


> On Jun 8, 2018, at 11:50 AM, Olson, Brad via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I have a large 4D web intranet application that, over the course of a week, 
> runs out of memory.  It is running 4D Server 16R4 on Windows Server 2012, 
> with 16GB RAM, and no other applications are running on it.  This application 
> does a lot of calls to a middleware server that returns large quantities of 
> data in XML format.  The returned data is parsed using the XML DOM commands, 
> but in each case I am calling the DOM CLOSE XML command.
> 
> I have checked that all blobs are being resized to 0, and I have included at 
> the bottom of each web page a wrapper that clears variables and reduces all 
> table selections to 0.  
> 
> jQuery ajax calls are used extensively in the web pages.  The resulting data 
> from these ajax calls is passed back from 4D in html files that use 4D tags 
> and formats the data into JSON format.  At the bottom of each of these files 
> I have also put the Clear Variables and Reduce Selection wrappers.
> 
> What am I missing?  Are there any tools or logs that will tell which methods 
> are not releasing memory?  What else should I be checking?
> 
> Thank you for any assistance,
> 
> Brad 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

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

Re: How does one detect that Cookies are disabled?

2018-06-05 Thread Dani Beaubien via 4D_Tech
Hi John, found this on Stack Overflow.

https://stackoverflow.com/questions/4603289/how-to-detect-that-javascript-and-or-cookies-are-disabled

This might be what you are looking for.

Dani Beaubien


> On Jun 5, 2018, at 9:17 PM, JOHN BAUGHMAN via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> First of in my testing I am not involving 4D at all. I was simply using Xojo 
> to test what you said in your post.
> 
> After a bit more testing, I realize now that I misunderstood your post 
> entirely.  
> 
> 
>> I don't know anything about Xojo, but from the code you posted all it seems 
>> to do is set a value on the server and immediately read it back. There is no 
>> way for the browser to have it yet. 
> 
> The code I quoted is Xojo code (not 4D) and it sets the cookie in the browser 
> from a Xojo web app. With Chrome’s developer’s console I can watch the cookie 
> being set when cookies are not being blocked.
> 
> What I should have understood in your post was that any web app or web server 
> can only determine if a cookie is set by what is passed from the browser in 
> the http header. So if my Xojo web app sets a cookie in the browser, that 
> would not be reflected in the header until the header was updated, which 
> would only happen the next time an exchange occurred between the web app or 
> web server and the browser. Xojo is adding the cookies it set since receiving 
> the current header to my test. 
> 
> For my idea to work in Xojo or 4D Web Server, there would have to be a way to 
> refresh the http header without refreshing the whole browser window. Perhaps 
> not possible.??. I noticed that eventually the header is updated after the 
> user has invoked a request or 2  to 4D (4d Web Server only talks to the Xojo 
> web app not the browser). Not sure when or what causes the header update 
> during those exchanges.
> 
> John
> 
> 
> 
> 
> 
> 
> John Baughman
> 1331 Auwaiku Street
> Kailua, Hawaii  96734
> (808) 262-0328
> john...@hawaii.rr.com
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: https://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: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: v13+ - method comments (the Explorer Pane)

2018-05-07 Thread Dani Beaubien via 4D_Tech
Hi Chip,

You can use "METHOD SET COMMENTS” to set the method comments using code.

I actually use that call in my Code Analysis component. I have a feature that 
will look at each method, grab the comment lines at the top of the method until 
it hits a line that is not a comment, and then put those comments into the 
method comments using "METHOD SET COMMENTS”. Really useful for ensuring all the 
shared methods in a component have a comment can then be seen as a tip in a 
host database.

The Code Analysis component can be grabbed from here. Source code is there as 
well.
http://openroaddevelopment.com/downloads.html

Dani


> On May 7, 2018, at 3:04 PM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I have not looked into this much...
> Is there a way in code to access the method comments (form the Explorer 
> Pane)?
> 
> I would like to be able to, as a start, copy the actual method header 
> comments into this area.
> 
> any info appreciated.
> 
> Thanks
> Chip
> 
> ---
> Gas is for washing parts
> Alcohol is for drinkin'
> Nitromethane is for racing 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: https://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: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: HTTPS Connection for Web Module

2018-05-04 Thread Dani Beaubien via 4D_Tech
Hi Ronnie, I would consider putting Apache or NGINX in front of your 4D v11 
application and configure Apache/NGINX as a reverse proxy to your 4D app. There 
has been messages on the nug that can tell you how to do that.

Dani


> On May 4, 2018, at 12:41 AM, Ronnie Teo via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hi,
> 
> I’ve written earlier about a 4Dv11 application with a web module.  
> The client's IT now wants all access to be secured and only allow https 
> connections.
> 
> According to the manual, we would need to place 2 files alongside the 
> structure files in the database folder, namely the cert.pea dn key.em.
> However, the client’s IT has generated only one certificate file with a .cer 
> extension.
> 
> May I ask how I should proceed?
> 
> Regards,
> Ronnie
> Tarawerkz
> 
> 
> 
> 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

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

Re: Errors in 4D Web Process

2018-04-24 Thread Dani Beaubien via 4D_Tech
You can use the "Method called on error” function to determine the name of the 
method that was set by an “ON ERR CALL”.

Example of using this to temporarily change the ON ERR CALL and then putting it 
back:

C_TEXT($currentOnErrMethod) 
$currentOnErrMethod:=Method called on error
ON ERR CALL("WebError_Developer")   

. . . other code . . . 

ON ERR CALL($currentOnErrMethod)

Dani

> On Apr 23, 2018, at 11:11 PM, John Baughman via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> This may be a dumb question as I am not sure why or how this worked before 
> today.
> 
> Up until today, whenever 4D encountered any kind of error in my code while 
> handling an HTTP request the code was immediately aborted and my web app got 
> a response that included the method name, line number and error description.
> 
> Like I said, I do not know why it did that, but I liked it as I could detect 
> the error in my web app and throw up a message box telling me what was wrong. 
> All of a sudden 4D just keeps on going.
> 
> For example, test=test on a line all by itself will in a normal process throw 
> an error. Before today In a web process it would terminate the process and 
> send back the error. Now the web app no longer gets the error. What it does 
> get back depends on how the error affected my xml response.
> 
> If I put a TRACE before test=test 4D honors the TRACE, but just keeps on 
> trucking after I tell it to continue. If I put the TRACE after test=test, the 
> TRACE is ignored and the web app gets back whatever my later code is able to 
> send back.
> 
> I didn’t change anything. Any ideas?
> 
> John
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

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

Re: v13+ On Err Call - overhead?

2018-04-17 Thread Dani Beaubien via 4D_Tech
Hi Chip, I would run some tests to find out what the impact is.

Capture the time, run the code a number of times (say 1000) and then capture 
the time again. Do this with the On Err Call and without and you should get a 
sense of the impact.

If your production environment runs compiled, then this code should be run 
compiled.

For example:

$vs:=milliseconds
For($t;1;1000) 
  For($i;1;Some_Integer_Value)
   on err call("Error_Handler")
   do stuff which could generate error
   on err call ("")
   do other stuff 
  end for
end for
$ve:=milliseconds
$timeTaken:=$ve-$vs

Good luck!

Dani

> On Apr 16, 2018, at 10:38 AM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> What kind of over head is there on setting and clearing On Err Call?
> 
> If On Err Call is being set and cleared in a loop, is there a 
> significant overhead issue?
> 
> ex:
> 
> For($i;1;Some_Integer_Value)
>  on err call("Error_Handler")
>  do stuff which could generate error
>  on err call ("")
>  do other stuff 
> end for
> ---

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

Re: ORDA query & pointers syntax question

2018-04-11 Thread Dani Beaubien via 4D_Tech
Hi Kieth,

These are equivalent.

C_OBJECT($medicaidEligibleStudentsInDistr)
$medicaidEligibleStudentsInDistr:=ds.Student.query("Medicaid_Eligible = 'Yes' & 
District_ID = :1";$districID)

$medicaidEligibleStudentsInDistr:=ds["Student"].query("Medicaid_Eligible = 
'Yes' & District_ID = :1";$districID)

The 2nd statement uses a string to reference the table. You can use a var 
instead. And the query string is just that, a string that is built up.

Dani

> On Apr 11, 2018, at 1:08 PM, Keith Culotta via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hello,
> 
> I didn't recognize a solution for this in the docs.
> When the table and field are unknown until execution time, any suggestions on 
> what the ORDA approach to this type of query would be?  
> 
> QUERY(pTable->;pField->=$aValue)
> 
> Thanks - Keith - CDI
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

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

Re: Document Reference to Path

2018-03-22 Thread Dani Beaubien via 4D_Tech
I believe that the “Document” process variable will have the full path as long 
as the OK var is set to 1. You will need to get the contents of the variable 
after the 1st Open Document.

Dani

> On Mar 22, 2018, at 1:15 PM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Anyone have an idea on how to get a file path starting with a document 
> reference?
> 
> ex:
> $Doc_Ref:=Open Document("")
> $Doc_ref1:=Open Document("")
> 
> any ideas on getting the path to the file referenced by $Doc_Ref?
> 
> Thanks
> Chip
> ---
> Gas is for washing parts
> Alcohol is for drinkin'
> Nitromethane is for racing 
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: https://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: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: Import from Excel

2018-03-07 Thread Dani Beaubien via 4D_Tech
When exporting to csv from Excel, the cells that contain commas, double quotes 
and/or carriage returns will be wrapped by double quotes. The routine that is 
used to import csv file should be paying attention to the surrounding quotes 
and handling embedded returns. Any internal double quotes are escaped as double 
double quotes (pulling that from memory).

The following is a sample of a 3 row csv file exported from Excel.:
ROW 1,a,b,c
ROW2, 1,"2
3",4
ROW 3,d,e,f

Them 3rd cell in ROW 2 has a carriage return between the 2 and 3.

It is more of a challenge to import CSV because you can’t assume that the EOL 
character is truly the EOL. It might be embedded within a cell. if you are 
using CSV files you need to be able to handle this scenario.

Hopefully that helps a bit.

Dani


> On Mar 7, 2018, at 2:20 PM, Pat Bensky via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Keith - if you export from Excel to csv, you still have the problem with
> embedded Return characters.
> 
> Pat
> 
> 
> On 7 March 2018 at 20:48, Keith Goebel via 4D_Tech <4d_tech@lists.4d.com>
> wrote:
> 
>> Ferdinando ,
>> If you convert the Excel file to csv, you shouldn't have any problems with
>> cells containing carriage returns/line feeds when you import into 4D.
>> I assume 4D’s built-in import can handle csv files - I haven’t checked -
>> we use special import and export code to handle csv so we don’t use 4D’s
>> built-in stuff.
>> 
>> Sometimes an Excel csv export doesn’t comply completely with the cvs
>> rules, but mostly it does.
>> HTH, Keith
>> **
>> 4D Internet Users Group (4D iNUG)
>> FAQ:  http://lists.4d.com/faqnug.html
>> Archive:  http://lists.4d.com/archives.html
>> Options: https://lists.4d.com/mailman/options/4d_tech
>> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
>> **
>> 
> 
> 
> 
> -- 
> *
> 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)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

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

Re: Best way to get HTML Tables to MS Word tables

2018-02-23 Thread Dani Beaubien via 4D_Tech
Hi Jim, I suggest you take a look at phpWord 
(https://phpword.readthedocs.io/en/latest/ 
). It works well, quite quick and 
you can output in a number of word formats.

Dani



> On Feb 23, 2018, at 3:04 PM, Jim Labos - infobase via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> I've been doing some HTML tables that end up in Word for a while now but
> until now there was no need to get it to render any better so if it ain't
> broke.
> 
> However now comes the need to have tables render as exact as possible in
> Word. Now I say /from/ HTML because I have been doing it that way in past
> but going direct to Word would be even better.
> 
> The good thing in HTML is it is simple to develop and maintain as well as
> debug. The problem many things don't end up looking the same in MS Word.
> 
> I know practically nothing about using MS XML language, are there any tools
> available for 4D that would let me construct Tables and populate the
> contents directly to MS Word format?
> 
> Any thoughts?
> 
> 
> Jim Labos - infobase
> 
> 
> 
> 
> 
> -
> Jim Labos - infobase
> --
> Sent from: http://4d.1045681.n5.nabble.com/4D-Tech-f1376241.html
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

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

Re: v13 Compiled vs Interp execution

2018-02-22 Thread Dani Beaubien via 4D_Tech
Do you have a C_REAL($Real) line in your code? The compiler might be typing 
that variable as a longint.

Dani

> On Feb 22, 2018, at 10:14 AM, Chip Scheide via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I have code that converts a value from REAL to Hex.
> as part of my test routines, maximum value convertible is Maxlong (php 
> routine)
> I set the value to convert to (to test out of range error):
> $Real := 2 * (MAXLONG - 500)
> $Real := 2 * (2147483647 - 500) 
> $Real := 2 * (2142483647)
> $Real := 4284967294
> 
> interpretedly, this is correct, as this is the value given by - string($Real)
> 
> Compiled - the same code
> String($Real) = -1002
> 
> Anyone have an explanation??
> 
> Thanks
> Chip
> 
> 
> 
> Hell is other people 
> Jean-Paul Sartre
> **
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **

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

Re: Creating .docx files

2018-01-24 Thread Dani Beaubien via 4D_Tech
Hi Patrick,

I have approached this differently.

On disk, I have a php file for every “report” that I want to produce. Inside 
that php file I have a placeholder. When I need to run my report, I generate a 
series of php statements that define a data structure that I then insert into a 
copy the PHP file. I use an external version of PHP to execute the save php 
script.

Doing this method, I am able to have a PDF and Word versions of the same report 
and there is no changes to make in my 4D Structure other than decision logic to 
decide which PHP file to use as a source.

I have used composer to install phpword into a vendor folder.

Some advantages are that I can easily test my report by executing the php file 
directly from the command line. All that is needed is to insert some data into 
the file.

I will send you a sample of one of the reports offline.

Dani


> On Jan 24, 2018, at 6:26 AM, Patrick Emanuel via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> I forgot to answer to this: What do you have in your autoloader.php file? 
> it is not mine, but the phpword one. It is a part of the php librairy. 
> 
> Patrick
> 
> 
> 
> -
> Patrick EMANUEL
> 
> Administrator
> www.association-qualisoft.eu 
> (Soft1002, Simply Asso & QS_Toolbox)
> --
> Sent from: http://4d.1045681.n5.nabble.com/4D-Tech-f1376241.html
> **
> 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: Creating .docx files

2018-01-21 Thread Dani Beaubien via 4D_Tech
+1 for phpword. I have been using for the last few months and it is fast and 
works very well. 

Dani


**
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: Call Chain

2017-12-15 Thread Dani Beaubien via 4D_Tech
Hi Jim, you can get the method name and line # of where the error occured.

From (http://doc.4d.com/4Dv16R4/4D/16-R4/ON-ERR-CALL.301-3316809.en.html):
The Error variable value is significant only within the error-handling method; 
if you need the error code within the method that provoked the error, copy the 
Error variable to your own process variable. You can also access the Error 
method, Error line and Error formula system variables which contain, 
respectively, the name of the method, the line number and the text of the 
formula where the error occurred (see Error, Error method, Error line 
).

Dani Beaubien


> On Dec 15, 2017, at 9:30 AM, Jim Medlen via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> 
> Inside the error handling method set by ON ERR CALL is there a way to access
> the 
> CALL CHAIN similar to GET LAST ERROR STACK so that the Error method
> could log which method generated the Error?
> 
> Is there a way to identify the Method that generated the Error?
> 
> 
> Thanks,
> 
> Jim Medlen
> Computer & Information Systems
> Functional Devices, Inc.
> j.med...@functionaldevices.com
> phone (765) 883-5538 x 428
> fax (765) 883-4262
> http://www.functionaldevices.com
> 
> This email was transmitted on 100 percent recycled electrons
> 
> 
> 
> 
> **
> 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: What Texting Services Are People Using?

2017-12-06 Thread Dani Beaubien via 4D_Tech
Hi Dave, I have just started using https://www.plivo.com 
 and like it so far.

Dani


> On Dec 6, 2017, at 12:22 PM, Dave Nasralla via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Hey All,
> 
> I'm looking at the option of adding texting to mobile phones to one of
> our systems. Anyone using a system/API they like? I've briefly looked
> at https://www.eztexting.com.
> 
> dave
> 
> -- 
> David Nasralla
> Clean Air Engineering
> **
> 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
**

[ANN] New version of 4Dv16 Code Analysis Component available

2017-10-09 Thread Dani Beaubien via 4D_Tech
Just a heads up. The most recent version has been released. It is v16 only.

http://openroaddevelopment.com/downloads.html 



Code Analysis 2017.3 - Oct 9, 2017
==
General
 - Converted to 4D v16.
 - Reimplemented code that parses and tokenizes the 4d methods that the Code 
Analysis uses for statistics. Slight improvement in speed and fixes a number of 
parsing bugs.
 - Added UI for unit tests that have been implemented within the component.

Code Analysis Window: Exporting All as Text
  - Modified the code that is used to detect when a file in an included folder 
should be copied to the destination.
  Only files that have truly changed will be copied.
  A file that has an updated modification date but has no changes within 
the file will not be copied.

Code Analysis Window: Folder Differences
 - Improved the algorithm that is used to compare files in the identified 
folders. Properly identifies files that confirmed to be different regardless of 
file modification dates. No more false positives when doing a checkout from git.

Code Analysis Window: Index Analysis
 - Optimized the code used for doing the index count analysis. Performance 
significantly improved.

Components Methods Shared to the Host
 - Added "BuildNo_GetBuildNo_CodeAnalysis". The method will return an C_OBJECT 
that contains the version information for the component.
   For example: {"releaseYear":"2017", "releaseNo":"r1", "buildNo":"20170529", 
"versionShort":"2017.r1", "versionLong":"2017.r1 (build 20170529)"}
 - Added "CA_Pref_SetExportFolder". The method will set the root folder where 
the component will export all of it's files and folders to.
 - Added "CA_Pref_SetEOL". The method sets the end-of-line character that is 
used when exporting methods. Possible values are: "\r", "\n", "\r\n", or "".
 - Added "CA_Pref_GetStructureKey". The method will return the unique key that 
is attributed to the host structure.
 - Added "CA_Pref_SetStructureKey". The method allows the caller to specify the 
unique key that is attributed to the host structure.
 - Added "CA_Pref_GetPreferencesFolder". The method returns the path to where 
the component stores all of it's structure specific preferences.

Code Analysis Window: Structure Analysis
  - Added a new tab that shows the fields and tables that are directly 
referenced in code. This tab can be used to indicate the structure elements 
that are not used.

Explorer Window
 - Added ability to hide methods that are preemptive capable, incapable or 
indifferent.

**
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: [OFF] Mac OS High Sierra PHP and Apache Versions & 15.4 compatibilty

2017-09-28 Thread Dani Beaubien via 4D_Tech
Man. Not sure what I was smoking. I went back at my terminal and rechecked the 
#s I get what you have below. Not sure where I got the other #.

Thanks for keeping me honest. :)

Dani

> On Sep 26, 2017, at 6:37 PM, James Brown via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I get same php, but different Apache:
> 
> httpd -v
> Server version: Apache/2.4.27 (Unix)
> Server built:   Jul 15 2017 15:41:46
> 
> 
> James
> 
>> On 27 Sep 2017, at 1:14 am, Dani Beaubien via 4D_Tech <4d_tech@lists.4d.com 
>> <mailto:4d_tech@lists.4d.com>> wrote:
>> 
>> php is v7.1.7
>> 
>> Apache is v2.5.7
>> 
>> 
>>> On Sep 25, 2017, at 8:09 PM, Perkins, Bradley D via 4D_Tech 
>>> <4d_tech@lists.4d.com <mailto:4d_tech@lists.4d.com>> wrote:
>>> 
>>> If anyone has installed the just released version of Mac OS High Sierra can 
>>> you confirm which versions of Apache and PHP are installed?
>>> 
>>> $ http -v
>>> $ php -v
>>> 
>>> I have a customer that runs a 4D web system on Sierra and their IT/Cyber 
>>> people have complained the installed versions Apache 2.4.25 and PHP 5.6.30 
>>> are vulnerable and are threatening network blocks. If High Sierra provides 
>>> compliant versions we might update them.
>>> 
>>> More importantly  4D 15.4 certified for High Sierra? Any known problems.
>>> 
>>> Thanks,
>>> 
>>> Brad Perkins
>>> **
>>> 4D Internet Users Group (4D iNUG)
>>> FAQ:  http://lists.4d.com/faqnug.html <http://lists.4d.com/faqnug.html>
>>> Archive:  http://lists.4d.com/archives.html 
>>> <http://lists.4d.com/archives.html>
>>> Options: http://lists.4d.com/mailman/options/4d_tech 
>>> <http://lists.4d.com/mailman/options/4d_tech>
>>> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com 
>>> <mailto:4d_tech-unsubscr...@lists.4d.com>
>>> **
>> 
>> **
>> 4D Internet Users Group (4D iNUG)
>> FAQ:  http://lists.4d.com/faqnug.html <http://lists.4d.com/faqnug.html>
>> Archive:  http://lists.4d.com/archives.html 
>> <http://lists.4d.com/archives.html>
>> Options: http://lists.4d.com/mailman/options/4d_tech 
>> <http://lists.4d.com/mailman/options/4d_tech>
>> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com 
>> <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
> **

**
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: [OFF] Mac OS High Sierra PHP and Apache Versions & 15.4 compatibilty

2017-09-26 Thread Dani Beaubien via 4D_Tech
php is v7.1.7

Apache is v2.5.7


> On Sep 25, 2017, at 8:09 PM, Perkins, Bradley D via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> If anyone has installed the just released version of Mac OS High Sierra can 
> you confirm which versions of Apache and PHP are installed?
> 
> $ http -v
> $ php -v
> 
> I have a customer that runs a 4D web system on Sierra and their IT/Cyber 
> people have complained the installed versions Apache 2.4.25 and PHP 5.6.30 
> are vulnerable and are threatening network blocks. If High Sierra provides 
> compliant versions we might update them.
> 
> More importantly  4D 15.4 certified for High Sierra? Any known problems.
> 
> Thanks,
> 
> Brad Perkins
> **
> 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: Server Process "Frozen"-ish

2017-09-11 Thread Dani Beaubien via 4D_Tech
Hi, 

We have run into issues where the server is running on windows 64bit and it is 
producing PDFs using PDF Creator directly. Our solution was to move away from 
doing that and using php and FPDF to create the PDFs instead.

Dani


> On Sep 11, 2017, at 12:43 AM, Bernd Fröhlich via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Cannon Smith:
> 
>> I’ve seen something odd since upgrading our customers to v16.1 a few months 
>> ago. This is on 64-bit server, both platforms. There are a few background 
>> processes that continually run on the servers, waking up every few seconds 
>> to see if there is work to be done. This has worked without problem for a 
>> decade now, but starting with v16.1 we occasionally have a process the just 
>> sort of quits.
>> 
>> By occasionally, I mean maybe once in 2-3 months per server. Little enough 
>> that I didn’t pay much attention at first—just relaunched the server. But 
>> cumulatively (across all servers) it has happened probably 20-30 times in 
>> the last few months.
>> 
>> By the process sort of quitting, I mean that the tasks it is supposed to 
>> take care of just stop getting taken care of. The activity monitor shows the 
>> process is still there and nothing I have noticed seems out of the ordinary. 
>> It’s like the code just quit executing in that process.
>> 
>> I know I need to get more detailed information and will start trying to do 
>> that, but wonder if anyone has experienced anything similar that might give 
>> me a starting place to look?
> 
> 
> Same here. 4D V16.1 32 Bit on OS X 10.11.6.
> A background process does some reporting, sends and receives mails, etc.
> Every once in a while it just stops. No idea why. At least I am not the only 
> one.
> Now we just have to find what is common on all our servers...
> 
> Greetings from Germany,
> Bernd Fröhlich
> **
> 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: [ANN]: v2.0 of 4D v14/v15 Code Analysis Component Released

2017-03-13 Thread Dani Beaubien via 4D_Tech
Yep. This is the last version that will have v14 support. I will be releasing a 
v16 version soon.

Dani


> On Mar 11, 2017, at 3:12 AM, Nils Kollandsrud via 4D_Tech 
> <4d_tech@lists.4d.com> wrote:
> 
> Thank you for a fantastic tool! Any plans for a v16 version of the
> component?
> 
> On Wed, Mar 8, 2017 at 5:14 AM, Dani Beaubien via 4D_Tech <
> 4d_tech@lists.4d.com> wrote:
> 
>> I have released v2.0 of the CodeAnalysis component. Please take a look at
>> the release notes below for more detail.
>> 
>> 
> 
> -- 
> Nils Kollandsrud
> Ixmal Intelesis AS, Pilestredet 75 C, Postboks 5130 Majorstuen, 0302 Oslo,
> Norway
> Tel: +47 22121212 Mob: +47 920 15550
> **
> 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
**

[ANN]: v2.0 of 4D v14/v15 Code Analysis Component Released

2017-03-07 Thread Dani Beaubien via 4D_Tech
I have released v2.0 of the CodeAnalysis component. Please take a look at the 
release notes below for more detail.

MY COMMITMENT - ALWAYS WILL BE FREE

This component is free and will always be free for any 4D developer’s personal 
use. I am doing this because I have benefited from the 4D community and this is 
my way of saying “thanks” and giving back.


WHAT IS IT?

Code Analysis is easy to use and offers the following features:
- Can perform analysis on "all" stored methods in the structure including 
project methods, project form/object methods, table form/object methods, 
database methods and trigger methods.
- Can perform analysis of the code to see which fields are used in a query and 
report if they are indexed or not
- Gathers stats on line counts, comment line counts, blank line counts, code 
line counts, and cyclomatic complexity.
- Can export, as disk files, every method in the structure. Can be used for 
archiving, backups, and source code management.
- Can export, as JSON files, every available form and form object property in 
the structure. Can be used for archiving, backups, and source code management.
- Can export, as JSON files, every available table and field property in the 
structure. Can be used for archiving, backups, and source code management.
- Can create HTML documentation of the methods in the structure. The HTML docs 
can be limited to only those methods that have been marked as shared with host. 
This gives 4D developers to easily produce documentation for components that 
they share.
- Can create a docset for the shared methods. Third party Docset viewers are 
available on many platforms.
- Can manage 4D Project Method Comments

Please feel free to drop me a note on suggestions and feature requests. I do 
plan to do some more tweaks and add new features in the future.


HOW TO GET IT

Go to > to get 
more information and download the component.


Code Analysis v2.0 - Mar 7, 2017
==
General
 - Minor adjustments to the user interface. Some buttons converted to icons to 
condense the amount of space that the UI takes on the various pages.
 - Optimized the code used for doing the analysis. Performance improved by 
20-30% when testing against my own code.
 - Added menu items for the main analysis window and the new explorer window.
 - Fixed bug that caused the Quick launcher window to ignore the floating 
preference setting.

Explorer Window
 - Created a new explorer window that shows all the information that the 
component has on the methods in the structure. From this window a user can open 
a method, filter visible methods and export the information shown in the grid.
 - Exposed a new shared "CA_ShowExplorer" method that opens the explorer.
 - Added a new Code Review window that is accessible from right clicking a 
method in the explorer window. The code review window parses the method and for 
variables that are used. You can select a particular variable and easily see 
all the lines of code that use the variable.

Code Analysis Window: Complexity Analysis
 - Complexity analysis no longer counts "If (True)" and "If (False)" as a point 
of complexity since there is only one way to execute that decision point.
 - Added a new graph under the "View Graphs" button that provides a break down 
of the methods by the maximum number of nested levels of control (if, for, 
case, while) statements.
 - Added a button to open the explorer window.

Code Analysis Window: Index Analysis
 - Fixed a range error bug that could occasionally occurs when exporting 
detailed reports on the indexes.
 - Made some internal optimizations that make the detection of field and table 
usage easier.



Dani Beaubien
dbeaub...@openroaddevelopment.com 
Open Road Development, Inc.
**
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
**