Re: 4D World Tour - Denver
Ditto to what everyone else has already said about the 4D World Tour 2017 in Denver. Sorry I’m late posting, but all I can add is the knowledge and advice gained from the training is “priceless.” The ROI is off the charts. All the presenters were well prepared and explained a lot of the new features of v16 with excellent demos. Even the “new” guy. ;) Add was great as usual and JPR is JPR. :) It was great seeing several of the old timers and some new, much younger, developers as well! BTW, the term JPR used for the “hypothetical” new version of 4D was it, hypothetically, will be a “quantum leap.” Also, you better be all over C_OBJECT. Floyd Zink QMed Corporation ** 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: 4D World Tour - Denver
Sorry, I failed to mention, but of course, JPR's "poof" was in an eelven on a scale of one to ten! Tom Dillon wrote: >I know I'm late to this and that there's only the one World Tour event >left (I had a three day, drinking from a firehose client meeting after >the WT). BUT, I thought about not going, because, ya know, maybe JPR >might have lost some of the perk in his "poof, it is done". And I don't >have enough time to practice how to pronounce Add Komoncharoensiri (I >have trouble with double letters). But, learning what I did about >workers and, in particular, a better way of doing modular form design, >made it more than worth it. > >I know, it's tomorrow and I probably can't make most of the first day! >Do it anyway. You'll thank me, and everyone else who posted about the >World Tour, probably with a beer at the next 4D Summit. -- -- Tom Dillon 825 N. 500 W. DataCraft Moab, UT 84532 tomdil...@datacraft-inc.com 720/209-6502 -- Never apologize for a joke that nobody realized was dirty. --- Sunastar -- ** 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: 4D World Tour - Denver
I know I'm late to this and that there's only the one World Tour event left (I had a three day, drinking from a firehose client meeting after the WT). BUT, I thought about not going, because, ya know, maybe JPR might have lost some of the perk in his "poof, it is done". And I don't have enough time to practice how to pronounce Add Komoncharoensiri (I have trouble with double letters). But, learning what I did about workers and, in particular, a better way of doing modular form design, made it more than worth it. I know, it's tomorrow and I probably can't make most of the first day! Do it anyway. You'll thank me, and everyone else who posted about the World Tour, probably with a beer at the next 4D Summit. -- -- Tom Dillon 825 N. 500 W. DataCraft Moab, UT 84532 tomdil...@datacraft-inc.com 720/209-6502 -- Even on a road with no turns you can head out across the open field. --- Sunastar -- ** 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: 4D World Tour - Denver
On May 5, 2017, at 2:00 PM, David Adams wrote: > You seem excited about the event ;-) Keep in mind that not everyone can > attend because they either live to far away, have a scheduling conflict, or > are reading these posts in the future. Unless they invent a time travel > machine, it won't be possible to attend...Ultimately, if information isn't > in the docs (language ref, tech notes, tips, recorded sessions, etc.), it's > easily lost or ignored. I was trying to be silly, not serious. I guess I should have put a :) next to my post. And I am excited about the 2018 4D Summit. JPR says it is going to be big. He provided no details except for one little hint. So as not to offend and keep anything secret here is his comment. If you are using periods in variable names, you might want to stop doing that. You take from that comment whatever you want. I think I know what it coming and it’s something we had a discussion about in the last month here on the iNUG. Something that will definitely be interested in. But that’s just my opinion and speculation. It will be April 2018 before we all know for sure what is coming. And they also mentioned that the 4D Summit in Paris next year will also be done in English and French with translators available in all sessions. So if you can’t make it to America… there’s always France. > As far as the sequence of events goes, it's basic information that should > be in the documentation. There's nothing advanced about it and it's nothing > that should be secret. It's a bit of the mechanics that it's important to > understand so that you don't tie yourself in knots. Here's how it works > (I've posted it here before): > > * When you call Open window (etc.) a 'queue' is created. This is *before* > any form is shown. So, the queue is a property of the window, not the form. > > * You can post code blocks to the queue via CALL FORM *as soon as the > window reference is returned.* > > * ...but then there's no form context to execute the command(s) you've > supplied. > > * Once you open the form, On Load runs. *Your queued commands are still in > the queue.* > > * After On Load, the queued commands are executed in order. The code you > pass in through CALL FORM is held in a First In First Out structure. That's > what a queue is. 4D's CALL WORKER and CALL FORM are 100% reliable about > executing code in the sequence it was received. That's a promise and it > makes things a lot simpler than they might otherwise be. Since this is > FIFO, not truly asynchronous or a stack (LIFO), the code is executed in the > order that you sent it. You are correct. This is exactly how JPR described it. Tim Tim Nevels Innovative Solutions 785-749-3444 timnev...@mac.com ** 4D Internet Users Group (4D iNUG) FAQ: http://lists.4d.com/faqnug.html Archive: http://lists.4d.com/archives.html Options: http://lists.4d.com/mailman/options/4d_tech Unsub: mailto:4d_tech-unsubscr...@lists.4d.com **
Re: 4D World Tour - Denver
On May 5, 2017, at 2:00 PM,Cannon Smith wrote: > Well, I thought I was talking about workers in general, but that was under > the assumption that all processes have some kind of execution cycle. Are you > saying that a non-UI process (ex. pre-emptive thread) won’t have an execution > cycle? Sure workers have an execution cycle. They constantly look in their mailbox for any messages. As soon as there is one, it executes the method in the message. When the method finishes executing it checks the mailbox for any more messages if there are some, it get the next one off the queue and executes that method. That continues until the message queue is empty. As far as I know there are no delays in the execution cycle. The only delay is if there is already a method executing. If there is, then the worker waits until the method has finished. Then it gets the next message off the queue and executes that. Methods are executed one at a time and in the order they were received in the worker message queue. > In either case, the only place I can think of where this might matter is in a > worker process that has UI in it, so yes, CALL FORM is where the rubber meets > the road here. I was trying to be more exact, but maybe assumed too much? Yes that is what JPR was trying to get across. The only delayed action is to redraw the window of a form. Tim Tim Nevels Innovative Solutions 785-749-3444 timnev...@mac.com ** 4D Internet Users Group (4D iNUG) FAQ: http://lists.4d.com/faqnug.html Archive: http://lists.4d.com/archives.html Options: http://lists.4d.com/mailman/options/4d_tech Unsub: mailto:4d_tech-unsubscr...@lists.4d.com **
Re: 4D World Tour - Denver
Well, I thought I was talking about workers in general, but that was under the assumption that all processes have some kind of execution cycle. Are you saying that a non-UI process (ex. pre-emptive thread) won’t have an execution cycle? In either case, the only place I can think of where this might matter is in a worker process that has UI in it, so yes, CALL FORM is where the rubber meets the road here. I was trying to be more exact, but maybe assumed too much? -- Cannon.Smith Synergy Farm Solutions Inc. Hill Spring, AB Canada 403-626-3236> On May 4, 2017, at 1:46 PM, Tim Nevels via 4D_Tech <4d_tech@lists.4d.com> > wrote: > > I think you are talking about using CALL FORM and not about workers in > general. In the past if you did CALL FORM 10 times to the same form, it would > do a redraw after each CALL FORM and thus could cause some flickering. Now > when a windows starts dealing with a CALL FORM it handles all the CALL FORMs > and then at the end it does a screen redraw. ** 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: 4D World Tour - Denver
On May 4, 2017, at 2:00 PM,Cannon Smith wrote: > I also learned that in previous versions a worker would check for the next > message once per execution cycle. Right now that has changed so that the > worker will continue executing whatever it needs to empty the message queue > all in one event cycle. There are pros and cons each way (although I wish it > were the former way), but this can affect UI updating in some cases, so it is > good to be aware of. I think you are talking about using CALL FORM and not about workers in general. In the past if you did CALL FORM 10 times to the same form, it would do a redraw after each CALL FORM and thus could cause some flickering. Now when a windows starts dealing with a CALL FORM it handles all the CALL FORMs and then at the end it does a screen redraw. Tim Tim Nevels Innovative Solutions 785-749-3444 timnev...@mac.com ** 4D Internet Users Group (4D iNUG) FAQ: http://lists.4d.com/faqnug.html Archive: http://lists.4d.com/archives.html Options: http://lists.4d.com/mailman/options/4d_tech Unsub: mailto:4d_tech-unsubscr...@lists.4d.com **
Re: 4D World Tour - Denver
On May 4, 2017, at 12:21 PM,David Adams wrote: > Thanks for all of the details from your time at the tour, it sound really > great. I'm happy to see that CALL FORM and CALL WORKER are being promoted, > that's great. I strongly encourage everyone to try these features out. If > you can find 30-60 minutes when you've got the feeling to experiment, you > can master the basic mechanics. Several months later, I'm still sorting > through nuances ;-) The documentation on the basic commands is excellent, > although I find the overall 'about workers' page possibly more misleading > than clarifying. And this is where the 2nd day of the 4D World Tour and JPR’s presentation is so valuable. He spends a lot of time talking about the worker process system. The ideas behind how it works. The detail of when things happen. (Example: if you open a window and then do CALL FORM before you issues a DIALOG command, exactly what happens related to the form events? Not gonna tell you. Go to the 4D World Tour and let JPR tell you!) All this background information is so helpful. And because the meetings are small with less than 50 people, you can ask questions at any time. JPR also talks about “slicing” and “chunking” and why you need to use these techniques and provides examples of their use with workers. Important information needed so that your finished implementation using these new commands is smooth and polished. > I'm glad that Tim pointed out that these commands work in 32-bit and don't > require compilation to execute. I think that these commands may have come > out of 4D's work on making more of the language pre-emptive. That's > understandably lead to some conflation of the two subjects. Pre-emptive > mode and these new CALL commands can be treated as unrelated subjects. So > if you don't care about pre-emptive, you should still find out about these > commands - they're a vast improvement over past options. And for another clarification, you CAN have a worker generate a UI, open windows, etc. The caveat is you can only do this if the worker is interpreted, or the worker compiled but set to not running preemptively. You only get the illegal command error messages when compiling and you have set the method to run preemptively. (Reminds me of a Dirty Harry saying… “a man’s got to know his limitations.”) And 4D has had preemptive processes for a long time. They are now exposing this existing technology to developers for us to use. An example is the “DB4D Server" process running on the server. (And it could very well be that any process running on 4D Server with “State” of “Running” is a preemptive process. I didn’t ask JPR that question, I’m just guessing here.) Tim Tim Nevels Innovative Solutions 785-749-3444 timnev...@mac.com ** 4D Internet Users Group (4D iNUG) FAQ: http://lists.4d.com/faqnug.html Archive: http://lists.4d.com/archives.html Options: http://lists.4d.com/mailman/options/4d_tech Unsub: mailto:4d_tech-unsubscr...@lists.4d.com **
Re: 4D World Tour - Denver
I also just got back from the World Tour. It was great to see some of you again and the information was very helpful. Add had some great demos and JPR shared a lot of great information. One thing JPR helped me understand better is that a worker is basically just a process ready to do things. You can actually start a worker process without any method at all. It just starts and sits there waiting for you do ask it to do something. Maybe not helpful in real life, but knowing that helped me understand the concept better. I also learned that in previous versions a worker would check for the next message once per execution cycle. Right now that has changed so that the worker will continue executing whatever it needs to empty the message queue all in one event cycle. There are pros and cons each way (although I wish it were the former way), but this can affect UI updating in some cases, so it is good to be aware of. Thanks to 4D for putting the Tour on! -- Cannon.Smith Synergy Farm Solutions Inc. Hill Spring, AB Canada 403-626-3236** 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: 4D World Tour - Denver
David, I completely agree!!! Call Form and Call Worker are really more accurately named and described by your naming. > As a quick heads-up, I think that the most accurate names for these commands > are respectively: > > EXECUTE METHOD IN WINDOW > EXECUTE METHOD IN WORKER Thanks Justin Will ** 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: 4D World Tour - Denver
Tim, Thanks for all of the details from your time at the tour, it sound really great. I'm happy to see that CALL FORM and CALL WORKER are being promoted, that's great. I strongly encourage everyone to try these features out. If you can find 30-60 minutes when you've got the feeling to experiment, you can master the basic mechanics. Several months later, I'm still sorting through nuances ;-) The documentation on the basic commands is excellent, although I find the overall 'about workers' page possibly more misleading than clarifying. Seriously folks, jump in! Make a silly new database with one form and a few methods - that's all it takes to figure out the basics. After enough people are using these tools and familiar with their standard behaviors, we can start to exchange some better ideas about how best to use them. As a quick heads-up, I think that the most accurate names for these commands are respectively: EXECUTE METHOD IN WINDOW EXECUTE METHOD IN WORKER They not sending messages in any traditional sense, they moving code into a different context where it's executed. They're more like an unusual control structure or a remote procedure call than to a message. Although you can build a more traditional messaging system on top of these commands. By "traditional messaging", I mean computer-to-computer messaging, not person-to-person. (I've been into message-oriented, networked systems architectures for a long time - like many on this list.) So, yeah, dive in, try them out and have some fun. They're pretty neat. And there are some very nice advantages to using workers. Oh, and just as another couple of technical heads up: Any 4D code can *send* using the new commands, but only a window or a worker can *receive.* These are pure calls - there is no concept of a return, but you can add a callback if you're coming from a window or worker. The concept of the queue is of limited usefulness because we can't see it, control it, or change it in any sort of fine-grained way. I'm glad that Tim pointed out that these commands work in 32-bit and don't require compilation to execute. I think that these commands may have come out of 4D's work on making more of the language pre-emptive. That's understandably lead to some conflation of the two subjects. Pre-emptive mode and these new CALL commands can be treated as unrelated subjects. So if you don't care about pre-emptive, you should still find out about these commands - they're a vast improvement over past options. ** 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 **