JavaScript Client Guide
|
|
|
- Christal Flowers
- 10 years ago
- Views:
Transcription
1 JavaScript Client Guide Target API: Lightstreamer JavaScript Client v. 6.2 Last updated: 28/01/2015
2 Table of contents 1 INTRODUCTION JAVASCRIPT CLIENT DEVELOPMENT Deployment Architecture Deployment and Browsers Site/Application Architecture The LightstreamerClient Using an AMD loader Using Global Objects Name Clashes LightstreamerClient in a Web Worker The Node.js case Using the package from npm Using the AMD loader The Subscription Listeners StaticGrid DynaGrid Building RequireJS optimization tool (r.js) Troubleshooting Check for exceptions Server-sent errors Logging Still in trouble
3 1 Introduction This document provides a conceptual introduction to the development of Lightstreamer Clients based on JavaScript. A full JavaScript API reference is available both online and within the software distribution: Online JSDoc: Bundled JSDoc: "Lightstreamer/DOCS-SDKs/sdk_client_javascript/doc/API-referenceindex.html" - 3 -
4 2 JavaScript Client Development The Lightstreamer Javascript Client is a set of JavaScript classes/modules that can be included into any Web site, HTML5 application, or JavaScript application in general in order to make it "Lightstreamer-enabled", that is, ready to receive and send real-time data from/to Lightstreamer Server. The JavaScript client library, in the basic form provided in the distribution, is comprised of one single JavaScript file, lightstreamer.js, that contains all of the available classes; in this form, it also requires an AMD loader to be used. It is possible to customize the library to only include the desired classes and to be usable without any AMD loader by the means of a generator distributed with the library itself. The generator is in the form of a simple HTML file: generator.html. An already customized version of the library, lightstreamer_node.js, is also included in the distribution; this version only contains classes compatible with Node.js. 2.1 Deployment Architecture For demo purpose, Lightstreamer Server contains an internal web server that is able to serve static web resources. This makes it simple to distribute out-of-the-box demos (such as the Stock-List Demo) and to get started with Lightstreamer development. But for actual projects and production scenarios, it is highly recommended that an external web server is used (because Lightstreamer is optimized for pushing real-time data, not for serving static pages). Typically, a Lightstreamer Server and any common web server (e.g. Apache, nginx, IIS or any other web server of your choice) are deployed in the DMZ network. Lightstreamer Server gets the data and metadata from the back-end servers that are protected by the second firewall. The web browser gets the static web pages, as usual, from your web server, then it connects to Lightstreamer Server to receive the flow of real-time updates. Of course, both servers can be clustered for fail-over and load balancing. It is also possible to let a browser load the static web pages directly from the file system of the client machine, a case that is useful during development and testing Deployment and Browsers Depending on the chosen deployment architecture, on the browser in use, and on some configuration parameters, the JavaScript Client library will try to connect to the designated Lightstreamer Server in the best possible way
5 With previous versions of the HTML/JS Lightstreamer client library, it was mandatory that the Web server and the Lightstreamer server shared the same domain name (e.g. and realtime.mycompany.com). Starting from JavaScript Client library 6.0, this is no longer required, even if there are cases where this might be useful. A spreadsheet is available online, which summarizes the client-side combinations and the instructions on which settings to use to guarantee that an optimal connection is established. See the legend on the second tab to learn about the meaning of each column: Lightstreamer JS Client - Deployment Config Matrix ==> Basically, by still sharing the same domain name between the Web server and the Lightstreamer server, and setting such domain explicitly in the page, you guarantee that streaming mode works across all browsers, including older IE versions. Otherwise, on these browsers some form of polling mode will be automatically selected instead of streaming. For many kinds of applications, you will not probably need to care that streaming mode is always enabled. But for very high-performance applications (high throughput and low latency) that require old-browser compatibility, you might prefer to keep the same-domain rule. HINT: In case you need to test a deployment scenario, involving specific hostnames and domain names for the Web server and the Lightstreamer server, and you are developing on a stand-alone machine without a DNS (so you probably have Lightstreamer Server and the Web server on the same machine on different ports), you can simulate the final environment by editing the host file of your machine. For example, in a Windows environment, you will edit the "C:\WINDOWS\system32\drivers\etc\hosts" file and add something like: realtime.mycompany.com 2.2 Site/Application Architecture Each page of the site that is going to receive and/or send real-time updates from/to Lightstreamer Server must include a LightstreamerClient instance, which transparently manages the connections to Lightstreamer Server. If you have multiple pages or page instances of your site open at the same time within different browser tabs or windows, you might want different LightstreamerClient instances to share the same session and connection, to avoid saturating the browser connection pool (if applicable) and/or to avoid opening several sessions for the same user. You can achieve that by leveraging the ConnectionSharing instance available on each LightstreamerClient. When different LightstreamerClient instances share the same connection there is one single instance holding the connection; such instance is called the Master LightstreamerClient (or simply Master Client) while the others are referred to as Slaves. In case the Master LightstreamerClient is terminated (e.g. its tab is closed), the Slave LightstreamerClients will automatically and transparently elect a new Master, which will restore the connection and all the subscriptions. NOTE: In case the document.domain property is set on the page hosting the Master Client, any other page of the site that wants to host a Slave Client needs to set its document domain too. Vice versa, if the document.domain property is not set on the page hosting the Master Client, any other page of the site that wants to host a Slave Client cannot set its own document domain. The simplest way to be sure to avoid any issue is to set or not set the document.domain in all the pages of the site
6 So, when you have multiple pages open at a time connecting to the same Lightstreamer application, you will probably share the session/connection among them. But what if you navigate your site serially, page after page? The Lightstreamer session will open and close on each page, because the LightstreamerClient object is created and destroyed together with the hosting page. This is usually acceptable, as the session creation is very fast (depending on your custom server-side Metadata Adapter implementation, for handling authentication). Should you need to persist the physical session/connection across page navigation, a solution would be to place the Master LightstreamerClient inside a hidden frame (or iframe), and perform the actual site navigation in a visible frame (or iframe). An example of this strategy is the pre-installed "Framed Stock-List Demo". The user can navigate between two lists of 15 stocks. Each list is contained in a separate page. The Master LightstreamerClient is loaded in a hidden frame of the encapsulating frameset, so that the Lightstreamer session survives any page switch. Switching between the two pages originates the subscriptions/unsubscriptions requests to Lightstreamer Server as part of the same session. The lightstreamer.js library is designed to work even outside of a browser context. This means you can use it within any JavaScript-based environment, including Node.js, PhoneGap, SmartTV, and others. Connection sharing between multiple instances of LightstreamerClient is not supported in these contexts. 2.3 The LightstreamerClient An HTML page, produced through any kind of server technology (e.g. JSP, ASP, PHP, Node.js, etc.) can host a LightstreamerClient to connect to a Lightstreamer Server. As said above, a Master LightstreamerClient (or Master Client) is a LightstreamerClient instance that has also the responsibility of holding the connection to the Lightstreamer Server. A Slave LightstreamerClient exploits the connection hold by a Master Client to subscribe its Subscriptions to the Lightstreamer Server and to receive real-time updates. Below are the steps required to transform a normal HTML page into an HTML page receiving updates from a LightstreamerClient. (The code examples assume that the lightstreamer.js client library and, in the AMD case, the AMD loader require.js are deployed under the "/js" folder of the web server; see section 2.1). Note that by default the library is distributed in the basic AMD form. Other versions of the library can be obtained through the generator.html file distributed with the library itself Using an AMD loader The Asynchronous Module Definition (AMD) API specifies a mechanism for defining modules such that the module and its dependencies can be asynchronously loaded. See To use the default version of the Lightstreamer library an AMD loader is needed. We suggest using RequireJS: A very simple AMD loader, that does not support dynamic loading of.js files, can be embedded in the Lightstreamer.js through the generator.html; usage details can be found on the generator inline help. For the sake of simplicity we will assume the use of the full-blown RequireJS library. 1. Include the libraries As a very first action, the HTML page should import, in its HEAD section, the require.js and lightstreamer.js JavaScript libraries, in this exact order. This can be done through the following code: - 6 -
7 <script src="/js/require.js"></script> <script src="/js/lightstreamer.js"></script> 2. Include the style sheets All the cascading style sheets (CSS) declared in the Lightstreamer functions should be defined or linked in the HEAD section of the page. 3. Obtain the LightstreamerClient class Once the libraries are included, a script element should be added to include the application code. In the AMD version of the library none of the available classes is declared as a global object on the page: a call to the require method of the AMD loader in use is needed to obtain the various constructors. For now we will only require the LightstreamerClient class, as shown below. The code in the next bullets will be placed in the require callback (i.e.: where the "CODE HERE" comment is). <script> require(["lightstreamerclient"], function(lightstreamerclient) { //CODE HERE </script> 4. Create the LightstreamerClient object To connect to a Lightstreamer Server, a LightstreamerClient object has to be created, configured, and instructed to connect to the Lightstreamer Server. A minimal version of the code that creates a LightstreamerClient and connects to the Lightstreamer Server on will look like this: var myclient = new LightstreamerClient(" "MyAdapterSet"); myclient.connect(); In the example above only a minimal configuration, consisting of the address of the server and the Adapter Set to be used, is done. A typical version of the script, however, would set one or more LightstreamerClient properties through the setter methods provided for the LightstreamerClient object and its member objects and would also add a listener for the instance. Please, consult the JSDoc for details on the LightstreamerClient, ConnectionDetails and ConnectionOptions classes. 5. Sharing a connection As previously stated, it is possible to make different LightstreamerClient instances share the same connection. By default the connection is not shared so, before calling the connect method, it is necessary to instruct the client on the sharing policies to be applied for the sharing to happen. If such sharing is desired, the above code will change like this: var myclient = new LightstreamerClient(" myclient.connectionsharing.enablesharing("myapplication", "ATTACH","CREATE"); myclient.connect(); - 7 -
8 "MyApplication" is a unique name for the application, "ATTACH" is the policy to be applied if a compatible connection is found and "CREATE" is the policy to be applied if such a connection is not found. In the above case we've instructed the client to attach to an existing connection if available (thus becoming a Slave Client) or to create its own if not (becoming a Master Client). Consult the JSDoc for details on the available policies and their effects. 6. Obtain the Subscription class For each subscription to be subscribed to a Lightstreamer Server a Subscription instance is needed. As a first step we need to extend our require call to also include the Subscription class: <script> require(["lightstreamerclient","subscription"], function(lightstreamerclient,subscription) { //CODE HERE </script> 7. Create a Subscription object Once the Subscription class is available, an instance has to be created and configured to describe the subscription we are going to send to the Lightstreamer Server. A simple Subscription containing three items and three fields to be subscribed in MERGE mode is easily created (see Lightstreamer General Concepts): var mysubscription = new Subscription("MERGE",["item1", "item2", "item3"],["field1", "field2", "field3"]); Several configuration options are available. In particular, in case the Adapter Set contains multiple Data Adapters, specifying the name of the Data Adapter that supplies the items in the subscription may be needed. This is accomplished through a line of code like the following: mysubscription.setdataadapter("mydataadapter"); The subscription to the server of the newly created Subscription instance is performed through a simple call: myclient.subscribe(mysubscription); Note that once the Subscription is passed to the LightstreamerClient as shown above, it will be persisted across sessions meaning that if the Master Client disconnects from the server and then reconnects again there is no need to perform a new subscribe call. 8. Listen for real-time updates Before sending the subscription to the server, usually at least one listener is attached to the Subscription instance in order to consume the real-time updates. The following code shows the value of the "field1" field in a JavaScript alert each time a new update is received for the subscription: mysubscription.addlistener({ onitemupdate: function(updateobject) { alert(updateobject.getvalue("field1")); - 8 -
9 Some ready-made SubscriptionListener classes are available in the library. Such listeners will be described in section The complete code Below is the complete JavaScript code: <script> require(["lightstreamerclient","subscription"], function(lightstreamerclient,subscription) { var myclient = new LightstreamerClient(" myclient.connectionsharing.enablesharing("myapplication", "ATTACH","CREATE"); myclient.connect(); var mysubscription = new Subscription("MERGE",["item1", "item2", "item3"],["field1", "field2", "field3"]); mysubscription.setdataadapter("mydataadapter"); mysubscription.addlistener({ onitemupdate: function(updateobject) { alert(updateobject.getvalue("field1")); myclient.subscribe(mysubscription); </script> Using Global Objects If the use of an AMD loader is not desired, it is possible to generate a Lightstreamer JavaScript Client library that declares its classes in the global namespace. 1. Generate the library To create such a library the generator.html must be loaded inside a browser and configured with the "Use globals" option selected. Once the "Create library" button has been clicked the resulting library will be created in the text-area on the bottom of the generator. Copy the shown text inside a text editor and save as lightstreamer.js. 2. Include the library As the AMD loader is no longer needed there is only one library to be included: <script src="/js/lightstreamer.js"></script> - 9 -
10 3. The complete code The code of the application remains quite the same as the previous example excluding the require wrapping: <script> var myclient = new LightstreamerClient(" myclient.connectionsharing.enablesharing("myapplication", "ATTACH","CREATE"); myclient.connect(); var mysubscription = new Subscription("MERGE",["item1", "item2", "item3"],["field1", "field2", "field3"]); mysubscription.setdataadapter("mydataadapter"); mysubscription.addlistener({ onitemupdate: function(updateobject) { alert(updateobject.getvalue("field1")); myclient.subscribe(mysubscription); </script> Name Clashes When working on big HTML front-end including different JavaScript libraries, some name collisions may occur in both the AMD and Global cases. The generator offers two options, namely Use namespaced globals and Use AMD with namespaced names, that can be used to generate a library that prevents such collisions from happening. 1. AMD case In the AMD case the only difference is in the names used in the first parameter of the require call: <script> require(["lightstreamer/lightstreamerclient", "Lightstreamer/Subscription"], function(lightstreamerclient,subscription) { //CODE HERE </script> everything else remains as is in the normal AMD case
11 2. Globals case The Globals case needs a little more work because the Lightstreamer. prefix has to be added to the constructor names each time an instance of one of the classes from the Lightstreamer library is needed. In the above examples two instances (one LightstreamerClient and one Subscription) are generated. The related code will then become like this: var myclient = new Lightstreamer.LightstreamerClient(" var mysubscription = new Lightstreamer.Subscription("MERGE", ["item1", "item2", "item3"],["field1", "field2", "field3"]); LightstreamerClient in a Web Worker A LightstreamerClient instance can also be used inside a WebWorker even though in this case connection sharing is disabled. Also note that the Lightstreamer JavaScript Client library cannot be used inside a Worker if the target browser is Opera. 1. Create a Worker To load the client in a Worker a Worker is needed first. A listener on the worker can be used to receive messages from the worker itself. Simply put the following code in a HTML file <script> var worker = new Worker('index.js'); worker.addeventlistener('message', function(event) { alert(event.data); </script> 2. Prepare the Worker Code The index.js file specified in the above code will contain the JavaScript code used to connect to a Lightstreamer Sever. It starts including the needed libraries importscripts("require.js"); importscripts("lightstreamer.js"); then the same code shown in the AMD example can be used (comprised of the require call) with only one single difference, that is, a different approach is used to consume the Subscription data: such data is sent back as an event using the postmessage facility (note that the alert method is not even available in the Worker context): mysubscription.addlistener({ onitemupdate: function(updateobject) { postmessage(updateobject.getvalue("field1"));
12 2.3.5 The Node.js case When the library is used inside Node.js, the Globals case is not supported. Moreover only part of the available classes is compatible with NodeJS (as shown in the generator.html) and some third-party library need to be installed via npm for the LightstreamerClient to work. Currently there are two options available, either use the lightstreamer_node.js file (or a file created using generator.html) and rely on an AMD loader (i.e.: require.js), or direclty install the lightstreamer-client package from npm Using the package from npm 1. Install the library using npm Paste the following code in a command line to install the Lightstreamer client library and all its dependencies (note that npm has to be already installed in the system) npm install lightstreamer-client 2. Include the library At the start of the index.js file that will contain the JavaScript code of the application include the following line: var Lightstreamer = require('lightstreamer-client'); 3. Prepare the code As in the Globals case all the classes will now be available under the Lightstreamer. Prefix: var myclient = new Lightstreamer.LightstreamerClient(" var mysubscription = new Lightstreamer.Subscription("MERGE", ["item1", "item2", "item3"],["field1", "field2", "field3"]); as the alert method is not available in NodeJS a different approach is used to consume the Subscription data: such data is printed on screen using the console.log facility: mysubscription.addlistener({ onitemupdate: function(updateobject) { console.log(updateobject.getvalue("field1")); 4. Run the application As with any Node.js application, simply run the created index.js file with the following code: node index.js
13 Using the AMD loader 1. Install the required libraries using npm Paste the following lines in a command line to install the required libraries (note that npm has to be already installed in the system) npm install requirejs npm install xmlhttprequest npm install faye-websocket 2. Include and configure RequireJS At the start of the index.js file that will contain the JavaScript code of the application include the following lines: var requirejs = require('requirejs'); requirejs.config({ deps: ["lightstreamer.js"], noderequire: require 3. Prepare the code Again the application code will be quite the same as the one of the AMD case with two small changes. The require call will be transformed into a requirejs call: requirejs(["lightstreamerclient","subscription"], function(lightstreamerclient,subscription) { //CODE HERE as the alert method is not available in NodeJS a different approach is used to consume the Subscription data: such data is printed on screen using the console.log facility: mysubscription.addlistener({ onitemupdate: function(updateobject) { console.log(updateobject.getvalue("field1")); 4. Run the application As with any Node.js application, simply run the created index.js file with the following code: node index.js 2.4 The Subscription Listeners The Lightstreamer JavaScript Client Library includes some SubscriptionListener implementations that can be used in an HTML page to show the data received on a Subscription
14 Below is a description of the two main implementations: StaticGrid and DynaGrid. Actually, such classes can also be used without listening on Subscription objects, but such usage is out of the scope of this document. In the following description the term cell is used to refer to the atomic unity of visualization for data pushed by Lightstreamer and associated to a field (see General Concepts). In order to declare a cell, a special DIV element or a special SPAN element should be used. It is possible to choose between a DIV and a SPAN tag for each cell, according to the front-end requirements 1. Alternative ways for supplying push cells are available, which allow the use of any kind of tag. See the JSDoc for details StaticGrid In a StaticGrid each cell is statically defined in the HTML page. Each cell for this kind of grid can define the following special properties: [mandatory] data-source: this special property must be specified with its value being "lightstreamer" in order to authorize the StaticGrid to use such HTML element as a cell. [mandatory] data-grid: an identifier that is used to associate a cell with a StaticGrid instance: the same value has to be specified in the constructor of the said StaticGrid. [mandatory] data-row: a number representing the row number this cell is associated with. As all the cells have to be manually defined, the number of rows in the grid is defined by the biggest value of this property in all the cells related to the StaticGrid (note that data-item can be used instead of data-row in some special cases. Check the JSDoc for details). [mandatory] data-field: the name of the field to be associated with the cell (it can also be a field index, see the JSDoc for details) [optional] data-num: if there is the requirement to have more cells related to the same row/field pair, it is possible to specify this property in order to distinguish between such cells when handling the StaticGrid events. [optional] data-update: by default the content of a cell is updated with the received values. By specifying this property, it is possible to target any property of the HTML element (e.g.: the src property of an IMG tag) or its stylesheet. [optional] data-fieldtype The StaticGrid class offers the extractfieldlist and extractcommandsecondlevelfieldlist functions to read from the html the data-field values of the associated cells. Using this property is possible to specify if a field has to be extracted during extractfieldlist executions (missing data-fieldtype property or first-level value), during extractcommandsecondlevelfieldlist (data-fieldtype set to second-level ) or neither (data-fieldtype set to extra ) Example (HTML part)... <div data-source="lightstreamer" data-grid="quotes" data-row="1" data-field="field1">-</div> <div data-source="lightstreamer" data-grid="quotes" data-row="1" data-field="field2">-</div> <div data-source="lightstreamer" data-grid="quotes" data-row="2" data-field="field1">-</div> <div data-source="lightstreamer" data-grid="quotes" data-row="2" data-field="field2">-</div>... Example (JavaScript part) new StaticGrid("quotes",true); 1 See for a formal specification of the difference between DIV and SPAN
15 Only the basic bits of the StaticGrid are described in this guide; check out the JSDoc for all the details DynaGrid In a DynaGrid only one row of cells is defined in the HTML page (the template). New rows are then cloned from the given template row. The template row will be associated to the DynaGrid instance via its id property and will contain all of the necessary cells. The datasource property of this template has to be configured as if it was a cell. Each cell for this kind of grid can define the following special properties: [mandatory] data-source: this special property must be specified with its value being "lightstreamer" in order to authorize the StaticGrid to use such HTML element as a cell. [mandatory] data-field: the name of the field to be associated with the cell (it can also be a field index, see the JSDoc for details) [optional] data-num: if there is the requirement to have more cells related to the same field, it is possible to specify this property in order to distinguish between such cells when handling the DynaGrid events. [optional] data-update: by default the content of a cell is updated with the received values. By specifying this property it is possible to target any property of the HTML element (e.g.: the src property of an IMG tag) or its stylesheet. [optional] data-fieldtype The StaticGrid class offers the extractfieldlist and extractcommandsecondlevelfieldlist functions to read from the html the data-field values of the associated cells. Using this property is possible to specify if a field has to be extracted during extractfieldlist executions (missing data-fieldtype property or first-level value), during extractcommandsecondlevelfieldlist (data-fieldtype set to second-level ) or neither (data-fieldtype set to extra ) Example (HTML part)... <div id="quotes" data-source="lightstreamer"> <div data-source="lightstreamer" data-field="field1">-</div> <div data-source="lightstreamer" data-field="field2">-</div> </div>... Example (JavaScript part) new DynaGrid("quotes",true); 2.5 Building When using an AMD loader it is expected for the custom JS code to be splitted in a series of small modules each one in its own.js file. This is a very good approach during development as it permits to have a well organized project and well structured code. Unfortunately that approach is not suitable to deploy the project on the web since each JS module will require the browser to perform a HTTP GET request to the web server to be downloaded thus increasing load times. Some tools exist that solve this problem by combining js files together to make them deploy-friendly. When using such tools it is important to be able to instruct the process to avoid searching for Lightstreamer modules since such modules are already compressed in one single file
16 2.5.1 RequireJS optimization tool (r.js) RequireJS offers an optimization tool that is perfect for the task. It combines AMD modules files together; it also leverages either Google Closure Compiler or UglifyJS to further compress and optimize the JavaScript code to be deployed. To run it requires either Rhino or Node.js (when used with Node.js it does not support the Google Closure Compiler). You can find a full description of the tool on its website. When preparing its configuration file it is possible to specify which modules do not need to be resolved and concatenated with the rest of the code by using the paths option: AMD version paths: { "LightstreamerClient": "empty:", "Subscription": "empty:" AMD with namespaced names version: paths: { "Lightstreamer/LightstreamerClient": "empty:", "Lightstreamer/Subscription": "empty:" NOTE: the above examples assume that only LightstreamerClient and Subscription classes are used from the Lightstreamer library; one entry per each used class is needed. 2.6 Troubleshooting During development it is always possible to encounter issues preventing custom code from working as expected. If that happens you can follow the tips in this section to solve the issues Check for exceptions The first thing to look at when facing an issue is the console of the browser in use. Most modern browsers offer some sort of built-in JavaScript console: fire it up and reload your application; if there is a piece of code throwing an exception it will be likely shown there Server-sent errors When connecting to a server, subscribing to an item or sending a message, something can go wrong due to misconfiguration, adapter errors or server constraints. In these cases the server will send back an error that will be exposed on the appropriate listener(s). You can register a listener on your objects to receive such notifications:
17 Connection errors a ClientListener instance can be used to receive error notifications on LightstreamerClient instances. Note that the ClientListener interface has some methods other than the error one that we're going to see now. See the JSDoc for full details var mylsclient = new LightstreamerClient(); mylsclient.addlistener({ onservererror: function(errorcode,errormessage) { //here you can consume the error Subscription errors a SubscriptionListener instance can be used to receive error notifications regarding a Subscription. Note that the SubscriptionListener interface has some methods other than the error ones that we're going to see now. See the JSDoc for full details var mysubscription = new Subscription(); mysubscription.addlistener({ onsubscriptionerror: function(errorcode,errormessage) { //here you can consume the error, oncommandsecondlevelsubscriptionerror: function(errorcode,errormessage,relatedkey) { //this one can only be fired in case a two-level subscription is created //here you can consume the error Message errors a ClientMessageListener instance can be used to receive error notifications on sent messages. Note that the ClientMessageListener interface has some methods other than the error one that we're going to see now. See the JSDoc for full details mylsclient.sendmessage(mymessage,mysequence,mytimeout,{ onerror: function(mymessage) { //here you can consume the error, ondeny: function(mymessage,denycode,denymessage) { //here you can consume the error Logging The Lightstreamer JavaScript client includes a simple LoggerProvider logging interface that can be implemented to consume log messages from within the library
18 A ready-made implementation of such interface, together with several log appender classes, is distributed with the library. The configuration of this logging facility should be different between development and production environments. The suggested approach is to use a ConsoleAppender configured at INFO level during development and a RemoteAppender configured at ERROR level or no appenders at all on production deployments. The log messages are also identified by a category. For full details about available classes and categories consult the JSDoc. Development setup During development we suggest to setup a ConsoleAppender at INFO level to keep an eye on what is happening on the library. Most modern desktop browsers include (or can be extended with) a console showing the messages produced by such appender. (e.g.: Firebug for Firefox). To setup such logging the following code can be used: require(["lightstreamerclient","simpleloggerprovider", "ConsoleAppender","LogMessages"], function(lightstreamerclient,simpleloggerprovider, ConsoleAppender,LogMessages) { var loggerprovider = new SimpleLoggerProvider(); LightstreamerClient.setLoggerProvider(loggerProvider); Production setup var myappender = new ConsoleAppender("INFO","*"); loggerprovider.addloggerappender(myappender); During production we suggest to remove the ConsoleAppender and add a RemoteAppender that will forward its messages to the configured Lightstreamer Server To setup such logging the following code can be used (where myclient is the instance of LightstreamerClient connected to the server where the logging has to be sent): require(["lightstreamerclient","simpleloggerprovider", "RemoteAppender","LogMessages"], function(sharingclient,lightstreamerclient, SimpleLoggerProvider,RemoteAppender,LogMessages) { var loggerprovider = new SimpleLoggerProvider(); LightstreamerClient.setLoggerProvider(loggerProvider); var myappender = new RemoteAppender("ERROR","*", myclient); loggerprovider.addloggerappender(myappender); Note the LogMessages module that is required but never used. If this module is not required by the client JavaScript code, only message codes are produced by the library. Simply requiring this class will expand the log message codes into full string messages. Using this approach and the generator.html it is possible to generate a library that does not include any log message. Note that log codes, generated when the LogMessages module is not included, can always be transformed back to log messages later
19 require(["logmessages"], function(logmessages) { LogMessages.getMessage(codeToBeTransformed); Still in trouble If none of the above suggestions made you find a solution to your problems you can reach out to our public forums
Portals and Hosted Files
12 Portals and Hosted Files This chapter introduces Progress Rollbase Portals, portal pages, portal visitors setup and management, portal access control and login/authentication and recommended guidelines
Tutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator
Tutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator Written by: Chris Jaun ([email protected]) Sudha Piddaparti ([email protected]) Objective In this
Continuous Integration and Delivery. manage development build deploy / release
Continuous Integration and Delivery manage development build deploy / release test About the new CI Tool Chain One of the biggest changes on the next releases of XDK, will be the adoption of the New CI
Installation and Configuration Manual
Beacon Office Installation and Configuration Manual Version - 2.5(1) Radianta Inc. September 2008 Radianta, Inc. Beacon Office Page 2 Table of Contents Introduction... 4 What is Beacon Office... 4 How
MASTERTAG DEVELOPER GUIDE
MASTERTAG DEVELOPER GUIDE TABLE OF CONTENTS 1 Introduction... 4 1.1 What is the zanox MasterTag?... 4 1.2 What is the zanox page type?... 4 2 Create a MasterTag application in the zanox Application Store...
Ekran System Help File
Ekran System Help File Table of Contents About... 9 What s New... 10 System Requirements... 11 Updating Ekran to version 4.1... 13 Program Structure... 14 Getting Started... 15 Deployment Process... 15
Front-End Performance Testing and Optimization
Front-End Performance Testing and Optimization Abstract Today, web user turnaround starts from more than 3 seconds of response time. This demands performance optimization on all application levels. Client
WebSpy Vantage Ultimate 2.2 Web Module Administrators Guide
WebSpy Vantage Ultimate 2.2 Web Module Administrators Guide This document is intended to help you get started using WebSpy Vantage Ultimate and the Web Module. For more detailed information, please see
User Guide for Smart Former Gold (v. 1.0) by IToris Inc. team
User Guide for Smart Former Gold (v. 1.0) by IToris Inc. team Contents Offshore Web Development Company CONTENTS... 2 INTRODUCTION... 3 SMART FORMER GOLD IS PROVIDED FOR JOOMLA 1.5.X NATIVE LINE... 3 SUPPORTED
A Tool for Evaluation and Optimization of Web Application Performance
A Tool for Evaluation and Optimization of Web Application Performance Tomáš Černý 1 [email protected] Michael J. Donahoo 2 [email protected] Abstract: One of the main goals of web application
Controlling Risk, Conserving Bandwidth, and Monitoring Productivity with Websense Web Security and Websense Content Gateway
Controlling Risk, Conserving Bandwidth, and Monitoring Productivity with Websense Web Security and Websense Content Gateway Websense Support Webinar January 2010 web security data security email security
Developer Tutorial Version 1. 0 February 2015
Developer Tutorial Version 1. 0 Contents Introduction... 3 What is the Mapzania SDK?... 3 Features of Mapzania SDK... 4 Mapzania Applications... 5 Architecture... 6 Front-end application components...
SizmekFeatures. HTML5JSSyncFeature
Features HTML5JSSyncFeature Table of Contents Overview... 2 Supported Platforms... 2 Demos/Downloads... 3 Note... 3 For Tags Served in iframes... 3 Features... 3 Use Case... 3 Included Files... 4 Implementing
System Administration Training Guide. S100 Installation and Site Management
System Administration Training Guide S100 Installation and Site Management Table of contents System Requirements for Acumatica ERP 4.2... 5 Learning Objects:... 5 Web Browser... 5 Server Software... 5
Troubleshooting BlackBerry Enterprise Service 10 version 10.1.1 726-08745-123. Instructor Manual
Troubleshooting BlackBerry Enterprise Service 10 version 10.1.1 726-08745-123 Instructor Manual Published: 2013-07-02 SWD-20130702091645092 Contents Advance preparation...7 Required materials...7 Topics
PROFESSIONAL. Node.js BUILDING JAVASCRIPT-BASED SCALABLE SOFTWARE. Pedro Teixeira WILEY. John Wiley & Sons, Inc.
PROFESSIONAL Node.js BUILDING JAVASCRIPT-BASED SCALABLE SOFTWARE Pedro Teixeira WILEY John Wiley & Sons, Inc. INTRODUCTION xxvii CHAPTER 1: INSTALLING NODE 3 Installing Node on Windows 4 Installing on
FileMaker Server 15. Getting Started Guide
FileMaker Server 15 Getting Started Guide 2007 2016 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker and FileMaker Go are trademarks
kalmstrom.com Business Solutions
HelpDesk OSP User Manual Content 1 INTRODUCTION... 3 2 REQUIREMENTS... 4 3 THE SHAREPOINT SITE... 4 4 THE HELPDESK OSP TICKET... 5 5 INSTALLATION OF HELPDESK OSP... 7 5.1 INTRODUCTION... 7 5.2 PROCESS...
Manage Workflows. Workflows and Workflow Actions
On the Workflows tab of the Cisco Finesse administration console, you can create and manage workflows and workflow actions. Workflows and Workflow Actions, page 1 Add Browser Pop Workflow Action, page
DEPLOYMENT GUIDE Version 1.2. Deploying F5 with Oracle E-Business Suite 12
DEPLOYMENT GUIDE Version 1.2 Deploying F5 with Oracle E-Business Suite 12 Table of Contents Table of Contents Introducing the BIG-IP LTM Oracle E-Business Suite 12 configuration Prerequisites and configuration
Titolo del paragrafo. Titolo del documento - Sottotitolo documento The Benefits of Pushing Real-Time Market Data via a Web Infrastructure
1 Alessandro Alinone Agenda Introduction Push Technology: definition, typology, history, early failures Lightstreamer: 3rd Generation architecture, true-push Client-side push technology (Browser client,
Streaming Media System Requirements and Troubleshooting Assistance
Test Your System Streaming Media System Requirements and Troubleshooting Assistance Test your system to determine if you can receive streaming media. This may help identify why you are having problems,
We automatically generate the HTML for this as seen below. Provide the above components for the teaser.txt file.
Creative Specs Gmail Sponsored Promotions Overview The GSP creative asset will be a ZIP folder, containing four components: 1. Teaser text file 2. Teaser logo image 3. HTML file with the fully expanded
Performance Testing for Ajax Applications
Radview Software How to Performance Testing for Ajax Applications Rich internet applications are growing rapidly and AJAX technologies serve as the building blocks for such applications. These new technologies
Ajax Development with ASP.NET 2.0
Ajax Development with ASP.NET 2.0 Course No. ISI-1071 3 Days Instructor-led, Hands-on Introduction This three-day intensive course introduces a fast-track path to understanding the ASP.NET implementation
Installing and Using the vnios Trial
Installing and Using the vnios Trial The vnios Trial is a software package designed for efficient evaluation of the Infoblox vnios appliance platform. Providing the complete suite of DNS, DHCP and IPAM
CA Spectrum and CA Service Desk
CA Spectrum and CA Service Desk Integration Guide CA Spectrum 9.4 / CA Service Desk r12 and later This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter
FioranoMQ 9. High Availability Guide
FioranoMQ 9 High Availability Guide Copyright (c) 1999-2008, Fiorano Software Technologies Pvt. Ltd., Copyright (c) 2008-2009, Fiorano Software Pty. Ltd. All rights reserved. This software is the confidential
Getting Started with Telerik Data Access. Contents
Contents Overview... 3 Product Installation... 3 Building a Domain Model... 5 Database-First (Reverse) Mapping... 5 Creating the Project... 6 Creating Entities From the Database Schema... 7 Model-First
Network Probe User Guide
Network Probe User Guide Network Probe User Guide Table of Contents 1. Introduction...1 2. Installation...2 Windows installation...2 Linux installation...3 Mac installation...4 License key...5 Deployment...5
DEPLOYMENT GUIDE Version 2.1. Deploying F5 with Microsoft SharePoint 2010
DEPLOYMENT GUIDE Version 2.1 Deploying F5 with Microsoft SharePoint 2010 Table of Contents Table of Contents Introducing the F5 Deployment Guide for Microsoft SharePoint 2010 Prerequisites and configuration
Richmond SupportDesk Web Reports Module For Richmond SupportDesk v6.72. User Guide
Richmond SupportDesk Web Reports Module For Richmond SupportDesk v6.72 User Guide Contents 1 Introduction... 4 2 Requirements... 5 3 Important Note for Customers Upgrading... 5 4 Installing the Web Reports
WhatsUp Gold v16.3 Installation and Configuration Guide
WhatsUp Gold v16.3 Installation and Configuration Guide Contents Installing and Configuring WhatsUp Gold using WhatsUp Setup Installation Overview... 1 Overview... 1 Security considerations... 2 Standard
603: Enhancing mobile device experience with NetScaler MobileStream Hands-on Lab Exercise Guide
603: Enhancing mobile device experience with NetScaler MobileStream Hands-on Lab Exercise Guide Christopher Rudolph January 2015 1 Table of Contents Contents... 2 Overview... 3 Scenario... 6 Lab Preparation...
Desktop Surveillance Help
Desktop Surveillance Help Table of Contents About... 9 What s New... 10 System Requirements... 11 Updating from Desktop Surveillance 2.6 to Desktop Surveillance 3.2... 13 Program Structure... 14 Getting
DEPLOYMENT GUIDE Version 1.1. Deploying F5 with Oracle Application Server 10g
DEPLOYMENT GUIDE Version 1.1 Deploying F5 with Oracle Application Server 10g Table of Contents Table of Contents Introducing the F5 and Oracle 10g configuration Prerequisites and configuration notes...1-1
LabVIEW Internet Toolkit User Guide
LabVIEW Internet Toolkit User Guide Version 6.0 Contents The LabVIEW Internet Toolkit provides you with the ability to incorporate Internet capabilities into VIs. You can use LabVIEW to work with XML documents,
WEB DEVELOPMENT IA & IB (893 & 894)
DESCRIPTION Web Development is a course designed to guide students in a project-based environment in the development of up-to-date concepts and skills that are used in the development of today s websites.
Secure Web Appliance. Reverse Proxy
Secure Web Appliance Reverse Proxy Table of Contents 1. Introduction... 1 1.1. About CYAN Secure Web Appliance... 1 1.2. About Reverse Proxy... 1 1.3. About this Manual... 1 1.3.1. Document Conventions...
Veritas Cluster Server Database Agent for Microsoft SQL Configuration Guide
Veritas Cluster Server Database Agent for Microsoft SQL Configuration Guide Windows 2000, Windows Server 2003 5.0 11293743 Veritas Cluster Server Database Agent for Microsoft SQL Configuration Guide Copyright
Bitrix Site Manager 4.1. User Guide
Bitrix Site Manager 4.1 User Guide 2 Contents REGISTRATION AND AUTHORISATION...3 SITE SECTIONS...5 Creating a section...6 Changing the section properties...8 SITE PAGES...9 Creating a page...10 Editing
FileMaker Server 13. FileMaker Server Help
FileMaker Server 13 FileMaker Server Help 2010-2013 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker and Bento are trademarks of FileMaker,
Chapter 1 - Web Server Management and Cluster Topology
Objectives At the end of this chapter, participants will be able to understand: Web server management options provided by Network Deployment Clustered Application Servers Cluster creation and management
How To Use Titanium Studio
Crossplatform Programming Lecture 3 Introduction to Titanium http://dsg.ce.unipr.it/ http://dsg.ce.unipr.it/?q=node/37 [email protected] 2015 Parma Outline Introduction Installation and Configuration
Developers Guide. Designs and Layouts HOW TO IMPLEMENT WEBSITE DESIGNS IN DYNAMICWEB. Version: 1.3 2013.10.04 English
Developers Guide Designs and Layouts HOW TO IMPLEMENT WEBSITE DESIGNS IN DYNAMICWEB Version: 1.3 2013.10.04 English Designs and Layouts, How to implement website designs in Dynamicweb LEGAL INFORMATION
BT CONTENT SHOWCASE. JOOMLA EXTENSION User guide Version 2.1. Copyright 2013 Bowthemes Inc. [email protected]
BT CONTENT SHOWCASE JOOMLA EXTENSION User guide Version 2.1 Copyright 2013 Bowthemes Inc. [email protected] 1 Table of Contents Introduction...2 Installing and Upgrading...4 System Requirement...4
Kollaborate Server Installation Guide!! 1. Kollaborate Server! Installation Guide!
Kollaborate Server Installation Guide 1 Kollaborate Server Installation Guide Kollaborate Server is a local implementation of the Kollaborate cloud workflow system that allows you to run the service in-house
Monitoring Oracle Enterprise Performance Management System Release 11.1.2.3 Deployments from Oracle Enterprise Manager 12c
Monitoring Oracle Enterprise Performance Management System Release 11.1.2.3 Deployments from Oracle Enterprise Manager 12c This document describes how to set up Oracle Enterprise Manager 12c to monitor
Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence
Web Development Owen Sacco ICS2205/ICS2230 Web Intelligence Introduction Client-Side scripting involves using programming technologies to build web pages and applications that are run on the client (i.e.
DEPLOYMENT GUIDE Version 1.1. Deploying F5 with IBM WebSphere 7
DEPLOYMENT GUIDE Version 1.1 Deploying F5 with IBM WebSphere 7 Table of Contents Table of Contents Deploying the BIG-IP LTM system and IBM WebSphere Servers Prerequisites and configuration notes...1-1
4 Understanding. Web Applications IN THIS CHAPTER. 4.1 Understand Web page development. 4.2 Understand Microsoft ASP.NET Web application development
4 Understanding Web Applications IN THIS CHAPTER 4.1 Understand Web page development 4.2 Understand Microsoft ASP.NET Web application development 4.3 Understand Web hosting 4.4 Understand Web services
Configuring the BIG-IP and Check Point VPN-1 /FireWall-1
Configuring the BIG-IP and Check Point VPN-1 /FireWall-1 Introducing the BIG-IP and Check Point VPN-1/FireWall-1 LB, HALB, VPN, and ELA configurations Configuring the BIG-IP and Check Point FireWall-1
Drupal CMS for marketing sites
Drupal CMS for marketing sites Intro Sample sites: End to End flow Folder Structure Project setup Content Folder Data Store (Drupal CMS) Importing/Exporting Content Database Migrations Backend Config Unit
Skynax. Mobility Management System. System Manual
Skynax Mobility Management System System Manual Intermec by Honeywell 6001 36th Ave. W. Everett, WA 98203 U.S.A. www.intermec.com The information contained herein is provided solely for the purpose of
UNICORN 6.4. Administration and Technical Manual
UNICORN 6.4 Administration and Technical Manual Page intentionally left blank Table of Contents Table of Contents 1 Introduction... 1.1 Administrator functions overview... 1.2 Network terms and concepts...
Programming IoT Gateways With macchina.io
Programming IoT Gateways With macchina.io Günter Obiltschnig Applied Informatics Software Engineering GmbH Maria Elend 143 9182 Maria Elend Austria [email protected] This article shows how
Creating Value through Innovation MAGENTO 1.X TO MAGENTO 2.0 MIGRATION
Creating Value through Innovation MAGENTO 1.X TO MAGENTO 2.0 MIGRATION AGENDA 1. Overview of Magento 2.0 2. Features and benefits of Magento 2.0 over Magento 1.x 3. Why should we upgrade to Magento 2.0
5.1 Features 1.877.204.6679. [email protected] Denver CO 80202
1.877.204.6679 www.fourwindsinteractive.com 3012 Huron Street [email protected] Denver CO 80202 5.1 Features Copyright 2014 Four Winds Interactive LLC. All rights reserved. All documentation
Citrix StoreFront. Customizing the Receiver for Web User Interface. 2012 Citrix. All rights reserved.
Citrix StoreFront Customizing the Receiver for Web User Interface 2012 Citrix. All rights reserved. Customizing the Receiver for Web User Interface Introduction Receiver for Web provides a simple mechanism
Bentley CONNECT Dynamic Rights Management Service
v1.0 Implementation Guide Last Updated: March 20, 2013 Table of Contents Notices...5 Chapter 1: Introduction to Management Service...7 Chapter 2: Configuring Bentley Dynamic Rights...9 Adding Role Services
Composite C1 Load Balancing - Setup Guide
Composite C1 Load Balancing - Setup Guide Composite 2014-08-20 Composite A/S Nygårdsvej 16 DK-2100 Copenhagen Phone +45 3915 7600 www.composite.net Contents 1 INTRODUCTION... 3 1.1 Who should read this
Administrator's Guide
Search Engine Optimization Module Administrator's Guide Installation and configuration advice for administrators and developers Sitecore Corporation Table of Contents Chapter 1 Installation 3 Chapter 2
Magento Integration Manual (Version 2.1.0-11/24/2014)
Magento Integration Manual (Version 2.1.0-11/24/2014) Copyright Notice The software that this user documentation manual refers to, contains proprietary content of Megaventory Inc. and Magento (an ebay
NEFSIS DEDICATED SERVER
NEFSIS TRAINING SERIES Nefsis Dedicated Server version 5.2.0.XXX (DRAFT Document) Requirements and Implementation Guide (Rev5-113009) REQUIREMENTS AND INSTALLATION OF THE NEFSIS DEDICATED SERVER Nefsis
MAGENTO THEME SHOE STORE
MAGENTO THEME SHOE STORE Developer: BSEtec Email: [email protected] Website: www.bsetec.com Facebook Profile: License: GPLv3 or later License URL: http://www.gnu.org/licenses/gpl-3.0-standalone.html 1
User Guide to the Snare Agent Management Console in Snare Server v7.0
User Guide to the Snare Agent Management Console in Snare Server v7.0 Intersect Alliance International Pty Ltd. All rights reserved worldwide. Intersect Alliance Pty Ltd shall not be liable for errors
Configuration Manual
Configuration Manual Page 1 of 20 Table of Contents Chronicall Setup...3 Standard Installation...3 Non-standard Installation (Recording Library on Separate machine)...8 Configuring Call Recording through
Working with Indicee Elements
Working with Indicee Elements How to Embed Indicee in Your Product 2012 Indicee, Inc. All rights reserved. 1 Embed Indicee Elements into your Web Content 3 Single Sign-On (SSO) using SAML 3 Configure an
Debugging JavaScript and CSS Using Firebug. Harman Goei CSCI 571 1/27/13
Debugging JavaScript and CSS Using Firebug Harman Goei CSCI 571 1/27/13 Notice for Copying JavaScript Code from these Slides When copying any JavaScript code from these slides, the console might return
WEB2CS INSTALLATION GUIDE
WEB2CS INSTALLATION GUIDE FOR PARALLELS / POA HTTP://WWW.XANDMAIL.COM XandMail 32, rue de Cambrai 75019 PARIS - FRANCE Tel : +33 (0)1 40 388 700 - http://www.xandmail.com TABLE OF CONTENTS 1. INSTALLING
E-mail Listeners. E-mail Formats. Free Form. Formatted
E-mail Listeners 6 E-mail Formats You use the E-mail Listeners application to receive and process Service Requests and other types of tickets through e-mail in the form of e-mail messages. Using E- mail
SAS Visual Analytics 7.2 for SAS Cloud: Quick-Start Guide
SAS Visual Analytics 7.2 for SAS Cloud: Quick-Start Guide Introduction This quick-start guide covers tasks that account administrators need to perform to set up SAS Visual Statistics and SAS Visual Analytics
FileMaker Server 11. FileMaker Server Help
FileMaker Server 11 FileMaker Server Help 2010 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker is a trademark of FileMaker, Inc. registered
Smart Business Architecture for Midsize Networks Network Management Deployment Guide
Smart Business Architecture for Midsize Networks Network Management Deployment Guide Introduction: Smart Business Architecture for Mid-sized Networks, Network Management Deployment Guide With the Smart
OutDisk 4.0 FTP FTP for Email Users using Microsoft Windows and/or Microsoft Outlook. 5/1/2012 2012 Encryptomatic LLC www.encryptomatic.
OutDisk 4.0 FTP FTP for Email Users using Microsoft Windows and/or Microsoft Outlook 5/1/2012 2012 Encryptomatic LLC www.encryptomatic.com Contents What is OutDisk?... 3 OutDisk Requirements... 3 How Does
NetBeans IDE Field Guide
NetBeans IDE Field Guide Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table of Contents Introduction to J2EE Development in NetBeans IDE...1 Configuring the IDE for J2EE Development...2 Getting
... Introduction... 17. ... Acknowledgments... 19
... Introduction... 17... Acknowledgments... 19 PART I... Getting Started... 21 1... Introduction to Mobile App Development... 23 1.1... The Mobile Market and SAP... 23 1.1.1... Growth of Smart Devices...
UNICORN 7.0. Administration and Technical Manual
UNICORN 7.0 Administration and Technical Manual Page intentionally left blank Table of Contents Table of Contents 1 Introduction... 1.1 Administrator functions overview... 1.2 Network terms and concepts...
Chapter 22: Integrating Flex applications with portal servers
279 Chapter 22: Integrating Flex applications with portal servers Using Adobe LiveCycle Data Services ES, you can configure Adobe Flex client applications as local portlets hosted on JBoss Portal, BEA
V Series Rapid Deployment Version 7.5
V Series Rapid Deployment Version 7.5 Table of Contents Module 1: First Boot Module 2: Configure P1 and N interfaces Module 3: Websense Software installation (Reporting Server) Module 4: Post installation
Deployment Guide: Unidesk and Hyper- V
TECHNICAL WHITE PAPER Deployment Guide: Unidesk and Hyper- V This document provides a high level overview of Unidesk 3.x and Remote Desktop Services. It covers how Unidesk works, an architectural overview
Elgg 1.8 Social Networking
Elgg 1.8 Social Networking Create, customize, and deploy your very networking site with Elgg own social Cash Costello PACKT PUBLISHING open source* community experience distilled - BIRMINGHAM MUMBAI Preface
Snare Agent Management Console User Guide to the Snare Agent Management Console in Snare Server v6
User Guide to the Snare Agent Management Console in Snare Server v6 InterSect Alliance International Pty Ltd Page 1 of 14 Intersect Alliance International Pty Ltd. All rights reserved worldwide. Intersect
Dave Haseman, Ross. Hightower. Mobile Development for SAP* ^>. Galileo Press. Bonn. Boston
Dave Haseman, Ross Hightower Mobile Development for SAP* -a ^>. Galileo Press # Bonn Boston Introduction 17 Acknowledgments 19 PART I Getting Started 1.1 The Mobile Market and SAP 23 1.1.1 Growth of Smart
leveraging your Microsoft
Kanban Task Manager for SharePoint Manual Table of contents 1 INTRODUCTION... 3 1.1 LANGUAGES... 4 1.2 REQUIREMENTS... 4 2 INSTALLATION OF KANBAN TASK MANAGER... 4 2.1 INTRODUCTION... 4 2.2 INSTALL AND
Develop a Native App (ios and Android) for a Drupal Website without Learning Objective-C or Java. Drupaldelphia 2014 By Joe Roberts
Develop a Native App (ios and Android) for a Drupal Website without Learning Objective-C or Java Drupaldelphia 2014 By Joe Roberts Agenda What is DrupalGap and PhoneGap? How to setup your Drupal website
Search help. More on Office.com: images templates
Page 1 of 14 Access 2010 Home > Access 2010 Help and How-to > Getting started Search help More on Office.com: images templates Access 2010: database tasks Here are some basic database tasks that you can
Mistral Joomla Template
Mistral Joomla Template Documentation Copyright arrowthemes Table of Contents Introduction... 4 1.1 Template Overview... 5 Theme Styles and admin options... 5 Theme profiles... 5 Theme Layouts... 5 1.2
http://alice.teaparty.wonderland.com:23054/dormouse/bio.htm
Client/Server paradigm As we know, the World Wide Web is accessed thru the use of a Web Browser, more technically known as a Web Client. 1 A Web Client makes requests of a Web Server 2, which is software
Configuration Guide. BES12 Cloud
Configuration Guide BES12 Cloud Published: 2016-04-08 SWD-20160408113328879 Contents About this guide... 6 Getting started... 7 Configuring BES12 for the first time...7 Administrator permissions you need
ProxiBlue Dynamic Category Products
ProxiBlue Dynamic Category Products Thank you for purchasing our product. Support, and any queries, please log a support request via http://support.proxiblue.com.au If you are upgrading from a pre v3 version,
Top Navigation menu - Tabs. User Guide 1. www.magazento.com & www.ecommerceoffice.com
User Guide User Guide 1 Extension Description Successful Websites ALWAYS have logical navigation that mirror real world navigational expectations and experiences. Good menus ALWAYS looks 100% clear, because
WHITE PAPER Citrix Secure Gateway Startup Guide
WHITE PAPER Citrix Secure Gateway Startup Guide www.citrix.com Contents Introduction... 2 What you will need... 2 Preparing the environment for Secure Gateway... 2 Installing a CA using Windows Server
FileMaker Server 10 Help
FileMaker Server 10 Help 2007-2009 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker, the file folder logo, Bento and the Bento logo
Startup Guide. Version 2.3.9
Startup Guide Version 2.3.9 Installation and initial setup Your welcome email included a link to download the ORBTR plugin. Save the software to your hard drive and log into the admin panel of your WordPress
GoToMyPC Corporate Advanced Firewall Support Features
F A C T S H E E T GoToMyPC Corporate Advanced Firewall Support Features Citrix GoToMyPC Corporate features Citrix Online s advanced connectivity technology. We support all of the common firewall and proxy
Please check www.milestonesys.com for updates to make sure you install the most recent version of our software.
Guide Contents Dear Milestone Customer, With the purchase of Milestone XProtect Central you have chosen a very powerful central monitoring solution, providing instant overview of any number of Milestone
Postgres Plus xdb Replication Server with Multi-Master User s Guide
Postgres Plus xdb Replication Server with Multi-Master User s Guide Postgres Plus xdb Replication Server with Multi-Master build 57 August 22, 2012 , Version 5.0 by EnterpriseDB Corporation Copyright 2012
ultimo theme Update Guide Copyright 2012-2013 Infortis All rights reserved
ultimo theme Update Guide Copyright 2012-2013 Infortis All rights reserved 1 1. Update Before you start updating, please refer to 2. Important changes to check if there are any additional instructions
