Re: 4D Summit 2018 Comments

2018-04-12 Thread Keisuke Miyako via 4D_Tech
overloading requires the concept of inheritance based on class.
although it was confirmed during the Summit that the feature is under 
development,
I would urge you to spend a moment to check out immediately
collection methods that accept a "callback" project method.

http://doc.4d.com/4Dv17/4D/17/collectionsort.301-3730920.en.html
http://doc.4d.com/4Dv17/4D/17/collectionsome.301-3730945.en.html
http://doc.4d.com/4Dv17/4D/17/collectionorderByMethod.301-3730937.en.html
http://doc.4d.com/4Dv17/4D/17/collectionmap.301-3730943.en.html
http://doc.4d.com/4Dv17/4D/17/collectionevery.301-3730944.en.html
http://doc.4d.com/4Dv17/4D/17/collectionfilter.301-3730926.en.html
http://doc.4d.com/4Dv17/4D/17/collectionfind.301-3730925.en.html
http://doc.4d.com/4Dv17/4D/17/collectionfindIndex.301-3730946.en.html

2018/04/10 15:57、Tom Swenson via 4D_Tech 
<4d_tech@lists.4d.com> のメール:
What would be cool would be to create some form of overloaded operators.



**
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: 4D Summit 2018 Comments - Import XML Structure

2018-04-12 Thread JPR via 4D_Tech
[JPR]

Hi All,

In fact, it seems that it has been a little misunderstanding in this case of 
XML Structure. What LR was talking about is the NEW way which has been 
demonstrated by Laurent Esnault during the Summit.

With the new way of handling the 4DB (usually named 'the structure'), it will 
be possible to save everything into text files. Forms will be JSON files, 
Methods will be Text files, and Structure will be XML Files. And you will be 
able to export and reimport any part. And this is what Laurent explained.

I perfectly understand that you are dreaming so hard of it, that you want to 
believe that it is already available! But in fact you will have to wait a 
little bit more, until it will be fully tested and introduced into a R-release.

Sorry about breaking your dreams, but this is the way it works.

And, BTW, I have also to confess that Santa Claus doesn't exist...

My very best,

JPR



> On 11 Apr 2018, at 07:57, 4d_tech-requ...@lists.4d.com wrote:
> 
> I suggest you mention JPR in this message so that JPR will see it and
> perhaps pass your comments along :)
> 
> Pat
> 
> On 10 April 2018 at 22:33, Tim Nevels via 4D_Tech <4d_tech@lists.4d.com>
> wrote:
> 
>> On Apr 10, 2018, at 12:40 PM, Randy Engle wrote:
>> 
>>> I tried this from several different angles (16r6)
>>> Import XML Structure works like importing records.
>>> It doesn't "update" or "merge", just imports new structure elements
>> (Tables)
>>> 
>>> Perhaps Laurent was confused at that moment?
>> 
>> You are right Randy.  I did some quick tests and IMPORT STRUCTURE command
>> will not update existing tables. The documentation says "If an imported
>> table has the same name as a local one, an error is generated and the
>> import operation is aborted.” and this is the case.
>> 
>> So Laurent must have been confused and maybe thought, why create fields
>> with SQL when you could create tables and fields with the IMPORT STRUCTURE
>> command. You can do that, but what we want to do is update existing tables
>> and fields and that is currently not possible with this command.
>> 
>> So we are stuck again with the inability to set the “map NULL values to
>> blank” field property when creating fields with SQL.
>> 
>> Tim
>> 
>> Tim Nevels
>> timnev...@mac.com 
>> Innovative Solutions
>> 785-749-3444

**
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: 4D Summit 2018 Comments - Import XML Structure

2018-04-10 Thread Thomas Maul via 4D_Tech
>So Laurent must have been confused and maybe thought, why create fields 
> with SQL when you could create tables and fields with the IMPORT STRUCTURE 
> command.

While I did not shared that conversation, I can only imagine that there was a 
misunderstanding in "how to modify the XML based structure".
LR is usually not working with the version we just release, he is often far 
ahead.
And for the ones visiting 4D Summit they might remember the last presentation 
"peak into future", where the whole binary structure document was stored as 
text based project folder. The structure itself is in this case just the XML 
file you get when you do a Structure export, but  you never need to import it, 
just modify the structure on disk with a text editor (or by code) and restart 
4D. And I could imagine that's the procedure he had in mind.

As this way is not useable for the rest of us for today, I would use the XML 
export to identify relations names to change - and then go through the 
structure. I know, this can be an hour of work. I did myself so, when we 
introduced 4D Mobile with v14, as this already used the relation names. And I'm 
currently doing it again, as I have now a better understanding of how to choose 
good names.

Best regards
Thomas Maul





**
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: 4D Summit 2018 Comments - Import XML Structure

2018-04-10 Thread Julio Carneiro via 4D_Tech
I believe LR may have suggested importing XML into a new structure. That’ll 
give you what you want. You can then open the old structure with a 4D copy and 
drag methods & forms across.

depending on the size (and age) of your structure, probably easier to manually 
rename the relations, I guess

> On Apr 10, 2018, at 6:33 PM, Tim Nevels via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> On Apr 10, 2018, at 12:40 PM, Randy Engle wrote:
> 
>> I tried this from several different angles (16r6)
>> Import XML Structure works like importing records.
>> It doesn't "update" or "merge", just imports new structure elements (Tables)
>> 
>> Perhaps Laurent was confused at that moment?
> 
> You are right Randy.  I did some quick tests and IMPORT STRUCTURE command 
> will not update existing tables. The documentation says "If an imported table 
> has the same name as a local one, an error is generated and the import 
> operation is aborted.” and this is the case.
> 
> So Laurent must have been confused and maybe thought, why create fields with 
> SQL when you could create tables and fields with the IMPORT STRUCTURE 
> command. You can do that, but what we want to do is update existing tables 
> and fields and that is currently not possible with this command. 
> 
> So we are stuck again with the inability to set the “map NULL values to 
> blank” field property when creating fields with SQL. 
> 
> Tim
>   
> Tim Nevels 
> timnev...@mac.com 
> Innovative Solutions
> 785-749-3444
> 
> 
> **
> 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
> **

--
Julio Carneiro
jjfo...@gmail.com



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

Re: 4D Summit 2018 Comments - Import XML Structure

2018-04-10 Thread Pat Bensky via 4D_Tech
I suggest you mention JPR in this message so that JPR will see it and
perhaps pass your comments along :)

Pat

On 10 April 2018 at 22:33, Tim Nevels via 4D_Tech <4d_tech@lists.4d.com>
wrote:

> On Apr 10, 2018, at 12:40 PM, Randy Engle wrote:
>
> > I tried this from several different angles (16r6)
> > Import XML Structure works like importing records.
> > It doesn't "update" or "merge", just imports new structure elements
> (Tables)
> >
> > Perhaps Laurent was confused at that moment?
>
> You are right Randy.  I did some quick tests and IMPORT STRUCTURE command
> will not update existing tables. The documentation says "If an imported
> table has the same name as a local one, an error is generated and the
> import operation is aborted.” and this is the case.
>
> So Laurent must have been confused and maybe thought, why create fields
> with SQL when you could create tables and fields with the IMPORT STRUCTURE
> command. You can do that, but what we want to do is update existing tables
> and fields and that is currently not possible with this command.
>
> So we are stuck again with the inability to set the “map NULL values to
> blank” field property when creating fields with SQL.
>
> Tim
>
> Tim Nevels
> timnev...@mac.com 
> Innovative Solutions
> 785-749-3444
>
>
> **
> 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
**

RE: 4D Summit 2018 Comments - Import XML Structure

2018-04-10 Thread Tim Nevels via 4D_Tech
On Apr 10, 2018, at 12:40 PM, Randy Engle wrote:

