Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook

Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

A new variable scope

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Re: A new variable scope

    Hello Ira,

    From what was posted, I understood everything you said. I don't think Gabe argued that it would work in a multi-user environment. However, it appeared to me that some were poo pooing his entire theory when it appears to me it would work in a single user environment. In fact, some really didn't seem to understand what he said. That is why I wrote my first response.

    My comment, "the jury is still out" referred to the single user environment. I should have point clear.

    Thank you for taking the time to respond.

    kenn
    TYVM :) kenn

    Knowing what you can achieve will not become reality until you imagine and explore.

    Comment


      Re: A new variable scope

      Ira:
      I am glad you had a revelation and found your seven keys because in your ealier posts you said:
      you could also store data in windows environment variables, but this memory space goes away when you shutdown windows, and also very often is not configured for sufficient space to hold much data in many (maybe most) computers.
      It would be nice if Alpha had provided an "Atomic" locking mechanism for code, but it does not, and that is why it is so difficult.
      and denoucing processing in RAM drive:
      Actually, I have. And surprisingly, Alpha 5 ran slower than with the hard drive. Explaining this is difficult, when it seems intuitively obvious that it should be the other way. I had tried several Ram disk drivers with similar results
      Unfortunately, Alpha 4, eide drives (and older OS's?) does not compare to DMA drives (now standard, although it wasn't in the past), Gigabytes of memory, extremely fast hard drives with caches etc. So it needs a revisit by many under various environments to validate my results. I'd love for it to turn out in Ram disks favor, but based upon my tests, wishing will not make it so.
      though the issue is simply updating a single variable.

      Ira, I don't wish to keep this up because from so many encounters in the past I have come to the conclusion that you and all members of the GOP will never ever acknowledge the fact that maybe just maybe someone thought of something you did not think of first. It is quite clear that you are very knowledgeable, I give you that. At least I have the decency to admit that and further admit that I am nowhere near as knowledgeable about programming as you are. Why? Because that's not what I have been doing for the last few decades. But what you are not able to see or admit, at least to yourself, is that knowledge in and by itself is not sufficient, and that innovation is not directly propertionate to knowledge or merely and solely based on the quantity of knowledge.

      Now as we all know the laws of physics always apply. To every action there is a reaction. When each and every time you go on trying to shoot down my plane before even understanding fully what I am talking about, guess what? I am not going to fly too many planes. Hope that makes you happy. And also as a matter of reaction to your and others' actions, I have recently posted several zip file examples without showing the code. I am waiting for you or any member of the GOP to match it. You haven't! It's been a while now, so are you going to put all this knowledge to good use and match these examples? Or are we going to hear way too many information that does not answer any questions?

      In case you wonder what is the GOP, it's the "Gabriel Opposition Party".

      Comment


        Re: A new variable scope

        G,

        I have long touted you for being highly knowledgable and an innovative thinker...and have even supported you on occasion but enough is enough. Whatever respect I may have had for you is gone. For you to "tease" people who have no direct part in your "reaction", by leaving out the method in which you have apparently (I say apparently as without seeing what was done does not show it was done per request) solved the problem is unwarranted and just plain mean spirited.

        Just stop. I, for one, can do without the knowledge that comes with such a high price as you demand.
        Mike
        __________________________________________
        It is only when we forget all our learning that we begin to know.
        It's not what you look at that matters, it's what you see.
        Henry David Thoreau
        __________________________________________



        Comment


          Re: A new variable scope

          It's not mean spirited nor meant to be. I have always offered many examples in the past freely and without any expectations. But this none stop assail is getting to me. I am tired of having to keep responding to meaningless debates and was only hoping to put an end to this once and for all.

          Comment


            Re: A new variable scope

            Yes G, but something changed--don't you remember that you deleted ALL your samples a while ago? All the images, zip files, etc which leaves all your past helpfulness nonexistant really now doesn't it? And I expect the same again in the near future...a regular pattern is emerging. Too bad really. I really was hoping your last tirade was not going to be repeated but see no indication of that by your recent actions.

            I'm sure many will agree that "a mind is a terrible thing to waste".

            I only responded again to make sure any newcomers realize just what you have done...and what you continue to do... so that their expectations of you are of something that you are able to accommodate.
            Mike
            __________________________________________
            It is only when we forget all our learning that we begin to know.
            It's not what you look at that matters, it's what you see.
            Henry David Thoreau
            __________________________________________



            Comment


              Re: A new variable scope

              Originally posted by G Gabriel View Post
              It's not mean spirited nor meant to be. I have always offered many examples in the past freely and without any expectations. But this none stop assail is getting to me. I am tired of having to keep responding to meaningless debates and was only hoping to put an end to this once and for all.
              You initialize that with the first step that you take inward.
              Al Buchholz
              Bookwood Systems, LTD
              Weekly QReportBuilder Webinars Thursday 1 pm CST

              Occam's Razor - KISS
              Normalize till it hurts - De-normalize till it works.
              Advice offered and questions asked in the spirit of learning how to fish is better than someone giving you a fish.
              When we triage a problem it is much easier to read sample systems than to read a mind.
              "Make it as simple as possible, but not simpler."
              Albert Einstein

              http://www.iadn.com/images/media/iadn_member.png

              Comment


                Re: A new variable scope

                Yes G, but something changed--don't you remember that you deleted ALL your samples a while ago? All the images, zip files, etc which leaves all your past helpfulness nonexistant really now doesn't it?
                No not really. Whenever the occasion rose, I redid them. Plus, these are things from the past; there are many newer ways to do things that I have adopted since. And further, my tirade was mainly directed towards alpha. Mike, if you are going to come so strong condemning me and "exposing me" to the whole world, at least try to get the facts first.

                Why was I mad at alpha?
                Unlike many, I don't just go on a rampage reflexively. But when I get fed up, I do. There were several occasions where alpha deleted my posts where I felt it was inappropriate of them to do so. To give you a simple example, in one thread two Croatian guys were going back and forth talking to each other in Croatian. I said this is an English-Speaking board, please put your replies in English. They continued to chat in Croatian. I wrote: enough of this already! And sent an email to alpha to remove that thread. We don't know what these guys are saying, do we? Instead, Alpha deleted my post and kept theirs! Well, that didn't bother me all that much, but then in few other threads, they did the same thing deleting my responses and when you read the thread after the deletion you come to the conclusion that I am an idiot.

                So, in my response to alpha I basically said, OK, If you are going to selectively delete my replies, at least do the honorable thing and delete the whole thing or I will do it for you.

                I later received an apology from alpha in a private message!
                Last edited by G Gabriel; 12-16-2007, 08:50 AM.

                Comment


                  Re: A new variable scope

                  Originally posted by Al Buchholz View Post
                  You initialize that with the first step that you take inward.
                  OK Al. Of course and as this thread and others show, I am the one to blame. This thread could have been over many moons ago!

                  Comment


                    Re: A new variable scope

                    I have particularly enjoyed listening to well respected developers argue points back and forth. To quote Mike C in a comment to Gabe, "Always enjoy your somewhat sideways twist on things...many times being just so simplistic that others skim over without even seeing them." That is very true in this instance.

                    None the less, I thought it was a great discussion, at least until the comment, 'Dead embrace' was made. I wasn't sure of the meaning but I took it to mean the author was making a point that Gabe was embracing a point of view that would go nowhere. That was not in good taste and pushed Gabe's button.

                    I also think some comments were made with a bit of attitude towards Gabe. I'm not saying the attitude is not justified. What I am saying is this: We ought to be careful that we respond to the issue and not the person. Attacking the person only breeds ill feelings as this and past threads have proved. Some are still harboring ill feelings which, when not dealt with in a positive manner, will only fester and at some point, resurface in an even uglier manner as it did in this thread.

                    In summary, I see positives and negatives on both sides, not just with the subject but in how both sides responded. Sometimes, because of our personalities, we say things in a tone that others see as offensive but we have no clue.

                    It would be most helpful to all who participate in this forum, if those involved in this thread, myself included, would take the time to carefully review this thread and genuinely ask themselves, "Could it be that I said something that offended another, even though I didn't think I did or I believed I was justified"?. For me, if anyone believes I have said something to offend, please send me a private email and let me know what it is and why. It WILL be dealt with in a professional manner.

                    Thanks,

                    kenn
                    TYVM :) kenn

                    Knowing what you can achieve will not become reality until you imagine and explore.

                    Comment


                      Re: A new variable scope

                      Ken:
                      I believe deadly embrace in computer jargon refers to a situation where two scripts hogs the table at the same time.

                      Here is a better definition than my chicken leg definition:

                      An example of a deadlock occurs frequently in database products. Client applications using the database may require exclusive access to a given table, and in order to gain exclusive access they ask for a lock. If two client applications both attempt to lock the same table at the same time, neither will receive it, there is no general way to decide who to give the lock to. In this case both clients will wait for the lock forever.

                      A slightly different definition describes when two tables are locked sumiltaneously.

                      It's like when you walk down the street and come face to face with someone and you turn one way to avoid him while he turns the same way, then you turn the other way and he does the same thing and it goes on indefinetly.

                      The interesting part is deadly embrace if it occurs it will occur with physical tables, NOT when updating a variable in memory (although concievably it can), less argument for using tables. Will it occur with attempting to save a script? maybe, but I doubt it. If right before saving the script you set a global flag to off, that would prevent the other user attempting to save at the same exact nanosecond from saving. What if the two users set the flag to off at the same nanosecond? neither will be able to save but then you could re-attmept at intervals and if you make the intervals different from user to user even by split seconds, that ought to prevent this locking.

                      Ready for more aesoteric terms? how about "conversion lock"
                      Last edited by G Gabriel; 12-16-2007, 06:39 PM.

                      Comment


                        Re: A new variable scope

                        Hi Kenn,

                        Originally posted by forskare View Post
                        II thought it was a great discussion, at least until the comment, 'Dead embrace' was made.
                        I believe John was expressing his delight in learning a new computer term of "Deadly Embrace"

                        Deadly embrace is locking issues taken to the next level (locking is the process of handing off 1 resource without regard for other resources). It is where one process (a session or thread in Alpha 5) is using 1 or more resources (e.g. a table record in change mode), and requires a resource (such as a child record) that another process has control of. In the mean time, that 2nd process requires a resource that the 1st process already has. They both wait forever for a resource that is never coming.

                        And as you add more processes to the mix, each could be waiting for resources from others and all end up waiting. Nothing gets done

                        This is similar to sending packets on the network. If everyone keeps trying to send, no data gets through. But if each gives up their use of the network for a random time, they all have a chance of getting their data through on the network.

                        The economic genius John Nash's theories also have key applicability to this.

                        Under controlled circumstances, deadly embrace can be handled properly, but never solved generically.
                        Regards,

                        Ira J. Perlow
                        Computer Systems Design


                        CSDA A5 Products
                        New - Free CSDA DiagInfo - v1.39, 30 Apr 2013
                        CSDA Barcode Functions

                        CSDA Code Utility
                        CSDA Screen Capture


                        Comment


                          Re: A new variable scope

                          Well, what do ya know about that? I'd not heard that term before and not doubt there are at least a few others. So, I owe John Zan apology.

                          "John, I apologize for not getting clarification of what you meant by Deadly Embrace. Used in the context of this thread, it is very appropriate."

                          kenn
                          TYVM :) kenn

                          Knowing what you can achieve will not become reality until you imagine and explore.

                          Comment


                            Re: A new variable scope

                            I think this thread could be used to pump Alpha toward a newer way for them to alocate some memory from the server environment. It would have to be a seperate memory entity than the local environment as I see it.

                            I just hope some of the Alpha people see this and further hope it can be done. It would be a novel way to get the results G describes.

                            In Short, I LIKE it!!!

                            what would be wrong with loading a script into a memory space? I believe I have heard Alpha reads a script repeatedly in some situations. Yes it is fast, but that would be faster.

                            Dave
                            Dave Mason
                            [email protected]
                            Skype is dave.mason46

                            Comment


                              Re: A new variable scope

                              Hi Dave,

                              Originally posted by DaveM View Post
                              I think this thread could be used to pump Alpha toward a newer way for them to alocate some memory from the server environment. It would have to be a seperate memory entity than the local environment as I see it.

                              I just hope some of the Alpha people see this and further hope it can be done.
                              Functions to do this are already there (although not quite as simple as declaring a variable and using it), although with the downside of modifying a data dictionary, IMHO, a bad idea in general. And if you simply distribute updated data dictionaries, those data dictionary values are toast.

                              So if you'd like to dynamically mess with your data dictionaries, the functions include
                              A5.WRITE_SETTING( Setting_Name as C, Value as C )
                              A5.READ_SETTING( Setting_Name as C )
                              and it's big brother versions
                              A5_LOAD_SETTINGS( Setting_Name as C, Dot_Variable as P [, Dictionary_Name as C ] )
                              A5_SAVE_SETTINGS( Setting_Name as C, Dot_Variable as P [, Dictionary as C ] )
                              A5_DELETE_SETTINGS( Setting_Name as C [, Dictionary as C ])
                              If you'd like to mess up your Windows registry, we also have these functions (although at least these are only available to a single user)
                              REGISTRY.LOAD_SETTINGS( Registry_Key as C, Dot_Variable as P )
                              REGISTRY.SAVE_SETTINGS( Registry_Key as C, Dot_Variable as C )
                              REGISTRY.DROP_SETTINGS( Registry_Key as C )
                              But if you really want to just waste more time, and slow things down, then use
                              SCRIPT_LOAD( Script_Name as C [, Password as C ] )
                              SCRIPT_SAVE(C script_name,C script_code[,C Password])
                              which have a 48 byte automatic overhead in size for even a zero length of code, and have a much higher overhead in the read and write process to a data dictionary (when you write the script, Alpha attempts a compile of the script code which accounts for the long write times, but loads are slower too).

                              And all of the above are not locked during the change process (you can't keep them in change mode while reading the current value as in a table), which means they absolutely will all eventually fail in any normal multi-user (or multi-process) environment.

                              Or you could do the identical type operations with a special data table, and be a whole lot faster, multi-user and safer from corruption. I know what I'd choose.

                              Originally posted by DaveM View Post
                              what would be wrong with loading a script into a memory space? I believe I have heard Alpha reads a script repeatedly in some situations. Yes it is fast, but that would be faster.
                              Alpha 5 already caches script code execution in memory. But if you use scripts like data, you potentially invalidate the mechanism that does the caching, as data caching is different from "read-only" type caching (but it depends on Alpha Five's caching algorithm). Anyway you look at it though, you cause more cache flushing, slowing all of Alpha's script execution.
                              Regards,

                              Ira J. Perlow
                              Computer Systems Design


                              CSDA A5 Products
                              New - Free CSDA DiagInfo - v1.39, 30 Apr 2013
                              CSDA Barcode Functions

                              CSDA Code Utility
                              CSDA Screen Capture


                              Comment


                                Re: A new variable scope

                                And all of the above are not locked during the change process (you can't keep them in change mode while reading the current value as in a table),
                                Ira:
                                Let me repeat in case you missed it:
                                You do not need to load the script in order to save the new one.

                                Comment

                                Working...
                                X