Ok Alex, I'm trying to create a basic test with Jewel and MX RO. First problem I get is that "symbol" tag inside mx:arguments is not recognized
This tag could not be resolved to an ActionScript class. It will be ignored. Maybe it's only recognized in MX environment? if so could it be enhanced to be valid in Jewel? In the other hand, I wasn't able to build mxroyale example RO with maven. Only can be build with ANT, don't know why. thanks El jue., 11 oct. 2018 a las 18:48, Alex Harui (<aha...@adobe.com.invalid>) escribió: > I don't think RemoteObject is a bead. See the example at > examples/mxroyale/RemoteObjectAMFTest. > > I got the ServerConfig error as well but it didn't seem to affect the > example's bin/js-debug version. > > You might want to actually build your test setup with Flex so you know it > "will" work. For example, you did not show any of your code that setup an > Operation called "someMethod" so the error you got would be expected even > in Flex. > > Thanks, > -Alex > > On 10/11/18, 4:47 AM, "Carlos Rovira" <carlosrov...@apache.org> wrote: > > Hi Alex, > > I tried to use MX RO but doesn't work. Here's what the info of this > test: > > Code: > > to make a quick test I put this code to run at "initComplete" event: > > private function prepareChannelSet(event:Event):void > { > var amfEndpoint:String = " > http://localhost:8080/webapp/messagebroker/my-amf"; > > > var channelSet:ChannelSet = new ChannelSet(); > var channel:AMFChannel = new AMFChannel("my-amf", amfEndpoint); > channelSet.addChannel(channel); > service.channelSet = channelSet; > } > > > I add the MX RO as a bead > > <j:beads> > <mx:RemoteObject id="service" > result="onResult(event)" > fault="onFault(event)" > destination = "myDestination"/> > </j:beads> > > > After compilation (successful) I get the following trace that should be > fixed: > > > */Users/carlosrovira/Dev/Codeoscopic/Source/sgc/webapp/src/main/webapp/javascript/bin/js-debug/App.js* > *end of list of source files* > *oct 11, 2018 1:33:04 PM > com.google.javascript.jscomp.LoggerErrorManager > println* > *ADVERTENCIA: > > /Users/carlosrovira/Dev/Codeoscopic/Source/sgc/webapp/src/main/webapp/javascript/bin/js-debug/mx/rpc/remoting/Operation.js:103: > WARNING - Bad type annotation. extra @override/@inheritDoc tag. See > > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fgoogle%2Fclosure-compiler%2Fwiki%2FBad-Type-Annotation&data=02%7C01%7Caharui%40adobe.com%7Cc9d88800eac54470516c08d62f6f611f%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748552749104312&sdata=amVdMLEOdxGJJQl28VLNxpJRO92Hj3tdARUAvfQxois%3D&reserved=0 > < > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fgoogle%2Fclosure-compiler%2Fwiki%2FBad-Type-Annotation&data=02%7C01%7Caharui%40adobe.com%7Cc9d88800eac54470516c08d62f6f611f%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748552749104312&sdata=amVdMLEOdxGJJQl28VLNxpJRO92Hj3tdARUAvfQxois%3D&reserved=0> > for > more information.* > * * @override* > * ^* > > *oct 11, 2018 1:33:04 PM > com.google.javascript.jscomp.LoggerErrorManager > println* > *ADVERTENCIA: > > /Users/carlosrovira/Dev/Codeoscopic/Source/sgc/webapp/src/main/webapp/javascript/bin/js-debug/mx/rpc/remoting/Operation.js:150: > WARNING - Bad type annotation. extra @override/@inheritDoc tag. See > > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fgoogle%2Fclosure-compiler%2Fwiki%2FBad-Type-Annotation&data=02%7C01%7Caharui%40adobe.com%7Cc9d88800eac54470516c08d62f6f611f%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748552749104312&sdata=amVdMLEOdxGJJQl28VLNxpJRO92Hj3tdARUAvfQxois%3D&reserved=0 > < > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fgoogle%2Fclosure-compiler%2Fwiki%2FBad-Type-Annotation&data=02%7C01%7Caharui%40adobe.com%7Cc9d88800eac54470516c08d62f6f611f%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748552749104312&sdata=amVdMLEOdxGJJQl28VLNxpJRO92Hj3tdARUAvfQxois%3D&reserved=0> > for > more information.* > * * @override* > * ^* > > *oct 11, 2018 1:33:04 PM > com.google.javascript.jscomp.LoggerErrorManager > println* > *GRAVE: > > /Users/carlosrovira/Dev/Codeoscopic/Source/sgc/webapp/src/main/webapp/javascript/bin/js-debug/mx/messaging/config/ServerConfig.js:333: > ERROR - Parse error. invalid assignment target* > * mx.messaging.config.ServerConfig["xml"].child("default-channels") > = > newServices.child("default-channels");* > * > ^* > > *oct 11, 2018 1:33:04 PM > com.google.javascript.jscomp.LoggerErrorManager > printSummary* > *ADVERTENCIA: 1 error(s), 2 warning(s)* > *The project 'App' has been successfully compiled and optimized.* > > > Then the problems at Runtime. Trying to call a method in the service > like > this: > > *service.someMethod(someParam);* > > I get in browser console this error: > > *TypeError: this.service.someMethod is not a function. (In > 'this.service.someMethod(someParam)', 'this.service.someMethod' is > undefined)* > > > Congratulations, I you are mostly at 99% to get official MX > RemoteObject > working :) > > Carlos > > > > > El jue., 11 oct. 2018 a las 12:41, Carlos Rovira (< > carlosrov...@apache.org>) > escribió: > > > Hi Alex, > > > > strangely, now build is passing locally...can't figure why yesterday > it > > was failing...maybe part of the build was in the change of day at > > 00:00...just speculating.. > > > > I'll try to put mx RO to work and see I see and report :) > > > > > > El jue., 11 oct. 2018 a las 12:18, Carlos Rovira (< > carlosrov...@apache.org>) > > escribió: > > > >> Hi Alex, > >> > >> yes, I always compile first compiler, then typedefs and last asjs. > >> I'll try again. Maybe the maven-prepare-release could be doing > making > >> some problem with the change of version 0.9.4 to 0.9.5? > >> > >> El jue., 11 oct. 2018 a las 9:30, Alex Harui > (<aha...@adobe.com.invalid>) > >> escribió: > >> > >>> I can't reproduce the failure. It worked on builds.a.o as well. > Did > >>> you run mvn on the compiler first? > >>> > >>> -Alex > >>> > >>> On 10/10/18, 4:38 PM, "Carlos Rovira" <carlosrov...@apache.org> > wrote: > >>> > >>> I must close for today, tomorrow will try to change net RO for > mx RO > >>> if you > >>> finally get this build error fixed. > >>> > >>> Thanks > >>> > >>> Carlos > >>> > >>> > >>> El mié., 10 oct. 2018 a las 23:34, Carlos Rovira (< > >>> carlosrov...@apache.org>) > >>> escribió: > >>> > >>> > That's great Alex! :) > >>> > > >>> > I want to try it but I found the following error building > with > >>> maven: > >>> > > >>> > > >>> > [*INFO*] *----------------< > *org.apache.royale.framework:MXRoyale* > >>> > >----------------* > >>> > > >>> > [*INFO*] *Building Apache Royale: Framework: Libs: MXRoyale > >>> > 0.9.4-SNAPSHOT [32/118]* > >>> > > >>> > [*INFO*] *--------------------------------[ swc > >>> > ]---------------------------------* > >>> > > >>> > [*INFO*] > >>> > > >>> > [*INFO*] *--- *maven-clean-plugin:3.0.0:clean > *(default-clean)* @ > >>> MXRoyale* > >>> > ---* > >>> > > >>> > [*INFO*] > >>> > > >>> > [*INFO*] *--- > *royale-maven-plugin:0.9.4-SNAPSHOT:generate-extern > >>> > *(default-generate-extern)* @ MXRoyale* ---* > >>> > > >>> > [*INFO*] > >>> > > >>> > [*INFO*] *--- *maven-remote-resources-plugin:1.5:process > >>> > *(process-resource-bundles)* @ MXRoyale* ---* > >>> > > >>> > [*INFO*] > >>> > > >>> > [*INFO*] *--- *maven-resources-plugin:2.7:resources > >>> *(default-resources)* > >>> > @ MXRoyale* ---* > >>> > > >>> > [*INFO*] Using 'UTF-8' encoding to copy filtered resources. > >>> > > >>> > [*INFO*] Copying 3 resources > >>> > > >>> > [*INFO*] Copying 3 resources > >>> > > >>> > [*INFO*] > >>> > > >>> > [*INFO*] *--- *royale-maven-plugin:0.9.4-SNAPSHOT:compile-as > >>> > *(default-compile-as)* @ MXRoyale* ---* > >>> > > >>> > [*INFO*] Executing COMPC in tool group Royale with args: > >>> > > >>> > [-load-config=/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/MXRoyale/target/compile-swf-config.xml, > >>> > -js-compiler-define=COMPILE::JS,true, > >>> > -js-compiler-define=COMPILE::SWF,false, > >>> > -js-compiler-define=GOOG::DEBUG,goog.DEBUG, > >>> > -js-compiler-define=ROYALE::DISPLAYOBJECT,IUIComponent, > >>> > -compiler.targets=SWF,JSRoyale, -compiler.strict-xml=true] > >>> > > >>> > args: > >>> > > >>> > > >>> > > >>> > -load-config=/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/MXRoyale/target/compile-swf-config.xml > >>> > > >>> > -js-compiler-define=COMPILE::JS,true > >>> > > >>> > -js-compiler-define=COMPILE::SWF,false > >>> > > >>> > -js-compiler-define=GOOG::DEBUG,goog.DEBUG > >>> > > >>> > -js-compiler-define=ROYALE::DISPLAYOBJECT,IUIComponent > >>> > > >>> > -compiler.targets=SWF,JSRoyale > >>> > > >>> > -compiler.strict-xml=true > >>> > > >>> > target:SWF > >>> > > >>> > target:JSRoyale > >>> > > >>> > COMPC > >>> > > >>> > Loading configuration: > >>> > > >>> > /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/MXRoyale/target/compile-swf-config.xml > >>> > > >>> > > >>> > Error: Unexpected exception 'java.lang.NullPointerException'. > >>> > > >>> > > >>> > > >>> > Unexpected exception 'java.lang.NullPointerException'. > >>> > > >>> > > >>> > ... > >>> > > >>> > [*INFO*] Apache Royale: Framework: Libs: RoyaleSite ......... > >>> *SUCCESS* > >>> > [ 0.771 s] > >>> > > >>> > [*INFO*] Apache Royale: Framework: Libs: MXRoyale ........... > >>> *FAILURE* > >>> > [ 1.529 s] > >>> > > >>> > [*INFO*] Apache Royale: Framework: Libs: Icons .............. > >>> *SKIPPED* > >>> > > >>> > [*INFO*] Apache Royale: Framework: Libs: SparkRoyale ........ > >>> *SKIPPED* > >>> > > >>> > I'm trying to build with the 2 commits of the latest failed > release > >>> > reverted to build 0.9.4. (I think we should revert those > since, I > >>> suppose > >>> > are not valid now). > >>> > > >>> > Thanks > >>> > > >>> > > >>> > > >>> > El mié., 10 oct. 2018 a las 21:41, Alex Harui > >>> (<aha...@adobe.com.invalid>) > >>> > escribió: > >>> > > >>> >> We especially want the RemoteObject in Network.swc to be > PAYG. MX > >>> >> RemoteObject was never PAYG. > >>> >> > >>> >> Having looked at the code more, I see what you are saying > about > >>> Operation > >>> >> not having its own fault and result handlers. It looks like > >>> there already > >>> >> is a SimpleOperation, so Operation could introduce its own > fault > >>> and result > >>> >> handlers. > >>> >> > >>> >> FWIW, I just pushed the changes to the compiler and > emulation > >>> code that > >>> >> got MX RemoteObject to work. So that could be an option for > >>> you. I'm sure > >>> >> there might be bugs remaining to be fixed, but there is > quite a > >>> bit of old > >>> >> Flex code that is now running pretty much unchanged. > >>> >> > >>> >> -Alex > >>> >> > >>> >> On 10/10/18, 2:33 AM, "Carlos Rovira" < > carlosrov...@apache.org> > >>> wrote: > >>> >> > >>> >> Hi Alex > >>> >> > >>> >> El mar., 9 oct. 2018 a las 18:14, Alex Harui > >>> >> (<aha...@adobe.com.invalid>) > >>> >> escribió: > >>> >> > >>> >> > As long as Responders are PAYG and not baked into the > basic > >>> RO > >>> >> > implementation, it is fine for others to try to > replicate > >>> subsets > >>> >> of MX > >>> >> > RemoteObject, but it still seems like duplication of > effort. > >>> >> > > >>> >> > >>> >> well, I'm talking not about MX RO, bur the current one > we > >>> have in > >>> >> Network.swc that is working. > >>> >> > >>> >> That means is not a duplicate effort, take into account > that > >>> I'm > >>> >> right now > >>> >> coding a real world Apache Royale application, and need > to > >>> get the > >>> >> work > >>> >> done. I expect this could be a win for this project > since is > >>> an > >>> >> important > >>> >> project and an important client that are betting for > Apache > >>> Royale :). > >>> >> > >>> >> > >>> >> > > >>> >> > That said, I have not used RO or Responders in any > real > >>> world > >>> >> application > >>> >> > myself. I'm not sure I understand the need for them > vs > >>> just adding > >>> >> more > >>> >> > listeners to the result and fault event. > >>> >> > > >>> >> > >>> >> Each RO use to have several Operations (aka methods > that we > >>> want to > >>> >> call in > >>> >> the backend). In real world scenarios, we want each RO > >>> callback logic > >>> >> will > >>> >> be unique. If I call a service for a user list, I want > to > >>> fill the > >>> >> list in > >>> >> royale, but if I want to ask for a concrete user data, > I want > >>> to fill > >>> >> a > >>> >> form with that data. > >>> >> > >>> >> Now, all Operations will be throw a result event and > therefor > >>> all > >>> >> listeners > >>> >> will fire, executing all methods. With listeners, we > can use > >>> >> if-then-else > >>> >> to and some logic to execute parts of the listener, but > a > >>> Responder > >>> >> implementation, should make the appropriate responder be > >>> executed. > >>> >> > >>> >> In order to structure and organizar a real world > application > >>> that is > >>> >> a bit > >>> >> complex this is needed to separate all this logic across > >>> files. > >>> >> (In a tiny application, you can use the if-then-else > approach > >>> since > >>> >> is more > >>> >> like a example). > >>> >> > >>> >> > >>> >> > >>> >> > > >>> >> > My 2 cents, > >>> >> > -Alex > >>> >> > > >>> >> > On 10/9/18, 3:46 AM, "Carlos Rovira" < > >>> carlosrov...@apache.org> > >>> >> wrote: > >>> >> > > >>> >> > Hi Piotr, > >>> >> > > >>> >> > I think if I get some improvement over the > current RO > >>> with > >>> >> Responders > >>> >> > that > >>> >> > could go to develop. Other thing is I tried to > make it > >>> work in > >>> >> mx RO. > >>> >> > People using Royale RO will benefit from it. If > some > >>> day mx RO > >>> >> is > >>> >> > ready, I > >>> >> > think we'll shift to mx RO, although royale RO > could be > >>> >> continue to be > >>> >> > valid (since is a small implementation that > works), or > >>> we could > >>> >> decide > >>> >> > deprecate it. Anyway, I'm not talking to make > >>> improvements over > >>> >> > something > >>> >> > that others will evolve separately, I want to > improve > >>> something > >>> >> that > >>> >> > otherwise will remain as is. > >>> >> > > >>> >> > > >>> >> > > >>> >> > El mar., 9 oct. 2018 a las 12:39, Piotr Zarzycki > (< > >>> >> > piotrzarzyck...@gmail.com>) > >>> >> > escribió: > >>> >> > > >>> >> > > Carlos, > >>> >> > > > >>> >> > > You can always use branch, make your changes > and wait > >>> for the > >>> >> proper > >>> >> > one > >>> >> > > using branch. Some time ago Harbs did it the > same as > >>> far as I > >>> >> > remember. > >>> >> > > There is no need to wait if you need something > ASAP. > >>> >> > > > >>> >> > > Thanks, > >>> >> > > Piotr > >>> >> > > > >>> >> > > wt., 9 paź 2018 o 12:36 Carlos Rovira < > >>> >> carlosrov...@apache.org> > >>> >> > > napisał(a): > >>> >> > > > >>> >> > > > Hi Alex, > >>> >> > > > > >>> >> > > > since there's no planned ETA for anyone here > (that > >>> I know), > >>> >> I > >>> >> > could try > >>> >> > > at > >>> >> > > > some point to have a minimal Responder > >>> functionality in the > >>> >> current > >>> >> > > working > >>> >> > > > RO. Does not have sense to duplicate all the > code > >>> but I > >>> >> think has > >>> >> > sense > >>> >> > > to > >>> >> > > > see if some little changes can provide the > minimal > >>> needs. > >>> >> > > > > >>> >> > > > thanks > >>> >> > > > > >>> >> > > > > >>> >> > > > > >>> >> > > > El mar., 9 oct. 2018 a las 0:25, Alex Harui > >>> >> > (<aha...@adobe.com.invalid>) > >>> >> > > > escribió: > >>> >> > > > > >>> >> > > > > I think you'll have to wait until someone > gets > >>> all of the > >>> >> old > >>> >> > Flex RO > >>> >> > > > code > >>> >> > > > > to compile and run. I'm currently still > >>> debugging the > >>> >> compiler, > >>> >> > so no > >>> >> > > > way > >>> >> > > > > it will be ready tomorrow. > >>> >> > > > > > >>> >> > > > > It doesn't make sense to try to duplicate > all of > >>> this > >>> >> code and > >>> >> > get it > >>> >> > > to > >>> >> > > > > work some other way. > >>> >> > > > > > >>> >> > > > > -Alex > >>> >> > > > > > >>> >> > > > > On 10/8/18, 3:21 PM, "Carlos Rovira" < > >>> >> carlosrov...@apache.org> > >>> >> > wrote: > >>> >> > > > > > >>> >> > > > > Hi Alex, > >>> >> > > > > > >>> >> > > > > I'm closing for today, but tomorrow > I'll need > >>> to > >>> >> handle more > >>> >> > than > >>> >> > > one > >>> >> > > > > Responder for RemoteObject calls, so > each > >>> >> operation/method > >>> >> > can have > >>> >> > > > > it's > >>> >> > > > > own responder and create methods for > each one > >>> in my > >>> >> > controllers. > >>> >> > > with > >>> >> > > > > the > >>> >> > > > > current RemoteObject implementation > could you > >>> share > >>> >> what > >>> >> > could be > >>> >> > > the > >>> >> > > > > most > >>> >> > > > > quick and easy way to get this while > the full > >>> RO > >>> >> > implementation is > >>> >> > > on > >>> >> > > > > the > >>> >> > > > > works? Now that I'm starting to grow > the app > >>> code > >>> >> base I can > >>> >> > rely > >>> >> > > on > >>> >> > > > a > >>> >> > > > > result handler full of if-then-else > >>> >> > > > > > >>> >> > > > > Thanks for any help on this > >>> >> > > > > > >>> >> > > > > Carlos > >>> >> > > > > > >>> >> > > > > > >>> >> > > > > > >>> >> > > > > > >>> >> > > > > El lun., 8 oct. 2018 a las 18:52, Carlos > >>> Rovira (< > >>> >> > > > > carlosrov...@apache.org>) > >>> >> > > > > escribió: > >>> >> > > > > > >>> >> > > > > > Ok Alex, thanks, didn't know that you > have > >>> this > >>> >> task to > >>> >> > make it > >>> >> > > > work > >>> >> > > > > RO. I > >>> >> > > > > > though you only try to compile it. > >>> >> > > > > > That's good to know. I'm trying right > now > >>> to make a > >>> >> real > >>> >> > world > >>> >> > > app > >>> >> > > > > and > >>> >> > > > > > since I don't have a micro structural > IOC > >>> framework > >>> >> like > >>> >> > Swiz, > >>> >> > > that > >>> >> > > > > was > >>> >> > > > > > that I use in Flex, I'm trying to > structure > >>> and > >>> >> organize > >>> >> > screens, > >>> >> > > > > > controllers, delegates, and so on, > and I'm > >>> trying > >>> >> to put > >>> >> > things > >>> >> > > as > >>> >> > > > > easy as > >>> >> > > > > > possible so I can refactor more later > to > >>> something > >>> >> more > >>> >> > suited > >>> >> > > for > >>> >> > > > > this > >>> >> > > > > > task, since I don't have time now to > build a > >>> >> framework for > >>> >> > this > >>> >> > > due > >>> >> > > > > to > >>> >> > > > > > reduced time lines. > >>> >> > > > > > > >>> >> > > > > > If you get this RO proxy way to call > backend > >>> >> methods and > >>> >> > > > AsyncToken, > >>> >> > > > > > that's what I need to connect with MX > >>> RemoteObject > >>> >> in the > >>> >> > same > >>> >> > > way > >>> >> > > > > we use > >>> >> > > > > > to do. > >>> >> > > > > > > >>> >> > > > > > I'll be waiting for your. progress > there > >>> >> > > > > > > >>> >> > > > > > thanks > >>> >> > > > > > > >>> >> > > > > > Carlos > >>> >> > > > > > > >>> >> > > > > > > >>> >> > > > > > > >>> >> > > > > > > >>> >> > > > > > > >>> >> > > > > > > >>> >> > > > > > El lun., 8 oct. 2018 a las 17:28, > Alex Harui > >>> >> > > > > (<aha...@adobe.com.invalid>) > >>> >> > > > > > escribió: > >>> >> > > > > > > >>> >> > > > > >> I believe I already said I am > working on > >>> >> RemoteObject. > >>> >> > > > > >> > >>> >> > > > > >> The Flex compiler generates custom > code for > >>> >> > mx:RemoteObject. > >>> >> > > The > >>> >> > > > > Royale > >>> >> > > > > >> Compiler currently does not. I am > working > >>> on it. > >>> >> > > > > >> > >>> >> > > > > >> Thanks, > >>> >> > > > > >> -Alex > >>> >> > > > > >> > >>> >> > > > > >> On 10/8/18, 3:13 AM, "Carlos Rovira" > < > >>> >> > carlosrov...@apache.org> > >>> >> > > > > wrote: > >>> >> > > > > >> > >>> >> > > > > >> Hi, > >>> >> > > > > >> > >>> >> > > > > >> I was experimenting trying to get > >>> RemoteObject > >>> >> to > >>> >> > proxy > >>> >> > > method > >>> >> > > > > calls. > >>> >> > > > > >> > >>> >> > > > > >> so instead of doing > >>> >> > > > > >> > >>> >> > > > > >> service.send("echo", > [name_txt.text]); > >>> >> > > > > >> > >>> >> > > > > >> be able to do: > >>> >> > > > > >> > >>> >> > > > > >> service.echo(name_txt.text); > >>> >> > > > > >> > >>> >> > > > > >> I tried with Proxy class > >>> >> > > > > >> > >>> >> > > > > >> (org.apache.royale.utils.Proxy) > >>> >> > > > > >> > >>> >> > > > > >> and implementing > IEventDispatcher, but > >>> >> compiler throws > >>> >> > > error: > >>> >> > > > > >> > >>> >> > > > > >> Call to a possibly undefined > method > >>> echo > >>> >> through a > >>> >> > reference > >>> >> > > > > with > >>> >> > > > > >> static > >>> >> > > > > >> type RemoteObject. > >>> >> > > > > >> > >>> >> > > > > >> It's possible to do something > like > >>> this? what > >>> >> I'm > >>> >> > missing? > >>> >> > > > > >> > >>> >> > > > > >> This seems a little enhancement, > but > >>> it would > >>> >> be cool > >>> >> > if we > >>> >> > > > get > >>> >> > > > > it in > >>> >> > > > > >> order > >>> >> > > > > >> to be more near of the normal > syntax > >>> we all > >>> >> have in > >>> >> > our code > >>> >> > > > > bases. > >>> >> > > > > >> > >>> >> > > > > >> thanks > >>> >> > > > > >> > >>> >> > > > > >> -- > >>> >> > > > > >> Carlos Rovira > >>> >> > > > > >> > >>> >> > > > > >> > >>> >> > > > > > >>> >> > > > > >>> >> > > > >>> >> > > >>> >> > >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Cc9d88800eac54470516c08d62f6f611f%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748552749104312&sdata=407cmARvA38%2BzfR24AXytje3%2FhK5Op0G2jrCunTURsg%3D&reserved=0 > >>> >> > > > > >> > >>> >> > > > > >> > >>> >> > > > > >> > >>> >> > > > > > > >>> >> > > > > > -- > >>> >> > > > > > Carlos Rovira > >>> >> > > > > > > >>> >> > > > > > >>> >> > > > > >>> >> > > > >>> >> > > >>> >> > >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Cc9d88800eac54470516c08d62f6f611f%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748552749104312&sdata=407cmARvA38%2BzfR24AXytje3%2FhK5Op0G2jrCunTURsg%3D&reserved=0 > >>> >> > > > > > > >>> >> > > > > > > >>> >> > > > > > >>> >> > > > > -- > >>> >> > > > > Carlos Rovira > >>> >> > > > > > >>> >> > > > > > >>> >> > > > > >>> >> > > > >>> >> > > >>> >> > >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Cc9d88800eac54470516c08d62f6f611f%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748552749114321&sdata=7hBkqCKylKPb2%2BgvslLQy4IeLF8YaUBOQrcc%2BFUbtLM%3D&reserved=0 > >>> >> > > > > > >>> >> > > > > > >>> >> > > > > > >>> >> > > > > >>> >> > > > -- > >>> >> > > > Carlos Rovira > >>> >> > > > > >>> >> > > >>> >> > >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Cc9d88800eac54470516c08d62f6f611f%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748552749114321&sdata=7hBkqCKylKPb2%2BgvslLQy4IeLF8YaUBOQrcc%2BFUbtLM%3D&reserved=0 > >>> >> > > > > >>> >> > > > >>> >> > > > >>> >> > > -- > >>> >> > > > >>> >> > > Piotr Zarzycki > >>> >> > > > >>> >> > > Patreon: * > >>> >> > > >>> >> > >>> > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Cc9d88800eac54470516c08d62f6f611f%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748552749114321&sdata=wM%2BPK3cCW9orJQjOX8gLM2GdohXQM7q7xtIKddKpevk%3D&reserved=0 > >>> >> > > < > >>> >> > > >>> >> > >>> > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Cc9d88800eac54470516c08d62f6f611f%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748552749114321&sdata=wM%2BPK3cCW9orJQjOX8gLM2GdohXQM7q7xtIKddKpevk%3D&reserved=0 > >>> >> > >* > >>> >> > > > >>> >> > > >>> >> > > >>> >> > -- > >>> >> > Carlos Rovira > >>> >> > > >>> >> > > >>> >> > >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Cc9d88800eac54470516c08d62f6f611f%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748552749114321&sdata=7hBkqCKylKPb2%2BgvslLQy4IeLF8YaUBOQrcc%2BFUbtLM%3D&reserved=0 > >>> >> > > >>> >> > > >>> >> > > >>> >> > >>> >> -- > >>> >> Carlos Rovira > >>> >> > >>> >> > >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Cc9d88800eac54470516c08d62f6f611f%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748552749114321&sdata=7hBkqCKylKPb2%2BgvslLQy4IeLF8YaUBOQrcc%2BFUbtLM%3D&reserved=0 > >>> >> > >>> >> > >>> >> > >>> > > >>> > -- > >>> > Carlos Rovira > >>> > > >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Cc9d88800eac54470516c08d62f6f611f%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748552749114321&sdata=7hBkqCKylKPb2%2BgvslLQy4IeLF8YaUBOQrcc%2BFUbtLM%3D&reserved=0 > >>> > > >>> > > >>> > >>> -- > >>> Carlos Rovira > >>> > >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Cc9d88800eac54470516c08d62f6f611f%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748552749114321&sdata=7hBkqCKylKPb2%2BgvslLQy4IeLF8YaUBOQrcc%2BFUbtLM%3D&reserved=0 > >>> > >>> > >>> > >> > >> -- > >> Carlos Rovira > >> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Cc9d88800eac54470516c08d62f6f611f%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748552749114321&sdata=7hBkqCKylKPb2%2BgvslLQy4IeLF8YaUBOQrcc%2BFUbtLM%3D&reserved=0 > >> > >> > > > > -- > > Carlos Rovira > > > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Cc9d88800eac54470516c08d62f6f611f%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748552749114321&sdata=7hBkqCKylKPb2%2BgvslLQy4IeLF8YaUBOQrcc%2BFUbtLM%3D&reserved=0 > > > > > > -- > Carlos Rovira > > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Cc9d88800eac54470516c08d62f6f611f%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636748552749114321&sdata=7hBkqCKylKPb2%2BgvslLQy4IeLF8YaUBOQrcc%2BFUbtLM%3D&reserved=0 > > > -- Carlos Rovira http://about.me/carlosrovira