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

Reply via email to