Hi Dimitri I’ve put it on the todo list to make .babelrc enable-able globally, probably as part of the Maker, so that should be done this weekend too
I did try Nashorn but I had non-trivial issues that I needed to look into - for example, I have a Rhino debugger I’ve written (think node-inspector, but my one is rhino-inspector) and I have to have server side debugging. I couldn’t find much information on how to connect to Nashorn for remote debugging, so couldn’t write a new debugger. (Rhino-inspector was something I was going to open source at one time but with Nashorn coming on the scene I wondered whether there was any point) Another problem I had was with Java 8 - trying to use Rhino in Java 8 caused conflicts with Rhino’s implementation of arrays vs Java8, because Rhino attempts to integrate the Java class with Javasacript and there are method conflicts. Again, it looked non-trivial and so I had to put it to one side and am sticking with Java 7 for now. John On 18/02/2016, 16:28, "Dimitri" <mi...@cargosoft.ru> wrote: >John, > >Tried recent version, everything seems to work now. .babelrc's are >ignored; it's no longer needed to symlink node_modules to the app and >contribs directories, "npm link async" in the project dir is >sufficient. However, I have to admit that .babelrc/.babelignore is a >useful mechanism, since (if it worked properly) it would allow to use >different Babel settings, or completely disable it, on a per-directory >basis. Ideally, the compiler should honour .babelrc/.babelignore *and* >pull all the presets and plugins from a single location, be it >qxcompiler/node_modules or /usr/lib/node_modules (as soon as NPM >packaging is ready). > >Re: database path - well done! is it safe to use a single shared db >file for a set of projects + particular qooxdoo version (provided that >no parallel compilations occur)? > >Wow, we are only one step away from production :) It will be pretty >easy for us to migrate to QxCompiler, since our setup is much simpler >than yours. It's a real-time communication application with pure JavaEE >backend and qooxdoo RIA frontend, so no (yet) JavaScript on server >side. > >Slightly offtopic: did you try Nashorn with your server-side? Should be >much faster and feature-rich. Besides, we are planning an opensource >project - JavaScript console for JavaEE with qooxdoo frontend a la >Playground. It would allow to author/run/manage server-side scripts, >with support for CDI injections, scheduled execution, user/system >script library etc. I'd like to ask you (and everyone else here) to let >me know if you're interested. > >Dimitri > >> Hi Dimitri >> >> Well done for finding that, what a nightmare. I think I’ve found how >> to disable the .babelrc, but I think the real issue is a bug in Babel >> with presets; whatever, the fix is to not use presets and load the >> plugins individually which is what I’ve done and I’ve just pushed it >> up. Please can you reinstate your .babelrc’s and see if this solves >> it? >> >> This release includes the custom database path; translations I’ll get >> back onto later on today (I’m a bit behind on my schedule) >> >> That’s great that your using this in production, you’re beating me to >> it in mine! >> >> Cheers >> John >> >> From: Dimitri <mi...@cargosoft.ru> >> Reply-To: qooxdoo Development <qooxdoo-devel@lists.sourceforge.net> >> Date: Thursday, 18 February 2016 at 08:16 >> To: <qooxdoo-devel@lists.sourceforge.net> >> Subject: Re: [qooxdoo-devel] QxCompiler - add ES6, faster >> compilation, and 100% Javascript API to building applications >> >> John, >> >> This turns to be one of that "bug reports that you like to hear" ;) >> I've identified the culprit, it was .babelrc in my home dir. We were >> totally wrong in that Babel ignores .babelrc in embedded mode. In >> fact, it looks for it *everywhere*: >> >> [mitya@localhost test]$ strace node ./compile-app-demo.js 2>&1 | grep >> babelrc >> access("/home/mitya/qxcompiler/testdata/qxt/source/class/qxt/.babelrc >> ", F_OK) = -1 ENOENT (No such file or directory) >> access("/home/mitya/qxcompiler/testdata/qxt/source/class/.babelrc", >> F_OK) = -1 ENOENT (No such file or directory) >> access("/home/mitya/qxcompiler/testdata/qxt/source/.babelrc", F_OK) = >> -1 ENOENT (No such file or directory) >> access("/home/mitya/qxcompiler/testdata/qxt/.babelrc", F_OK) = -1 >> ENOENT (No such file or directory) >> access("/home/mitya/qxcompiler/testdata/.babelrc", F_OK) = -1 ENOENT >> (No such file or directory) >> access("/home/mitya/qxcompiler/.babelrc", F_OK) = -1 ENOENT (No such >> file or directory) >> access("/home/mitya/.babelrc", F_OK) = 0 >> open("/home/mitya/.babelrc", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 11 >> >> After the file has been encountered, seems like it tries to resolve >> presets/plugins relative to that file location. >> >> With that file removed, everything finally worked with qxt! But then >> I tried to build my own project, and got similar error: >> >> /home/mitya/qxcompiler/node_modules/babel- >> core/lib/transformation/file/options/option-manager.js:393 >> throw new Error("Couldn't find preset " + >> JSON.stringify(val) + " relative to directory " + >> JSON.stringify(dirname)); >> ^ >> >> Error: Couldn't find preset "es2015" relative to directory >> "/home/mitya/Projects/foo/source/class/foo" >> at /home/mitya/qxcompiler/node_modules/babel- >> core/lib/transformation/file/options/option-manager.js:393:17 >> at Array.map (native) >> at OptionManager.resolvePresets >> (/home/mitya/qxcompiler/node_modules/babel- >> core/lib/transformation/file/options/option-manager.js:385:20) >> at OptionManager.mergePresets >> (/home/mitya/qxcompiler/node_modules/babel- >> core/lib/transformation/file/options/option-manager.js:369:10) >> at OptionManager.mergeOptions >> (/home/mitya/qxcompiler/node_modules/babel- >> core/lib/transformation/file/options/option-manager.js:328:14) >> at OptionManager.init (/home/mitya/qxcompiler/node_modules/babel- >> core/lib/transformation/file/options/option-manager.js:486:10) >> at File.initOptions (/home/mitya/qxcompiler/node_modules/babel- >> core/lib/transformation/file/index.js:211:75) >> at new File (/home/mitya/qxcompiler/node_modules/babel- >> core/lib/transformation/file/index.js:129:22) >> at Pipeline.transform (/home/mitya/qxcompiler/node_modules/babel- >> core/lib/transformation/pipeline.js:48:16) >> at /home/mitya/qxcompiler/lib/qxcompiler/ClassFile.js:220:32 >> >> This time no .babelrc files anywhere in the project structure. >> Remember I earlier did "npm link async" in the project dir so that >> build script would run. To get rid of this, I removed >> foo/node_modules and symlinked qxcompiler/node_modules to the project >> dir. Got yet another error, this time with UploadMgr: >> >> Error: Couldn't find preset "es2015" relative to directory >> "/home/mitya/qooxdoo- >> contrib/UploadMgr/source/class/com/zenesis/qx/upload" >> at /home/mitya/qxcompiler/node_modules/babel- >> core/lib/transformation/file/options/option-manager.js:393:17 >> at Array.map (native) >> at OptionManager.resolvePresets >> (/home/mitya/qxcompiler/node_modules/babel- >> core/lib/transformation/file/options/option-manager.js:385:20) >> at OptionManager.mergePresets >> (/home/mitya/qxcompiler/node_modules/babel- >> core/lib/transformation/file/options/option-manager.js:369:10) >> at OptionManager.mergeOptions >> (/home/mitya/qxcompiler/node_modules/babel- >> core/lib/transformation/file/options/option-manager.js:328:14) >> at OptionManager.init (/home/mitya/qxcompiler/node_modules/babel- >> core/lib/transformation/file/options/option-manager.js:486:10) >> at File.initOptions (/home/mitya/qxcompiler/node_modules/babel- >> core/lib/transformation/file/index.js:211:75) >> at new File (/home/mitya/qxcompiler/node_modules/babel- >> core/lib/transformation/file/index.js:129:22) >> at Pipeline.transform (/home/mitya/qxcompiler/node_modules/babel- >> core/lib/transformation/pipeline.js:48:16) >> at /home/mitya/qxcompiler/lib/qxcompiler/ClassFile.js:220:32 >> >> With node_modules symlinked to qooxdoo-contrib/UploadMgr, finally >> everything worked. This is easily reproducible if you move qxt >> outside of QxCompiler dir, place build script inside qxt and adjust >> paths accordingly (I used absolute paths). >> >> Transpiling and compression work just fine. Yet I've encountered a >> small bug with translations. If a message is translated with >> this.tr*() set of functions, everything works fine. If >> qx.locale.Manager.tr() is used, such a message simply won't make it >> into the build. >> I think we should unconditionally transfer all the *.po strings into >> the build, since translation in the app could be done based on >> dynamic, computed values. >> >> I think that as soon as the remaining issues are fixed, QxCompiler >> can be considered fairly stable. I'm already integrating it into our >> build process. >> >> Cheers! >> Dimitri >> >> > Hi Dimitri >> > >> > Sorry I realise now that was a rash suggestion, obviously it had to >> > be in the test directory to work. >> > >> > I think there’s something odd with your installation because I’ve >> > just switched to a Centos 6.5 VM that has never had node installed, >> > installed Node 4, ImageMagick, cloned the QxCompiler repo, and run >> > npm install. I discovered a problem with package.json where babel- >> > types wasn’t listed, but once I fixed that with "npm install babel- >> > types —save” I was able to “cd test ; ./compile-app-demo.js” and >> > get a working app, with resources and Bable transpiling. >> > >> > I tried Node 5 too on the same machine (deleting my ~/.npm, >> > node_modules, and testdata/qxt/source-output directories first) and >> > that also works for me; also the ./compile-app-demo-build.js >> > >> > If I list installed plugins I get: >> > $ npm list | grep 2015 >> > ├─┬ babel-preset-es2015@6.5.0 >> > │ ├─┬ babel-plugin-check-es2015-constants@6.5.0 >> > │ ├─┬ babel-plugin-transform-es2015-arrow-functions@6.5.2 >> > │ ├─┬ babel-plugin-transform-es2015-block-scoped-functions@6.5.0 >> > │ ├─┬ babel-plugin-transform-es2015-block-scoping@6.5.0 >> > │ ├─┬ babel-plugin-transform-es2015-classes@6.5.2 >> > │ ├─┬ babel-plugin-transform-es2015-computed-properties@6.5.2 >> > │ ├─┬ babel-plugin-transform-es2015-destructuring@6.5.0 >> > │ ├─┬ babel-plugin-transform-es2015-for-of@6.5.2 >> > │ ├─┬ babel-plugin-transform-es2015-function-name@6.5.0 >> > │ ├─┬ babel-plugin-transform-es2015-literals@6.5.0 >> > │ ├─┬ babel-plugin-transform-es2015-modules-commonjs@6.5.2 >> > │ ├─┬ babel-plugin-transform-es2015-object-super@6.5.0 >> > │ ├─┬ babel-plugin-transform-es2015-parameters@6.5.0 >> > │ ├─┬ babel-plugin-transform-es2015-shorthand-properties@6.5.0 >> > │ ├─┬ babel-plugin-transform-es2015-spread@6.5.2 >> > │ ├─┬ babel-plugin-transform-es2015-sticky-regex@6.5.0 >> > │ ├─┬ babel-plugin-transform-es2015-template-literals@6.5.2 >> > │ ├─┬ babel-plugin-transform-es2015-typeof-symbol@6.5.0 >> > │ ├─┬ babel-plugin-transform-es2015-unicode-regex@6.5.0 >> > >> > The array of plugins that was in QxCompiler previously was the >> > equivalent of the es2015 preset, albeit the list was slightly out >> > of date so updating the code to use a preset instead of plugins >> > should only improve support, but you had it working with the preset >> > yesterday so I don’t understand why it is not working now. >> > >> > Is it possible that you have Babel installed globally and it’s >> > conflicting somehow? I’ve updated the package.json at GitHub to >> > explicitly reference babel-types, and rechecking out etc on my >> > Centos 6 VM now runs without any complaints so it might be worth >> > updating and trying again. >> > >> > Regards >> > John >> > >> > From: Dimitri <mi...@cargosoft.ru> >> > Reply-To: qooxdoo Development <qooxdoo-devel@lists.sourceforge.net> >> > Date: Wednesday, 17 February 2016 at 23:02 >> > To: <qooxdoo-devel@lists.sourceforge.net> >> > Subject: Re: [qooxdoo-devel] QxCompiler - add ES6, faster >> > compilation, and 100% Javascript API to building applications >> > >> > [mitya@localhost qxcompiler]$ ./test/compile-app-demo.js >> > Error: Error: ENOENT: no such file or directory, open >> > '../testdata/qxt/Manifest.json' >> > >> > >> > > Hmm - what happens if you change directory to the root of the >> > > QxCompiler repo and run ./test/compile-app-demo.js? >> > > >> > > From: Dimitri <mi...@cargosoft.ru> >> > > Reply-To: qooxdoo Development <qooxdoo-de...@lists.sourceforge.ne >> > > t> >> > > Date: Wednesday, 17 February 2016 at 22:31 >> > > To: <qooxdoo-devel@lists.sourceforge.net> >> > > Subject: Re: [qooxdoo-devel] QxCompiler - add ES6, faster >> > > compilation, and 100% Javascript API to building applications >> > > >> > > No cigar this time :-\ >> > > >> > > [mitya@localhost test]$ ./compile-app-demo.js >> > > /home/mitya/qxcompiler/node_modules/babel- >> > > core/lib/transformation/file/options/option-manager.js:393 >> > > throw new Error("Couldn't find preset " + >> > > JSON.stringify(val) + " relative to directory " + >> > > JSON.stringify(dirname)); >> > > ^ >> > > >> > > Error: Couldn't find preset "es2015" relative to directory >> > > "/home/mitya" >> > > at /home/mitya/qxcompiler/node_modules/babel- >> > > core/lib/transformation/file/options/option-manager.js:393:17 >> > > at Array.map (native) >> > > at OptionManager.resolvePresets >> > > (/home/mitya/qxcompiler/node_modules/babel- >> > > core/lib/transformation/file/options/option-manager.js:385:20) >> > > at OptionManager.mergePresets >> > > (/home/mitya/qxcompiler/node_modules/babel- >> > > core/lib/transformation/file/options/option-manager.js:369:10) >> > > at OptionManager.mergeOptions >> > > (/home/mitya/qxcompiler/node_modules/babel- >> > > core/lib/transformation/file/options/option-manager.js:328:14) >> > > at OptionManager.addConfig >> > > (/home/mitya/qxcompiler/node_modules/babel- >> > > core/lib/transformation/file/options/option-manager.js:234:10) >> > > at OptionManager.findConfigs >> > > (/home/mitya/qxcompiler/node_modules/babel- >> > > core/lib/transformation/file/options/option-manager.js:434:16) >> > > at OptionManager.init >> > > (/home/mitya/qxcompiler/node_modules/babel- >> > > core/lib/transformation/file/options/option-manager.js:482:12) >> > > at File.initOptions >> > > (/home/mitya/qxcompiler/node_modules/babel- >> > > core/lib/transformation/file/index.js:211:75) >> > > at new File (/home/mitya/qxcompiler/node_modules/babel- >> > > core/lib/transformation/file/index.js:129:22) >> > > >> > > Dunno why it looks for presets in my home dir. In my previous >> > > experiment, everything went smooth (except that it didn't in fact >> > > collect any qooxdoo deps, since I removed all plugins - but >> > > transpiling itself went fine). >> > > >> > > As for uglify - ah, that was stupid. I used original uglify, not >> > > uglify-js. Just tried the latter (2.6.1) - indeed, it takes ~10 >> > > secs for qxt. Not bad. >> > > >> > > В Ср, 17/02/2016 в 20:56 +0000, John Spackman пишет: >> > > > Got it – it was a bug in my plugin I introduced a while ago, >> > > > but Chrome obviously supports arrow functions natively so I >> > > > didn’t pick up that the translation wasn’t happening any more. >> > > > The .babelrc is not needed for this because we’re using it >> > > > embedded, I think the .babelrc is only for the CLI >> > > > >> > > > That’s very a good point about the polypill BTW because it’s >> > > > not being included and it should be, I’ll add that in tomorrow. >> > > > >> > > > The problem with translations is fixed now too, sorry about >> > > > that I should have deleted the output directory before >> > > > retesting :oops: >> > > > >> > > > What options are you running Uglify with, and what version are >> > > > you running? I’m using "uglify boot.js -m -c”, I just timed it >> > > > on mine and it’s mangled the qxt app in 11 seconds (I’m using >> > > > uglify 2.6.1) Still not great but better than 30 secs :) I’ve >> > > > nearly got Uglify done, but stopped for dinner and then saw >> > > > your email so switched back. >> > > > >> > > > I’ve done the #! entries too >> > > > >> > > > I’ve pushed a new release, give it a go :) >> > > > >> > > > John >> > > > >> > > > From: Dimitri <mi...@cargosoft.ru> >> > > > Reply-To: qooxdoo Development <qooxdoo-devel@lists.sourceforge. >> > > > net> >> > > > Date: Wednesday, 17 February 2016 at 19:33 >> > > > To: <qooxdoo-devel@lists.sourceforge.net> >> > > > Subject: Re: [qooxdoo-devel] QxCompiler - add ES6, faster >> > > > compilation, and 100% Javascript API to building applications >> > > > >> > > > Just a quick follow-up on Babel - I've rolled back to >> > > > yesterday's version, edited lib/qxcompiler/ClassFile.js:218, >> > > > replaced that plugins array with presets: [ "es2015" ]. >> > > > Suddenly, it worked :) >> > > > I'm still wondering why it doesn't try to look for any .babelrc >> > > > file. It's clearly stated in the docs that the "babelrc" option >> > > > is true by default. And it definitely would be good to have >> > > > control over Babel via (optional) config file. >> > > > >> > > > Another issue to consider is that not every ES6 feature is >> > > > implemented via code transformation. Some (ex., Promises) >> > > > require babel-polyfill. (Mention in the docs? Integrate >> > > > polyfill into build?) >> > > > >> > > > Dimitri >> > > > >> > > > > Hi John, >> > > > > >> > > > > That pace you're keeping, it's incredible :) Glad to hear >> > > > > translations finally landed! >> > > > > >> > > > > Unfortunately, I couldn't make them work :( >> > > > > >> > > > > [mitya@localhost test]$ node compile-app-demo.js >> > > > > [BABEL] Note: The code generator has deoptimised the styling >> > > > > of >> > > > > "/home/mitya/qxcompiler/qooxdoo/framework/source/class/qx/ui/ >> > > > > core/Widget.js" as it exceeds the max of "100KB". >> > > > > 2016-02-17 21:30:13.229 [info ] makers Writing >> > > > > target Source Target: ../testdata/qxt/source-output/ >> > > > > /home/mitya/qxcompiler/lib/qxcompiler/targets/Target.js:239 >> > > > > pkgdata.locales["C"] = db.cldr["en"]; >> > > > > ^ >> > > > > >> > > > > TypeError: Cannot read property 'en' of undefined >> > > > > at >> > > > > /home/mitya/qxcompiler/lib/qxcompiler/targets/Target.js:239:4 >> > > > > 5 >> > > > > at >> > > > > /home/mitya/qxcompiler/node_modules/async/lib/async.js:718:13 >> > > > > at async.forEachOf.async.eachOf >> > > > > (/home/mitya/qxcompiler/node_modules/async/lib/async.js:233:1 >> > > > > 3) >> > > > > at _parallel >> > > > > (/home/mitya/qxcompiler/node_modules/async/lib/async.js:717:9 >> > > > > ) >> > > > > at Object.async.parallel >> > > > > (/home/mitya/qxcompiler/node_modules/async/lib/async.js:731:9 >> > > > > ) >> > > > > at >> > > > > /home/mitya/qxcompiler/lib/qxcompiler/targets/Target.js:236:1 >> > > > > 5 >> > > > > at /home/mitya/qxcompiler/lib/util.js:321:9 >> > > > > at >> > > > > /home/mitya/qxcompiler/node_modules/async/lib/async.js:52:16 >> > > > > at >> > > > > /home/mitya/qxcompiler/node_modules/async/lib/async.js:269:32 >> > > > > at >> > > > > /home/mitya/qxcompiler/node_modules/async/lib/async.js:44:16 >> > > > > >> > > > > (removed qxcompiler dir & did clean checkout, didn't help >> > > > > either) >> > > > > >> > > > > Re: Babel - sadly, didn't make it work either :( that arrow >> > > > > function in qxt/Application.js goes unchanged first to >> > > > > [source|build]-output/transpiled, then to [source|build]- >> > > > > output/script. The same with string templates, etc. Note the >> > > > > above [BABEL] message - that means, Babel is invoked, but >> > > > > doesn't apply any actual transformations. I tried "strace -e >> > > > > trace=open node compile-app-demo.js", and didn't see it open >> > > > > .babelrc or any plugin and/or preset modules. Could you >> > > > > please make sure it's indeed enabled? If it works for you, >> > > > > could you please assist me in tracing/debugging (since I'm a >> > > > > newbie in a Node world)? >> > > > > >> > > > > As for script compression, I played a bit with the standalone >> > > > > uglify tool. Works pretty fine, but it takes ~30 seconds to >> > > > > process a skeleton app. Do you think it can be sped up if >> > > > > integrated into QxCompiler? >> > > > > >> > > > > Minor issue: test/*.js scripts could have a shebang string >> > > > > (#!/usr/bin/node) and +x mode so that they could be run >> > > > > directly, without typing "node ..." each time. >> > > > > >> > > > > Cheers! >> > > > > Dimitri >> > > > ------------------------------------------------------------- >> > > > ----------------- Site24x7 APM Insight: Get Deep Visibility >> > > > into Application Performance APM + Mobile APM + RUM: Monitor 3 >> > > > App instances at just $35/Month Monitor end-to-end web >> > > > transactions and take corrective actions now Troubleshoot >> > > > faster and improve end-user experience. Signup Now! http://puba >> > > > ds.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140__________ >> > > > _____________________________________ qooxdoo-devel mailing >> > > > list qooxdoo- >> > > > devel@lists.sourceforge.nethttps://lists.sourceforge.net/lists/ >> > > > listinfo/qooxdoo-devel >> > > > ------------------------------------------------------------- >> > > > ----------------- >> > > > Site24x7 APM Insight: Get Deep Visibility into Application >> > > > Performance >> > > > APM + Mobile APM + RUM: Monitor 3 App instances at just >> > > > $35/Month >> > > > Monitor end-to-end web transactions and take corrective actions >> > > > now >> > > > Troubleshoot faster and improve end-user experience. Signup >> > > > Now! >> > > > http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/414 >> > > > 0 >> > > > _______________________________________________ >> > > > qooxdoo-devel mailing list >> > > > qooxdoo-devel@lists.sourceforge.nethttps://lists.sourceforge.ne >> > > > t/lists/listinfo/qooxdoo-devel >> > > --------------------------------------------------------------- >> > > --------------- Site24x7 APM Insight: Get Deep Visibility into >> > > Application Performance APM + Mobile APM + RUM: Monitor 3 App >> > > instances at just $35/Month Monitor end-to-end web transactions >> > > and take corrective actions now Troubleshoot faster and improve >> > > end-user experience. Signup Now! http://pubads.g.doubleclick.net/ >> > > gampad/clk?id=272487151&iu=/4140_________________________________ >> > > ______________ qooxdoo-devel mailing list qooxdoo- >> > > devel@lists.sourceforge.nethttps://lists.sourceforge.net/lists/li >> > > stinfo/qooxdoo-devel >> > > --------------------------------------------------------------- >> > > --------------- >> > > Site24x7 APM Insight: Get Deep Visibility into Application >> > > Performance >> > > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month >> > > Monitor end-to-end web transactions and take corrective actions >> > > now >> > > Troubleshoot faster and improve end-user experience. Signup Now! >> > > http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 >> > > _______________________________________________ >> > > qooxdoo-devel mailing list >> > > qooxdoo-devel@lists.sourceforge.nethttps://lists.sourceforge.net/ >> > > lists/listinfo/qooxdoo-devel >> > ----------------------------------------------------------------- >> > ------------- Site24x7 APM Insight: Get Deep Visibility into >> > Application Performance APM + Mobile APM + RUM: Monitor 3 App >> > instances at just $35/Month Monitor end-to-end web transactions and >> > take corrective actions now Troubleshoot faster and improve end- >> > user experience. Signup Now! http://pubads.g.doubleclick.net/gampad >> > /clk?id=272487151&iu=/4140_________________________________________ >> > ______ qooxdoo-devel mailing list qooxdoo- >> > devel@lists.sourceforge.nethttps://lists.sourceforge.net/lists/list >> > info/qooxdoo-devel >> > ----------------------------------------------------------------- >> > ------------- >> > Site24x7 APM Insight: Get Deep Visibility into Application >> > Performance >> > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month >> > Monitor end-to-end web transactions and take corrective actions now >> > Troubleshoot faster and improve end-user experience. Signup Now! >> > http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 >> > _______________________________________________ >> > qooxdoo-devel mailing list >> > qooxdoo-devel@lists.sourceforge.nethttps://lists.sourceforge.net/li >> > sts/listinfo/qooxdoo-devel >> ------------------------------------------------------------------- >> ----------- Site24x7 APM Insight: Get Deep Visibility into >> Application Performance APM + Mobile APM + RUM: Monitor 3 App >> instances at just $35/Month Monitor end-to-end web transactions and >> take corrective actions now Troubleshoot faster and improve end-user >> experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id >> =272487151&iu=/4140_______________________________________________ >> qooxdoo-devel mailing list qooxdoo-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel >> ------------------------------------------------------------------- >> ----------- >> Site24x7 APM Insight: Get Deep Visibility into Application >> Performance >> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month >> Monitor end-to-end web transactions and take corrective actions now >> Troubleshoot faster and improve end-user experience. Signup Now! >> http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 >> _______________________________________________ >> qooxdoo-devel mailing list >> qooxdoo-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel > >------------------------------------------------------------------------------ >Site24x7 APM Insight: Get Deep Visibility into Application Performance >APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month >Monitor end-to-end web transactions and take corrective actions now >Troubleshoot faster and improve end-user experience. Signup Now! >http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 >_______________________________________________ >qooxdoo-devel mailing list >qooxdoo-devel@lists.sourceforge.net >https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel ------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 _______________________________________________ qooxdoo-devel mailing list qooxdoo-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel