We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
  • The modx team has been discussing some ideas on terminology for features and functions inside the new modx Revolution. There are a lot of new features and concepts to get your head around and we want to ensure modx is easy to use while balancing that with accuracy in naming.

    First of all, you need to download and install the current release of modx Revolution (alpha-4 as of this post) and start playing with the manager, developing documents.

    At this stage I don’t want to distract from the need to report bugs and file patches but in the interests aligning all elements it is important to make sure we can all understand what each feature/function does.
      Author of zero books. Formerly of many strange things. Pairs well with meats. Conversations are magical experiences. He's dangerous around code but a markup magician. BlogTwitterLinkedInGitHub
      • 28215
      • 4,149 Posts

      On the package builder process, I’d still like to make the build script (which is now the user-interface for package building, since the GUI is out). I do have one suggestion and some more ideas. One is trivial: Change $builder->create() to $builder->createPackage().
      Dang, wish I would have gotten this before I made a screencast. Yeah, that’s a good suggestion. Mind JIRA’ing it?


      I can live with “vehicle” and haven’t been able to come up with anything better since my replacement ideas won’t work. I’d still like to do something about “resolver” though. It’s such a general term that it could have been used as the name for a package, or a vehicle, or a lot of other things in MODx. I thought of “passenger” which still isn’t great but might be better since the user can imagine a passenger with a bundle of files in his or her lap or a set of instructions to follow when the vehicle arrives.

      Hmm. Have to dwell on that for a while. Passenger would work with file resolvers, but that gets confusing with PHP Script resolvers. They both seem like they need explanation, and if that’s the case, resolver semantically makes more sense. Thoughts?

      In another approach, if the resolver object could be a member of package instead of vehicle, I think it might be possible to hide it from the user as I suggested before, but that may not be feasible.
      Unfortunately, it cannot - resolvers have to be attached to vehicles, as different vehicles might handle resolvers differently. Users won’t really see resolvers anyway - only developers making the packages will.


      P.S. Screencast on how to create a package transport coming soon.
        shaun mccormick | bigcommerce mgr of software engineering, former modx co-architect | github | splittingred.com
        • 3749
        • 24,544 Posts
        Quote from: splittingred at Oct 02, 2008, 06:54 PM


        On the package builder process, I’d still like to make the build script (which is now the user-interface for package building, since the GUI is out). I do have one suggestion and some more ideas. One is trivial: Change $builder->create() to $builder->createPackage().
        Dang, wish I would have gotten this before I made a screencast. Yeah, that’s a good suggestion. Mind JIRA’ing it?

        Done.

        PS: Developer’s are users too.  wink

        PPS: I was thinking that passengers could "carry" files to install when the vehicle arrives, but they could also carry sets of instructions (i.e. scripts) that they execute on arrival. And there’s no question that the word "passenger" has a closer association with "vehicle."  It makes sense that "passengers" need to be attached to "vehicles," something I was slow to grasp about "resolvers."




          Did I help you? Buy me a beer
          Get my Book: MODX:The Official Guide
          MODX info for everyone: http://bobsguides.com/modx.html
          My MODX Extras
          Bob's Guides is now hosted at A2 MODX Hosting
        • Quote from: BobRay at Oct 02, 2008, 07:37 PM

          PPS: I was thinking that passengers could "carry" files to install when the vehicle arrives, but they could also carry sets of instructions (i.e. scripts) that they execute on arrival. And there’s no question that the word "passenger" has a closer association with "vehicle."  It makes sense that "passengers" need to be attached to "vehicles," something I was slow to grasp about "resolvers."
          There are two special features available in vehicles, both of which can be "passengers" so to speak, though they are all scripts (think of file resolvers as PHP resolvers already coded to handle the job of copying files into place):
          [*] Vehicle Validators - these are evaluated after an object is deserialized, or "loaded", from the vehicle, but before anything else is done with it; returning false from a validator will stop any further processing of the object.
          [*] Vehicle Resolvers - these are evaluated after the object has been processed (i.e. inserted, updated, etc.), even if the object already exists and optional attributes indicate it should not be updated.
          Does that help better clarify their meaning?
            • 3749
            • 24,544 Posts
            Quote from: OpenGeek at Oct 02, 2008, 08:15 PM

            Quote from: BobRay at Oct 02, 2008, 07:37 PM

            PPS: I was thinking that passengers could "carry" files to install when the vehicle arrives, but they could also carry sets of instructions (i.e. scripts) that they execute on arrival. And there’s no question that the word "passenger" has a closer association with "vehicle."  It makes sense that "passengers" need to be attached to "vehicles," something I was slow to grasp about "resolvers."
            [*] Vehicle Validators - these are evaluated after an object is deserialized, or "loaded", from the vehicle, but before anything else is done with it; returning false from a validator will stop any further processing of the object.
            [*] Vehicle Resolvers - these are evaluated after the object has been processed (i.e. inserted, updated, etc.), even if the object already exists and optional attributes indicate it should not be updated.
            Does that help better clarify their meaning?

            Validators -- yes. Resolvers -- not so much, for me anyway.  If an object exists and should not be updated, what kinds of things would a resolver be likely to do?

            More on the use of "resolver":

            From Answers.com:
            Resolver - vt.

            To make a firm decision about.
            To cause (a person) to reach a decision. See synonyms at decide.
            To decide or express by formal vote.
            To change or convert: My resentment resolved itself into resignation.
            To find a solution to; solve. See synonyms at solve.
            To remove or dispel (doubts).
            To bring to a usually successful conclusion: resolve a conflict.
            Medicine. To cause reduction of (an inflammation, for example).
            Music. To cause (a tone or chord) to progress from dissonance to consonance.
            Chemistry. To separate (an optically inactive compound or mixture) into its optically active constituents.
            To render parts of (an image) visible and distinct.
            Mathematics. To separate (a vector, for example) into coordinate components.
            To melt or dissolve (something).
            Archaic. To separate (something) into constituent parts.

            Wikipedia is even less helpful: http://en.wikipedia.org/wiki/Resolver

            It’s a stretch, IMO, to tie our usage to any of these "real world" definitions, especially since the closest meanings imply a specific conflict or ambiguity that needs to be resolved.

            Just a thought: If "passenger" isn’t a good choice (and I think it has its problems too), maybe we could replace "resolver" with several entities like "VehicleValidator," "VehicleFileTransport" and "VehicleScriptTransport" (fileCarrier?, fileMover?) in the front end (by which I mean the build script). It’s much more obvious what those would do.

              Did I help you? Buy me a beer
              Get my Book: MODX:The Official Guide
              MODX info for everyone: http://bobsguides.com/modx.html
              My MODX Extras
              Bob's Guides is now hosted at A2 MODX Hosting
            • Hmm, IMO, Resolver is the most concise term for the generic concept. This definition nails it for me:
              To bring to a usually successful conclusion: resolve a conflict.
                • 28215
                • 4,149 Posts
                Re: resolver/passenger...

                I kind of like Passenger, and then maybe instead of validator, CheckEngineLight?

                (Just kidding about that last one.)

                I do like Passenger, and I guess it would work in that context, but Validator would need a meme as well, and to agree with Jason - resolver does work as a definition in this context: it resolves the files to their proper location, and resolves the scripts that are included with it.

                Either Passenger/Resolver is fine, however, and both loosely work. If we’re going to go the passenger route, then we need to extend the theme and make all the packaging stuff have driving metaphors, imo.
                  shaun mccormick | bigcommerce mgr of software engineering, former modx co-architect | github | splittingred.com
                • Quote from: OpenGeek at Oct 02, 2008, 09:32 PM

                  Hmm, IMO, Resolver is the most concise term for the generic concept. This definition nails it for me:
                  To bring to a usually successful conclusion: resolve a conflict.
                  Does that by extension then imply that Resolvers are associated with something some consider a negative: conflict or a problem or a sticky situation?

                  Also for the benefit of others that might be reading this cold, would a definition of what a "Vehicle" is in the first place and how they’re used possibly be beneficial?

                    Ryan Thrash, MODX Co-Founder
                    Follow me on Twitter at @rthrash or catch my occasional unofficial thoughts at thrash.me
                  • Quote from: rthrash at Oct 02, 2008, 10:37 PM

                    Does that by extension then imply that Resolvers are associated with something some consider a negative: conflict or a problem or a sticky situation?
                    No, it implies that it will "resolve" any potential problems (i.e. missing files or dependent data records, or whatever). We could call them Harvey Keitels or the Wolves, or maybe the "Cleaners", but I thought resolution was a more neutral approach. laugh

                    Quote from: rthrash at Oct 02, 2008, 10:37 PM

                    Also for the benefit of others that might be reading this cold, would a definition of what a "Vehicle" is in the first place and how they’re used possibly be beneficial?
                    A Vehicle is a container which holds an object inside a Transport Package. Think of them as vans being pulled into a cargo hull, each containing an important member of a team (each full of validation and resolve) which can be intelligently deployed when it arrives at it’s destination.
                      • 7231
                      • 4,205 Posts
                      Resolver, Vehicle, Passenger, Validator? Where can I get a decoder ring tongue
                      Sorry, but you guys are light years over my head, I feel like I am still in the kiddie pool.
                      Just a thought: If "passenger" isn’t a good choice (and I think it has its problems too), maybe we could replace "resolver" with several entities like "VehicleValidator," "VehicleFileTransport" and "VehicleScriptTransport" (fileCarrier?, fileMover?) in the front end (by which I mean the build script). It’s much more obvious what those would do.
                      This principal seems to make sense to me (if the name could say as much as possible it helps to understand). I don’t really know what you are discussing, but when I read something like "VehicleFileTransport" it seems to make sense to me. I guess that you need to ask if this needs to make sense to more advanced coders or to the general coding public (like jQuery vs MooTools). Anyway I may be way off rolleyes
                        [font=Verdana]Shane Sponagle | [wiki] Snippet Call Anatomy | MODx Developer Blog | [nettuts] Working With a Content Management Framework: MODx

                        Something is happening here, but you don't know what it is.
                        Do you, Mr. Jones? - [bob dylan]