> I tried this from several different angles (16r6)
> Import XML Structure works like importing records.
> It doesn't "update" or "merge", just imports new structure elements (Tables)
> 
> Perhaps Laurent was confused at that moment?

You are right Randy.  I did some quick tests and IMPORT STRUCTURE command will 
not update existing tables. The documentation says "If an imported table has 
the same name as a local one, an error is generated and the import operation is 
aborted.” and this is the case.

So Laurent must have been confused and maybe thought, why create fields with 
SQL when you could create tables and fields with the IMPORT STRUCTURE command. 
You can do that, but what we want to do is update existing tables and fields 
and that is currently not possible with this command. 

So we are stuck again with the inability to set the “map NULL values to blank” 
field property when creating fields with SQL. 

Tim

Tim Nevels 
timnev...@mac.com 
Innovative Solutions
785-749-3444


**
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: 4D Summit 2018 Comments

2018-04-10 Thread Brian Young via 4D_Tech




> On Apr 9, 2018, at 6:46 PM, Jim Crate via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> On Apr 9, 2018, at 10:06 AM, Tim Nevels via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
>> What is ORDA? It is not a “a historical sociopolitical and military 
>> structure of Mongol Eurasia”. This is a new term that 4D has created. It 
>> stands for Object Relational Database Access.
> The concept of an ORM is not new, and actual implementations date to the 
> early 90s (the Enterprise Object Framework (EOF) from Next is the first one 
> I’m aware of, although I’m not sure how the query language worked, since I’ve 
> never used it beyond a WebObjects class in the late 90s.

> Considering that query language like this has been implemented in other ORMs 
> for decades, primarily on top of SQL databases, it’s likely that 4D is 
> actually using the 4D SQL engine underneath the new query language. The SQL 
> implementation already queries the database without changing the (one) 
> current selection, and in your example above, $entSel is not a “current 
> selection” (they referred to having as many “selections” as you want), it is 
> a collection of entity objects.


Hi Jim,

Regarding ORM vs. ORDA and its implementation:

ORDA does not access data through the SQL engine.  It talks directly to the 
database engine.  This is key to ORDA.

ORMs like EOF* or its descendant CoreData*, are translation layers on top of 
some datastore – which is usually a SQL database but could even be an xml file. 
 The ORM is responsible for translating queries, talking directly to the 
datastore, loading data into memory as needed, presenting the result as an 
object graph, and writing changes back to the datastore.  As an abstraction 
layer, the ORM is still only making SQL calls to do its operations.  As an 
abstraction layer, it adds overhead to the system and has fallen-out of favor 
with a class of developer that wants the greatest performance or finds the 
Object/Relational impedance mismatch to be a problem, preferring to use SQL 
directly.

ORDA is native to the 4D database engine.  There is no translation layer on top 
of the database engine.  The process of building the engine this way has been 
underway for the majority of this decade.  This level of performance and memory 
optimization will mean it is important for the 4D community to be clear that 
ORDA does not carry the baggage that typical ORM implementations do.

4D’s advantage has always been integration and this case is no different. The 
entire environment: UI, web-server, language and more are being built to take 
advantage of high performance data access though an object interface that 
includes effortless relations between objects.

Sometimes it is worth waiting and getting features implemented with fewer 
tradeoffs, and more advantages.

my very best

-Brian


* I am most familiar with these Apple/Next technologies, less so with other 
ORM's

**
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: 4D Summit 2018 Comments

2018-04-10 Thread Richard Wright via 4D_Tech
> Date: Mon, 09 Apr 2018 23:03:31 -0500
> From: Tim Nevels 
> 
> The 4D SQL engine is a layer above the 4D database engine. SQL statements 
> must be translated into a form that the 4D database engine can process. And 
> that can take many forms. Some would work but be super slow, others could be 
> optimized to take advantage of the 4D database engine and be fast. So you 
> have to create a parse that can make this happen. It can be done, but it is 
> not an easy task. Hence the need for “quality individuals” to make this 
> happens. 

I seem to remember being specifically told back in the early days of v11 that 
the SQL engine was not a layer on top of the 4D engine, but that it was 
completely separate.



Richard Wright
DataDomain
rwri...@datadomainsoftware.com


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

Re: 4D Summit 2018 Comments

2018-04-10 Thread Tom Swenson via 4D_Tech
What would be cool would be to create some form of overloaded operators.

Say you wanted to merge two contacts (define your rules for that in the member 
function)
Then you could say something like (I'm just making up the systax)
Contact{1}.merge(contact{2})

The future looks like fun and not the dystopia I secretly dread __

On 4/9/18, 1:32 PM, "4D_Tech on behalf of Tim Nevels via 4D_Tech" 
<4d_tech-boun...@lists.4d.com on behalf of 4d_tech@lists.4d.com> wrote:

But we will be able, in the future, to create our own “member functions”.

**
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: 4D Summit 2018 Comments

2018-04-10 Thread Lee Hinde via 4D_Tech

> On Apr 9, 2018, at 10:32 AM, Tim Nevels via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Something that may not be immediately obvious is that using ORDA will reduce 
> the amount of code needed to query the database. In relational databases you 
> have to query this table, join to another table, query selection, relate 
> many, etc. We are all used to doing this and we need to know exactly what the 
> database structure is. What table is the one table, what table is the many 
> table, is there a many-to-many intermediate table we need to deal with, etc. 

I use Django, an open-source python web framework, for my pure-web projects.

This is what a user search looks like. I tell users they can search by last and 
first or by last name (this is for one specific search block, more complex 
searches are available. :-))

def people_name_search(name):
if name:
if ',' in name:
lname, fname = split_name(name)
return Person.objects.filter(last_name__istartswith=lname, 
first_name__istartswith=fname,
 deactivated=False)[:10]
else:
return Person.objects.filter(last_name__istartswith=name, 
deactivated=False)[:10]
else:
return Person.objects.none()

You can suss that out even though there is magic syntax (objects? 
istartswith?). What you can’t see is that the object “Person” has a default 
sort order defined (last name, first name), so that result gives you an ordered 
list of the first 10 records that match the query.

Below  is a cross table (join) query:

The table relationship are Person <—Enrollment—> Registration and Person 
<—ProductSale—> Registration..

The query gives me the registration records that have associated enrollment or 
product sales records that are linked to a person whose name is ….

The Q thing is the syntactic sugar needed to do OR searches. (all the 
frameworks have their wth.)

def enrollee_name_search(name):
if name:
if ',' in name:
lname, fname = split_name(name)
return 
Registration.objects.select_related().filter(Q(enrollment__person__last_name__istartswith=lname,
  
enrollment__person__first_name__istartswith=fname)
|

Q(productsale__person__last_name__istartswith=lname,
  
productsale__person__first_name__istartswith=fname)
)
else:
return 
Registration.objects.select_related().filter(Q(enrollment__person__last_name__istartswith=name)
|

Q(productsale__person__last_name__istartswith=name)
)
else:
return Registration.objects.none()

All of which is to say,  ORDA is going to make complete sense if you’ve done 
any work in a semi-modern framework.

**
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: 4D Summit 2018 Comments

2018-04-10 Thread Richard Wright via 4D_Tech
> Date: Mon, 9 Apr 2018 21:46:17 -0400
> From: Jim Crate 
> 
> On Apr 9, 2018, at 10:06 AM, Tim Nevels via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
>> So you want an example of ORDA and changes to the 4D language? Here’s one 
>> form JPR’s advanced class. (Hope I am not doing copywriter infringement 
>> here.) 
>> 
>> You have a table called “Employee”. Just one table. It has a “managerID” 
>> field and has a relation back to the “ID” field of the same table. (Yeah, 
>> that’s not possible in the current version of 4D, but it is in v17.) The 
>> name of the relation is “manager”. Find all Employees working for a manager 
>> whose “firstname” is “Laurel”. Here is how you would do it now:
>> 
>> QUERY([Employee];[Employee]firstname="Laurel")  // First Query 
>> ARRAY LONGINT($arIDs;0)
>> SELECTION TO ARRAY([Employee]ID;$arIDs)
>> QUERY WITH ARRAY([Employee]managerID;$arIDs)
>> 
>> That gives you a selection of [Employee] records. Here is how you do it via 
>> ORDA in v17:
>> 
>> $entSel:=ds.Employee.query("manager.firstname = ‘Laurel’ “)
>> …
>> And it can be recursive. Say you want to find the managers of the managers 
>> whose name is “Laurel”. You do it like this:
>> 
>> $entSel:=ds.Employee.query("manager.manager.firstname = ‘Laurel’ “)
> 
> Ruby on Rails has had similar syntax since the 2005 timeframe (part of the 
> ORM), but it’s nice to see these concepts finally making their way to 4D. It 
> will definitely reduce the pointless amount of 4D code you have to write to 
> do almost anything. 
> 
> Considering that query language like this has been implemented in other ORMs 
> for decades, primarily on top of SQL databases, it’s likely that 4D is 
> actually using the 4D SQL engine underneath the new query language. The SQL 
> implementation already queries the database without changing the (one) 
> current selection, and in your example above, $entSel is not a “current 
> selection” (they referred to having as many “selections” as you want), it is 
> a collection of entity objects.

4D’s SQL support self joins right now:

Select b.ID From Employee as ‘b’, Employee as ‘a’ Where a.firstname = ‘Laurel’ 
And a.ID = b.managerID

I think all this new stuff is great but I’d like to see some significant 
improvements in 4D’s SQL because that is still the standard and that’s how 
people need to get data out of 4D using ODBC. Improvements like the ability to 
do a select from a subquery and set operations, for example, would hugely 
increase it’s value. And some speed improvements for joins are sorely needed. I 
feel like 4D’s SQL is an abandoned child which is really a shame.



Richard Wright
DataDomain
rwri...@datadomainsoftware.com


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

RE: 4D Summit 2018 Comments - Import XML Structure

2018-04-10 Thread Randy Engle via 4D_Tech
I tried this from several different angles (16r6)
Import XML Structure works like importing records.
It doesn't "update" or "merge", just imports new structure elements (Tables)

Perhaps Laurent was confused at that moment?



Randy Engle, Director
XC2 Software LLC – XC2LIVE!

-Original Message-
From: 4D_Tech <4d_tech-boun...@lists.4d.com> On Behalf Of Patrick Emanuel via 
4D_Tech
Sent: Tuesday, April 10, 2018 8:44 AM
To: 4d_tech@lists.4d.com
Cc: Patrick Emanuel <patrickspams-e...@yahoo.fr>
Subject: Re: 4D Summit 2018 Comments

Hi,

>> naming relations is needed to take make the code readable. 
>Laurent's suggestion is to export the structure in XML, modify all the
relation names in the text file, and reimport the structure as XML. It will be 
faster than to go across the complete graphical structure representation. 


I've just tried this and get an error message because table already existed 
(with a version < v17). Does it work started with the v17?
Just to know.



**
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: 4D Summit 2018 Comments

2018-04-10 Thread Patrick Emanuel via 4D_Tech
Hi,

>> naming relations is needed to take make the code readable. 
>Laurent's suggestion is to export the structure in XML, modify all the
relation names in the text file, and reimport the structure as XML. It will
be faster than to go across the complete graphical structure representation. 


I've just tried this and get an error message because table already existed
(with a version < v17). Does it work started with the v17?
Just to know.

Thanks

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: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: 4D Summit 2018 Comments

2018-04-10 Thread Kirk Brooks via 4D_Tech
Finally - a Frenchman unafraid to use quotes from Proust and Yogi Berra
like the curly brackets of a well formed JSON. Well done sir - well done.


-- 
Kirk Brooks
San Francisco, CA
===

*We go vote - they go home*
**
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: 4D Summit 2018 Comments

2018-04-10 Thread Douglas Cryer via 4D_Tech
I am very excited about ORDA.  Hopefully it will help to attract more young 
developers.

I am however somewhat cautious about the potential GOTCHAS that will 
undoubtedly come out from using it.  A few early examples:
I find the having to restart the server if an entity or property (table or 
field) name is changed very un 4D like.  This could be a real pain in team 
development on server.
The entity and property names are not tokenised so to avoid breaking code we 
will have to use Table name and Field name then use the result.
To use ORDA on a table or field you must have the “Expose with 4D Mobile 
Service” checkbox ticked on any table or field you need to use it on.  Not sure 
if that is intended but it is how it currently works :-(
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)
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: 4D Summit 2018 Comments

2018-04-10 Thread JPR via 4D_Tech
[JPR]

Hi Tim,

> JPR does monitor the list, maybe he knows more about this and could comment. 
Yes Tim, this is true, I do monitor this list. 

So do not hesitate to put 'JPR' in your message when you have questions still 
pending after some weeks of reflexion... When I don't have the answer, I have a 
reference on the answer...

> SQL views are super powerful, but they are so “old school”.
This is true. It has the smell of the Proust's madeleine, it reminds me of my 
old VT100 console ;-)

More seriously, here are some answers:

- SQL is not going to be killed in 4D, at least for a long long time.

- This is true that ORDA replaces SQL in many places like accessing data 
without changing the current selection, or performing complex JOINs. In most of 
the cases (and specially in about 100% of the cases I have personally seen) SQL 
can be replaced by ORDA and the result is a huge improvement of performances.

- But we know also that a lot of developers are more familiar with SQL syntax, 
that a huge number of SQL examples are available on the net, and other good 
reasons like 'If it works, don't touch it'. 

- There is still a big need to access to SQL databases from 4D, and until ORDA 
will give you these access under the Datastore concept, SQL will still be 
needed.

> I’m not sure exactly how the custom data classes will work or be implemented 
> in 4D. 
I'm not sure neither, but I've used Wakanda...

> naming relations is needed to take make the code readable.
Laurent's suggestion is to export the structure in XML, modify all the relation 
names in the text file, and reimport the structure as XML. It will be faster 
than to go across the complete graphical structure representation.

> The iOS app will download data from 4D Server and put it into a local store 
> on the iPhone. You can browse the data but not change it
Oh developers of little faith! Don't you remember that this is not even the 
version 1.0...

> Yes, using for/in (for/each? can’t remember) will be nice, when we have 
> Entities and maybe even custom classes we can define. It would have been nice 
> to have a variation that iterates through the keys/values when C_OBJECT was 
> added to the language. 
Yes it would have been nice! And it would have been tremendously nice to get 
ORDA in early 90s! Just kidding...

I'm as impatient as you are to get much more right now or even yesterday, but 
good things take time...

> It’s nice to finally see progress, but it’s sad that 25 years ago, 4D was 5 
> years ahead of most other options, and now it is 10-15 years behind.
I'm not sure 4D is 10-15 years behind. 
First of all, 4D is still here and evolving fast, while I cannot make a list of 
products existing 10-15 years behind, and still existing today.
Then, what means 10-15 years behind ? Behind what ? How many technologies have 
we seen since 1984, which have just vanished in the oblivion 10 years after? 
How many time did I heard that "JQuery is the future" or "Java will scrap all 
other languages" or "No responsive without Bootstrap" or "Javascript has no 
future, for Microsoft doesn't like it" and thousand other predictions like this?

Personally, I prefer a slower introduction of a new language, keeping the 
compatibility at its higher level, than rapid changes like Angular, which 
obliges you to rewrite a lot of code between each new version.

Predictions are difficult, especially when they concern the future...

I just hope that you liked what you have seen, and I would like to thank all 
the attendees to this first new training for their flawless attention and their 
patience regarding the inevitable mistakes of a beta-version training on a 
beta-version product...

My very best,

JPR

> On 9 Apr 2018, at 23:35, 4d_tech-requ...@lists.4d.com wrote:
> 
> From: Tim Nevels <timnev...@mac.com>
> To: 4d_tech@lists.4d.com
> Subject: Re: 4D Summit 2018 Comments
> Message-ID: <9e4a63d9-8f46-4817-9d98-c17216bef...@mac.com>
> Content-Type: text/plain; charset=utf-8
> 
> On Apr 9, 2018, at 5:52 PM, Richard Wright wrote:
> 
>> I’ll be interested in learning how this differs from Views, not necessarily 
>> 4D’s rather simplistic implementation, but something like Oracle’s, along 
>> with their very powerful SQL implementation.
> 
> 
> Hi Rich,
> 
> It might be possible in the future to create custom data classes that would 
> act like SQL views. I’m not sure exactly how the custom data classes will 
> work or be implemented in 4D. 
> 
> For now ORDA provides complete access to everything in the database. All 
> tables and all fields. But accessing data in related tables is now “hidden” 
> behind named relations. That is where using ORDA has the biggest impact.
> 
> For several versions now the property palette for relations in the structure 
> editor has a place to

Re: 4D Summit 2018 Comments

2018-04-09 Thread Tim Nevels via 4D_Tech
On Apr 9, 2018, at 10:35 PM, Kirk Brooks wrote:

> I did not hear anyone talk about SQL. On the other hand I didn't hear
> anyone say SQL is dead. My takeaway is it's not a priority - if you're
> working in 4D use 4D's data engine. I think SQL is viewed as a connectivity
> feature, not a design goal.

I’ll tell you what I heard Laurent say at the lunch table with some other 
developers when the SQL engine was brought up. 

He said it is not dead and he wants to improve it.  The issue is a 4D 
Engineering team issue. The guy that wrote the SQL engine is no longer at 4D. 
They are in the process of adding a team member, actually multiple team 
members, to maintain and enhance the 4D SQL engine. You don’t just “hire a guy” 
to do this work. You need quality individuals that are in it for the long term. 
That’s how you get something good. And If you know anything about Laurent, he 
is all about doing good, quality work. Would you agree?

The 4D SQL engine is a layer above the 4D database engine. SQL statements must 
be translated into a form that the 4D database engine can process. And that can 
take many forms. Some would work but be super slow, others could be optimized 
to take advantage of the 4D database engine and be fast. So you have to create 
a parse that can make this happen. It can be done, but it is not an easy task. 
Hence the need for “quality individuals” to make this happens. 

We are going to wait and see what happens with SQL. They find the right people 
to work on the project and you will see results.  

Tim

Sent from my iPad


**
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: 4D Summit 2018 Comments

2018-04-09 Thread Chip Scheide via 4D_Tech


> 
> 1. Use a Web Based front end. It is really amazing to me how well 
> even a web site not designed for iOS works on an iPhone or iPad. If 
> designed to fit in iOS even better. I will be giving a 4DMethod 
> (https://4dmethod.com) presentation on the 25th of this month on 
> using Xojo (https://www.xojo.com) to create such a website.
New languages - and the one big issue I have with almost every web/sql system:
many parts from different vendors all updating at different rates and times
making keeping them all working a PITA.
 

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

Re: 4D Summit 2018 Comments

2018-04-09 Thread Chip Scheide via 4D_Tech
I, and I know many others have been asking for something for mobile for a long 
time.
4D mobile was an attempt, Wakanda was too -but neither really met the need, or 
ease of what 4D for iOS appears to be 

>> Thanks for taking the time to give us this detailed hint at what's coming.
>> This is fantastic and exciting news! I hope the iOS feature  will get
>> developed to it's max. This has potential to open many areas for us
>> developers.
> 
> While it is great news that 4D is moving in this direction, I don’t 
> think what most 4D developers really need will be available for some 
> time. 

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

Re: 4D Summit 2018 Comments

2018-04-09 Thread Kirk Brooks via 4D_Tech
Jim,
On Mon, Apr 9, 2018 at 2:07 PM, Jim Labos - infobase via 4D_Tech <
4d_tech@lists.4d.com> wrote:

> But I am excited and encouraged (and proud) to see that 4D is still pouring
> creativity and features into the platform. As developers we need to be
> constantly kept excited and challenged with new features to at least
> experiment with and find new uses for.
>

​As Tim said the initial release will be read only. Something that wasn't
discussed was how much they intend to charge for it. The only detail I
could glean was that it will be a "per device" license. So this doesn't
mean you'll be able to make an iOS app using 4D. It's more that you can
make an iOS app that browses data from your specific 4D server? 4D iOS
server? That part wasn't clear to me. What is clear is it's initially going
to be tied to a 4D product of some sort and require a 'seat' just like
client seats. ​And they may decide to require a license to serve to iOS
apps as well. Otherwise what's to keep you from rolling your own? I hope
not but that's the way it's always gone before.

​I don't want to sound like I'm just throwing shade on it. What they are
doing is really remarkable - the component does the xcode and Swift
programming for you. That's no trivial task. But the licensing will
relegate it to interest from enterprise clients mainly, I think.
​
-- 
Kirk Brooks
San Francisco, CA
===

*We go vote - they go home*
**
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: 4D Summit 2018 Comments

2018-04-09 Thread Jim Crate via 4D_Tech
On Apr 9, 2018, at 10:06 AM, Tim Nevels via 4D_Tech <4d_tech@lists.4d.com> 
wrote:

> What is ORDA? It is not a “a historical sociopolitical and military structure 
> of Mongol Eurasia”. This is a new term that 4D has created. It stands for 
> Object Relational Database Access. 

It might be a new term 4D created, but it will basically be a stripped-down ORM 
(Object-Relational Model) to start with. It is stripped-down because it only 
includes a pseudo-object that we can’t yet define except for the attributes, 
and a query language. The concept of an ORM is not new, and actual 
implementations date to the early 90s (the Enterprise Object Framework (EOF) 
from Next is the first one I’m aware of, although I’m not sure how the query 
language worked, since I’ve never used it beyond a WebObjects class in the late 
90s.

> Many, many changes to the 4D language are coming. I sat at a table with 
> Laurent and some other 4D developers at lunch one day and Laurent said the 
> new 4D language will be “JavaScript inspired”. He intends to add features to 
> the 4D language so that it will be even better than JavaScript! Inheritance, 
> error handling, custom data classes and the list goes on and on. The days of 
> the 4D language not getting updated are over. The changes are just getting 
> started. 

Hopefully someday we can get the concept of closures and no longer need the 
various EXECUTE permutations to run global methods in various contexts.

> One example of a change in the 4D language is the “For each” loop control 
> structure. Super useful and needed when dealing with objects and containers.

Yes, using for/in (for/each? can’t remember) will be nice, when we have 
Entities and maybe even custom classes we can define. It would have been nice 
to have a variation that iterates through the keys/values when C_OBJECT was 
added to the language. 

> So you want an example of ORDA and changes to the 4D language? Here’s one 
> form JPR’s advanced class. (Hope I am not doing copywriter infringement 
> here.) 
> 
> You have a table called “Employee”. Just one table. It has a “managerID” 
> field and has a relation back to the “ID” field of the same table. (Yeah, 
> that’s not possible in the current version of 4D, but it is in v17.) The name 
> of the relation is “manager”. Find all Employees working for a manager whose 
> “firstname” is “Laurel”. Here is how you would do it now:
> 
> QUERY([Employee];[Employee]firstname="Laurel")  // First Query 
> ARRAY LONGINT($arIDs;0)
> SELECTION TO ARRAY([Employee]ID;$arIDs)
> QUERY WITH ARRAY([Employee]managerID;$arIDs)
> 
> That gives you a selection of [Employee] records. Here is how you do it via 
> ORDA in v17:
> 
> $entSel:=ds.Employee.query("manager.firstname = ‘Laurel’ “)
> …
> And it can be recursive. Say you want to find the managers of the managers 
> whose name is “Laurel”. You do it like this:
> 
> $entSel:=ds.Employee.query("manager.manager.firstname = ‘Laurel’ “)

Ruby on Rails has had similar syntax since the 2005 timeframe (part of the 
ORM), but it’s nice to see these concepts finally making their way to 4D. It 
will definitely reduce the pointless amount of 4D code you have to write to do 
almost anything. 

Considering that query language like this has been implemented in other ORMs 
for decades, primarily on top of SQL databases, it’s likely that 4D is actually 
using the 4D SQL engine underneath the new query language. The SQL 
implementation already queries the database without changing the (one) current 
selection, and in your example above, $entSel is not a “current selection” 
(they referred to having as many “selections” as you want), it is a collection 
of entity objects.

In fact, aside from the syntax, someone with Cannon Smith’s tenacity could have 
implemented something fairly close, probably in less time than he spent 
implementing his MVC 4D framework for forms. It just would have had to look 
something like

$conditions:=ORM_Set_Conditions(”fname”;”Laurel”;”lname”;”Hardy”)
ORM_Query(“Employee”;->$empArr;”manager.firstname = :fname AND manager.lastname 
= :lname”;$conditions)


> 4D Summit 2018 would not be complete without mentioning 4D for iOS.

They must be including the 4D Server connectivity framework in the Xcode 
project. That is the most interesting piece, I could see using the component to 
generate a starter app which could then be modified to do do whatever else is 
desired.


This is not to say that I’m not looking forward to having this functionality in 
4D. But really 4D should have had an ORM with a sensible query language a 
decade ago, like multiple popular open source frameworks. Cannon should not 
have had to spend months or years on his MVC framework; 4D should have had the 
concept of a real form controller years ago, with ways for us to define custom 
events for it to handle, timers that make sense, etc. The new text format for a 
structure will be nice, it will finally be possible to integrate with GIT or 
SVN without 

Re: 4D Summit 2018 Comments

2018-04-09 Thread John Baughman via 4D_Tech


On Apr 9, 2018, at 5:52 PM, Jim Labos wrote:
> Thanks for taking the time to give us this detailed hint at what's coming.
> This is fantastic and exciting news! I hope the iOS feature  will get
> developed to it's max. This has potential to open many areas for us
> developers.

While it is great news that 4D is moving in this direction, I don’t think what 
most 4D developers really need will be available for some time. 

Let me encourage any of you who are waiting on 4D to provide IOS access to your 
deployed database, to take the plunge now into other means to the same end. 
It’s really not that hard. You can...

1. Use a Web Based front end. It is really amazing to me how well even a web 
site not designed for iOS works on an iPhone or iPad. If designed to fit in iOS 
even better. I will be giving a 4DMethod (https://4dmethod.com) presentation on 
the 25th of this month on using Xojo (https://www.xojo.com) to create such a 
website.

2. Use XCode to create a native iOS front end. With Swift it is really easy for 
any 4D developer to learn. The only tricky part is getting it deployed.

Hey, I have done both and if I can do it anyone can. How many years have we 
waited for 4D to implement native iOS functionality. Thus far every step in 
that direction has, in my opinion, fizzled out. Wakanda is a good option and 
still going, but I couldn’t get my mind around using it with 4D. 

This new approach is good news, and I will probably jump in and use it for 
simple display of data from the database. A good step in the right direction, 
but really you do not have to wait. Take the leap outside of 4D, you won’t 
regret it.

My 2 cents worth… John

John Baughman
Kailua, Hawaii
(808) 262-0328
john...@hawaii.rr.com





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

Re: 4D Summit 2018 Comments

2018-04-09 Thread Tim Nevels via 4D_Tech
On Apr 9, 2018, at 5:52 PM, Jim Labos wrote:

> Thanks for taking the time to give us this detailed hint at what's coming.
> This is fantastic and exciting news! I hope the iOS feature  will get
> developed to it's max. This has potential to open many areas for us
> developers.

The general idea presented is we start with a little and then wait to see if 
anyone asks for more. If there is silence from developers then no more will be 
done to 4D for iOS.

So the first version will be read only. The iOS app will download data from 4D 
Server and put it into a local store on the iPhone. You can browse the data but 
not change it. There will be some mechanism — probably pull down in a list view 
— to refresh the data in the local store from 4D Server. And maybe also options 
to let you set a timer to auto refresh the data at intervals.

Version 2 will allow modifying the data on iPhone — probably also create new 
records — and then have that pushed back to 4D Server. No talk as to how that 
will happen and the features and capabilities. It was sort of implied that they 
would build what developers asked for. 

I have 1 client right now that wants an iPhone app for accessing data on his 4D 
Server application. Read only of his contacts information would be great and 
very useful. But of course he would immediately what to be able to update the 
contact info and create new contacts. Also check inventory for products that he 
sells. He would also want to be able to create new “sales orders” and create 
quotes from his iPhone. That’s the basics. The bare minimum for him to say the 
iPhone app was “usable” and worth fooling with. 

I don’t know what version of 4D for iOS will let me accomplish this, but I 
intend on building an iOS app for this client as soon as I can. Read only is 
fine. I want the client to get the app on his iPhone and give me feedback on 
what is missing in the app and what needs to be added next. I’ll relay that 
back to 4D and then wait for the next version of 4D for iOS to implement what I 
need. 

I’ll give my client a little taste and wet his appetite. Then create more 
versions with more features as they come available. Of course billing him for 
the work I do all along the way. That’s the way I see it progressing. 

> I have not found a need for the object oriented code yet, but then I'm an
> old man who does not easily kill habits (good or bad). However I do still
> find that necessity is the mother of necessity (yes I said it the way I
> intended) when it comes to using new or yet used 4D code. In other words I
> learn very fast if a feature is all of a sudden required for a customer.
> 
> But I am excited and encouraged (and proud) to see that 4D is still pouring
> creativity and features into the platform. As developers we need to be
> constantly kept excited and challenged with new features to at least
> experiment with and find new uses for.
> 
> Some of us have made a career using only 4D. In the beginning 4D was not
> exactly the most powerful and/or popular software around. Look at it now!
> Keep it coming.

I like the approach 4D is taking. They are adding to what we already have. 
“Classic” 4D code will continue to work into the future. But they are adding 
the ORDA way of doing things. It is not required. You like they way you program 
now, you can continue to do it that way. You can add new ORDA code to future 
work, if you so desire. 

Tim

*
Tim Nevels
Innovative Solutions
785-749-3444
timnev...@mac.com
*

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

Re: 4D Summit 2018 Comments

2018-04-09 Thread Tim Nevels via 4D_Tech
On Apr 9, 2018, at 5:52 PM, Richard Wright wrote:

> I’ll be interested in learning how this differs from Views, not necessarily 
> 4D’s rather simplistic implementation, but something like Oracle’s, along 
> with their very powerful SQL implementation.


Hi Rich,

It might be possible in the future to create custom data classes that would act 
like SQL views. I’m not sure exactly how the custom data classes will work or 
be implemented in 4D. 

For now ORDA provides complete access to everything in the database. All tables 
and all fields. But accessing data in related tables is now “hidden” behind 
named relations. That is where using ORDA has the biggest impact.

For several versions now the property palette for relations in the structure 
editor has a place to assign a name to a relation. Doubtful that anyone is 
using this property since you currently can’t do anything with it in 4D. Maybe 
it is useful using 4D Mobile, I don’t know. But now with ORDA, naming relations 
is needed to take make the code readable.  “Link20.customer.name” is not as 
readable as “manager.customer.name”. 

We’ll have to wait for possibly a v17 R release or v18 for custom data classes. 
That might be when you could implement something like SQL views that can be 
used in 4D methods to reference database tables and records. Doing the 
automatic joins and filtering of records like you can do in SQL views.

SQL views are super powerful, but they are so “old school”. We are living in 
the “new world” of ORDA and object oriented relational database access. If 4D 
does it right, ORDA will be even more powerful than SQL views. 

Too bad Laurent does not monitor this list, I’m sure he would be able to 
immediately answer your question.  JPR does monitor the list, maybe he knows 
more about this and could comment. 

Tim

Tim Nevels 
timnev...@mac.com 
Innovative Solutions
785-749-3444


**
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: 4D Summit 2018 Comments

2018-04-09 Thread Kirk Brooks via 4D_Tech
Richard,

I did not hear anyone talk about SQL. On the other hand I didn't hear
anyone say SQL is dead. My takeaway is it's not a priority - if you're
working in 4D use 4D's data engine. I think SQL is viewed as a connectivity
feature, not a design goal.

On Mon, Apr 9, 2018 at 12:25 PM, Richard Wright via 4D_Tech <
4d_tech@lists.4d.com> wrote:

> I’ll be interested in learning how this differs from Views, not
> necessarily 4D’s rather simplistic implementation, but something like
> Oracle’s, along with their very powerful SQL implementation.
>

-- 
Kirk Brooks
San Francisco, CA
===

*We go vote - they go home*
**
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: 4D Summit 2018 Comments

2018-04-09 Thread Jim Labos - infobase via 4D_Tech
Thanks for taking the time to give us this detailed hint at what's coming.
This is fantastic and exciting news! I hope the iOS feature  will get
developed to it's max. This has potential to open many areas for us
developers.

I have not found a need for the object oriented code yet, but then I'm an
old man who does not easily kill habits (good or bad). However I do still
find that necessity is the mother of necessity (yes I said it the way I
intended) when it comes to using new or yet used 4D code. In other words I
learn very fast if a feature is all of a sudden required for a customer.

But I am excited and encouraged (and proud) to see that 4D is still pouring
creativity and features into the platform. As developers we need to be
constantly kept excited and challenged with new features to at least
experiment with and find new uses for.

Some of us have made a career using only 4D. In the beginning 4D was not
exactly the most powerful and/or popular software around. Look at it now!
Keep it coming.

I'm curious if they have added anything more to the WEB modules? Not that
you can't do a lot right now but it could be easier to implement certain
scenarios.

Looking forward to get my hands on a demo of v17.

Cheers

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

Re: 4D Summit 2018 Comments

2018-04-09 Thread Per Gotthardsson via 4D_Tech
Thanks for this useful info! /pg


**
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: 4D Summit 2018 Comments

2018-04-09 Thread Robert ListMail via 4D_Tech
My sentiments exactly, thanks Tim I really appreciate your Summit thoughts!

Robert

> On Apr 9, 2018, at 9:52 AM, Lee Hinde via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> Nice write up, Tim. Thanks!

**
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: 4D Summit 2018 Comments

2018-04-09 Thread Peter Jakobsson via 4D_Tech

> On 9 Apr 2018, at 21:25, Richard Wright via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I’ll be interested in learning how this differs from Views, not necessarily 
> 4D’s rather simplistic implementation, but something like Oracle’s, along 
> with their very powerful SQL implementation.


Hi Richard -

Isn’t the difference that 4D’s object model is seamless ? It extends from the 
language and continues into to structure and database engine in a way that SQL 
based technologies can only emulate. (i.e. you always have a discontinuity at 
some point where the SQL query has to “wrapped” to create the illusion of an 
active data object).

This is consistent with 4D’s legacy approach (which IMO was also a generation 
downstream from SQL) where we are able to use data structure objects directly 
in the language without having to “map” them to text-based query statements 
that we just cross our fingers and “hope” the DBMS understands.

Peter
**
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: 4D Summit 2018 Comments

2018-04-09 Thread Richard Wright via 4D_Tech
I’ll be interested in learning how this differs from Views, not necessarily 
4D’s rather simplistic implementation, but something like Oracle’s, along with 
their very powerful SQL implementation.


Richard Wright
DataDomain
rwri...@datadomainsoftware.com



> Date: Mon, 09 Apr 2018 12:32:09 -0500
> From: Tim Nevels 
> 
> Something that may not be immediately obvious is that using ORDA will reduce 
> the amount of code needed to query the database. In relational databases you 
> have to query this table, join to another table, query selection, relate 
> many, etc. We are all used to doing this and we need to know exactly what the 
> database structure is. What table is the one table, what table is the many 
> table, is there a many-to-many intermediate table we need to deal with, etc. 
> 
> ORDA can remove the need to know this level of detail in many cases. By 
> naming relations in a “logical” way you can write code to get the “manager” 
> of an employee, or get the “direct reports" for an employee. And from that 
> you can then further filter the results by using a “query” member function. 
> You let the 4D database figure out if it needs to relate many selection, or 
> relate one selection for you. And you can make these named relations very 
> complex if you want. There is a lot of power here that is just starting to be 
> exposed. 


**
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: 4D Summit 2018 Comments

2018-04-09 Thread Tim Nevels via 4D_Tech
On Apr 9, 2018, at 12:01 PM, Tom Swenson wrote:

> Nice writeup! Makes me sorry that I couldn't fit in time to attend the Summit 
> this year.
> 
> I'll toss in a bit of history - "object" databases. It was a concept that 
> kind of flared up back in the 90s but didn't get any market traction.
> 
> For instance, way back when I was working at Motorola, we tried to use an 
> object database called O2 (example at 
> http://www.db.ucsd.edu/static/cse132b-sp01/o2.pdf 
> ) to track requirements. 
> The requirements for cellular system features were done in the hierarchical 
> milspec fashion of 1.1.2, 1.1.2.1, 1.1.2.2, etc. so it seemed that a database 
> with inheritance, etc. would fit. Ah well, another fine idea tried before its 
> time - the user interface and development platform was all a bunch of command 
> line stuff and it was clumsy trying to get it to connect to all the other 
> bits and pieces of the organization. I ended up throwing together a 4D 
> system, serve it to some web pages and declaring victory.
> 
> Fast forward, I _love_ the idea of dot notation. This seems like 4D could be 
> getting back to its sweet spot of being able to generate an application/web 
> app/client server db by small groups or single developers. Trying to build an 
> integrated app using one (usually many cobbled together) of the javascript 
> frameworks for android/ios/electron to get the full combination of platforms 
> desired along with all of the fun, maybe-secure, maybe-maintained, node 
> libraries and who knows what else dependencies is a ticket to a failed 
> business plan.

Something that may not be immediately obvious is that using ORDA will reduce 
the amount of code needed to query the database. In relational databases you 
have to query this table, join to another table, query selection, relate many, 
etc. We are all used to doing this and we need to know exactly what the 
database structure is. What table is the one table, what table is the many 
table, is there a many-to-many intermediate table we need to deal with, etc. 

ORDA can remove the need to know this level of detail in many cases. By naming 
relations in a “logical” way you can write code to get the “manager” of an 
employee, or get the “direct reports" for an employee. And from that you can 
then further filter the results by using a “query” member function. You let the 
4D database figure out if it needs to relate many selection, or relate one 
selection for you. And you can make these named relations very complex if you 
want. There is a lot of power here that is just starting to be exposed. 

We have not even started to talk about the super powerful “member functions". 
“Query” is a common one used on a database class or “entity selection”. 
Terminology is still new to me so I may not be using the right words. But we 
will be able, in the future, to create our own “member functions”. So it can do 
much more complex things than the built in member functions like “minimum”, 
“sum”, “average”, etc.

Tim

Tim Nevels 
timnev...@mac.com 
Innovative Solutions
785-749-3444


**
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: 4D Summit 2018 Comments

2018-04-09 Thread Tom Swenson via 4D_Tech
Tim,

Nice writeup! Makes me sorry that I couldn't fit in time to attend the Summit 
this year.

I'll toss in a bit of history - "object" databases. It was a concept that kind 
of flared up back in the 90s but didn't get any market traction.

For instance, way back when I was working at Motorola, we tried to use an 
object database called O2 (example at 
http://www.db.ucsd.edu/static/cse132b-sp01/o2.pdf) to track requirements. The 
requirements for cellular system features were done in the hierarchical milspec 
fashion of 1.1.2, 1.1.2.1, 1.1.2.2, etc. so it seemed that a database with 
inheritance, etc. would fit. Ah well, another fine idea tried before its time - 
the user interface and development platform was all a bunch of command line 
stuff and it was clumsy trying to get it to connect to all the other bits and 
pieces of the organization. I ended up throwing together a 4D system, serve it 
to some web pages and declaring victory.

Fast forward, I _love_ the idea of dot notation. This seems like 4D could be 
getting back to its sweet spot of being able to generate an application/web 
app/client server db by small groups or single developers. Trying to build an 
integrated app using one (usually many cobbled together) of the javascript 
frameworks for android/ios/electron to get the full combination of platforms 
desired along with all of the fun, maybe-secure, maybe-maintained, node 
libraries and who knows what else dependencies is a ticket to a failed business 
plan.

Tom Swenson

On 4/9/18, 10:06 AM, "4D_Tech on behalf of Tim Nevels via 4D_Tech" 
<4d_tech-boun...@lists.4d.com on behalf of 4d_tech@lists.4d.com> wrote:

I got back from 4D Summit 2018 in Washington DC and thought I’d post a few 
of my thoughts and comments about this year’s summit. 



**
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: 4D Summit 2018 Comments

2018-04-09 Thread Jim Dorrance via 4D_Tech
Thanks
-- 
Jim Dorrance
jim.dorra...@gmail.com
4...@dorrance.eu
www.4d.dorrance.eu

PS: If you know of anyone that needs an experienced 4D programmer to add
energy and experience to their team, please let me know. I have
experience in many areas. Reasonable rates. Remote or Paris only.
**
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: 4D Summit 2018 Comments

2018-04-09 Thread rooftop99--- via 4D_Tech
As one not able to attend the Summit this year - Thank You Tim!  Excellent 
information, easy read.

Kirk

> On Apr 9, 2018, at 7:06 AM, Tim Nevels via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I got back from 4D Summit 2018 in Washington DC and thought I’d post a few of 
> my thoughts and comments about this year’s summit. 
> 
> I went to JPR’s advanced class and he made a statement at the end that I 
> think really sums of 4D v17. He said this is the biggest update in the 
> history of 4D. Bigger than 4D v3 and 4D Server v1 with multiple processes and 
> windows. And v17 is only the beginning of the changes that are coming.
> 
> There are more features and changes that are far along in development that 
> will be released in v17 R releases and in v18 that will position 4D as the 
> premier, cross-platform RAD package combining an integrated client/server 
> database that has a ORDA interface. There is nothing out there can come close 
> to it. Particularly when you realize this is a cross-platform solution. 
> Compiled, native macOS and Windows versions of a piece of software from the 
> same source code. Integrated, powerful client/server database included. The 
> same piece of software can run as a single-user application or as a 
> client/server application. Tell me who else is doing that? And don’t forget 
> “4D for iOS” as the delicious cherry on top! We’ve got a software application 
> development system that is going to be very hard to beat. 
> 
> What is ORDA? It is not a “a historical sociopolitical and military structure 
> of Mongol Eurasia”. This is a new term that 4D has created. It stands for 
> Object Relational Database Access. I’m guessing in a few years if you Google 
> ORDA that will be for number one link.
> 
> ORDA is coming to the 4D language. That is why we have the “dot notation” 
> option for the method editor. It is needed for ORDA. I think a quick way to 
> summarize ORDA is to say “if you know how Wakanda did database access with 
> JavaScript that is what ORDA is in the 4D programming language”. 4D is 
> bringing the advanced object oriented database access that Wakanda has to 4D. 
> This is going to change the way you will WANT to program in 4D.
> 
> I say “want” because if you are happy using the 4D language the way it is now 
> and has been for 25+ years you are free to continue to do that. JPR calls it 
> “classic 4D”. It will continue to work exactly as it has before.  But if you 
> use the new ORDA method you will reap many benefits. Easier to read code, 
> fewer lines of code, complete control of exactly what relations are used 
> between tables to retrieve data and big speed improvements. That’s right, 
> using ORDA to accomplish a relational database lookup and data retrieve task 
> can in many situations be much faster than doing the same thing with a series 
> of “classic” 4D language commands. So for all you “speed hounds”, you are 
> going to want to use ORDA. (Side note: when Laurent designed the 4D v11 
> database engine he had in mind ORDA and planned for the optimizations. This 
> thing has been in development for many, many years.)
> 
> If you have used Wakanda or know how it accesses the 4D database in an object 
> oriented way, you already know how to use ORDA in 4D. That’s because it uses 
> basically same syntax as Wakanda. In my opinion this the beginning of 
> bringing all that is great about Wakanda and making it an integral part of 
> 4D. Use it if you want, or ignore it and continue to use the classic 
> programing language. Or use them both. You have a choice.
> 
> When I heard about the 4D Summit Advanced class and that JPR would also 
> joined by Laurent I knew something special was coming to 4D. (Laurent had to 
> be there because the subject matter was so new and broad that JPR would not 
> have answers to all questions. And that turned out to be true.) I thought 
> they were going to introduce a new language to 4D. JavaScript for 4D. My 
> visions were that there would be “Begin JavaScript” and “End JavaScript” 
> commands like they “Begin SQL” and “End SQL” commands that would let you 
> write JavaScript and do fancy things like you can do in Wakanda with 
> JavaScript. I was wrong. There is no JavaScript support in 4D, and there 
> probably never be — outside of web areas. 
> 
> Many, many changes to the 4D language are coming. I sat at a table with 
> Laurent and some other 4D developers at lunch one day and Laurent said the 
> new 4D language will be “JavaScript inspired”. He intends to add features to 
> the 4D language so that it will be even better than JavaScript! Inheritance, 
> error handling, custom data classes and the list goes on and on. The days of 
> the 4D language not getting updated are over. The changes are just getting 
> started. Reminds me of that movie where the character says “Badges? we don’t 
> need no stinking badges”. JavaScript? We don’t need no stinking JavaScript. 
> We are going to have something better. 

Re: 4D Summit 2018 Comments

2018-04-09 Thread Lee Hinde via 4D_Tech
Nice write up, Tim. Thanks!

> On Apr 9, 2018, at 7:06 AM, Tim Nevels via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> I got back from 4D Summit 2018 in Washington DC and thought I’d post a few of 
> my thoughts and comments about this year’s summit. 
> 
> I went to JPR’s advanced class and he made a statement at the end that I 
> think really sums of 4D v17. He said this is the biggest update in the 
> history of 4D. Bigger than 4D v3 and 4D Server v1 with multiple processes and 
> windows. And v17 is only the beginning of the changes that are coming.
> 
> There are more features and changes that are far along in development that 
> will be released in v17 R releases and in v18 that will position 4D as the 
> premier, cross-platform RAD package combining an integrated client/server 
> database that has a ORDA interface. There is nothing out there can come close 
> to it. Particularly when you realize this is a cross-platform solution. 
> Compiled, native macOS and Windows versions of a piece of software from the 
> same source code. Integrated, powerful client/server database included. The 
> same piece of software can run as a single-user application or as a 
> client/server application. Tell me who else is doing that? And don’t forget 
> “4D for iOS” as the delicious cherry on top! We’ve got a software application 
> development system that is going to be very hard to beat. 
> 
> What is ORDA? It is not a “a historical sociopolitical and military structure 
> of Mongol Eurasia”. This is a new term that 4D has created. It stands for 
> Object Relational Database Access. I’m guessing in a few years if you Google 
> ORDA that will be for number one link.
> 
> ORDA is coming to the 4D language. That is why we have the “dot notation” 
> option for the method editor. It is needed for ORDA. I think a quick way to 
> summarize ORDA is to say “if you know how Wakanda did database access with 
> JavaScript that is what ORDA is in the 4D programming language”. 4D is 
> bringing the advanced object oriented database access that Wakanda has to 4D. 
> This is going to change the way you will WANT to program in 4D.
> 
> I say “want” because if you are happy using the 4D language the way it is now 
> and has been for 25+ years you are free to continue to do that. JPR calls it 
> “classic 4D”. It will continue to work exactly as it has before.  But if you 
> use the new ORDA method you will reap many benefits. Easier to read code, 
> fewer lines of code, complete control of exactly what relations are used 
> between tables to retrieve data and big speed improvements. That’s right, 
> using ORDA to accomplish a relational database lookup and data retrieve task 
> can in many situations be much faster than doing the same thing with a series 
> of “classic” 4D language commands. So for all you “speed hounds”, you are 
> going to want to use ORDA. (Side note: when Laurent designed the 4D v11 
> database engine he had in mind ORDA and planned for the optimizations. This 
> thing has been in development for many, many years.)
> 
> If you have used Wakanda or know how it accesses the 4D database in an object 
> oriented way, you already know how to use ORDA in 4D. That’s because it uses 
> basically same syntax as Wakanda. In my opinion this the beginning of 
> bringing all that is great about Wakanda and making it an integral part of 
> 4D. Use it if you want, or ignore it and continue to use the classic 
> programing language. Or use them both. You have a choice.
> 
> When I heard about the 4D Summit Advanced class and that JPR would also 
> joined by Laurent I knew something special was coming to 4D. (Laurent had to 
> be there because the subject matter was so new and broad that JPR would not 
> have answers to all questions. And that turned out to be true.) I thought 
> they were going to introduce a new language to 4D. JavaScript for 4D. My 
> visions were that there would be “Begin JavaScript” and “End JavaScript” 
> commands like they “Begin SQL” and “End SQL” commands that would let you 
> write JavaScript and do fancy things like you can do in Wakanda with 
> JavaScript. I was wrong. There is no JavaScript support in 4D, and there 
> probably never be — outside of web areas. 
> 
> Many, many changes to the 4D language are coming. I sat at a table with 
> Laurent and some other 4D developers at lunch one day and Laurent said the 
> new 4D language will be “JavaScript inspired”. He intends to add features to 
> the 4D language so that it will be even better than JavaScript! Inheritance, 
> error handling, custom data classes and the list goes on and on. The days of 
> the 4D language not getting updated are over. The changes are just getting 
> started. Reminds me of that movie where the character says “Badges? we don’t 
> need no stinking badges”. JavaScript? We don’t need no stinking JavaScript. 
> We are going to have something better. This is good news!
> 
> One example of a change in the 4D language is the “For 

4D Summit 2018 Comments

2018-04-09 Thread Tim Nevels via 4D_Tech
I got back from 4D Summit 2018 in Washington DC and thought I’d post a few of 
my thoughts and comments about this year’s summit. 

I went to JPR’s advanced class and he made a statement at the end that I think 
really sums of 4D v17. He said this is the biggest update in the history of 4D. 
Bigger than 4D v3 and 4D Server v1 with multiple processes and windows. And v17 
is only the beginning of the changes that are coming.

There are more features and changes that are far along in development that will 
be released in v17 R releases and in v18 that will position 4D as the premier, 
cross-platform RAD package combining an integrated client/server database that 
has a ORDA interface. There is nothing out there can come close to it. 
Particularly when you realize this is a cross-platform solution. Compiled, 
native macOS and Windows versions of a piece of software from the same source 
code. Integrated, powerful client/server database included. The same piece of 
software can run as a single-user application or as a client/server 
application. Tell me who else is doing that? And don’t forget “4D for iOS” as 
the delicious cherry on top! We’ve got a software application development 
system that is going to be very hard to beat. 

What is ORDA? It is not a “a historical sociopolitical and military structure 
of Mongol Eurasia”. This is a new term that 4D has created. It stands for 
Object Relational Database Access. I’m guessing in a few years if you Google 
ORDA that will be for number one link.

ORDA is coming to the 4D language. That is why we have the “dot notation” 
option for the method editor. It is needed for ORDA. I think a quick way to 
summarize ORDA is to say “if you know how Wakanda did database access with 
JavaScript that is what ORDA is in the 4D programming language”. 4D is bringing 
the advanced object oriented database access that Wakanda has to 4D. This is 
going to change the way you will WANT to program in 4D.

I say “want” because if you are happy using the 4D language the way it is now 
and has been for 25+ years you are free to continue to do that. JPR calls it 
“classic 4D”. It will continue to work exactly as it has before.  But if you 
use the new ORDA method you will reap many benefits. Easier to read code, fewer 
lines of code, complete control of exactly what relations are used between 
tables to retrieve data and big speed improvements. That’s right, using ORDA to 
accomplish a relational database lookup and data retrieve task can in many 
situations be much faster than doing the same thing with a series of “classic” 
4D language commands. So for all you “speed hounds”, you are going to want to 
use ORDA. (Side note: when Laurent designed the 4D v11 database engine he had 
in mind ORDA and planned for the optimizations. This thing has been in 
development for many, many years.)

If you have used Wakanda or know how it accesses the 4D database in an object 
oriented way, you already know how to use ORDA in 4D. That’s because it uses 
basically same syntax as Wakanda. In my opinion this the beginning of bringing 
all that is great about Wakanda and making it an integral part of 4D. Use it if 
you want, or ignore it and continue to use the classic programing language. Or 
use them both. You have a choice.

When I heard about the 4D Summit Advanced class and that JPR would also joined 
by Laurent I knew something special was coming to 4D. (Laurent had to be there 
because the subject matter was so new and broad that JPR would not have answers 
to all questions. And that turned out to be true.) I thought they were going to 
introduce a new language to 4D. JavaScript for 4D. My visions were that there 
would be “Begin JavaScript” and “End JavaScript” commands like they “Begin SQL” 
and “End SQL” commands that would let you write JavaScript and do fancy things 
like you can do in Wakanda with JavaScript. I was wrong. There is no JavaScript 
support in 4D, and there probably never be — outside of web areas. 

Many, many changes to the 4D language are coming. I sat at a table with Laurent 
and some other 4D developers at lunch one day and Laurent said the new 4D 
language will be “JavaScript inspired”. He intends to add features to the 4D 
language so that it will be even better than JavaScript! Inheritance, error 
handling, custom data classes and the list goes on and on. The days of the 4D 
language not getting updated are over. The changes are just getting started. 
Reminds me of that movie where the character says “Badges? we don’t need no 
stinking badges”. JavaScript? We don’t need no stinking JavaScript. We are 
going to have something better. This is good news!

One example of a change in the 4D language is the “For each” loop control 
structure. Super useful and needed when dealing with objects and containers. 
More is coming. The doors to the 4D Engineer’s cages in France have been opened 
and they are going to begin running wild attacking problems and limitations we 
have had