<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/&quot;CEcAR3o5fip7ImA9WhBaFE8.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869</id><updated>2013-05-24T21:00:46.426+02:00</updated><category term="CASE STUDIES" /><category term="ANNOUNCEMENTS" /><category term="TECHNICAL ARTICLES" /><title>The Lightstreamer Blog</title><subtitle type="html">Read news, case studies, and technical articles on Lightstreamer</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Alessandro Alinone</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-zoTzaja2FUg/AAAAAAAAAAI/AAAAAAAAAEk/hNkDsERBb3M/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>96</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Lightstreamer" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="lightstreamer" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CEcAR3o4eSp7ImA9WhBaFE8.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-3748525317061327404</id><published>2013-05-24T21:00:00.001+02:00</published><updated>2013-05-24T21:00:46.431+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-24T21:00:46.431+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ANNOUNCEMENTS" /><title>Amazon AMIs for Lightstreamer Moderato Now Available</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-TRJXKwn1ijc/UZ-wij51NUI/AAAAAAAAAQw/0EKAu6Lz6Bk/s1600/aws-logo-350x129.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="72" src="http://2.bp.blogspot.com/-TRJXKwn1ijc/UZ-wij51NUI/AAAAAAAAAQw/0EKAu6Lz6Bk/s200/aws-logo-350x129.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
Cloud services like &lt;a href="http://aws.amazon.com/"&gt;Amazon AWS&lt;/a&gt; are a perfect way to reduce the time and costs associated to exploring, testing, and deploying new technologies. You choose an AMI, launch an EC2 instance and you are done. A brand new machine with all the software you need is ready to use!&lt;br /&gt;
&lt;br /&gt;
The good news is that now we provide free public Amazon Machine Images (AMIs) with pre-installed &lt;a href="http://www.lightstreamer.com/products"&gt;Lightstreamer Server, Moderato Edition&lt;/a&gt;. &lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
If you want to explore Lightstreamer for the first time, need to test your own Adapters, or you are ready to deploy your production machine, you don't even need to download and install the Lightstreamer distro anymore. Just launch an EC2 instance and Lightstreamer Moderato is up and running.&lt;br /&gt;
&lt;br /&gt;
To know all the details and find the latest AMI IDs for all the Amazon regions, together with direct bookmarks to the AWS Console, just visit &lt;a href="http://www.lightstreamer.com/moderatoAMI"&gt;www.lightstreamer.com/moderatoAMI&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
From there, you can also jump to the Amazon AMI Catalog page related to the latest version of the AMIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-obmmZ7GO14I/UZ-yaVqwAVI/AAAAAAAAARA/2vMkI2WyXoM/s1600/amicatalog.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-obmmZ7GO14I/UZ-yaVqwAVI/AAAAAAAAARA/2vMkI2WyXoM/s1600/amicatalog.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Go and check it out right now! And feel free to let us know your comments and feedback.</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/3748525317061327404/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2013/05/amazon-amis-for-lightstreamer-moderato.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/3748525317061327404?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/3748525317061327404?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2013/05/amazon-amis-for-lightstreamer-moderato.html" title="Amazon AMIs for Lightstreamer Moderato Now Available" /><author><name>Alessandro Alinone</name><uri>https://plus.google.com/105311861211129158469</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-zoTzaja2FUg/AAAAAAAAAAI/AAAAAAAAAEk/hNkDsERBb3M/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-TRJXKwn1ijc/UZ-wij51NUI/AAAAAAAAAQw/0EKAu6Lz6Bk/s72-c/aws-logo-350x129.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkMHQXo5fyp7ImA9WhBbGE0.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-1019473978055158188</id><published>2013-05-16T14:43:00.000+02:00</published><updated>2013-05-17T17:27:10.427+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-17T17:27:10.427+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CASE STUDIES" /><title>Meet our Partners: Wirex</title><content type="html">&lt;img border="0" src="http://2.bp.blogspot.com/-qynSvbUP9zw/UZODzxob5PI/AAAAAAAAAR8/A9K3eJttdAg/s1600/alessandronegro.jpg" style="float: right; margin-bottom: 10px; margin-left: 10px; margin-right: 10px; margin-top: 10px;" /&gt;
A short interview with Alessandro Negro, CTO at &lt;a href="http://www.wirex.it/" target="_blank"&gt;Wirex&lt;/a&gt;, an Italian software house providing platforms for gaming, betting and gambling operations.&lt;br /&gt;
&amp;nbsp;&lt;b&gt; &lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Let’s talk about your organization. What is your core business?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: black;"&gt;
&lt;i&gt;
Wirex was founded in 2002 and its products cover the whole spectrum of the iGaming industry with a wide offer of internally developed software, including a players management platform, a live casino, a RNG Casino, and a sports betting platform, all of which are easy to integrate among one another to provide maximum flexibility.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Could you let us know any further information? (Number of customers, covered regions, revenues..)&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.wirex.it/" target="_blank"&gt;
&lt;img border="0" src="http://2.bp.blogspot.com/-L6-FAANOpIU/UZOE3V8gb5I/AAAAAAAAASI/GzeT6EfFQEA/s1600/logoWirexMail.jpg" style="float: left; margin-bottom: 30px; margin-left: 0px; margin-right: 20px; margin-top: 25px;" /&gt;&lt;/a&gt;&lt;i&gt;Our company has two offices in Italy, each of them with specific specializations, and a fully owned business development unit in Malta. The company reached a significant penetration in the Italian and Maltese markets, is approaching new targets including Greece, Austria, and Spain, and has recently started to consider US, India and Southeast Asia as approachable markets.&lt;/i&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;Who is the typical user of your product or service?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Our portfolio comprehends land casinos and gaming operators of every size, including companies listed in the London Stock Exchange and several others with an international prominence. Our customers include Sportingbet, PKR, Playbet, and Mybet.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What do you do for Wirex and what are you responsible for?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;As a Chief Technology Officer, I manage and supervise several aspects in software development, including architecture, design, middlewares selection, and coding best practises.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Which applications or services are currently powered by Lightstreamer within your offer?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Within our Live Casino offer, Lightstreamer is currently powering a specific variant of the popular BlackJack game, called ‘BlackJack Studio’, which is based on a 1-on-1 interaction between player and dealer. This game features a high level of interactivity, and requires a high performance, bi-directional data push server. Furthermore, Lightstreamer is also part of the entire gaming back-end infrastructure, including a number of real-time monitoring systems, and the whole chat system between players and with croupiers. We just completed a Live Casino project that included Lightstreamer for &lt;a href="http://www.portomasocasino.com/" rel="nofollow" target="_blank"&gt;Portomaso, a famous Maltese land-based casino&lt;/a&gt;.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/-8KpU-MwF2Wc/UZOXKgS78zI/AAAAAAAAAS4/1Dhoy071EDY/s1600/portomasolive.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_blank"&gt;&lt;img border="0" height="374" src="http://2.bp.blogspot.com/-8KpU-MwF2Wc/UZOXKgS78zI/AAAAAAAAAS4/1Dhoy071EDY/s640/portomasolive.jpg" width="574" /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;b&gt;How many players are, on average, in a Live Casino platform? &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Live casino platforms offer video streams of real persons as dealers, and require to handle a large amount of frequently updated data, in order to keep the user interface responsive and offer the players a pervasive, truly ‘live’ gaming experience. Thus, it’s not hard to understand that the overall complexities are drastically higher comparing to a standard, even big sized RNG online casino.
Giving some numbers, a mid-sized live casino holds 4 to 20 BlackJack Studio tables, with up to 10/20 players/users per table. Roulette and Punto Banco have different numbers; for example, 3 real roulettes are enough to power up to hundreds of virtual tables. Our platform also features a queue management system if tables are full, to keep the whole gaming experience enjoyable even in case of players’ overcrowding. &lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Is your main application based on HTML or other front-end technologies?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;On the client side our applications are mostly written in HTML and JavaScript, with a solid Java core on the server side.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-6jjimjJ-fwU/UZOkq0z8B6I/AAAAAAAAATI/lxrh9cZCE_c/s1600/homepageportomaso.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_blank"&gt;&lt;img border="0" height="169" src="http://3.bp.blogspot.com/-6jjimjJ-fwU/UZOkq0z8B6I/AAAAAAAAATI/lxrh9cZCE_c/s200/homepageportomaso.jpg" width="205" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Do you provide any native apps for smartphones and tablets?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;We did not developed any native apps for mobile and tablets yet, but we made web-based, ‘lite’ version of some of our products to be available on smartphones. As Wirex decided to dismiss RTP for its iOS compatibility issues, Lightstreamer has been chosen as the unique, efficient real-time server to allow any desktop and mobile clients to join the same platform seamlessly.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Do you use Lightstreamer for bi-directional data push &lt;/b&gt;(that is, also for sending messages from the client to the server)&lt;b&gt;?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Yes, Lightstreamer has been implemented for bi-directional data push from the beginning. iGaming platforms usually feature a big number of sources that send and receive data for a relatively high number of items (which include, for example, data from the game, players’ decisions and messages, and a bunch of real-time monitoring information). Most of them require high update frequencies both in the front-end side, to offer a reactive, enjoyable gaming experience, both in the back-end side, to power it with useful tools such as real-time alerts. &lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What other features of Lightstreamer are you taking benefit from &lt;/b&gt;(e.g. data throttling, low latency, bandwidth management, security, smart proxy traversal, etc.)&lt;b&gt;?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;No one at the moment, but we are going to evaluate them in the next future as we are planning to do another intensive session of tests and optimizations. We definitely appreciated the Lightstreamer Client APIs, which allowed us to push key gaming information in real-time with just a tiny coding effort on our side. &lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Is Lightstreamer currently deployed in any other Wirex projects? If not, will it be included in any future projects?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Lightstreamer will be progressively deployed in other games, including Roulette and Punto Banco (a close relative of the more known game Baccarat).
We are currently working on another online project for an Italian land-based casino, and we are exploring the deploying of Lightstreamer in other scenarios, including in-run betting platforms, in which players are allowed to join the action and place bets on events occurring during a sport match (e.g the outcome of a penalty kick in soccer). Our current roadmap include a progressive migration from WOWZA as a streaming server (keeping it as a video streaming server in any case), and the adoption of HTML5 as a front-end technology with Websocket as a client-server protocol. We have chosen Lightstreamer to handle its complexities swiftly.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;We would be very grateful if you would like to provide a short recommendation to testify your experience with Lightstreamer technology and its support team.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;After several months of use, we can state that Lightstreamer has been a winning choice, helping us to simplify the overall software architecture for real-time data transfers. The quality of the support we received was impressive, allowing us to rapidly overcome the few problems we encountered, and move ahead with a smooth integration. We managed to release a sturdy, Lightstreamer powered iGaming application in a truly short time, as everything worked like a charm since the beginning. &lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/1019473978055158188/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2013/05/meet-our-partners-wirex.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/1019473978055158188?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/1019473978055158188?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2013/05/meet-our-partners-wirex.html" title="Meet our Partners: Wirex" /><author><name>Valerio Celletti</name><uri>http://www.blogger.com/profile/14208644245431044513</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-qynSvbUP9zw/UZODzxob5PI/AAAAAAAAAR8/A9K3eJttdAg/s72-c/alessandronegro.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CU4GRXs-fSp7ImA9WhBVEkQ.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-8281723180368152435</id><published>2013-04-18T12:17:00.000+02:00</published><updated>2013-04-18T16:05:24.555+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-18T16:05:24.555+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CASE STUDIES" /><title>Meet our Customers: Rai</title><content type="html">&lt;img border="0" height="135" src="http://2.bp.blogspot.com/-QGBB3k45CG4/UW7DX0NRS9I/AAAAAAAAARY/7n_BARt0Ab8/s1600/espeditolongo.jpg" style="clear: right; float: right; margin-bottom: 5px; margin-left: 5px; margin-right: 5px; margin-top: 5px;" width="125" /&gt;A short interview with Espedito Longo, Project Manager (Technological Services) at &lt;a href="http://www.rai.it/" target="_blank"&gt;Rai&lt;/a&gt;, one of the most important broadcasting organizations in Europe.&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Let’s talk about your organization. What is your core business?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Rai is the owner of the Italian national public service radio and television broadcasting license, and one of the most important communication firms in Europe. The company has the ability to conceive, design, and develop contents (which include news, movies for cinema and TV, TV formats, and others) to distribute through a wide range of media including Sat TV, DTT, and the Internet. The main objective of Rai Net, fully owned by Rai and founded in June 1999, is to develop and improve the web as a channel for effectively promoting and easily distributing the aforementioned contents to all Italians.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;b&gt;Could you let us know any further information? &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.rai.it/" target="_blank"&gt;&lt;img src="http://3.bp.blogspot.com/-JgWcUDsNG18/UWwirKqGa_I/AAAAAAAAAQg/X1c0vS-MZXQ/s320/logo+rai.png" style="float: left; margin: 0px 10px 0px 0px;" width="100" /&gt;&lt;/a&gt;
&lt;i&gt;Rai employs more than 10,000 people, serves over 16 million families as paying users, and owns more than 1,500 branded websites (for entertainment, news, or service) that attract an overall average of 8 million unique visitors a month. The several apps for smartphones and tablets published by Rai recorded more than 900,000 download since their launch dates. In 2011, Nielsen Media Research revealed a significant decrease in annual aggregated advertising revenues (-4%), excluding the web specifically, which recorded +12.3% compared to the previous period. The consolidation of this channel in terms of usage volumes and popularity, and the related capacity to raise growing investments from advertisers, increased the position of the web within the group’s strategy and offer.&lt;/i&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;i&gt;

&lt;/i&gt;&lt;br /&gt;
&lt;b&gt;Who is the typical user of your product or service?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Born as the national public TV service licensee, Rai started its activity operating as the only Italian broadcaster and directed its offer of contents to a wide, general audience, also due to initial technical limitations of the analog television. DTT and Sat TV technologies on a side, and Web technologies (VODs, Second Screens, Smart TVs) on the other, overcome the national borders, allowed the enlargement of the offer with thematic channels, and enriched it with increased interactivity. Thus, as the technologies progress, even TV audience appears to be more segmented compared to past.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;b&gt;Could you please describe your product/service that integrates Lightstreamer? &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/-T2BSpdEif4I/UWwnJXeU4dI/AAAAAAAAAQw/Z1WjVxxbk40/s1600/raitv.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;" target="_blank"&gt;&lt;img border="0" height="245" src="http://4.bp.blogspot.com/-T2BSpdEif4I/UWwnJXeU4dI/AAAAAAAAAQw/Z1WjVxxbk40/s320/raitv.png" width="320" /&gt;&lt;/a&gt;&lt;i&gt;For Rai Net, the Lightstreamer technology has been integrated in the Rai.tv SocialTV platform that allows users to send and receive instant messages during a TV show and get extra contents. This Social TV platform went live to support Sanremo, a popular music competition for unreleased Italian songs. During the show, the audience has been able to discuss the performances and get goodies, extra contents that include texts, videos on-demand, “behind the scenes” footage, and real-time interviews with singers and artists. 
Ballarò, another popular talk show broadcasted weekly, has also been associated with a Lightstreamer-powered Social TV platform during this season’s shows.
&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/-xwDxF8p7SXQ/UW6oPxOIf_I/AAAAAAAAARA/EU_utGI4drs/s1600/raiSocialTVTablet.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_blank"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-xwDxF8p7SXQ/UW6oPxOIf_I/AAAAAAAAARA/EU_utGI4drs/s320/raiSocialTVTablet.jpg" width="266" /&gt;&lt;/a&gt;&lt;i&gt;Lightstreamer is currently used in the Social TV platform to push users’ messages and editors’ featured contents to all concurrent users. It has already been inserted in the Rai’s future plans, as its usage will be extended to push real-time news in several web portals that we are going to update. &lt;br /&gt;&lt;/i&gt;&lt;br /&gt;
&lt;b&gt;Is your main application based on HTML or other front-end technologies?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;The application we mentioned is HTML-based, but it (and Lightstreamer as a part of it) has been also integrated in the Rai.TV apps that we released for smartphones and tablets, both for iOS and Android.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Is your product or service visible at any URL (publicly or registration based)?&lt;/b&gt;&lt;i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;When a SocialTV event is active, the platform can be accessed through the following URL:&lt;a href="http://www.rai.tv/dl/RaiTV/eventi.html" target="_blank"&gt; http://www.rai.tv/dl/RaiTV/eventi.html&lt;/a&gt;.&amp;nbsp;&lt;/i&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Samsung and its competitors launched “always connected” TVs, and smartphones and tablets’ growth appear to be relentless, creating a definitely more interactive and ‘social’ way to watch TV,&amp;nbsp; &lt;i&gt;&lt;/i&gt;not only on the home screen. Is the future of the TV on the web?&lt;/b&gt;&lt;i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;The possibilities given by the IP protocol for all devices, including smart TVs, will radically change the traditional idea of television known so far, turning it into a true multimedia domestic hub in a short time. Today, it’s already possible to have Catch Up TV services, VOD, news browsing, web search, and popular social networks on a common Smart TV. Two issues arose and need to be solved soon: &lt;/i&gt;&lt;/i&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;&lt;i&gt;On protection of intellectual property for content owners - broadcasting via IP on master screens can’t be unruled as part of the web is today. Broadcasters’ legitimate interests have to be protected.&amp;nbsp;&lt;/i&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;i&gt;On technological standards - is mandatory to find a standard that would get along with open industry standards, such as MHP, and proprietary technologies, owned by manufacturers.&lt;/i&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;a href="http://3.bp.blogspot.com/-sGQlpjQ7GpI/UW6tdP4h2EI/AAAAAAAAARI/CEhwLl585zk/s1600/foto.PNG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;" target="_blank"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/-sGQlpjQ7GpI/UW6tdP4h2EI/AAAAAAAAARI/CEhwLl585zk/s400/foto.PNG" width="266" /&gt;&lt;/a&gt;&lt;b&gt;In the 2011 financial statements, Rai declared that &lt;i&gt;"the web represents, paired with DTT, a key medium for the group’s industrial and editorial strategy for its growing diffusion among the Italian families and for its ability to define deep innovations in the overall media offer, consumption, and business"&lt;/i&gt;. What future can be predicted for the web as a medium, according to Rai as a mature, traditional broadcaster? &lt;/b&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Rai is still not considering its over-IP offer as the key element of its strategic roadmap for products and customer development so far. Right now, the offer can definitely be considered as A-class, both for contents and technologies, but steps need to be done to improve the quality of communications and the integration with traditional media. Broadcasting and content delivery via IP will be progressively considered essential, and it needs to be declined on Smart TV, to keep the overall strong linear development aligned with the non-linear one.&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;“In the future, no television advertisements will be just self-contained narratives. They will be trailers into deeper branded digital experiences”&lt;/i&gt;, declared Shiv Singh, Global Head of Digital of PepsiCo. The web will undoubtedly be the medium in which all the others will converge. Which grade of interactivity will be needed to make this possible?&lt;/b&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Italy has always been a step behind Europe, United States, and Asian markets in advertising and digital cross-mediality.  We would see enhanced advertisements in a short time syncing the traditional TV ads with second screens, delivering extra contents and changing the fruition paradigm through an audience that now expects to be interconnected, both directly and on social networks. &lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;
&lt;/i&gt;&lt;b&gt;Any comments on your experience integrating Lightstreamer?&lt;/b&gt;&lt;i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Rai Net appreciated Lightstreamer as a flexible, versatile, and easy-to-install product. Concerning the integration with other components of the Social TV platform we developed, it proved to be truly valuable. We managed to integrate the technology both for iOS and Android in a really short time, and we are also currently planning to integrate Lightstreamer in Multimedia Home Platforms and Connected TVs. Its support team was really quick in answering and overly proactive so far, and this is the true added value compared to other products currently available on the market. Plus, we always inquired the support team to ask for help, never to notify of product bugs. &amp;nbsp;&lt;/i&gt;&lt;/i&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/8281723180368152435/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2013/04/meet-our-customers-rai.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/8281723180368152435?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/8281723180368152435?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2013/04/meet-our-customers-rai.html" title="Meet our Customers: Rai" /><author><name>Valerio Celletti</name><uri>http://www.blogger.com/profile/14208644245431044513</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-QGBB3k45CG4/UW7DX0NRS9I/AAAAAAAAARY/7n_BARt0Ab8/s72-c/espeditolongo.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D04DSH0yeip7ImA9WhBWFEw.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-6714244463889704520</id><published>2013-04-08T12:12:00.001+02:00</published><updated>2013-04-08T12:12:59.392+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-08T12:12:59.392+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CASE STUDIES" /><title>Meet our Customers: IG</title><content type="html">&lt;img border="0" height="136" src="http://3.bp.blogspot.com/-oU1fy_aR-Gk/USI6sbqDoBI/AAAAAAAAAOk/1Z-a1scMkCs/s200/Ivan+gowan.png" style="clear: right; float: right; margin-bottom: 5px; margin-left: 5px; margin-right: 5px; margin-top: 5px;" width="125" /&gt;A short interview with Ivan Gowan, Head of IT Development at &lt;a href="http://www.igindex.co.uk/" target="_blank"&gt;IG&lt;/a&gt;, the world’s first financial spread betting company.&lt;br /&gt;
&amp;nbsp;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Let’s talk about your organization. What is your core business?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Company's core businesses are Contracts for Difference (CFDs) and Spread Betting.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;b&gt;Could you let us know any further information? &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://3.bp.blogspot.com/-Ns27ZeyEFO0/UWKQC6PQ7sI/AAAAAAAAAQQ/7orP_6nPepI/s1600/logo_IG.jpg" style="float: left; margin: 0px 10px 0px 0px;" width="100" /&gt;
&lt;i&gt;IG Group (LSE:IGG), headquartered in London, began its activity in 1974 as the world’s first financial spread betting company. In the first half of 2012, IG Group recorded GBP 366.8M (+17.3% from the previous area) in trading revenues and GBP 185.7M in profit before tax. With offices in 14 countries across five continents, we execute more than five million transaction a month for over 140,000 global clients.&lt;/i&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;i&gt;

&lt;/i&gt;&lt;br /&gt;
&lt;b&gt;Who is the typical user of your product or service?&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;Our client base is focused made up of people who in the main are decision makers and lean towards people who have significant disposable income.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;a href="http://www.igindex.co.uk/" target="_blank"&gt;&lt;img border="0" height="271" src="http://4.bp.blogspot.com/-eV-DOutYCYA/USI9CyvS_EI/AAAAAAAAAO4/xp5mlMNWoWA/s320/IgIndex_web.png" style="clear: right; float: right; margin-bottom: 10px; margin-left: 20px; margin-right: 0px; margin-top: 10px;" width="320" /&gt;&lt;/a&gt;&lt;b&gt;What does your application or service do? &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Our dealing platforms provide retail clients with the ability to deal on tens of thousands of markets in real time.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;What functionalities are powered by Lightstreamer?&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;i&gt;Lightstreamer is used to provide streaming of prices and deal confirmations to the dealing platforms. It is also used to stream data to our charts applications.
&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Is your main application based on HTML or other front-end technologies?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Our Web Dealing Platform uses HTML, JavaScript, and Flex for our Charts. &lt;/i&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://3.gvt0.com/vi/9ghZGgGbesc/0.jpg" height="300" style="clear: left; float: left; margin-bottom: 20px; margin-left: 0px; margin-right: 10px; margin-top: 20px;" width="400"&gt;&lt;param name="movie" value="http://www.youtube.com/v/9ghZGgGbesc&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="400" height="300"  src="http://www.youtube.com/v/9ghZGgGbesc&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Do you provide any native apps for smartphones and tablets?&lt;/b&gt;&lt;i&gt; &lt;/i&gt;
&lt;i&gt;&lt;br /&gt;&lt;br /&gt;Our native Mobile Dealing Platforms use the native libraries for iOS, Android, Windows Phone and J2ME.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Is your product or service visible at any URL (publicly or registration based)?&lt;/b&gt;&lt;i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Clients can see our web sites &lt;a href="http://www.igindex.co.uk/"&gt;www.igindex.co.uk&lt;/a&gt;, &lt;a href="http://www.igmarkets.co.uk/"&gt;www.igmarkets.co.uk&lt;/a&gt; or find the various IG mobile apps &lt;a href="http://www.igindex.co.uk/spread-betting/mobile-dealing-landing.html" target="_blank"&gt;here&lt;/a&gt;.&lt;/i&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;IG Index won many accolades and awards from industry groups and financial media during the years. Could you please list some of them?
&lt;/b&gt;&lt;i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Our recent awards include &lt;a href="http://www.ftinvestmentawards.co.uk/" target="_blank"&gt;Investors Chronicle/Financial Times "Best Spread Betting Provider" and "Best CFD Provider" Awards 2012&lt;/a&gt;, and What Investment magazine "Spread Betting Provider of the Year" Awards 2011, 2010, 2009, among the many others. An extensive list of IG Index awards is available online &lt;a href="http://www.igindex.co.uk/spread-betting/about-us.html" target="_blank"&gt;here&lt;/a&gt;.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/i&gt;&lt;b&gt;Which will be the next steps IG Group will take to keep improving its online services in the near future?&lt;/b&gt;&lt;i&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;IG Group have just rolled out Price Alert push notifications on our native mobile platforms.  This was a heavily requested feature from our clients and has been well received.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;i&gt;&lt;i&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/i&gt;&lt;/i&gt; &lt;br /&gt;
&lt;/i&gt;&lt;b&gt;Any comments on your experience integrating Lightstreamer?&lt;/b&gt;&lt;i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;In our experience Lightstreamer have repeatedly demonstrated their in depth expertise in streaming over the web with deep knowledge of the difficulties one faces.  Our experience of Lightstreamer support has been very positive, they have set a high bar for other vendors to strive to achieve.  Responses to questions about our design or rollout as well as support issues have been very prompt and detailed.  They are very proactive in helping to resolve issues.&amp;nbsp;&lt;/i&gt;&lt;/i&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/6714244463889704520/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2013/04/meet-our-customers-ig.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/6714244463889704520?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/6714244463889704520?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2013/04/meet-our-customers-ig.html" title="Meet our Customers: IG" /><author><name>Valerio Celletti</name><uri>http://www.blogger.com/profile/14208644245431044513</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-oU1fy_aR-Gk/USI6sbqDoBI/AAAAAAAAAOk/1Z-a1scMkCs/s72-c/Ivan+gowan.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUYAQHw9eyp7ImA9WhBQFkw.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-5522316126197401241</id><published>2013-03-18T14:25:00.001+01:00</published><updated>2013-03-18T14:25:41.263+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-18T14:25:41.263+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CASE STUDIES" /><title>Meet our Customers: OptionMonster</title><content type="html">&lt;br /&gt;
&lt;img border="0" src="http://2.bp.blogspot.com/-lE7fzy8NRrs/UUHqq3Vv6nI/AAAAAAAAAPo/vq2s5V-MsaM/s1600/10AyLLk.jpg" style="float: right; height: 125px; margin: 10px 25px 20px; width: 125px;" /&gt;A short interview with Danny Maguire, VP Program Management Office at &lt;a href="http://www.optionmonster.com/" target="_blank"&gt;OptionMonster&lt;/a&gt;, a Chicago-based financial company that provides private investors with insight, ideas, and education on the US equities and options market.&lt;br /&gt;
&amp;nbsp;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Let’s talk about your organization. What is your core business?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;a href="http://www.optionmonster.com/" rel="nofollow" target="_blank"&gt;optionMONSTER®&lt;/a&gt; is a Chicago-based company that provides stock market insight, option trade ideas, and options education to meet the needs of do-it-yourself investors.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;a href="https://www.trademonster.com/" rel="nofollow" target="_blank"&gt;tradeMONSTER™&lt;/a&gt;, a powerful online trading platform for active stock, option and futures traders who demand professional grade online trading tools, has been launched in 2008, separated from but affiliated with optionMONSTER®.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;a href="http://www.stockmonster.com/" target="_blank"&gt;stockMONSTER®&lt;/a&gt;, founded in 2006, is the third member of the family and helps self-directed investors to read news and analysis in order to invest with confidence.
&lt;/i&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&lt;b&gt;What do you do for OptionMonster and what are you responsible for?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;I have a variety of responsibilities including managing technology projects, market data, vendor relationship management, contracts, intellectual property, technology business development, proposal writing, budgeting.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;b&gt;Who is the typical user of your product or service?&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://www.bussoladoinvestidor.com.br/" imageanchor="1"&gt;&lt;br /&gt;&lt;/a&gt;
&lt;a href="http://www.optionmonster.com/" style="clear: right; float: right; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-iVly-qq_KzM/UUHrYadaXXI/AAAAAAAAAPw/x46BLTkUWIM/s320/optionmonster.png" /&gt;&lt;/a&gt;&lt;i&gt;Our typical user is an active investor or trader who engages in equity options strategies.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;b&gt;Which applications or services are currently powered by Lightstreamer within your offer? For what functionalities?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;We use Lightstreamer to provide streaming data to our brokerage application, tradeMONSTER.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;br /&gt;
&lt;a href="http://www.trademonster.com/"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-9N62nz4odmU/UUb5Q63TVXI/AAAAAAAAAQA/ZGVx1RKw1LA/s320/trademonster.png" style="float: left; height: 179px; margin-bottom: 20px; margin-left: 0px; margin-right: 20px; margin-top: 20px; width: 350px;" /&gt;&lt;/a&gt;&lt;b&gt;Is your main application based on HTML or other front-end technologies?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;We have a Flex-based front end for desktops and an HTML5-based front end for mobile devices.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Do you provide any native apps for smartphones and tablets?&lt;/b&gt;&lt;i&gt; &lt;/i&gt;
&lt;i&gt;&lt;br /&gt;&lt;br /&gt;We provide hybrid apps for &lt;a href="https://www.trademonster.com/trading/mobile-trading.jsp" rel="nofollow" target="_blank"&gt;iOS&lt;/a&gt; and &lt;a href="https://www.trademonster.com/trading/mobile-trading.jsp" rel="nofollow" target="_blank"&gt;Android&lt;/a&gt;.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What other features of Lightstreamer are you taking benefit from &lt;/b&gt;(e.g. data throttling, low latency, bandwidth management, security, smart proxy traversal, etc.)&lt;b&gt;?&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp;&lt;/b&gt;

&lt;br /&gt;
&lt;i&gt;We are using all of these features.
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;br /&gt;
&lt;b&gt;Is your product or service visible at any URL (publicly or registration based)?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;You must be registered to use our product. &lt;a href="https://www.trademonster.com/am/GettingStarted.action"&gt;Join us!&lt;/a&gt;&lt;/i&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Any comments on your experience integrating Lightstreamer?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;We are very satisfied with our decision to use Lightstreamer.  It has proven to be a reliable, scalable and cost-effective product.  We also sincerely appreciate the excellent technical support we receive from the Lightstreamer team.&lt;/i&gt;&lt;/i&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/5522316126197401241/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2013/03/meet-our-customers-optionmonster.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/5522316126197401241?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/5522316126197401241?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2013/03/meet-our-customers-optionmonster.html" title="Meet our Customers: OptionMonster" /><author><name>Valerio Celletti</name><uri>http://www.blogger.com/profile/14208644245431044513</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-lE7fzy8NRrs/UUHqq3Vv6nI/AAAAAAAAAPo/vq2s5V-MsaM/s72-c/10AyLLk.jpg" height="72" width="72" /><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;CUUFRXk8fip7ImA9WhBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-4736272075582704454</id><published>2013-02-25T15:15:00.000+01:00</published><updated>2013-02-27T20:26:54.776+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T20:26:54.776+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CASE STUDIES" /><title>Lightstreamer's customers dominated the Shares Awards 2012</title><content type="html">&lt;a href="http://www.sharesawards.co.uk/awards/" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-yY1MRvHcJx0/USYsOGICg-I/AAAAAAAAAPM/0-06IL3RJKw/s1600/Shares+Awards+2012+Logo.png" style="float: left; margin-bottom: 10px; margin-left: 10px; margin-right: 10px; margin-top: 10px;" /&gt;&lt;/a&gt;We are very excited to announce that &lt;b&gt;several Lightstreamer's customers&lt;/b&gt; in the financial industry, where our product consolidated its success and value, &lt;b&gt;have been awarded for the coveted &lt;a href="http://www.sharesawards.co.uk/awards/" target="_blank"&gt;Shares Awards 2012&lt;/a&gt;&lt;/b&gt; on November 15, 2012 at London's Grovenor House Hotel. &lt;br /&gt;
&lt;br /&gt;
This prestigious UK's financial services gala reached its 11th edition this year, and it's certainly recognized as one of the most widely known and desired prizes as &lt;b&gt;a clear benchmark of excellence and innovation across the industry. &lt;/b&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-loMuVmEwXi8/USYwJseco-I/AAAAAAAAAPU/GQe7ywwaX0g/s320/shares+magazine.JPG" style="float: right; margin-bottom: 10px; margin-left: 10px; margin-right: 10px; margin-top: 10px;" width="244" /&gt;
&lt;b&gt;&lt;a href="http://www.sharesmagazine.co.uk/" target="_blank"&gt;Shares&lt;/a&gt;&lt;/b&gt; is in fact the &lt;b&gt;UK's leading weekly publication for stock market professionals and private investors&lt;/b&gt; and as such is read weekly by thousands of analysts, fund managers, stockbrokers, company directors and private investors. Published every Thursday since 1999, has now developed a strong following and a widespread 'trading desk credibility' in the City.&lt;br /&gt;
&lt;br /&gt;
The whole celebration is traditionally around the &lt;b&gt;Financial Service Provider of the Year Award&lt;/b&gt;, the main and most known prize assigned during the event. Back in the days, it has been deservedly won by IG Index in 2009 and IG Group in 2010, both of which integrated Lightstreamer in their platforms since 2005. &lt;b&gt;Hargreaves Lansdown, which has recently chosen Lightstreamer for its platforms&lt;/b&gt;, overcame a number of valuable competitors and &lt;b&gt;resulted as the overall winner for the 2012 edition. &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The Financial Service Provider of the Year Award is offered to the firm which gains the overall greatest number of votes across each of the 27 categories from the Shares' readers. This is a strong achievement and a priceless testament of the success of a company and its products and service: it's not so easy to stand out and be&lt;b&gt; acclaimed directly by a truly discerning audience&lt;/b&gt; like the readers of the Shares Magazine are. &lt;br /&gt;
&lt;br /&gt;
Below&lt;b&gt; &lt;/b&gt;are&lt;b&gt; &lt;/b&gt;some Lightstreamer-powered financial firms that resulted as winners in this year's edition&lt;b&gt;:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Best CFD Provider &lt;/b&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;u&gt;&lt;i&gt;City Index&lt;/i&gt;&lt;/u&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Best Online Trading Platform &lt;/b&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;u&gt;&lt;i&gt;IG&lt;/i&gt;&lt;/u&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Best Spread Betting Service &lt;/b&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;u&gt;&lt;i&gt;IG&lt;/i&gt;&lt;/u&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Financial Provider of the Year &amp;nbsp;&lt;/b&gt;&amp;nbsp; &lt;u&gt;&lt;i&gt;Hargreaves Lansdown&lt;/i&gt;&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;
Glad to be the beating heart in the best of breed in the financial industry, and Kudos to the winners!</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/4736272075582704454/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2013/02/lightstreamers-customers-dominated.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/4736272075582704454?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/4736272075582704454?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2013/02/lightstreamers-customers-dominated.html" title="Lightstreamer's customers dominated the Shares Awards 2012" /><author><name>Valerio Celletti</name><uri>http://www.blogger.com/profile/14208644245431044513</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-yY1MRvHcJx0/USYsOGICg-I/AAAAAAAAAPM/0-06IL3RJKw/s72-c/Shares+Awards+2012+Logo.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUUFRXk-eSp7ImA9WhBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-1700355254789828331</id><published>2013-01-14T11:08:00.000+01:00</published><updated>2013-02-27T20:26:54.751+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T20:26:54.751+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CASE STUDIES" /><title>Meet our Customers: Bùssola do Investidor</title><content type="html">&lt;br /&gt;
&lt;img border="0" src="http://2.bp.blogspot.com/-SyYU0w1459A/URDx42gGuJI/AAAAAAAAALw/U3FioXH1YO0/s1600/Frederico-Skwara.jpg" style="float: right; margin-bottom: 20px; margin-left: 25px; margin-right: 25px; margin-top: 10px;" /&gt;A short interview with Frederico Skwara, Founder &amp;amp; CEO at &lt;a href="http://www.bussoladoinvestidor.com.br/" rel="nofollow" target="_blank"&gt;Bùssola do Investidor&lt;/a&gt;, &lt;span id="internal-source-marker_0.9276001190448241" style="background-color: transparent; color: #222222; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;a website focused on providing tools and content to individual investors, within a social environment&lt;/span&gt;.&lt;br /&gt;
&amp;nbsp;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Let’s talk about your organization. What is your core business?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Bússola do Investidor is a website focused on providing tools and content to individual investors, within a social environment. We offer real time quotes, interactive charts for technical analysis, a portfolio manager and contents related to investments, such as news and articles. 
&lt;/i&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;b&gt;Could you let us know any further information? &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/-b7DIIo39ulY/UO_9pu8_PUI/AAAAAAAAAKY/oegtDcQCSjY/s1600/logo_bussola_novo6.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-b7DIIo39ulY/UO_9pu8_PUI/AAAAAAAAAKY/oegtDcQCSjY/s1600/logo_bussola_novo6.png" /&gt;&lt;/a&gt;&lt;i&gt;Currently, we operate in Brazil with quotes from BM&amp;amp;FBovespa, the Brazilian stock exchange. We have more than 60.000 registered users and almost 1.000 premium users. After participating on the Start-Up Chile program, we have been working on local versions for Chile, Colombia and Peru, the fastest growth Latin American economies, under the StreetInvestor brand.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;b&gt;Who is the typical user of your product or service?&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://www.bussoladoinvestidor.com.br/" imageanchor="1"&gt;&lt;img border="0" height="195" src="http://3.bp.blogspot.com/-DStfX2WKc4I/UPAXgNz8QCI/AAAAAAAAAKs/KUluSN1cAM8/s400/frontpage+bussola.png" style="float: right; margin-bottom: 10px; margin-left: 10px; margin-right: 10px; margin-top: 10px;" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;i&gt;Our focus is to provide professional tools at a low cost for Latin American individual investors, so this is our typical user. In Brazil, we have almost 600k individual investors in Stocks and 4.5mm in mutual funds. On the other top 5 Latin American economies, we have more than 2.5mm individual investors only in stocks. &lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;b&gt;What does your application or service do? &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;We provide a web based technical analysis tool, with real time market information. Investors can check quotes, charts, make and share their own analysis using drawings and indicators. Everything in real time, served by Lightstreamer.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;What functionalities are powered by Lightstreamer?&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;i&gt;Real-time streaming of quotes.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img border="0" height="196" src="http://1.bp.blogspot.com/-T3k2aHRuTd4/UPAY2wDe1zI/AAAAAAAAALA/uZdgQgJdz6E/s400/demo+bussola.png" style="float: left; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; margin-top: 15px;" width="400" /&gt;&lt;b&gt;Is your main application based on HTML or other front-end technologies?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;In HTML. We have a flash based stock chart, but the real time updates are made using a Javascript API.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Do you provide any native apps for smartphones and tablets?&lt;/b&gt;&lt;i&gt; &lt;/i&gt;
&lt;i&gt;&lt;br /&gt;&lt;br /&gt;Not yet. We are currently developing a mobile version, but using the JS Lightstreamer API. &lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What other features of Lightstreamer are you taking benefit from &lt;/b&gt;(e.g. data throttling, low latency, bandwidth management, security, smart proxy traversal, etc.)&lt;b&gt;?&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp;&lt;/b&gt;

&lt;br /&gt;
&lt;i&gt;We use Lightstreamer “as-is”, without advanced settings but we are very happy with the inherent benefits as smart pooling and with compatibility with older browsers.
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;br /&gt;
&lt;b&gt;Is your product or service visible at any URL (publicly or registration based)?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Check &lt;a href="http://www.bussoladoinvestidor.com.br/graficos_bovespa_temporeal/" target="_blank"&gt;here&lt;/a&gt;. We have a free version with delayed quotes and a real time version for premium users. The pricing starts in R$24.90, which is equivalent to US$12.50 per month.&lt;/i&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Any comments on your experience integrating Lightstreamer?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Lightstreamer was a helpful ally on releasing our real time quoting system with the agility we needed as it provides world-class pushing platform seamlessly, with all SDKs we need and managing the challenges related to data streaming with compatibility in mind.&lt;/i&gt;&lt;br /&gt;
&lt;/i&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/1700355254789828331/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2013/01/meet-our-customers-bussola-do-investidor.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/1700355254789828331?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/1700355254789828331?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2013/01/meet-our-customers-bussola-do-investidor.html" title="Meet our Customers: Bùssola do Investidor" /><author><name>Valerio Celletti</name><uri>http://www.blogger.com/profile/14208644245431044513</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-SyYU0w1459A/URDx42gGuJI/AAAAAAAAALw/U3FioXH1YO0/s72-c/Frederico-Skwara.jpg" height="72" width="72" /><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;A0cNSHY9cCp7ImA9WhBUGU4.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-8286339304071535992</id><published>2013-01-08T12:47:00.000+01:00</published><updated>2013-05-07T17:04:59.868+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-07T17:04:59.868+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TECHNICAL ARTICLES" /><title>On iOS URL Connection Parallelism and Operation Queues</title><content type="html">&lt;h2&gt;
The problem&lt;/h2&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: right; float: right; margin-left: 2.5em; margin-top: 1em; text-align: center;"&gt;
&lt;img border="0" height="142" src="http://1.bp.blogspot.com/-8xGfjpAv0cM/UO1B84ffgkI/AAAAAAAAAKE/U-ev8UF1CM8/s200/overview-hero12122012.png" width="200" /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Did you know iOS has a limit on the number of concurrent NSURLConnections to the same end-point? No? Maybe you should, we discovered it the hard way. Let's take a look.&lt;/div&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
Create a new single-view app project on Xcode and copy the following snippet inside the &lt;i&gt;viewDidLoad&lt;/i&gt; event of your view controller:&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; text-align: left;"&gt;
- (&lt;span style="color: #bb2ca2;"&gt;void&lt;/span&gt;)viewDidLoad&lt;/div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; text-align: left;"&gt;
{&lt;/div&gt;
&lt;div style="color: #3d1d81; font-family: Menlo; font-size: 11px; text-align: left;"&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;[&lt;/span&gt;&lt;span style="color: #bb2ca2;"&gt;super&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;viewDidLoad&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;
&lt;div style="color: #008400; font-family: Menlo; font-size: 11px; text-align: left;"&gt;
&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;// Do any additional setup after loading the view, typically from a nib.&lt;/div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; min-height: 13px; text-align: left;"&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div style="color: #703daa; font-family: Menlo; font-size: 11px; text-align: left;"&gt;
&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;NSMutableArray&lt;span style="color: black;"&gt; *connections= [&lt;/span&gt;NSMutableArray&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #3d1d81;"&gt;array&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; text-align: left;"&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #bb2ca2;"&gt;for&lt;/span&gt; (&lt;span style="color: #bb2ca2;"&gt;int&lt;/span&gt; i= &lt;span style="color: #272ad8;"&gt;0&lt;/span&gt;; i &amp;lt; &lt;span style="color: #272ad8;"&gt;5&lt;/span&gt;; i++) {&lt;/div&gt;
&lt;div style="color: #d12f1b; font-family: Menlo; font-size: 11px; text-align: left;"&gt;
&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #703daa;"&gt;NSURL&lt;/span&gt;&lt;span style="color: black;"&gt; *url= [&lt;/span&gt;&lt;span style="color: #703daa;"&gt;NSURL&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #3d1d81;"&gt;URLWithString&lt;/span&gt;&lt;span style="color: black;"&gt;:&lt;/span&gt;@"http://push.lightstreamer.com/lightstreamer/create_session.txt?LS_user=&amp;amp;LS_adapter_set=DEMO&amp;amp;LS_ios_version=1.0"&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;
&lt;div style="color: #703daa; font-family: Menlo; font-size: 11px; text-align: left;"&gt;
&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;NSURLRequest&lt;span style="color: black;"&gt; *req= [&lt;/span&gt;NSURLRequest&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #3d1d81;"&gt;requestWithURL&lt;/span&gt;&lt;span style="color: black;"&gt;:url];&lt;/span&gt;&lt;/div&gt;
&lt;div style="color: #3d1d81; font-family: Menlo; font-size: 11px; text-align: left;"&gt;
&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #703daa;"&gt;NSURLConnection&lt;/span&gt;&lt;span style="color: black;"&gt; *conn= [[&lt;/span&gt;&lt;span style="color: #703daa;"&gt;NSURLConnection&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;alloc&lt;span style="color: black;"&gt;] &lt;/span&gt;initWithRequest&lt;span style="color: black;"&gt;:req &lt;/span&gt;delegate&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #bb2ca2;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;startImmediately&lt;span style="color: black;"&gt;:&lt;/span&gt;&lt;span style="color: #bb2ca2;"&gt;NO&lt;/span&gt;&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; min-height: 13px; text-align: left;"&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; text-align: left;"&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;[connections &lt;span style="color: #3d1d81;"&gt;addObject&lt;/span&gt;:conn];&lt;/div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; text-align: left;"&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; min-height: 13px; text-align: left;"&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; text-align: left;"&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span style="color: #bb2ca2;"&gt;for&lt;/span&gt; (&lt;span style="color: #703daa;"&gt;NSURLConnection&lt;/span&gt; *conn &lt;span style="color: #bb2ca2;"&gt;in&lt;/span&gt; connections)&lt;/div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; text-align: left;"&gt;
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;[conn &lt;span style="color: #3d1d81;"&gt;start&lt;/span&gt;];&lt;/div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; text-align: left;"&gt;
}&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style="text-align: justify;"&gt;Then add some simple NSURLConnection delegate event handlers:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; text-align: left;"&gt;
- (&lt;span style="color: #bb2ca2;"&gt;void&lt;/span&gt;)connection:(&lt;span style="color: #703daa;"&gt;NSURLConnection&lt;/span&gt; *)connection didReceiveResponse:(&lt;span style="color: #703daa;"&gt;NSURLResponse&lt;/span&gt; *)response&lt;/div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; text-align: left;"&gt;
{&lt;/div&gt;
&lt;div style="color: #d12f1b; font-family: Menlo; font-size: 11px; text-align: left;"&gt;
&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #3d1d81;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"Connection %p did receive response %d"&lt;span style="color: black;"&gt;, connection, [(&lt;/span&gt;&lt;span style="color: #703daa;"&gt;NSHTTPURLResponse&lt;/span&gt;&lt;span style="color: black;"&gt; *) response &lt;/span&gt;&lt;span style="color: #3d1d81;"&gt;statusCode&lt;/span&gt;&lt;span style="color: black;"&gt;]);&lt;/span&gt;&lt;/div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; text-align: left;"&gt;
}&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; text-align: left;"&gt;
- (&lt;span style="color: #bb2ca2;"&gt;void&lt;/span&gt;)connection:(&lt;span style="color: #703daa;"&gt;NSURLConnection&lt;/span&gt; *)connection didReceiveData:(&lt;span style="color: #703daa;"&gt;NSData&lt;/span&gt; *)data&lt;/div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; text-align: left;"&gt;
{&lt;/div&gt;
&lt;div style="color: #3d1d81; font-family: Menlo; font-size: 11px; text-align: left;"&gt;
&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;NSLog&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #d12f1b;"&gt;@"Connection %p did receive %d bytes:\n%@"&lt;/span&gt;&lt;span style="color: black;"&gt;, connection, [data &lt;/span&gt;length&lt;span style="color: black;"&gt;], [[[&lt;/span&gt;&lt;span style="color: #703daa;"&gt;NSString&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;alloc&lt;span style="color: black;"&gt;] &lt;/span&gt;initWithData&lt;span style="color: black;"&gt;:data &lt;/span&gt;encoding&lt;span style="color: black;"&gt;:&lt;/span&gt;NSUTF8StringEncoding&lt;span style="color: black;"&gt;] &lt;/span&gt;autorelease&lt;span style="color: black;"&gt;]);&lt;/span&gt;&lt;/div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; text-align: left;"&gt;
}&lt;/div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; text-align: left;"&gt;
- (&lt;span style="color: #bb2ca2;"&gt;void&lt;/span&gt;)connection:(&lt;span style="color: #703daa;"&gt;NSURLConnection&lt;/span&gt; *)connection didFailWithError:(&lt;span style="color: #703daa;"&gt;NSError&lt;/span&gt; *)error&lt;/div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; text-align: left;"&gt;
{&lt;/div&gt;
&lt;div style="color: #d12f1b; font-family: Menlo; font-size: 11px; text-align: left;"&gt;
&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #3d1d81;"&gt;NSLog&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;@"Connection %p did fail with error %@"&lt;span style="color: black;"&gt;, connection, error);&lt;/span&gt;&lt;/div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; text-align: left;"&gt;
}&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
So, what does this code do? It will open 5 simultaneous stream sessions to Lightstreamer's demo server. There's nothing secret with this code: if you read Lightstreamer's &lt;i&gt;Network Protocol Tutorial&lt;/i&gt; you can see the URL request is compliant with the documentation. Except for that little "LS_ios_version" argument, which is needed to overcome NSURLConnection buffering.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Run it and you will see 5 concurrent connections gracefully opening and then receiving Lightstreamer's keepalive message ("PROBE") once every 5 seconds. Everything is fine, isn't it? More or less.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Now try to set the number of connections (in the &lt;i&gt;for&lt;/i&gt; loop) to 6 or more, and you will have a surprise. From the sixth connection on, nothing will happen. The connection won't open, and if you wait long enough you will get something like this:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style="font-family: Menlo; font-size: 11px; text-align: left;"&gt;
&lt;b&gt;2013-01-07 17:03:27.828 LSConcurrencyTest3[31820:c07] Connection 0x715dd60 did fail with error Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo=0xe03ea70 {NSErrorFailingURLStringKey=http://push.lightstreamer.com/lightstreamer/create_session.txt?LS_user=&amp;amp;LS_adapter_set=DEMO&amp;amp;LS_ios_version=1.0, NSErrorFailingURLKey=http://push.lightstreamer.com/lightstreamer/create_session.txt?LS_user=&amp;amp;LS_adapter_set=DEMO&amp;amp;LS_ios_version=1.0, NSLocalizedDescription=The request timed out., NSUnderlyingError=0x716d390 "The request timed out."}&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Time out. Maybe you could think it's Lightstreamer's demo server which is limiting the number of concurrent connections. It's a reasonable doubt, so let's use something else. Let's try with the download of Apple's OS X 10.8.2 Combo Update, which is big enough (more on this later) to exhibit the same problem. Change the URL is this way:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style="color: #d12f1b; font-family: Menlo; font-size: 11px; text-align: left;"&gt;
&lt;span style="color: black;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #703daa;"&gt;NSURL&lt;/span&gt;&lt;span style="color: black;"&gt; *url= [NSURL URLWithString:&lt;/span&gt;@"http://support.apple.com/downloads/DL1581/en_US/OSXUpdCombo10.8.2.dmg"&lt;span style="color: black;"&gt;];&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Before running, comment &lt;i&gt;connection:didReceiveData:&lt;/i&gt; delegate event handler or you console will be flooded. Now run it and you will see the same problem: 5 connections will connect and start, from the sixth on they will be frozen. And after a while a time out will appear.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
The problem is evident with long running connections. Of course if your connections are exhausted in a second or two you could never notice it. But any long running connection exhibits the same problem. And note that it happens both on the simulator and on any iOS device.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Possible explanation&lt;/h2&gt;
&lt;div style="text-align: justify;"&gt;
First of all, why does this happen? We don't know for sure, but the most reasonable explanation is that it is applying a limit that is part of the HTTP protocol specification itself. See here:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.1.4" target="_blank"&gt;http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.1.4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: justify;"&gt;
As far as we know, there's no trace of this limit in Apple's documentation.&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
In our case, the problem pertains to streaming connections, which are typically open once the app starts and closed when the app terminates. A client may legitimately ask for more than 5 streaming connections to the same server. The underlying network connection details are completely hidden to Lightstreamer's client library users. They may simply not know that one more connection will be frozen while all the previous ones will run without a hitch. Moreover, the connection that is going to be frozen will end up in a time out error indistinguishable from a real network time out. You will have the perception your network is broken, when it is actually working perfectly. This may make it quite hard to track down the reason.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;
The problem can't be solved directly, this limit is hard-coded in iOS. The only way to overcome the limit is to use different host names for the same end-point, that is: making the system think they are different end-points. Clearly, most of the times this is outside of the reach of client-side developers. So, if you can't overcome the limit, at least try to live with it. Is there a generic way you can control how many connections are open toward an end-point?&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Solution #1: use an operation queue&lt;/h2&gt;
&lt;div style="text-align: justify;"&gt;
There are many open source libraries out there that remap an NSURLConnection on an NSOperation, so that they can be added to an operation queue, started, cancelled, limited on their concurrency and so on. NSOperationQueue, in fact, has a specific method to set a maximum level of concurrency:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;div class="declaration" style="background-color: white; font-family: Courier, Consolas, monospace; font-size: 13px; margin-bottom: 0.909em; margin-top: 1.182em; text-align: left;"&gt;
- (void)setMaxConcurrentOperationCount:(&lt;a href="file:///Users/gbertani/Library/Developer/Shared/Documentation/DocSets/com.apple.adc.documentation.AppleiOS6.0.iOSLibrary.docset/Contents/Resources/Documents/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_DataTypes/Reference/reference.html#//apple_ref/doc/c_ref/NSInteger" style="color: #003366; text-decoration: none;"&gt;NSInteger&lt;/a&gt;)&lt;i style="font-family: 'Lucida Grande', Geneva, Helvetica, Arial, sans-serif;"&gt;count&lt;/i&gt;&lt;/div&gt;
&lt;div class="api parameters" style="background-color: white; font-family: 'Lucida Grande', Geneva, Helvetica, Arial, sans-serif; font-size: 13px; text-align: -webkit-auto;"&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
but this method has a couple of important constraints:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;ol&gt;
&lt;li&gt;it applies only to &lt;i&gt;concurrent&lt;/i&gt; operations, which are a particular type of operation (see &lt;a href="http://developer.apple.com/library/ios/documentation/cocoa/reference/NSOperation_class/Reference/Reference.html#//apple_ref/doc/uid/TP40004591-RH2-SW15" target="_blank"&gt;here&lt;/a&gt;), not to &lt;i&gt;every&lt;/i&gt; operation; if your implementation does not supply concurrent operations this method call will be completely ineffective: your operation queue will continue to work unbound;&lt;/li&gt;
&lt;li&gt;even if your operations are concurrent, this limit is not strictly enforced.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
For some reasons, the operation queue may start a concurrent operation even if there are already &lt;i&gt;count&lt;/i&gt; operations running. The limit may be exceed by 1 or 2, based on our experience. It's not much, but enough to cause time outs. During our investigation on how to solve the problem, of course using an operation queue popped out as the first and simplest solution. But when we discovered this limit may be exceeded it was clear we had to find another way.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Solution #2: write your own thread pool&lt;/h2&gt;
&lt;div&gt;
Yes, sooner or later you will come to the point where you won't trust "foreign" code anymore and will write your own stuff.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
An operation queue is basically a thread pool with the pool managed by the system. It's the system that decides whether a new operation will be enqueued or executed on a thread. It's the system that creates and releases new threads (left alone concurrent operations, where it's you that should create your own thread). So, if this automatism is not functioning as expected, what's better than create a good-old thread pool where YOU create and release threads and YOU decide when an operation is going to be enqueued or not? Nothing, in fact that's what we did.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Our thread pool implementation has a fixed number of threads, and you can be safe the limit won't be exceeded. It also contains a queue with the operations it has to execute. Each time a thread completes an operation, it fetches the next operation from the queue. Once a thread has no more operation to execute, it is scheduled for disposal, and a timed collector will dispose of it soon after. Add a new operation and the thread will be restarted.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Based on this generic thread pool we created a structure called &lt;i&gt;URL dispatcher&lt;/i&gt;, which uses thread pools to run URL connections. Keeping always in mind the aforementioned limit per end-point. Actually, the URL dispatcher keeps a separate thread pool for each end-point, and runs the URL connection requests with it. Finally something that works.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The URL dispatcher applies some heuristics on URL connection requests:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;first of all, it makes a distinction between long running requests and short running requests;&lt;/li&gt;
&lt;li&gt;it always keeps some spare threads available for short running requests (typically 2 out of 5), which in our case are usually control connections (subscription, messages, and so on);&lt;/li&gt;
&lt;li&gt;when a long running connection is requested it is able to tell in advance if it will run or not (based on the current size of the thread pool of its end-point);&lt;/li&gt;
&lt;li&gt;if a long running connection can't be run because the limit has been reached, the requesting client &amp;nbsp;can gracefully handle the condition;&lt;/li&gt;
&lt;li&gt;finally, the Lightstreamer client uses this knowledge to notify the user and decide what to do: ignore the condition (the connection is going to be frozen), abort the connection or automatically switch to a polled connection (which uses short running requests); specific APIs to configure this behavior have been added.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Thread pools and the URL dispatcher have been introduced with iOS client library version 1.2, distributed with Lightstreamer server version 5.1. The StockList demo app, &lt;a href="https://itunes.apple.com/us/app/lightstreamer-stocklist/id430328811?l=en&amp;amp;mt=8" target="_blank"&gt;available on the App Store&lt;/a&gt;, already makes use of it. If you haven't upgraded to Lightstreamer 5.1 yet, this embedded piece of technology is worth the effort.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Update&lt;/h3&gt;
The thread pool library has been released as open source and can be found on &lt;a href="https://github.com/Weswit/utility-ThreadPool-ios" target="_blank"&gt;Lightstreamer's GitHub repository&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/8286339304071535992/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2013/01/on-ios-url-connection-parallelism-and.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/8286339304071535992?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/8286339304071535992?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2013/01/on-ios-url-connection-parallelism-and.html" title="On iOS URL Connection Parallelism and Operation Queues" /><author><name>Gianluca Bertani</name><uri>https://plus.google.com/111338624608949002418</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-UC0L2pxwL7I/AAAAAAAAAAI/AAAAAAAAABE/eLxf1gx93Vk/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-8xGfjpAv0cM/UO1B84ffgkI/AAAAAAAAAKE/U-ev8UF1CM8/s72-c/overview-hero12122012.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUQGQn0-fSp7ImA9WhBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-4382706629987715367</id><published>2012-12-27T14:31:00.000+01:00</published><updated>2013-02-27T20:28:43.355+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T20:28:43.355+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TECHNICAL ARTICLES" /><title>The New WinRT SDK and Demo</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-TMCrWERv-Ng/UNxLsCXYK3I/AAAAAAAAAJo/fXWVmcDz4wI/s1600/windows-8-logo.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="229" src="http://1.bp.blogspot.com/-TMCrWERv-Ng/UNxLsCXYK3I/AAAAAAAAAJo/fXWVmcDz4wI/s320/windows-8-logo.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
With the introduction of Windows 8, a new application architecture, namely &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime"&gt;Windows Runtime&lt;/a&gt; or &lt;b&gt;WinRT&lt;/b&gt;, was also introduced.&lt;br /&gt;
&lt;br /&gt;
WinRT, which has to be used for an application to be published on the Windows Store, is not fully compatible with the old .NET framework. But don't worry, we've got you covered again: with the &lt;a href="http://blog.lightstreamer.com/2012/12/lightstreamer-51-has-been-released.html"&gt;release of Lightstreamer 5.1&lt;/a&gt; we have made available a brand new &lt;b&gt;WinRT client SDK&lt;/b&gt; that can be used to develop Lightstreamer-enabled Windows Store apps.&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
As we are used to, we also show you how to leverage the new SDK with a simple Stock-List Demo application: you can install it from the store on your Windows 8 or Windows RT PC or tablet from &lt;a href="http://apps.microsoft.com/webpdp/en-US/app/lightstreamer-stock-list-demo/8467d915-5499-44b7-8d20-93baaf916682"&gt;this Windows Store page&lt;/a&gt;. (note:&amp;nbsp;&lt;a href="http://www.zdnet.com/cant-shop-for-windows-store-apps-using-chrome-but-is-google-being-evil-7000004918/"&gt;the install button does not work/appear on chrome&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-DaEBqd0o9QM/UNg5vq8m9dI/AAAAAAAAADI/89jsdGj3hqU/s1600/closed2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/-DaEBqd0o9QM/UNg5vq8m9dI/AAAAAAAAADI/89jsdGj3hqU/s400/closed2.png" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="left"&gt;&lt;td class="tr-caption"&gt;&lt;span style="font-size: xx-small; text-align: start;"&gt;Once installed the demo application will appear in your start menu. Click on the tile to launch the application&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-MgS07F_HK_M/UNg5yDqeX4I/AAAAAAAAADU/YCfXlyQ3CsQ/s1600/pushing.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="356" src="http://2.bp.blogspot.com/-MgS07F_HK_M/UNg5yDqeX4I/AAAAAAAAADU/YCfXlyQ3CsQ/s640/pushing.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-cq7B8aJ1XHQ/UNg5w__GA4I/AAAAAAAAADM/XbuBT9cF1pk/s1600/open.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-cq7B8aJ1XHQ/UNg5w__GA4I/AAAAAAAAADM/XbuBT9cF1pk/s400/open.png" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="left"&gt;&lt;td class="tr-caption"&gt;&lt;span style="font-size: xx-small; text-align: start;"&gt;While the application is running, the live tile can be updated with new values from the "Ations Europe" stock&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
The full source code of the demo is available in the &lt;a href="http://www.lightstreamer.com/distros/Lightstreamer_Allegro-Presto-Vivace_5_1_Colosseo_20121220/Lightstreamer/DOCS-SDKs/sdk_client_winrt/examples/"&gt;examples&lt;/a&gt; folder of the new SDK. Let's check it out.&lt;br /&gt;
&lt;br /&gt;
The demo, which is a port of the Lightstreamer Windows Phone Stock-List demo, is made of three main source files:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;App.xaml.cs&lt;/span&gt; is the main application file. It contains application event handling code (application launching, closed, activated, etc), Lightstreamer Client streaming controls (start, stop) and part of the auto-reconnection logic required when the connection quality is weak. It makea use of the &lt;span style="font-family: Courier New, Courier, monospace;"&gt;Windows.Storage.ApplicationDataContainer&lt;/span&gt; API to store the current status of the start/stop button of the application.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;MainPage.xaml.cs&lt;/span&gt; is the only page of the application. It handles the simple table and the live tile containing real-time stock quotes, which are kept up to date by implementing &amp;nbsp;the custom &lt;span style="font-family: Courier New, Courier, monospace;"&gt;ILightstreamerListener&lt;/span&gt; interface.&lt;br /&gt;
&lt;br /&gt;
Several lines in this file are dedicated to the animation code used for highlighting cells using the &lt;span style="font-family: Courier New, Courier, monospace;"&gt;UpdateCell&lt;/span&gt; class; on the other hand the handling of the live tile is in a proof of concept status as its life cycle was not taken much into account. Both the grid and live tile updates are handled by the &lt;span style="font-family: Courier New, Courier, monospace;"&gt;OnItemUpdate&lt;/span&gt; method relying on the previously mentioned &lt;span style="font-family: Courier New, Courier, monospace;"&gt;UpdateCell&lt;/span&gt;.&lt;br /&gt;
As the custom interface also offers the connection status, an image (and label) is kept synced with the current status of the connection through the&amp;nbsp;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;OnStatusChange&lt;/span&gt; method.&lt;br /&gt;
The page also handles the Start/Stop button calls that are forwarded to the &lt;span style="font-family: Courier New, Courier, monospace;"&gt;App&lt;/span&gt; class (from the&lt;span style="font-family: Courier New, Courier, monospace;"&gt; App.xaml.cs&lt;/span&gt; file) and&amp;nbsp;&amp;nbsp;its "Charms Bar" that only contains a privacy policy link.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;LightstreamerClient&lt;/span&gt; is a simple wrapper for &lt;span style="font-family: Courier New, Courier, monospace;"&gt;LSClient&lt;/span&gt; public class (see &lt;a href="http://www.lightstreamer.com/docs/client_winrt_api/frames.html"&gt;Lightstreamer WinRT Client API&lt;/a&gt;) and uses two listeners: &amp;nbsp;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;StocklistConnectionListener&lt;/span&gt; and &lt;span style="font-family: Courier New, Courier, monospace;"&gt;StocklistHandyTableListener&lt;/span&gt;, &amp;nbsp;respectively implementing a Connection Status listener (&lt;span style="font-family: Courier New, Courier, monospace;"&gt;IConnectionListener&lt;/span&gt;) &amp;nbsp;and a Real-Time Data Updates listener (&lt;span style="font-family: Courier New, Courier, monospace;"&gt;IHandyTableListener&lt;/span&gt;). These classes simply forward all the events to a &lt;span style="font-family: Courier New, Courier, monospace;"&gt;ILightstreamerListener&lt;/span&gt;, that in this case is our &lt;span style="font-family: Courier New, Courier, monospace;"&gt;MainPage&lt;/span&gt; class from the &lt;span style="font-family: Courier New, Courier, monospace;"&gt;MainPage.xaml.cs&lt;/span&gt; file.&lt;br /&gt;
&lt;br /&gt;
Enjoy the new SDK and feel free to ask any question or report any issue on the &lt;a href="http://forums.lightstreamer.com/forumdisplay.php?45-WinRT-Client-API"&gt;dedicated forum&lt;/a&gt;.</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/4382706629987715367/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2012/12/the-new-winrt-sdk-and-demo.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/4382706629987715367?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/4382706629987715367?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2012/12/the-new-winrt-sdk-and-demo.html" title="The New WinRT SDK and Demo" /><author><name>Simone Fabiano</name><uri>https://plus.google.com/111480189631597790681</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-0idzJcjdtFM/AAAAAAAAAAI/AAAAAAAAAC8/YnH4Ro6GWq8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-TMCrWERv-Ng/UNxLsCXYK3I/AAAAAAAAAJo/fXWVmcDz4wI/s72-c/windows-8-logo.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUYESH08fyp7ImA9WhBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-6236676762914109068</id><published>2012-12-21T16:49:00.000+01:00</published><updated>2013-02-27T20:25:09.377+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T20:25:09.377+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ANNOUNCEMENTS" /><title>Our Season's Greetings...</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-GGuM5KkTSr8/UNRapfCo1uI/AAAAAAAAAJY/K-f3eCIzvvY/s1600/Logo-LS-XMAS.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="166" src="http://1.bp.blogspot.com/-GGuM5KkTSr8/UNRapfCo1uI/AAAAAAAAAJY/K-f3eCIzvvY/s640/Logo-LS-XMAS.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
It seems that even Lightstreamer has been affected by the holiday season mood :)&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
We would like to wish all the Lightstreamer users a happy holiday season and a prosperous 2013 year!&lt;br /&gt;
&lt;br /&gt;
Thanks for supporting us.&lt;br /&gt;
&lt;br /&gt;
Warm regards,&lt;br /&gt;
The Lightstreamer Team&lt;br /&gt;
&lt;br /&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/6236676762914109068/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2012/12/our-seasons-greetings.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/6236676762914109068?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/6236676762914109068?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2012/12/our-seasons-greetings.html" title="Our Season's Greetings..." /><author><name>Valerio Celletti</name><uri>http://www.blogger.com/profile/14208644245431044513</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-GGuM5KkTSr8/UNRapfCo1uI/AAAAAAAAAJY/K-f3eCIzvvY/s72-c/Logo-LS-XMAS.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUYESH08cSp7ImA9WhBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-7598073198988100143</id><published>2012-12-21T12:47:00.000+01:00</published><updated>2013-02-27T20:25:09.379+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T20:25:09.379+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ANNOUNCEMENTS" /><title>Lightstreamer 5.1 Has Been Released</title><content type="html">&lt;div class="separator" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"&gt;
&lt;img border="0" height="150" src="http://4.bp.blogspot.com/-Wj-B-UJqU1A/UNRBQSmBfhI/AAAAAAAAAJI/ncwrFM1IuQE/s1600/Logo-LS-5.1.png" width="150" /&gt;&lt;/div&gt;
&lt;br /&gt;
We are very excited to announce that a new version of Lightstreamer is now publicly available for download.&lt;br /&gt;
&lt;br /&gt;
The new package, tagged &lt;i&gt;Lightstreamer 5.1 Colosseo 20121220&lt;/i&gt;, contains updated versions of several components (such as &lt;b&gt;Lightstreamer Server 5.1&lt;/b&gt;, &lt;b&gt;Lightstreamer JavaScript Client 6.0.1&lt;/b&gt;, &lt;b&gt;Lightstreamer iOS Client 1.2&lt;/b&gt;, etc.) as well as a brand new client SDK for &lt;b&gt;Windows 8 WinRT&lt;/b&gt;.&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
WHAT'S NEW&lt;/h2&gt;
&lt;b&gt;Lightstreamer Server 5.1 &lt;/b&gt;contains several improvements:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Improved performance when parsing client requests (for both HTTP and WebSockets).&lt;/li&gt;
&lt;li&gt;Optimization of the sendMessage facility over WebSockets.
Extension of both the Monitor Console and the JMX interface to provide stats on the messages received from clients.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Increase in the degree of asynchronous behavior of the Adapter interfaces, now enabling blocking implementations. In particular, the locking policy and the sequentialization constraint on the invocation of the "notifyNewTables" and "notifyTablesClose" callbacks have been relieved. This applies to all the Adapter interfaces (Java, .NET, and Adapter Remoting Infrastructure). &lt;a href="http://www.lightstreamer.com/distros/Lightstreamer_Allegro-Presto-Vivace_5_1_Colosseo_20121220/Lightstreamer/CHANGELOG.HTML#java_adapter" target="_blank"&gt;Read more on this new behavior...&amp;nbsp;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Facility to automatically upload audit logs (for paid versions with Site licenses).&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Several bug fixes.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;a href="http://www.lightstreamer.com/distros/Lightstreamer_Allegro-Presto-Vivace_5_1_Colosseo_20121220/Lightstreamer/CHANGELOG.HTML#server" target="_blank"&gt;Read more on the server-side improvements above...&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Lightstreamer WinRT Client API 1.0&lt;/b&gt; is a brand new SDK for developing real-time applications based on &lt;i&gt;Microsoft Windows Runtime (WinRT)&lt;/i&gt; architecture for the &lt;i&gt;Windows 8&lt;/i&gt; operating system. A native WinRT library is provided, together with full &lt;a href="http://www.lightstreamer.com/docs/client_winrt_api/frames.html" target="_blank"&gt;API reference&lt;/a&gt; and a &lt;a href="http://www.lightstreamer.com/demos#WinRTDemo" target="_blank"&gt;working example&lt;/a&gt;, which is also available from the &lt;a href="http://apps.microsoft.com/windows/en-US/app/lightstreamer-stock-list-demo/8467d915-5499-44b7-8d20-93baaf916682" target="_blank"&gt;Windows Store&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Lightstreamer JavaScript Client API 6.0.1&lt;/b&gt; contains several bug fixes, together with performance improvements and expanded documentation and examples. &lt;a href="http://www.lightstreamer.com/distros/Lightstreamer_Allegro-Presto-Vivace_5_1_Colosseo_20121220/Lightstreamer/CHANGELOG.HTML#web_client" target="_blank"&gt;Read more on the JS client improvements...&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Lightstreamer iOS Client API 1.2 &lt;/b&gt;contains a brand new threading model and other improvements:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Now the library makes use of dynamic thread pools, for better performance and smaller memory footprint.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Code optimized for iPhone 5 chipset (armv7s) has been included.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Some bug fixes.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;a href="http://www.lightstreamer.com/distros/Lightstreamer_Allegro-Presto-Vivace_5_1_Colosseo_20121220/Lightstreamer/CHANGELOG.HTML#ios_client" target="_blank"&gt;Read more on the iOS client improvements...&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;
HOW TO UPGRADE&lt;/h2&gt;
As always, you can upgrade your servers and your clients independently. You should upgrade the servers first, as Lightstreamer Server 5.1 is compatible with all older client libraries. Then you can upgrade the client libraries.&lt;br /&gt;
&lt;br /&gt;
If you have a &lt;b&gt;paid version&lt;/b&gt; of Lightstreamer (Allegro, Presto, or Vivace) and you have a valid support and maintenance agreement in place, you can &lt;b&gt;get your new license keys&lt;/b&gt; by contacting &lt;a href="mailto:info@lightstreamer.com"&gt;info@lightstreamer.com&lt;/a&gt;. You can download the Lightstreamer 5.1 package from &lt;a href="http://www.lightstreamer.com/download"&gt;www.lightstreamer.com/download&lt;/a&gt;, after reading and agreeing to the updated Software License Agreement.&lt;br /&gt;
&lt;br /&gt;
If you have the &lt;b&gt;free version&lt;/b&gt; of Lightstreamer (Moderato) you don't need any license key. You can download the Lightstreamer 5.1 Moderato package from &lt;a href="http://www.lightstreamer.com/download"&gt;www.lightstreamer.com/download&lt;/a&gt;, after reading and agreeing to the updated &lt;a href="http://www.lightstreamer.com/distros/Lightstreamer_Allegro-Presto-Vivace_5_1_Colosseo_20121220/Lightstreamer/Software%20License%20Agreement.pdf" target="_blank"&gt;Software License Agreement&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
If you have an existing installation of Lightstreamer (either 4.x or 5.0), we suggest to do a fresh install of Lightstreamer 5.1, then:&lt;br /&gt;
&lt;h3&gt;
CONFIGURATION&lt;/h3&gt;
Take note of the changes you performed on the lightstreamer_conf.xml and lightstreamer_log_conf.xml configuration files and apply your changes to the new factory configuration files (should be easy, as the config files have not changed radically). Please check out the red COMPATIBILITY NOTES in the &lt;a href="http://www.lightstreamer.com/distros/Lightstreamer_Allegro-Presto-Vivace_5_1_Colosseo_20121220/Lightstreamer/CHANGELOG.HTML#server" target="_blank"&gt;CHANGELOG&lt;/a&gt; (Lightstreamer Server section) to know about any compatibility changes in the configuration files.&lt;br /&gt;
&lt;h3&gt;
ADAPTERS&lt;/h3&gt;
Deploy your existing Adapters after reading the &lt;a href="http://www.lightstreamer.com/distros/Lightstreamer_Allegro-Presto-Vivace_5_1_Colosseo_20121220/Lightstreamer/CHANGELOG.HTML" target="_blank"&gt;CHANGELOG&lt;/a&gt; (Adapters sections), to learn about any possible compatibility issue and if you need to recompile your code.&lt;br /&gt;
&lt;h3&gt;
CLIENTS&lt;/h3&gt;
Please read carefully through the &lt;a href="http://www.lightstreamer.com/distros/Lightstreamer_Allegro-Presto-Vivace_5_1_Colosseo_20121220/Lightstreamer/CHANGELOG.HTML" target="_blank"&gt;CHANGELOG&lt;/a&gt; (the section regarding your client SDK) to learn about any possible compatibility issue and if you need to recompile your code. In particular, if you are coming from an existing installation of Lightstreamer 4.x, consider that the JavaScript client library has completely changed, so you will need to port your existing JS code after learning how the new library works (a tutorial on how to port your code from JS Client 5 to JS Client 6 is &lt;a href="http://blog.lightstreamer.com/2012/09/how-to-upgrade-to-javascript-client.html" target="_blank"&gt;available on our blog&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/7598073198988100143/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2012/12/lightstreamer-51-has-been-released.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/7598073198988100143?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/7598073198988100143?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2012/12/lightstreamer-51-has-been-released.html" title="Lightstreamer 5.1 Has Been Released" /><author><name>Valerio Celletti</name><uri>http://www.blogger.com/profile/14208644245431044513</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-Wj-B-UJqU1A/UNRBQSmBfhI/AAAAAAAAAJI/ncwrFM1IuQE/s72-c/Logo-LS-5.1.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUUFRXk8cCp7ImA9WhBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-4761666748241358453</id><published>2012-12-19T14:01:00.001+01:00</published><updated>2013-02-27T20:26:54.778+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T20:26:54.778+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CASE STUDIES" /><title>Meet our Customers: EFG Hermes</title><content type="html">&lt;img border="0" src="http://2.bp.blogspot.com/--QoRh3z-dGo/UREOkc0fykI/AAAAAAAAAME/qbXthFhsJYg/s1600/Waleed-Kamel_150x150.jpg" style="float: right; margin-bottom: 30px; margin-left: 30px; margin-right: 25px; margin-top: 25px;" /&gt;
A short interview with Waleed Kamel, Software Development Manager at &lt;a href="http://www.efg-hermes.com/" target="_blank"&gt;EFG Hermes&lt;/a&gt;, a premier investment bank in the Middle East.
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Let’s talk about your organization. What is your core business?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;EFG Hermes is a premier investment bank in the Middle East and is recognized as the market leader in securities brokerage, asset management, investment banking, private equity, and research in this area.&lt;b&gt; &lt;/b&gt;EFG Hermes has a huge number of customers, ranging from governments and corporations to institutional and individual investors. &lt;/i&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;i&gt;The firm is listed on the Egyptian and London Stock exchanges. Yet, we provide many software products to our clients to facilitate the stock trading activities, disseminating a real-time market data feed and orders in different flavors (Windows, Web and handheld based systems).
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Could you let us know any further information? &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.efg-hermes.com/" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_blank"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-KX5NR6BjMrQ/UMi04O6vosI/AAAAAAAAAIY/qC3LNVO2Z-g/s1600/efg-hermes.png" style="float: left; margin-bottom: 50px; margin-left: 0px; margin-right: 20px; margin-top: 50px;" /&gt;&lt;/a&gt;&lt;i&gt; EFG-Hermes holding is the leading Investment Banking firm in the region with presence in the Egyptian market since 1984 and regionally since 2004. The company’s assets under management reached equivalent of USD 8.17 billion in 2010. The company HQ is located in Cairo with branches and subsidiaries in UAE, KSA, Kuwait, Oman, Qatar, and expansion plans to cover Lebanon and Bahrain in addition to other emerging markets in the region. EFG Hermes employs over 1000 people from more than 25 nationalities and provide services to clients in 9 countries across the region. We serve over 20,000 customers across Meddle East region.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;b&gt;Who is the typical user of your product or service?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;We serve a wide range of users who look for a professional services in the stock exchanges field. We provide Web, Windows and iPad based systems.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;b&gt;What does your application or service do? &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;EFG Hermes applications are utilizing Lightstreamer to disseminate a real-time stock market data feed to the clients. We collect the data feed from different markets in different hubs, manipulate such data and re-disseminate them to our clients.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-GiDKs4J_GP8/UMmVmbZ155I/AAAAAAAAAIo/v9cVlCulF6o/s1600/MarketBeat2.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;" target="_blank"&gt;&lt;img border="0" height="225" src="http://2.bp.blogspot.com/-GiDKs4J_GP8/UMmVmbZ155I/AAAAAAAAAIo/v9cVlCulF6o/s400/MarketBeat2.png" style="float: left; margin-bottom: 15px; margin-left: 25px; margin-right: 15px; margin-top: 15px;" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;What functionalities are powered by Lightstreamer?&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;i&gt;Disseminating real-time data, with scalability and high refresh rate support.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Is your main application based on HTML or other front-end technologies?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Actually all, we have three different applications relying on the same Lightstreamer engine, with HTML, WPF and iOS based applications.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Do you provide any native apps for smartphones and tablets?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Yes, for iPad (iOS).&lt;/i&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;/div&gt;
&lt;b&gt;What other features of Lightstreamer are you taking benefit from &lt;/b&gt; (e.g. data throttling, low latency, bandwidth management, security, smart proxy traversal, etc.)&lt;b&gt;?&lt;/b&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;i&gt;Scalability, frequency control, data snapshot, fast sending rates, and TCP bandwidth optimization.&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Is your product or service visible at any URL (publicly or registration based)?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Published only for subscribed clients, &lt;a href="https://marketbeat.hermesonline.com./"&gt;https://marketbeat.hermesonline.com.&lt;/a&gt; &lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Any comments on your experience integrating Lightstreamer?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;    After over 4 years of experience with Lightstreamer, it proved to be a very reliable engine, which has rich features and functionalities and great libraries that really facilitate client’s implementation. &lt;/i&gt;&lt;i&gt;&lt;i&gt;I really appreciated its &lt;/i&gt;&lt;/i&gt;&lt;i&gt;&lt;i&gt;responsible and dedicated &lt;/i&gt;support team. I would recommend Lightstreamer as a world class quality product with a reasonable price.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/4761666748241358453/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2012/12/meet-our-customers-efg-hermes.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/4761666748241358453?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/4761666748241358453?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2012/12/meet-our-customers-efg-hermes.html" title="Meet our Customers: EFG Hermes" /><author><name>Valerio Celletti</name><uri>http://www.blogger.com/profile/14208644245431044513</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/--QoRh3z-dGo/UREOkc0fykI/AAAAAAAAAME/qbXthFhsJYg/s72-c/Waleed-Kamel_150x150.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUUFRXk-cSp7ImA9WhBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-3373894784614808073</id><published>2012-12-11T10:44:00.001+01:00</published><updated>2013-02-27T20:26:54.759+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T20:26:54.759+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CASE STUDIES" /><title>Meet our Customers: BuzzAllStars</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;a href="http://www.buzzallstars.com/" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_new"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/--N3juQrp06k/UL8WOihGXGI/AAAAAAAAAHs/L-ktfquyG70/s200/buzz-logo.png" style="float: left; height: 105px; margin: 20px 15px 20px 5px; width: 134px;" /&gt;&lt;/a&gt;A short interview with Rob O'Dea, founder and CEO at &lt;a href="http://www.buzzallstars.com/" rel="nofollow" target="_new"&gt;BuzzAllStars&lt;/a&gt;&lt;span class="st"&gt;, an innovative social gaming platform that allows players to interact and compete during live sports events.&lt;/span&gt;
&lt;b&gt;&lt;br /&gt;&lt;br /&gt;Let’s talk about your organization. What is your core business?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Buzz All Stars is a platform for interactive social games that will revolutionize the way sports fans engage with each other through live sports, creating the ultimate social gaming experience.
&lt;/i&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Who is the typical user of your product or service?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Sports fans on mobile.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What does your application or service do?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;We offer social games based on live sport matches. Every player tries to predict the outcome of the next play during a live sports event and win points, competing against friends.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;What functionalities are powered by Lightstreamer?&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;i&gt;We deployed Lightstreamer to push the live sports feeds to our apps.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/-wI_rHOobv30/UL8iTZ_UUwI/AAAAAAAAAIE/MXAyKiP7hqI/s1600/buzzfootball.png" imageanchor="1" target="_new"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-wI_rHOobv30/UL8iTZ_UUwI/AAAAAAAAAIE/MXAyKiP7hqI/s400/buzzfootball.png" style="float: right; height: 305px; margin-bottom: 20px; margin-left: 25px; margin-right: 5px; margin-top: 10px; width: 400px;" /&gt;&lt;/a&gt;&lt;b&gt;Is your main application based on HTML or other front-end technologies?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;We are now using Appcelerator Titanium Pro for the mobile app development.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Do you provide any native apps for smartphones and tablets?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Yes, we are currently developing for Android and iPhone.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Do you use Lightstreamer for bi-directional data push (that is, also for sending messages from the client to the server)?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Yes, we have a chat component that is currently using Lightstreamer.&lt;/i&gt;&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/-fw1K2nh96Bs/UL8hXjJh8GI/AAAAAAAAAH8/h_yl4qalXmA/s1600/buzzallstars+screenshot+1.jpg" imageanchor="1" target="_new"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-fw1K2nh96Bs/UL8hXjJh8GI/AAAAAAAAAH8/h_yl4qalXmA/s400/buzzallstars+screenshot+1.jpg" style="float: left; height: 260px; margin-bottom: 20px; margin-left: 5px; margin-right: 25px; margin-top: 10px; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;b&gt; Is your product or service visible at any URL (publicly or registration based)?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;i&gt;We are still in a development phase. We expect the completion to be on January 2013.&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Any comments on your experience integrating Lightstreamer?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;We have been extremely pleased with the support, reliability and performance of the Lightstreamer platform. &lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/3373894784614808073/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2012/12/meet-our-customers-buzzallstars.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/3373894784614808073?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/3373894784614808073?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2012/12/meet-our-customers-buzzallstars.html" title="Meet our Customers: BuzzAllStars" /><author><name>Valerio Celletti</name><uri>http://www.blogger.com/profile/14208644245431044513</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/--N3juQrp06k/UL8WOihGXGI/AAAAAAAAAHs/L-ktfquyG70/s72-c/buzz-logo.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUYESH09eyp7ImA9WhBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-2016942505599192116</id><published>2012-11-22T11:16:00.000+01:00</published><updated>2013-02-27T20:25:09.363+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T20:25:09.363+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ANNOUNCEMENTS" /><title>Lightstreamer won a comparison at Java2Days 2012 Conference</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2012.java2days.com/wp-content/uploads/2012/11/Detelin-Zlatev-Mariyan-Nenchev_Realtime-Apps-with-Lightstreamer-GWT-and-HTML5_Java2Days-2012.pdf" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-ZVxz9T5BN4c/UKzE-la85iI/AAAAAAAAAHM/T580v-IIXRY/s320/panel.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
We are happy to see that Lightstreamer resulted the winner in a presentation titled &lt;i&gt;"Realtime Apps with Lightstreamer, GWT &amp;amp; HTML5"&lt;/i&gt; by &lt;a href="http://2012.java2days.com/?p=708"&gt;Detelin Zlatev&lt;/a&gt; and &lt;a href="http://2012.java2days.com/?p=705"&gt;Mariyan Nenchev&lt;/a&gt; from &lt;a href="http://www.cayetanogaming.com/" rel="nofollow"&gt;Cayetano Gaming&lt;/a&gt;, at the recent&amp;nbsp;&lt;a href="http://2012.java2days.com/"&gt;Java2Days 2012 Conference&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Java2Days 2012 Conference took place on October 25-26 in Sofia, Bulgaria to highlight today’s cutting edge Java trends in field of software development, technologies, and 
business.&amp;nbsp; &lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="img-indent-bot"&gt;
Cayetano Gaming, one of the official sponsors of the conference, is a leading provider of 
online casino software, wholly owned and managed by &lt;a href="http://www.paddypower.com/bet" target="_blank"&gt;Paddy Power PLC&lt;/a&gt;, the biggest betting and gaming company in Ireland and one of the biggest in Europe.&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-NpdOaL7Pjk8/UKzmL2YVZJI/AAAAAAAAAHc/hTevYMcolWo/s1600/people.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 0.5em; margin-left: 1em; margin-top: 0.5em;"&gt;&lt;img border="0" height="158" src="http://2.bp.blogspot.com/-NpdOaL7Pjk8/UKzmL2YVZJI/AAAAAAAAAHc/hTevYMcolWo/s320/people.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
Lightstreamer has been evaluated versus DWR, the Atmosphere framework, and a custom solution built on Servlet 3.0, to stream a large amount of data per second, with no delays, to a large number of concurrent users both on desktop and mobile. Lightstreamer proved to be the most suitable solution for its high scalability, low bandwidth consumption, adaptive data throttling, and live monitoring characteristics. Furthermore, the Lightstreamer behavior has been appreciated for its "graceful degradation when CPU is saturated", allowing to keep the quality of the data stream excellent. You can download and read the whole presentation &lt;a href="http://2012.java2days.com/wp-content/uploads/2012/11/Detelin-Zlatev-Mariyan-Nenchev_Realtime-Apps-with-Lightstreamer-GWT-and-HTML5_Java2Days-2012.pdf" rel="nofollow"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The Real-Time Web is getting a growing attention from the gaming industry as an easy and cost-efficient way to allow developers and producers of browser-based, mobile, desktop, or social games to focus on the effort to make catchy and pervasive game designs and concepts, deputing the Lightstreamer solution to manage all the complexities of bi-directional live data distribution.&lt;br /&gt;
&lt;br /&gt;
Lightstreamer has been recently selected by bwin.party to power its Poker, Casino, and Bingo online platforms. Read all the details &lt;a href="http://blog.lightstreamer.com/2012/10/lightstreamer-goes-all-in-with-bwin.html" rel="nofollow"&gt;here&lt;/a&gt;.</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/2016942505599192116/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2012/11/real-time-apps-with-lightstreamer-gwt-and-html5.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/2016942505599192116?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/2016942505599192116?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2012/11/real-time-apps-with-lightstreamer-gwt-and-html5.html" title="Lightstreamer won a comparison at Java2Days 2012 Conference" /><author><name>Valerio Celletti</name><uri>http://www.blogger.com/profile/14208644245431044513</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-ZVxz9T5BN4c/UKzE-la85iI/AAAAAAAAAHM/T580v-IIXRY/s72-c/panel.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUUFRXk8eyp7ImA9WhBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-4688293000659169671</id><published>2012-11-13T10:43:00.000+01:00</published><updated>2013-02-27T20:26:54.773+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T20:26:54.773+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CASE STUDIES" /><title>Meet our Customers: LearnShip</title><content type="html">&lt;img border="0" src="http://4.bp.blogspot.com/-ILy0seWr31Y/URE10s2UJ8I/AAAAAAAAAMs/61aNmCfleD0/s1600/Jurgen-Jatzkwoski_150x150.jpg" style="float: right; height: 150px; margin-bottom: 25px; margin-left: 15px; margin-right: 15px; margin-top: 25px; width: 150px;" /&gt;
A short interview with Jürgen Jatzkowski, CTO at &lt;a href="http://www.learnship.de/" rel="nofollow" target="_blank"&gt;LearnShip&lt;/a&gt;, a specialist in online foreign languages training.
&lt;br /&gt;
&amp;nbsp;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Let’s talk about your organization. What is your core business?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;LearnShip is a specialist in online foreign languages training. The LearnShip platform offers a state-of-the-art virtual classroom for individual or small groups lessons, integrating an advanced multimedia digital technology to provide a face-to-face educational experience simply impossible to replicate in the traditional classroom settings. Learnship offers qualified instructors teaching in their native language and more flexibility comparing to any other traditional language school, as students can join the lessons regardless of where they effectively are - just a computer and a Internet access is needed.&lt;/i&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.learnship.de/" target="_new"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-39QKQYHJP6o/UJfiAAIiX1I/AAAAAAAAAGE/_j-v4b6R1qE/s200/545706_10151088952938137_1915688523_n.jpg" style="float: left; height: 186px; margin-bottom: 20px; margin-left: 15px; margin-right: 15px; margin-top: 20px; width: 200px;" /&gt;&lt;/a&gt;&lt;b&gt;Could you let us know any further information?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;We have a number of Top-500 customers like Bertelsmann, Bosch and Panasonic (&lt;a href="http://www.learnship.de/openArea/customer"&gt;http://www.learnship.de/openArea/customer&lt;/a&gt;). These are using our platform from places spread all over the world.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&lt;/i&gt;
&lt;br /&gt;
&lt;b&gt;Who is the typical user of your product or service?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;The typical user is working in an international context where he needs well educated language skills. Our platform helps in improving the necessary language skills while being very flexible when providing training sessions independent of the user's place and timezone.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-jaAEip7XFOY/UJkc84tjTlI/AAAAAAAAAGc/CSFXE9dGwrE/s1600/Screen+Shot+2012-11-06+at+15.18.15.png" target="_new"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-jaAEip7XFOY/UJkc84tjTlI/AAAAAAAAAGc/CSFXE9dGwrE/s320/Screen+Shot+2012-11-06+at+15.18.15.png" style="float: right; height: 176px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; margin-top: 15px; width: 320px;" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;What does your application or service do?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;LearnShip consists of an online virtual learning platform for foreign languages study.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What functionalities are powered by Lightstreamer?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Lightstreamer provides the necessary real-time functionalities which are needed to connect the teacher and his students in the virtual classroom. This includes the management of the communication lines as well as the display of teaching material.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Is your main application based on HTML or other front-end technologies?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Our portal is based on HTML.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img border="0" src="http://4.bp.blogspot.com/-C6ktzmOtLFg/UJkcp-FktVI/AAAAAAAAAGU/K6PzsLxm7FI/s320/Screen+Shot+2012-11-06+at+15.15.53.png" style="float: right; height: 185px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; margin-top: 15px; width: 320px;" /&gt;&lt;b&gt;Do you provide any native apps for smartphones and tablets?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Currently there is no native app available apart from some prototypes.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Do you use Lightstreamer for bi-directional data push (that is, also for sending messages from the client to the server)?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Yes, this is a very important feature for our application.&lt;/i&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;/div&gt;
&lt;b&gt; Is your product or service visible at any URL (publicly or registration based)?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;i&gt;Check out &lt;a href="http://www.learnship.de/sprachen-lernen/englisch"&gt;http://www.learnship.de/sprachen-lernen/englisch&lt;/a&gt;&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Any comments on your experience integrating Lightstreamer?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;We are very pleased with the LightStreamer product and are impressed by it's stability and performance. Even if there are questions regarding configuration or development (e.g. usage of API) we are enlightened to get fast and high quality responses.&lt;/i&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/4688293000659169671/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2012/11/meet-our-customers-learnship.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/4688293000659169671?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/4688293000659169671?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2012/11/meet-our-customers-learnship.html" title="Meet our Customers: LearnShip" /><author><name>Valerio Celletti</name><uri>http://www.blogger.com/profile/14208644245431044513</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-ILy0seWr31Y/URE10s2UJ8I/AAAAAAAAAMs/61aNmCfleD0/s72-c/Jurgen-Jatzkwoski_150x150.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUUFRXk-fip7ImA9WhBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-2992719675170298897</id><published>2012-11-07T10:57:00.000+01:00</published><updated>2013-02-27T20:26:54.756+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T20:26:54.756+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CASE STUDIES" /><title>Meet our Customers: DCM Capital</title><content type="html">&lt;img border="0" src="http://2.bp.blogspot.com/-cAPc1FyTQBs/URFAUEt4yfI/AAAAAAAAANA/QmRd4kNYJfQ/s1600/Paul+Laight.jpg" style="float: right; height: 150px; margin-bottom: 15px; margin-left: 15px; margin-right: 15px; margin-top: 0px; width: 150px;" /&gt;
A short interview with Paul Laight, CTO of &lt;a href="http://www.derwentcapitalmarkets.com/" rel="nofollow" target="_blank"&gt;DCM Capital Ltd&lt;/a&gt;, an online CFD, Forex and spread betting platform with unique social media twitter sentiment analysis technology.&lt;br /&gt;
&lt;b&gt;&amp;nbsp; &lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Let’s talk about your organization. What is your core business?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: black;"&gt;
&lt;a href="http://www.derwentcapitalmarkets.com/" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_blank"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-6-LHEVLP6nA/UJOlDRlAChI/AAAAAAAAAE8/rWLcnRnR6KY/s1600/dcmcapital.png" title="" /&gt;&lt;/a&gt;&lt;i&gt;The world’s first multi-asset online trading platform with integrated social media sentiment analysis technology.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Clients can trade CFDs and Spread Bets on over 7000 different stocks, currencies and commodities from around the world and monitor the global sentiment on any asset in real-time.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Could you let us know any further information? &lt;i&gt;(Number of customers, covered regions, revenues, etc.)&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;We are expecting to have over 2500 customers from around the world within the first half of 2013 after we launch in January with over £100m worth or daily trade volume going through our DCM Dealer trading platform.&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Who is the typical user of your product or service?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Retail traders.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/-fcYmBM4Dzc0/UJOvWuUNlYI/AAAAAAAAAFU/FwgW44bLGHs/s1600/Screen+Shot+2012-11-02+at+12.30.56.png" target="_new"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-fcYmBM4Dzc0/UJOvWuUNlYI/AAAAAAAAAFU/FwgW44bLGHs/s320/Screen+Shot+2012-11-02+at+12.30.56.png" style="float: left; height: 155px; margin-bottom: 0px; margin-left: 0px; margin-right: 30px; margin-top: 0px; width: 320px;" /&gt;&lt;/a&gt;&lt;b&gt;What does your application or service do?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Our application is an online CFD, Forex Trading, and Spread Betting platform with a built-in social media sentiment analysis tool. Investors and traders will be able to monitor global sentiment and trade on any stocks, currencies and commodities in real-time.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What functionalities are powered by Lightstreamer?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Lightstreamer is the engine we use to push prices, sentiments, and news on real-time.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/-rHUFPt8VgMU/UJOxgzNPEnI/AAAAAAAAAFc/1NdXh8D2Gts/s1600/Screen+Shot+2012-11-02+at+12.41.07.png" new="" target=""&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-rHUFPt8VgMU/UJOxgzNPEnI/AAAAAAAAAFc/1NdXh8D2Gts/s320/Screen+Shot+2012-11-02+at+12.41.07.png" style="float: right; height: 157px; margin-bottom: 20px; margin-left: 15px; margin-right: 15px; margin-top: 20px; width: 320px;" /&gt;&lt;/a&gt;
&lt;b&gt;Is your main application based on HTML or other front-end technologies?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Our platform is written in Javascript.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Do you provide any native apps for smartphones and tablets?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Not now, but we are planning to develop native apps for smartphones and tablets after our official launch.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Is your product or service visible at any URL (publicly or registration based)?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;We are still in a development phase. The public launch of our platform is expected for January 2013.&amp;nbsp; [Note: a demo of a Lightstreamer-powered application is currently online on the &lt;a href="http://www.derwentcapitalmarkets.com/" rel="nofollow" target="_blank"&gt;DCM website home page&lt;/a&gt;.]&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt; We would be very grateful if you would like to provide a short recommendation to testify your experience with Lightstreamer technology and its support team.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Lightstreamer has enabled us to develop a cutting edge trading platform.  It is feature rich and allows for easy integration into any system.  We use it for a range of real-time systems within our organisation which would have been impossible using other technologies.  Throughout development the Lightstreamer support team have helped us make the Lightstreamer integration into our DCM Dealer platform both easy and cost effective.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;/div&gt;
</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/2992719675170298897/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2012/11/meet-our-customers-dcm-capital.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/2992719675170298897?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/2992719675170298897?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2012/11/meet-our-customers-dcm-capital.html" title="Meet our Customers: DCM Capital" /><author><name>Valerio Celletti</name><uri>http://www.blogger.com/profile/14208644245431044513</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-cAPc1FyTQBs/URFAUEt4yfI/AAAAAAAAANA/QmRd4kNYJfQ/s72-c/Paul+Laight.jpg" height="72" width="72" /><thr:total>3</thr:total></entry><entry gd:etag="W/&quot;CUUFRXkyfyp7ImA9WhBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-8491616195519218469</id><published>2012-10-25T15:58:00.000+02:00</published><updated>2013-02-27T20:26:54.797+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T20:26:54.797+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CASE STUDIES" /><title>Lightstreamer Goes All In with bwin.party</title><content type="html">&lt;div class="separator" style="clear: both; text-align: right;"&gt;
&lt;a href="http://4.bp.blogspot.com/-n5GwfOU3CAk/UIk4r2QX4HI/AAAAAAAAAEs/z8LQgHKHEo8/s1600/pokerchipLS.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-n5GwfOU3CAk/UIk4r2QX4HI/AAAAAAAAAEs/z8LQgHKHEo8/s1600/pokerchipLS.png" /&gt;&lt;/a&gt;&lt;/div&gt;
We are thrilled to announce that the Lightstreamer technology has been selected by &lt;b&gt;bwin.party&lt;/b&gt; to power its &lt;b&gt;world-class gaming and betting platforms&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
According to their &lt;a href="http://www.bwinparty.com/AboutUs/BusinessOverview/WhoWeAre.aspx" target="_blank"&gt;public statements&lt;/a&gt;, the Group has generated pro-forma net revenues in 2011 of €816.0m and commands leading market positions in four product verticals: online sports betting, poker, casino, and bingo, with some of 
the world’s biggest online gaming brands including &lt;a href="http://www.bwin.com/" shape="rect" target="_parent"&gt;bwin&lt;/a&gt;, &lt;a href="http://www.partypoker.com/" shape="rect" target="_blank"&gt;PartyPoker&lt;/a&gt;, &lt;a href="http://www.partycasino.com/" shape="rect" target="_blank"&gt;PartyCasino&lt;/a&gt; and &lt;a href="http://www.foxybingo.com/" shape="rect" target="_blank"&gt;Foxy Bingo&lt;/a&gt; with proprietary gaming platforms.&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Reporting from &lt;a href="http://www.bwinparty.com/AboutUs/BusinessOverview/Technology%20and%20product.aspx" target="_blank"&gt;Technology and Product&lt;/a&gt; page on &lt;a href="http://www.bwinparty.com/" rel="nofollow" target="_blank"&gt;bwin.party's official website&lt;/a&gt;, &lt;i&gt;"Our significant investment in technology over the past decade has put us at the forefront of the online gaming industry - a position we intend to retain through a continuous programme of development and investment"&lt;/i&gt;. The Lightstreamer Real-Time Web technology will be progressively integrated in the group's online poker, casino, and bingo product verticals.&lt;br /&gt;
&lt;br /&gt;
The growing competition in the gaming and gambling industry induces an effort to make faster, more pervasive, and interactive games.&lt;br /&gt;
&lt;b&gt;Lightstreamer&lt;/b&gt; offers game developers and producers of browser-based, mobile, desktop, or console games a 
real-time data streaming solution that enables them
    to keep focused on the game design and development, forgetting about
 the complexity of exchanging real-time data over the Web. &lt;br /&gt;
&lt;br /&gt;
Read all the details of the official Press Release below (&lt;a href="http://www.lightstreamer.com/pieceofnews_0038.htm" rel="nofollow" target="_blank"&gt;link&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Bwin.party Gaming Platforms to be Powered by Lightstreamer Real-Time Technology&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;The Lightstreamer technology will be used by bwin.party, a global leader in digital entertainment, for pervasive live data delivery over the web.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
MILAN, ITALY -- (October 24, 2012) – Weswit, a global leader in real-time web solutions, today announced that bwin.party (LSE:BPTY), the global online gaming company, has re-selected Lightstreamer to power its world-class gaming and betting platforms.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;bwin.party, which has millions of customers worldwide and pro forma net revenue in 2011 of €816.0 million, will progressively deploy Lightstreamer in its online poker, casino, and bingo product verticals.&lt;br /&gt;
&lt;br /&gt;
Lightstreamer is a massively scalable solution for pushing live data over WebSockets and other web protocols, to millions of users. With a growing number of customers ranging from start-ups to Fortune 500 companies, the Lightstreamer technology enables the streaming of real-time gaming data and messaging across multiple channels and apps, including HTML5, Android, iPhone, iPad, and many other platforms.&lt;br /&gt;
&lt;br /&gt;
“Lightstreamer was the clear scalable solution to handle the complex real-time data communication required by our state-of-the-art gaming products,” commented Tod Martin, bwin.party’s Group Technology Director. “We are confident the Lightstreamer solution will provide the highest quality gaming experience for our customers."&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;“We are honoured that Lightstreamer will be part of bwin.party’s online gaming platforms,” declared Mauro Fantechi, Co-CEO and Chairman at Weswit. “Being deployed in such well-known, cross-platform gaming environments, our solution keeps confirming its value for the betting and entertainment industries, which are at the forefront of technological development and innovation.”&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;“It is truly exciting to know that bwin.party has selected our Lightstreamer real-time web technology,” added Alessandro Alinone, co-CEO and CTO at Weswit. “Lightstreamer takes care of all the complexity of delivering real-time data over the web, reducing the technological risks and drastically enhancing the pervasiveness of games”.&lt;br /&gt;
&lt;br /&gt;
Lightstreamer is made up of a high-performance server, which routes the real-time messages over the web protocols, and a rich set of client libraries, which easily enable any application to send and receive live data in an efficient and reliable way. Lightstreamer can reach any desktop and mobile client, whatever connectivity the user experiences, passing through any kind of proxies and firewalls. Features include bandwidth optimisation, adaptive throttling, data conflation, delta delivery, and total control over the quality of service.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/8491616195519218469/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2012/10/lightstreamer-goes-all-in-with-bwin.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/8491616195519218469?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/8491616195519218469?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2012/10/lightstreamer-goes-all-in-with-bwin.html" title="Lightstreamer Goes All In with bwin.party" /><author><name>Valerio Celletti</name><uri>http://www.blogger.com/profile/14208644245431044513</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-n5GwfOU3CAk/UIk4r2QX4HI/AAAAAAAAAEs/z8LQgHKHEo8/s72-c/pokerchipLS.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CEMFRH48fip7ImA9WhBWFUw.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-2714051974835452398</id><published>2012-09-11T17:15:00.001+02:00</published><updated>2013-04-09T15:00:15.076+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-09T15:00:15.076+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TECHNICAL ARTICLES" /><title>How to Upgrade to JavaScript Client Library 6</title><content type="html">&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;a href="http://3.bp.blogspot.com/-JyOTcUmOH9c/US4y9Z5yOlI/AAAAAAAAAP0/_86xhqt7dGU/s1600/UPGRADE7.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="163" src="http://3.bp.blogspot.com/-JyOTcUmOH9c/US4y9Z5yOlI/AAAAAAAAAP0/_86xhqt7dGU/s200/UPGRADE7.png" width="200" /&gt;&lt;/a&gt;&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;The new JavaScript client version brings some new interesting features and some long-awaited changes. This time we’ve chosen not to pass from the deprecate-first remove-then path as we’ve always done: in fact the entire API was completely designed from scratch to be more flexible and easy to use. Unfortunately, this also means that some effort is necessary to &lt;b&gt;migrate your code using the Lightstreamer HTML Client 4 or 5 to the new Lightstreamer JavaScript Client 6&lt;/b&gt;. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;This guide was written to help you with the migration. Only the simplest way to do the porting is illustrated; it is obviously possible to use more complicated techniques. Also following only the guide you will not exploit many of the new capabilities of the library, so, before doing the porting I suggest you to check the &lt;/span&gt;&lt;a href="http://www.lightstreamer.com/latest/Lightstreamer_Allegro-Presto-Vivace_5_0_Colosseo/Lightstreamer/CHANGELOG.HTML#web_client"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;changelog&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;, the new &lt;/span&gt;&lt;a href="http://www.lightstreamer.com/latest/Lightstreamer_Allegro-Presto-Vivace_5_0_Colosseo/Lightstreamer/DOCS-SDKs/sdk_client_javascript/doc/JavaScript%20Client%20Guide.pdf"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Development Guide&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; and the &lt;/span&gt;&lt;a href="http://www.lightstreamer.com/docs/articles/JavaScript-Client_and_Java-Data-Adapter_Tutorial_Colosseo/index.htm"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Tutorial&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;While doing the porting you should keep the &lt;/span&gt;&lt;a href="http://www.lightstreamer.com/docs/client_javascript_uni_api/index.html"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;new API documentation&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; at hand. To help with the comparison you may want to keep an eye on the &lt;/span&gt;&lt;a href="http://www.lightstreamer.com/docs/client_web_jsdoc/index.html"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;old documentation&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; too.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;h2 dir="ltr"&gt;
&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;AMD vs. Globals&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;In the past, our HTML client library contained some html files that had to be deployed with the js ones. Due to this you were limited on deploying the lightstreamer client libraries on the same server where the html front-end was hosted. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;All of those files were eliminated: you can now deploy the Lightstreamer JS client library file anywhere on the web, even on a third party CDN, and just import it in your html file(s).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;The library is now fully modularized AMD style even if, at least at the moment, we do not distribute the single modules each one in its own file. Instead you’ll find three version of an all-in-one file. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;lightstreamer.js &lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;contains all the modules define calls. You need an AMD loader (like &lt;/span&gt;&lt;a href="http://requirejs.org/"&gt;&lt;span style="color: #000099; vertical-align: baseline; white-space: pre-wrap;"&gt;requirejs&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;) to use this file: include our library after the AMD loader and then start coding using the require method to load our classes&lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;:&lt;br /&gt;require([&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;"LightstreamerClient"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;],&lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;function&lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;(LightstreamerClient) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;var&lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt; testClient = &lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt; LightstreamerClient(...); &amp;nbsp;&lt;br class="kix-line-break" /&gt; &amp;nbsp;[...]&lt;br class="kix-line-break" /&gt;});&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;lightstreamer_globals.js&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; if your project does not already use an AMD loader and you don’t want to add one you can include this file that will automatically create a global object per each of our public classes, so after including the js library, you directly instantiate our classes:&lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;var&lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt; testClient = &lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt; LightstreamerClient(); &amp;nbsp;&lt;br class="kix-line-break" /&gt;[...]&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;lightstreamer_namespace.js &lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;if your project comprehends AMD modules other than Lightstreamer’s ones you probably want to avoid name collisions. If that’s the case you can use this version of the library like this: &lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;require([&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;"Lightstreamer/LightstreamerClient"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;],&lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;function&lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;(LightstreamerClient) {&lt;br class="kix-line-break" /&gt; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;var&lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt; testClient = &lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt; LightstreamerClient(...); &amp;nbsp;&lt;br class="kix-line-break" /&gt; &amp;nbsp;[...]&lt;br class="kix-line-break" /&gt;});&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;If you want global names but would like to have one single entry point (like using the old Lightstreamer.avoidLSGlobals flag set to true) you don’t have a ready-made solution. Don’t panic, our &lt;/span&gt;&lt;a href="http://www.lightstreamer.com/latest/Lightstreamer_Moderato_5_0_Colosseo/Lightstreamer/DOCS-SDKs/sdk_client_javascript/tools/generator.html"&gt;&lt;span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;"&gt;generator tool&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; will help you out making it possible to generate a namespaced library to be used like this:&lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;var&lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt; testClient = &lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt; Lightstreamer.LightstreamerClient(...); &amp;nbsp;&lt;br class="kix-line-break" /&gt;[...]&lt;/span&gt;&lt;/li&gt;
&lt;/b&gt;&lt;/ul&gt;
&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;
&lt;span style="font-family: Arial; font-size: 24px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir="ltr"&gt;
&lt;table style="border-collapse: collapse; border: none; width: 624px;"&gt;&lt;colgroup&gt;&lt;col width="*"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style="height: 0px;"&gt;&lt;td style="border: 1px solid rgb(0, 0, 0); padding: 7px; vertical-align: top;"&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;QUICK ACTION: remove lscommons.js and lspushpage.js inclusions from your pages and include the lightstreamer_globals.js file. If you were using the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Lightstreamer.avoidLSGlobals&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; flag, head for the generator and create a namespaced library to be used in place of lightstreamer_globals.js.&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 16px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;
&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 24px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;NOTE: you will probably not use all of the available classes of the Lightstreamer JS client: the &lt;/span&gt;&lt;a href="http://www.lightstreamer.com/latest/Lightstreamer_Moderato_5_0_Colosseo/Lightstreamer/DOCS-SDKs/sdk_client_javascript/tools/generator.html"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;generator tool&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; makes it possible to create a library file containing only the required classes.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;h2 dir="ltr"&gt;
&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;
&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;Client-Side Errors&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;I know some of you awaited this change for years :) We’ve finally simplified the handling of client side errors.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;We had different (admittedly too many) ways to consume those errors:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;PushPage.onClientError&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;PushPage.onClientAlert&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; callbacks.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;LightstreamerEngine.onClientError&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;LightstreamerEngine.onClientAlert&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; callbacks.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;Context.setDebugAlertsOnClientError&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; to enable/disable the use of alerts to show such errors (a &lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;Context&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; instance was available on both &lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;PushPage&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;LightstreamerEngine&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; instances)&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;Context.setRemoteAlertsOnClientError&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; to enable/disable the forwarding of the errors to the server (a &lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;Context&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; instance was available on both &lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;PushPage&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;LightstreamerEngine&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; instances)&lt;/span&gt;&lt;/li&gt;
&lt;/b&gt;&lt;/ul&gt;
&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Now all of these methods/callbacks are gone and there is only one flexible way to consume error messages: with this version of the library we’re exposing our internal logging facility (that anyway was partially rewritten too) so that you will be able to use it to consume the errors.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br class="kix-line-break" /&gt;To mimic the old behavior we need to hook an appender to the logging system and start listening to ERROR events on every category. Obviously some messages changed, others were removed and others are completely new.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;The following code shows how to mimic the old code via your own callback, via remote messages to the server or via window.alert:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;//First we need to init the logging system as it is disabled &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;//by default. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;var&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; loggerProvider = &lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; SimpleLoggerProvider();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;LightstreamerClient.setLoggerProvider(loggerProvider);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;//CONSUME AS CALLBACK &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;//Create a FunctionAppender: we want it to be filtered &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;//by level (ERROR) and we want to consume all of the available&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;//categories (*)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;var&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; fc = &lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; FunctionAppender(&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;"ERROR"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;,&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;"*"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;,&lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;function&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;(lineOfLog) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;//consume the lineOfLog string as you prefer; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;//the string itself contains time category and message&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;});&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;//add such appender to the logging system&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;loggerProvider.addLoggerAppender(fc);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;//CONSUME AS ALERT&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #6aa84f; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;//we simply need to create and add the proper appender&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;//the 1 in the constructor of AlertAppender is the number of&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;//messages to gather before shwoing the alert&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;loggerProvider.addLoggerAppender(&lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; AlertAppender(&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;"ERROR"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;,&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;"*"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;,1));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;//CONSUME ON THE SERVER&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;//This appender requires a configured LightstreamerClient to send&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;//messages to the server; it is suggested to use the same instance &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;//you use in your application&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;var&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; lsClient = &lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; LightstreamerClient(...); &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;//Create and add the RemoteAppender&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;loggerProvider.addLoggerAppender(&lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; RemoteAppender(&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;"ERROR"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;,&lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;"*"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;,lsClient));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Note that only basic functionalities were shown in the above examples, check the API documentation for the details.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div dir="ltr"&gt;
&lt;table style="border-collapse: collapse; border: none; width: 624px;"&gt;&lt;colgroup&gt;&lt;col width="*"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style="height: 0px;"&gt;&lt;td style="border: 1px solid rgb(0, 0, 0); padding: 7px; vertical-align: top;"&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;QUICK ACTION: remove all &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;onClientError&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;onClientAlert&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; callbacks implementations, substitute them with &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;FunctionConsumer&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;s as explained in the CONSUME AS CALLBACK section of the above example. &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;Remove &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;setDebugAlertsOnClientError(&lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;true&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;)&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; calls and substitute them with &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;AlertConsumer&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;s as explained in the CONSUME AS ALERT section of the above example. &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;Remove &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;setRemoteAlertsOnClientError(&lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;true&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;)&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; calls and substitute them with &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;RemoteConsumer&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;s as explained in the CONSUME ON THE SERVER section of the above example. &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;
&lt;/b&gt;
&lt;br /&gt;
&lt;h2 dir="ltr"&gt;
&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;
&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;PushPage/LightstreamerEngine &lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;The &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;PushPage&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; class does not exist anymore. Also the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;LightstreamerEngine&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; was removed from the APIs. All of their functionalities are now collapsed in the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;LightstreamerClient&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; class.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Also the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;connection&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;policy&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; properties of &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;LightstreamerEngine&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; (respectively &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Connection&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Policy&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; instances) were removed. On the other hand the new &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;connectionOptions&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;connectionDetails&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;connectionSharing&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; (&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;ConnectionOptions&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;ConnectionDetails&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;ConnectionSharing&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; instances) have been introduced as part of &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;LightstreamerClient&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Some search and match is required to port the old behavior to the new APIs. The below box gives some useful hints to do it effectively.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div dir="ltr"&gt;
&lt;table style="border-collapse: collapse; border: none; width: 624px;"&gt;&lt;colgroup&gt;&lt;col width="*"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style="height: 0px;"&gt;&lt;td style="border: 1px solid rgb(0, 0, 0); padding: 7px; vertical-align: top;"&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;QUICK ACTION: Replace your &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;PushPage&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; instance with a &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;LightstreamerClient&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; instance. Get rid of &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;onEngineCreation/onEngineReady/onEngineLost&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; callbacks. &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;Port calls made to &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;PushPage&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;LightstreamerEngine&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;connection&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;policy&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; to your &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;LightstreamerClient&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;connectionSharing&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;connectionOptions&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;connectionDetails&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;Any call made during the execution of the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;onEngineCreation/onEngineReady&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; callbacks can now be made immediately after &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;LightstreamerClient&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; instantiation.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;No need to dispose the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;LightstreamerEngine&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; pointer during &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;onEngineLost&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; callbacks; whatever you were doing there can probably be moved to the &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;DISCONNECTED&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; handler.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;Any other callback should be replaced by the proper listener. More on this on the Callbacks section of this guide.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;As said new calls may have different names, matching most of the old calls with new calls is trivial. Here a list of the most complex cases:&lt;/span&gt;&lt;br /&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-style: italic; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;changeStatus&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; is now replaced by &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;connect&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;disconnect&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; calls. If for any reason (that I will never understand) you were explicitly asking for a &lt;/span&gt;&lt;span style="font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;POLLING&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; session in your &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;changeStatus&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; call you can still do that using the new &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;ConnectionOptions.setForcedTransport&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; method.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-style: italic; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;createEngine/seekEngine&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; functionalities were replaced by a single &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;ConnectionSharing.enableSharing&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; method. &lt;br class="kix-line-break" /&gt;NOTE: If you were using the &lt;/span&gt;&lt;span style="font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;NEW_SESSION&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; directive in your &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;createEngine&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; call simply remove the call, this is the default behavior if no sharing is configured.&lt;br class="kix-line-break" /&gt;Otherwise use the name you were using in the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;createEngine/seekEngine&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; call as first parameter and then, if you were using &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;createEngine&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; with &lt;/span&gt;&lt;span style="font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;SHARE_SESSION&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;set &lt;/span&gt;&lt;span style="font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;ATTACH&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;CREATE&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; as 2nd and 3rd parameters; use &lt;/span&gt;&lt;span style="font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;ABORT&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;CREATE&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; if you were using &lt;/span&gt;&lt;span style="font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;FAIL&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;; &amp;nbsp;use &lt;/span&gt;&lt;span style="font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;ATTACH&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;WAIT&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; if you were using a seekEngine call.&lt;br class="kix-line-break" /&gt;NOTE: to avoid wasting you should call enableSharing before calling connect. Not a requirement though.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-style: italic; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;addTable/removeTable&lt;/span&gt;&lt;span style="font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;are now called &lt;/span&gt;&lt;span style="font-family: 'Courier New'; vertical-align: baseline; white-space: pre-wrap;"&gt;subscribe&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;unsubscribe&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;. More on this on the Table section of this guide&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-style: italic; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;setLSHost&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;setLSPort&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; have been collapsed in the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;ConnectionDetails.setServerAddress&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; method. It is also necessary to specify a protocol (http or https) now. See &lt;/span&gt;&lt;a href="https://docs.google.com/spreadsheet/pub?key=0AuT6s3Kb7P8hdE83ZTJMUmw4TFQ0c1h2YUdVaTZmYlE&amp;amp;output=html"&gt;&lt;span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;"&gt;Lightstreamer JS Client - Deployment Config Matrix&lt;/span&gt;&lt;/a&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; and the API documentation for details.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-style: italic; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;The &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;PushPage.bind&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; and the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Context.setDomain&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; methods are no more; see dedicated section.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;
&lt;/b&gt;
&lt;br /&gt;
&lt;h2 dir="ltr"&gt;
&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;
&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;PushPage.bind - Context.setDomain&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Another big news is the removal of the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;bind&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; method from the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;PushPage&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; object and all the requirements it had. You can create now your &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;LightstreamerClient&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;, call &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;enableSharing&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;connect&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;subscribe&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; at any time.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Also with the removal of the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Context&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; class there is no way to set the domain on the page through our APIs: the Lightstreamer library now adapts itself to the domain it finds at any given moment on the page. All the possibilities of what will happen on the basis of the domain set, the browser, the front-end host and the Lightstreamer hosts is detailed in the &amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.google.com/spreadsheet/pub?key=0AuT6s3Kb7P8hdE83ZTJMUmw4TFQ0c1h2YUdVaTZmYlE&amp;amp;output=html"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Lightstreamer JS Client - Deployment Config Matrix&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div dir="ltr"&gt;
&lt;table style="border-collapse: collapse; border: none; width: 624px;"&gt;&lt;colgroup&gt;&lt;col width="*"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style="height: 0px;"&gt;&lt;td style="border: 1px solid rgb(0, 0, 0); padding: 7px; vertical-align: top;"&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;QUICK ACTION: if your application wasn’t using &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;setDomain&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; to change the domain on the page just remove the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;PushPage bind&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; calls; otherwise remove both &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Context setDomain&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;calls and &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;PushPage bind&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;calls and add a &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;document.domain = &lt;/span&gt;&lt;span style="color: blue; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;"yourdomain.com"&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;statement to your page (preferably before the Lightstreamer-related code)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;h2 dir="ltr"&gt;
&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;
&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;Table Classes&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;b id="internal-source-marker_0.21666835574433208" style="font-weight: normal;"&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;The &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;NonVisualTable&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; was renamed to &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Subscription&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; and is now the only “Table” class.&lt;br class="kix-line-break" /&gt;Once configured it can be activated through the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;LightstreamerClient.subscribe&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; call (and deactivated through &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;LightstreamerClient.unsubscribe&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;). &lt;br class="kix-line-break" /&gt;The old &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;VisualTable&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; classes now acts as listeners for this new &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Subscription&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; class (and thus it is possible to feed multiple &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;VisualTable&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; with a single subscription).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr"&gt;
&lt;table style="border-collapse: collapse; border: none; width: 624px;"&gt;&lt;colgroup&gt;&lt;col width="*"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style="height: 0px;"&gt;&lt;td style="border: 1px solid rgb(0, 0, 0); padding: 7px; vertical-align: top;"&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;QUICK ACTION: per each &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Table&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; instance in your application create a &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Subscription &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;instance. Port all the subscription-related calls to such instance. Note that some function names are slightly different, and also their parameters need to be specified differently; matching is quite easy anyway. &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;Visual-related calls are explained in the next box. Callbacks porting is explained in the Callbacks section.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;The following calls need a special treatment:&lt;/span&gt;&lt;br /&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-style: italic; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;The order of the parameters in the constructor is now different. Also it is not possible to specify null to read the group/schema from the html page, to keep such behavior it is necessary to use the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;extractFieldList&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;extractItemList&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; methods of &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;DynaGrid/StaticGrid&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-style: italic; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;setCommandLogic&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; is now splitted across different &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;setCommand*&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;setCommandSecondLevel*&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; calls. The flag parameter is then inferred by the values used for such calls.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-style: italic; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;The &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;LightstreamerClient.subscribe&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; method, unlike the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;addTable&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; one, only accepts one parameter (the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Subscription&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;). To call the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;unsubscribe&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; method the same object is required, not its id as such id does not exist anymore.&lt;/span&gt;&lt;span style="font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;br /&gt;&lt;h3 dir="ltr"&gt;
&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;VisualTable&lt;/span&gt;&lt;/h3&gt;
&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;OverwriteTable, ScrollTable, MetapushTable&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; are now collapsed into the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;StaticGrid&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; class. The &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;ScreenTableHelper&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; functionalities have been collapsed there too.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;DynaScrollTable, DynaMetapushTable, MultiDynaMetapushTable&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; are now collapsed in the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;DynaGrid&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; class. Note that such &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;DynaGrid&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; class can also be used as a “DynaOverwriteTable”&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;The new classes are not stricly &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Subscription&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;-bound as the old &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Table&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; were. This gives much more fliexibility to the visual framework of Lightstreamer (i.e.: you may even use the new grids without bounding’em to any subscription).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr"&gt;
&lt;table style="border-collapse: collapse; border: none; width: 624px;"&gt;&lt;colgroup&gt;&lt;col width="*"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style="height: 0px;"&gt;&lt;td style="border: 1px solid rgb(0, 0, 0); padding: 7px; vertical-align: top;"&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;QUICK ACTION: per each &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;VisualTable&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; instance create the proper &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;*Grid&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;instance and port the visual-related call to it (my personal suggestion is to use &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;DynaGrid&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; even if you were using &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;OverwriteTable&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;ScrollTable&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; or &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;MetapushTable&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;). Again some function names are slightly different, check the API for details.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;If you were using a &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;ScreenTableHelper&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; you can port its logic directly into your &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;StaticGrid&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; (thus no &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;addScreenTableHelper&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; calls or id matching needed anymore).&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;Bind each &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;*Grid&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; to the related &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Subscription&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; using the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Subscription.addListener&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; call.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;Callbacks porting is explained in the Callbacks section.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;The following calls need a special treatment:&lt;/span&gt;&lt;br /&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-style: italic; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;setClearOnAdd setClearOnRemove setClearOnDisconnect&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; do not exist anymore, &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;setAutoCleanBehavior&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; substitutes them with a slightly different logic. The clean method can be used to clean the grid at any moment.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-style: italic; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;The new classes are not “added” anymore but the library still needs to know when you’re ready to bound the html to your grids: you can either specify a flag in the constructor to make the bound at construction time, or you can bind’em later using the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;parseHtml&lt;/span&gt;&lt;span style="font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;call.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-style: italic; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;The id specified in the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;addTable&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; calls was also used to bind a &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Table&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; to the related html snippet. The same binding is now obtained specifiyng such id in the constructor of the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Grid&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-style: italic; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;The logic behind &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-style: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;showValues&lt;/span&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt; is now changed and moved into the new updateRow function.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;The html templates need some adjustments too. Search for our custom html properties and rename them as follows:&lt;/span&gt;&lt;br /&gt;
&lt;ul style="margin-bottom: 0pt; margin-top: 0pt;"&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-style: italic; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;table becomes data-grid&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-style: italic; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;item becomes data-item&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-style: italic; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;row becomes data-row&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-style: italic; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;field becomes data-field&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; font-style: italic; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;source becomes data-source&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;note that their values remain the same.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;If you were using elements different from &lt;/span&gt;&lt;span style="font-family: Courier New, Courier, monospace; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;div&amp;gt; &amp;lt;span&amp;gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;span style="font-family: Courier New, Courier, monospace; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;lt;input&amp;gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; in the template of a &lt;/span&gt;&lt;span style="font-family: Courier New, Courier, monospace; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;Dyna*Table&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; you have to add a &lt;/span&gt;&lt;span style="font-family: Courier New, Courier, monospace; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;setNodeTypes&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; call to the new &lt;/span&gt;&lt;span style="font-family: Courier New, Courier, monospace; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;DynaGrid&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; instance passing in an array of strings containing the name of the elements used or the grid will not recognize the cells (e.g.: &lt;/span&gt;&lt;span style="font-family: Courier New, Courier, monospace; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;myGrid.setNodeTypes(["td","p"]&lt;/span&gt;&lt;span style="font-family: Courier New, Courier, monospace; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;)&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;).&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;br /&gt;&lt;h2 dir="ltr"&gt;
&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;Callbacks&lt;/span&gt;&lt;/h2&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;We’ve moved from a “define a function on one of our objects to be internally called as a callback” model to an “add a listener that receives events” model.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;The big plus of this change is the possibility to have different handlers for the same event.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Take a look to the following example to quickly understand how to move from one model to the other:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Old Code&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;pushPage.onStatusChange = &lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;function&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;(newStatus) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;//do stuff with newStatus&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;};&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;New Code&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;lsClient.addListener({&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;onStatusChange: &lt;/span&gt;&lt;span style="color: #980000; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;function&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;(newStatus) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #6aa84f; font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;//do stuff with newStatus&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; &amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;});&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Per each &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;addListener&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; call in the APIs a related &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;*Listener&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt; interface is defined. Note that you only need to define the events you want to be notified on, no need to implement the whole interface.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;div dir="ltr"&gt;
&lt;table style="border-collapse: collapse; border: none; width: 624px;"&gt;&lt;colgroup&gt;&lt;col width="*"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style="height: 0px;"&gt;&lt;td style="border: 1px solid rgb(0, 0, 0); padding: 7px; vertical-align: top;"&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;QUICK ACTION: search all the callbacks you defined on our objects and substitute with addListener calls as shown in the above example. Note that some callbacks may have different names; as an example &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;onStart&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; is now called &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;onSubscription&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;, other callbacks have been moved, as an example the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;onServerDeny&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; callback from &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;PushPage&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; is now the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;onSubscriptionError&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; of the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;SubscriptionListener&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;NOTE: if you were using the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;this&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; keyword in your callbacks implementation you’ll have to change your code: previously such &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;this&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; would refer to the attached instance while now refers to the &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;*Listener&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; instance. Be careful.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;br /&gt;&lt;h2 dir="ltr"&gt;
&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;Subjects Not Covered&lt;/span&gt;&lt;/h2&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Even after following this guide you may still have doubts about how to correctly port something. That’s fine, I appreciate I would need to write a complete book to cover all the differences between the old and the new APIs, so drop us a line here or on our forum and we’ll help you to sort out any remaining porting issues.&lt;/span&gt;&lt;/b&gt;
</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/2714051974835452398/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2012/09/how-to-upgrade-to-javascript-client.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/2714051974835452398?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/2714051974835452398?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2012/09/how-to-upgrade-to-javascript-client.html" title="How to Upgrade to JavaScript Client Library 6" /><author><name>Simone Fabiano</name><uri>https://plus.google.com/111480189631597790681</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-0idzJcjdtFM/AAAAAAAAAAI/AAAAAAAAAC8/YnH4Ro6GWq8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-JyOTcUmOH9c/US4y9Z5yOlI/AAAAAAAAAP0/_86xhqt7dGU/s72-c/UPGRADE7.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUQGQn09eSp7ImA9WhBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-6053434257468958483</id><published>2012-09-05T16:24:00.000+02:00</published><updated>2013-02-27T20:28:43.361+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T20:28:43.361+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TECHNICAL ARTICLES" /><title>Dynamic Bandwidth and Frequency Management</title><content type="html">&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;a href="http://3.bp.blogspot.com/-YJQT_Q6Q5bU/T7TAkd499WI/AAAAAAAAADg/u2xql1uvGns/s1600/Cattura.PNG" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="290" src="http://3.bp.blogspot.com/-YJQT_Q6Q5bU/T7TAkd499WI/AAAAAAAAADg/u2xql1uvGns/s320/Cattura.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
If
 you have been knowing Lightstreamer for a long time, you appreciate 
that it has always been particularly good at managing the bandwidth used
 by the stream connection and the individual update rate of each 
subscription.&lt;br /&gt;
&lt;br /&gt;
In addition to heuristically spot network
 congestions and adapting the data flow automatically, Lightstreamer has
 always offered an API call to dynamically change the maximum bandwidth 
granted to a given stream session.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The good news is 
that now both Lightstreamer 4.1 and 5.0 allow you to change the maximum 
frequency granted to each individual subscription on the fly.&lt;/b&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The best way to illustrate this is through a demo. Just go to &lt;a href="http://www.lightstreamer.com/demo/BandwidthDemo"&gt;lightstreamer.com/demo/BandwidthDemo&lt;/a&gt; to &lt;b&gt;see the new feature in action&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
You
 will see the classic Stock-List Demo, where 15 simulated stocks push 
their live market data to the browser via Lightstreamer. The demo starts
 in "unlimited" mode, where neither the bandwidth nor the update 
frequency are limited. This means that the data pass through 
Lightstreamer and reach the browser based on the actual updates 
originated by the back-end data feed, only subjected to possible 
conflation in case of network issues or high latency on the physical 
link.&lt;br /&gt;
&lt;br /&gt;
What you can do with Lightstreamer is &lt;b&gt;allocate a maximum bandwidth to that session&lt;/b&gt;
 and have the data flow resampled and conflated dynamically to respect 
the limit. Move the Max Bandwidth slider to the left, perhaps to a value
 as ridiculous as 0.5 kilobits per seconds! Lightstreamer will still be 
able to deliver updates to the page, thanks to the very optimized 
network protocol used. Notice that when a row has a chance to be updated
 (based on a round-robin algorithm), it will receive the latest 
available values, not aged data. This happens thanks to "MERGE" 
subscription mode, where the updates are not queued and delayed, but 
resampled and conflated, without sacrificing data coherency and 
consistency. Other subscription modes, with different behaviors, are 
available.&lt;br /&gt;
&lt;br /&gt;
But what happens exactly under the hood in 
the demo? When you move the Max Bandwidth, the client will notify the 
server of the new bandwidth and the server will change the update rate 
on the fly, in order to respect the bandwidth limit. Usually, bandwidth 
allocation is done on the server side directly, based on the user 
profile. But this demos gives the final user the possibility of changing
 their own bandwidth. Any change is always validated by server-side code
 (within the Metadata Adapter), which can allow or deny the bandwidth 
change.&lt;br /&gt;
&lt;br /&gt;
Now let's move to the second slider. The Max Frequency slider &lt;b&gt;sets the maximum update rate of each item&lt;/b&gt;
 in the subscription. Again, the client will notify the server of the 
new frequency limit and the server will change the update frequency on 
the fly, in order to respect the frequency limit. If you set "0.5 
updates/second per item", each row in the table will not receive more 
than one update every two seconds, independently of the allocated 
bandwidth.&lt;br /&gt;
&lt;br /&gt;
Bandwidth Management and Frequency 
Management are two independent tools, combined by Lightstreamer, which 
you can leverage to optimized the user's experience based on a number of
 variables. The cool thing is that you can apply any bandwidth and 
frequency change on the fly to an existing sessions and subscription, 
without requiring you to re-open a session to change its bandwidth or to
 re-subscribe to an item to change its update frequency. &lt;b&gt;This makes dynamic changes in settings extremely fast&lt;/b&gt;.
 Imagine a scenario where your iPad application shows a summary of mixed
 real-time data, which can be drilled down. When the user clicks to get a
 detailed view of a piece of data, you might want to increase its max 
update frequency (perhaps 5 times per second instead on 1 per second). 
You can achieve that via a single API call and without interrupting the 
data flow. If you had to change subscription to move to the detail page,
 you would introduce some latency, especially on mobile networks, which 
would impact on the user's experience.&lt;br /&gt;
&lt;br /&gt;
To know more on how to manage bandwidth and frequency, please check out the source code of the above demo, as explained at &lt;a href="http://www.lightstreamer.com/demos#BandwidthDemo"&gt;lightstreamer.com/demos#BandwidthDemo&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Let us know if you have any question or feedback!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/6053434257468958483/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2012/09/dynamic-bandwidth-and-frequency.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/6053434257468958483?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/6053434257468958483?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2012/09/dynamic-bandwidth-and-frequency.html" title="Dynamic Bandwidth and Frequency Management" /><author><name>Alessandro Alinone</name><uri>https://plus.google.com/105311861211129158469</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-zoTzaja2FUg/AAAAAAAAAAI/AAAAAAAAAEk/hNkDsERBb3M/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-YJQT_Q6Q5bU/T7TAkd499WI/AAAAAAAAADg/u2xql1uvGns/s72-c/Cattura.PNG" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUUFRXkzeyp7ImA9WhBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-6092848778186308552</id><published>2012-08-31T15:25:00.000+02:00</published><updated>2013-02-27T20:26:54.783+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T20:26:54.783+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CASE STUDIES" /><title>Meet our Partners - Markets Pulse</title><content type="html">&lt;img border="0" src="http://1.bp.blogspot.com/-RkjLqQBq7uk/URJBshBIVeI/AAAAAAAAANU/3ENbTJNy_aY/s1600/Ravit-Friedberg_150x150.jpg" style="float: right; margin-bottom: 10px; margin-left: 10px; margin-right: 10px; margin-top: 10px;" /&gt;
A short interview with Ravit Friedberg, Product Manager of &lt;a href="http://www.marketspulse.com/" target="_blank"&gt;Markets Pulse&lt;/a&gt;, an Enterprise Binary Option technology provider for
online trading companies.&lt;br /&gt;
&amp;nbsp;&lt;b&gt; &lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Let’s talk about your organization. What is your core business?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: black;"&gt;
&lt;i&gt;
Markets Pulse provides financial companies with advanced binary options technology, offering a great addition to any online trading platform. The offering includes easy-to-integrate back office and technologically advanced front-end trading platforms. The technology is installed completely on-site, providing confidentiality of data and a customizable trading experience. Working with regulated companies such as FxTrade Financial and Gallant Capital Markets, the technology is also ready for regulation.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Could you let us know any further information? (Number of customers, covered regions, revenues..)&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img border="0" src="http://4.bp.blogspot.com/-Kw7nhStRF2g/UD-Ouvw1K_I/AAAAAAAAAEI/Z5aETUizKhw/s1600/logo_full-e1312471154281.jpg" style="float: left; margin-bottom: 10px; margin-left: 0px; margin-right: 15px; margin-top: 10px;" /&gt;&lt;i&gt;Markets Pulse has representative offices in the United States, Singapore, Japan and Israel and about 65 employees at its service. Our mother company is Jivy Group, an Israel-based technology company with extensive resources, and we support clients and traders across the globe.&amp;nbsp;&lt;/i&gt;
&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Who is the typical user of your product or service?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;The Markets Pulse technology is mostly used by brokers and other financial companies with an existing customer base, who utilize it to cross-sell their traders to this highly profitable trading product. These companies also require that this new offering works with their existing infrastructure. Markets Pulse is made for this situation; our technology was designed to seamlessly integrate with existing systems.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Markets Pulse is an Application Partner of Weswit (for Lightstreamer). For what customers have you already deployed Lightstreamer?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;We deploy Lightstreamer as an integrated part of our trading platforms and, as such, all our clients use the advanced Lightstreamer technology.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What does your application or service do?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Markets Pulse is an Enterprise Binary Options Technology suite, which financial companies use to offer Binary Options to their clients without having to develop their own technology. The complete Markets Pulse suite is installed on-site;  it seamlessly integrates with existing infrastructure and consists of intuitive front-end trading platforms and an extensive back office.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What functionalities are powered by Lightstreamer?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;The Markets Pulse platform relies on Lightstreamer technology to distribute real-time financial quotes to all of the supported trading platforms: web, mobile devices and tablets. Real-time financial quotes are key to ensuring a dynamic trading experience for binary options traders.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Is your main application based on HTML or other front-end technologies?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;The Markets Pulse trading platform is built using the latest .NET 4 technology with WCF communications and a mixture of Javascript, ASP, HTML5 and Flash on the front end. &lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Do you provide any native apps for smartphones and tablets?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Yes, the Markets Pulse Mobile platform is one of the only binary options mobile trading technologies that  are native on both Android and Apple platforms. In part, the  superior user experience  is due to the reliable,  low latency pricing  pushed based on Lightstreamer technology. &lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What other features of Lightstreamer are you taking benefit from (e.g. data throttling, low latency, bandwidth management, security, smart proxy traversal, etc.)?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;At this time, Markets Pulse chiefly uses Lightstreamer technology to effectively and efficiently distribute real-time financial quotes to a variety of platforms.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;A concluding question for Rachely Esman (CEO of Markets Pulse) about Lightstreamer technology and its support team. We would be very grateful if you would like to provide a short recommendation to testify your experience. What benefits are you obtaining?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt; [Rachely Esman] The Lightstreamer application allows us to offer the kind of secure, scalable and reliable experience our enterprise financial customers need. &lt;/i&gt;&lt;i&gt;Our cooperation with Weswit and the usage of their technology has played a large role in our leadership in the competitive Binary Option technology market.&lt;/i&gt;&lt;/div&gt;
</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/6092848778186308552/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2012/08/meet-our-partners-marketspulse.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/6092848778186308552?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/6092848778186308552?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2012/08/meet-our-partners-marketspulse.html" title="Meet our Partners - Markets Pulse" /><author><name>Valerio Celletti</name><uri>http://www.blogger.com/profile/14208644245431044513</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-RkjLqQBq7uk/URJBshBIVeI/AAAAAAAAANU/3ENbTJNy_aY/s72-c/Ravit-Friedberg_150x150.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUUFRXk-fCp7ImA9WhBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-2344171830871327270</id><published>2012-08-24T11:29:00.000+02:00</published><updated>2013-02-27T20:26:54.754+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T20:26:54.754+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CASE STUDIES" /><title>Meet our Customers: CanDeal.Ca</title><content type="html">&lt;img border="0" src="http://3.bp.blogspot.com/-fY_alQzz96s/URJFQpX1o8I/AAAAAAAAANo/oJjnfR4SWFY/s1600/Joe+D%2527Alessandro.jpg" style="float: right; height: 150px; margin-bottom: 10px; margin-left: 10px; margin-right: 0px; margin-top: 0px; width: 150px;" /&gt;A short interview with Joe D'Alessandro, CTO of &lt;a href="http://candeal.ca/"&gt;CanDeal.Ca&lt;/a&gt;, the leading electronic marketplace for Canadian dollar debt securities.&lt;br /&gt;
&amp;nbsp;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Let’s talk about your organization. What is your core business?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: black;"&gt;
&lt;i&gt;CanDeal provides institutional market participants with an electronic marketplace for Canadian dollar debt securities. Currently we operate in Canada, US and Europe with 200+ Institutional investors and 13 investment dealers.&lt;/i&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Who is the typical user of your product or service?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Bond
 and Money Market traders and sales people at institutional investors: 
asset managers, hedge funds, pension funds, insurance companies, central
 banks, etc. and investment dealers (all of Canada’s primary dealers)&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What does your application or service do?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://3.bp.blogspot.com/-M5mPeHfJoAA/UCy6r0DEwfI/AAAAAAAAAD4/44ITMixVWUY/s1600/logo.png" style="float: left; margin-bottom: 5px; margin-left: 0px; margin-right: 10px; margin-top: 5px;" /&gt;
&lt;i&gt;CanDeal facilitates electronic trading of Canadian dollar debt securities. Institutional investors from around the globe leverage CanDeal to gain direct access to the liquidity of our dealer network.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What functionalities are powered by Lightstreamer?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Initially, Lightstreamer will be used to drive real-time spreadsheets for both buy and sell side users.  The platform will also be used to drive enhanced functionality to the CanDeal website and any other websites looking for CanDeal data, CanDeal’s new broadcast data feed, mobile strategy and a closing prices product.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Is your main application based on HTML or other front-end technologies?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;The trading application is C++ client.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Do you provide any native apps for smartphones and tablets?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Not currently.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Do you use Lightstreamer for bi-directional data push (that is, also for sending messages from the client to the server)?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Yes, Lightstreamer will be used for bi-directional data push.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What other features of Lightstreamer are you taking benefit from (e.g. data throttling, low latency, bandwidth management, security, smart proxy traversal, etc.)?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;No other features are contemplated at this time.&lt;/i&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;/div&gt;
</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/2344171830871327270/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2012/08/meet-our-customers-candealca.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/2344171830871327270?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/2344171830871327270?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2012/08/meet-our-customers-candealca.html" title="Meet our Customers: CanDeal.Ca" /><author><name>Valerio Celletti</name><uri>http://www.blogger.com/profile/14208644245431044513</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-fY_alQzz96s/URJFQpX1o8I/AAAAAAAAANo/oJjnfR4SWFY/s72-c/Joe+D%2527Alessandro.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUQGQn0_eSp7ImA9WhBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-2118421630088974544</id><published>2012-08-10T16:16:00.000+02:00</published><updated>2013-02-27T20:28:43.341+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T20:28:43.341+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TECHNICAL ARTICLES" /><title>Lightstreamer in a PhoneGap app</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-XwEsan471E4/US4ypCaqCMI/AAAAAAAAAPs/SmkxFz87BgE/s1600/PhoneGapLogo.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/-XwEsan471E4/US4ypCaqCMI/AAAAAAAAAPs/SmkxFz87BgE/s200/PhoneGapLogo.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
As a JavaScript guy and mostly-OS-agnostic kind of person I wait for the day when I will be able to fully exploit the power of ApplicationCache and other new JS APIs such as GeoLocation and IndexedDB, to install the same web application and have the same OS-integrated experience on my Windows notebook, my Sabayon box or on my Android Smartphone. Not to mention the pleasure of sharing the exact same app with my iOS, Windows Phone or Tizen oriented friends.&lt;br /&gt;
&lt;br /&gt;
Also, as a developer, not having to develop a native application per each OS out there would be a big plus.&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately today is not that day, so, if I want to deploy an application on each and any OS, giving my users a “native experience”, I have to write a native application per each of them. Right? Not exactly.&lt;br /&gt;
&lt;br /&gt;
At least in the mobile world PhoneGap comes to the rescue making it possible to create a pure HTML+CSS+JS application and having it packed as a native application for all of the major mobile systems.&lt;br /&gt;
Using their online building tool (namely PhoneGap:Build) you don’t even need to setup a development environment per each target OS as it was previously necessary: simply prepare your code, upload it to their website and download the packed applications, that’s it!&lt;br /&gt;
&lt;br /&gt;
The best part is, you can now use the Lightstreamer JavaScript Client 6 and its companion Lightstreamer Server 5 to enable real-time goodness on you PhoneGap application.&lt;br /&gt;
&lt;br /&gt;
So, let’s try it!&lt;br /&gt;
&lt;h2&gt;
Coding&lt;/h2&gt;
&lt;a href="https://github.com/phonegap/phonegap-start"&gt;PhoneGap offers a sample application to get you started&lt;/a&gt;&amp;nbsp;and we’ll use it as our starting point. We’ll add some stock quotes from our classic &lt;a href="http://www.lightstreamer.com/demo/StockListDemo/"&gt;StockListDemo&lt;/a&gt; and a box to show the status of the connection to the Lightstreamer Server.&lt;br /&gt;
&lt;br /&gt;
As we will not use all of the classes from the Lightstreamer JS Client let’s start by customizing it via our &lt;a href="http://www.lightstreamer.com/distros/Lightstreamer_Moderato_5_0_Colosseo_20120803.zip%23/Lightstreamer/DOCS-SDKs/sdk_client_javascript/tools/generator.html"&gt;generator tool&lt;/a&gt;:&amp;nbsp;select &lt;i&gt;LightstreamerClient&lt;/i&gt;, &lt;i&gt;Subscription&lt;/i&gt; and &lt;i&gt;DynaGrid&lt;/i&gt;, then choose the “&lt;i&gt;Use globals&lt;/i&gt;” option and generate the lib. (note that you can use the AMD version too, we just want to avoid including an AMD loader in this simple example).&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-iejCbGlPCk0/UB_f29FcWBI/AAAAAAAAACU/5UnIhKegbgY/s1600/generator.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="452" src="http://3.bp.blogspot.com/-iejCbGlPCk0/UB_f29FcWBI/AAAAAAAAACU/5UnIhKegbgY/s640/generator.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
Once the generated library is saved as assets/js/lightstreamer.js and included in the index.html file we can start coding&lt;br /&gt;
&lt;br /&gt;
&lt;span class="tag" style="-webkit-box-shadow: none !important; background-color: white; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag-name" style="-webkit-box-shadow: none !important; background-color: white; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;script&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; background-color: white; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="attribute" style="-webkit-box-shadow: none !important; background-color: white; color: red; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;src&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; background-color: white; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;=&lt;/span&gt;&lt;span class="attribute-value" style="-webkit-box-shadow: none !important; background-color: white; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"assets/js/lightstreamer.js"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; background-color: white; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="attribute" style="-webkit-box-shadow: none !important; background-color: white; color: red; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;type&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; background-color: white; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;=&lt;/span&gt;&lt;span class="attribute-value" style="-webkit-box-shadow: none !important; background-color: white; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"text/javascript"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; background-color: white; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="attribute" style="-webkit-box-shadow: none !important; background-color: white; color: red; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;charset&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; background-color: white; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;=&lt;/span&gt;&lt;span class="attribute-value" style="-webkit-box-shadow: none !important; background-color: white; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"utf-8"&lt;/span&gt;&lt;span class="tag" style="-webkit-box-shadow: none !important; background-color: white; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="tag" style="-webkit-box-shadow: none !important; background-color: white; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag-name" style="-webkit-box-shadow: none !important; background-color: white; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;script&lt;/span&gt;&lt;span class="tag" style="-webkit-box-shadow: none !important; background-color: white; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
First of all I adapted a little bit the application to avoid the use of the ids of the “button” elements as &amp;nbsp;"command orders", I added a new navigation button and related section that will contain the Lightstreamer grid and edited the config.xml to add references to Lightstreamer. I will skip the details about these parts as not relevant here.&lt;br /&gt;
&lt;br /&gt;
Then I added some Lightstreamer code to the application. I wanted my application to be always connected to a Lightstreamer server, so I included my connection logic in the callback sent to the &lt;span style="font-family: Courier New, Courier, monospace;"&gt;run&lt;/span&gt; method in the app.js file. Such &lt;span style="font-family: Courier New, Courier, monospace;"&gt;run&lt;/span&gt; method, declared in the dsl.js file, will execute the given callback as soon as PhoneGap is ready.&lt;br /&gt;
&lt;br /&gt;
For such connection to be opened simply instantiat&lt;span style="font-family: inherit;"&gt;e a &lt;/span&gt;&lt;a href="http://www.lightstreamer.com/docs/client_javascript_uni_api/LightstreamerClient.html"&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;LightstreamerClient&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: inherit;"&gt; object, specifying the server address and the adapter-set to be used, and call the &lt;/span&gt;&lt;a href="http://www.lightstreamer.com/docs/client_javascript_uni_api/LightstreamerClient.html#connect"&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;connect&lt;/span&gt;&lt;/a&gt; function. In this case I also added a listener to my LightstreamerClient: each time the connection status will change it will be reported in the “connection_status” &lt;span style="font-family: Courier New, Courier, monospace;"&gt;&amp;lt;div&amp;gt;&lt;/span&gt; element I added to the html page.&lt;br /&gt;
&lt;br /&gt;
in the app.js file:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;run(&lt;/span&gt;&lt;span class="keyword" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;function&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;()&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="-webkit-box-shadow: none !important; background-color: white; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp; [...] &amp;nbsp;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="keyword" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;var&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;lsClient&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="keyword" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;new&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;LightstreamerClient(&lt;/span&gt;&lt;span class="string" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"http://push.lightstreamer.com"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;,&lt;/span&gt;&lt;span class="string" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"DEMO"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;lsClient.addListener({&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: white;"&gt;&lt;span style="font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp; &amp;nbsp; onStatusChange:&amp;nbsp;&lt;/span&gt;&lt;span class="keyword" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;function&lt;/span&gt;&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&lt;span style="background-color: white;"&gt;(newStatus)&amp;nbsp;{ &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-color: white;"&gt;&lt;span style="font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&lt;span style="background-color: white;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;
x$(&lt;span class="string" style="-webkit-box-shadow: none !important; color: blue;"&gt;"#connection_status"&lt;/span&gt;&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important;"&gt;&lt;span style="background-color: white;"&gt;).html(newStatus);&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; });&lt;br /&gt;&amp;nbsp; lsClient.connect();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
in the index.html page:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="tag" style="-webkit-box-shadow: none !important; background-color: white; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag-name" style="-webkit-box-shadow: none !important; background-color: white; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;div&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; background-color: white; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="attribute" style="-webkit-box-shadow: none !important; background-color: white; color: red; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;id&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; background-color: white; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;=&lt;/span&gt;&lt;span class="attribute-value" style="-webkit-box-shadow: none !important; background-color: white; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"connection_status"&lt;/span&gt;&lt;span class="tag" style="-webkit-box-shadow: none !important; background-color: white; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; background-color: white; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;DISCONNECTED&lt;/span&gt;&lt;span class="tag" style="-webkit-box-shadow: none !important; background-color: white; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag-name" style="-webkit-box-shadow: none !important; background-color: white; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;div&lt;/span&gt;&lt;span class="tag" style="-webkit-box-shadow: none !important; background-color: white; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="tag" style="-webkit-box-shadow: none !important; background-color: white; color: #006699; font-weight: bold; line-height: 14px;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="font-family: inherit;"&gt;O&lt;/span&gt;nce connected we need to subscribe to our stock data and we also want a grid to show such data.&lt;br /&gt;
&lt;br /&gt;
I included a &lt;a href="http://www.lightstreamer.com/docs/client_javascript_uni_api/DynaGrid.html"&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;DynaGrid&lt;/span&gt;&lt;/a&gt; template in the html page in the form of a &lt;span style="font-family: Courier New, Courier, monospace;"&gt;&amp;lt;li&amp;gt;&lt;/span&gt; element (notice the &lt;span style="font-family: Courier New, Courier, monospace;"&gt;id&lt;/span&gt; of the &lt;span style="font-family: Courier New, Courier, monospace;"&gt;&amp;lt;li&amp;gt;&lt;/span&gt; element, the &lt;span style="font-family: Courier New, Courier, monospace;"&gt;data-source&lt;/span&gt; and the &lt;span style="font-family: Courier New, Courier, monospace;"&gt;data-field&lt;/span&gt; properties) and then created the related JS code.&lt;br /&gt;
A listener of the &lt;span style="font-family: Courier New, Courier, monospace;"&gt;DynaGrid&lt;/span&gt; instance will take care of configuring the highlighting of the cells. We also want the grid to be sorted on the &lt;span style="font-family: Courier New, Courier, monospace;"&gt;stock_name&lt;/span&gt; field.&lt;br /&gt;
&lt;br /&gt;
in the index.html page:&lt;br /&gt;
&lt;span class="tag" style="-webkit-box-shadow: none !important; color: #006699; line-height: 14px;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;strike&gt;&lt;br /&gt;&lt;/strike&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class="tag" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag-name" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;li&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="attribute" style="-webkit-box-shadow: none !important; color: red; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;id&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;=&lt;/span&gt;&lt;span class="attribute-value" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"stocks"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="attribute" style="-webkit-box-shadow: none !important; color: red; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;data-source&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;=&lt;/span&gt;&lt;span class="attribute-value" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"lightstreamer"&lt;/span&gt;&lt;span class="tag" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span class="tag" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span class="tag-name" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;span&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="attribute" style="-webkit-box-shadow: none !important; color: red; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;class&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;=&lt;/span&gt;&lt;span class="attribute-value" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"stock_name"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="attribute" style="-webkit-box-shadow: none !important; color: red; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;data-source&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;=&lt;/span&gt;&lt;span class="attribute-value" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"lightstreamer"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="attribute" style="-webkit-box-shadow: none !important; color: red; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;data-field&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;=&lt;/span&gt;&lt;span class="attribute-value" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"stock_name"&lt;/span&gt;&lt;span class="tag" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="tag" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag-name" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;span&lt;/span&gt;&lt;span class="tag" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="tag" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag-name" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;span&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="attribute" style="-webkit-box-shadow: none !important; color: red; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;class&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;=&lt;/span&gt;&lt;span class="attribute-value" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"last_price"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="attribute" style="-webkit-box-shadow: none !important; color: red; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;data-source&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;=&lt;/span&gt;&lt;span class="attribute-value" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"lightstreamer"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="attribute" style="-webkit-box-shadow: none !important; color: red; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;data-field&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;=&lt;/span&gt;&lt;span class="attribute-value" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"last_price"&lt;/span&gt;&lt;span class="tag" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="tag" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag-name" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;span&lt;/span&gt;&lt;span class="tag" style="-webkit-box-shadow: none !important; color: #006699; font-weight: bold;"&gt;&lt;span style="font-family: Courier New, Consolas, Courier, mono;"&gt;&lt;span style="line-height: 14px;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="tag" style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag-name" style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;li&lt;/span&gt;&lt;span class="tag" style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
in the app.js file:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span class="keyword" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;var&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;grid&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="keyword" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;new&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;DynaGrid(&lt;/span&gt;&lt;span class="string" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"stocks"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;,&lt;/span&gt;&lt;span class="keyword" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;true&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;);&lt;br /&gt;grid.setSort(&lt;/span&gt;&lt;span class="string" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"stock_name"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;);&lt;br /&gt;grid.addListener({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;onVisualUpdate:&amp;nbsp;&lt;/span&gt;&lt;span class="keyword" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;function&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;(key,info)&amp;nbsp;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="keyword" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;if&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;(info&amp;nbsp;==&amp;nbsp;&lt;/span&gt;&lt;span class="keyword" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;null&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;)&amp;nbsp;{&lt;br /&gt;&lt;span class="keyword" style="-webkit-box-shadow: none !important; color: #006699; font-weight: bold;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; return&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important;"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span class="comment" style="-webkit-box-shadow: none !important; color: #008200;"&gt;//cleaning&lt;br /&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; }&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&lt;span class="comment" style="-webkit-box-shadow: none !important; color: #008200;"&gt;&lt;span style="color: black;"&gt;&amp;nbsp; &amp;nbsp; info.setHotTime(500);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&lt;span class="comment" style="-webkit-box-shadow: none !important; color: #008200;"&gt;&lt;span style="background-color: white; color: black;"&gt;&amp;nbsp; &amp;nbsp; info.setHotToColdTime(300);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&lt;span class="comment" style="-webkit-box-shadow: none !important; color: #008200;"&gt;&lt;span class="keyword" style="-webkit-box-shadow: none !important; color: #006699; font-weight: bold;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;in&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;fo.setAttribute(&lt;/span&gt;&lt;span class="string" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"#F7941E"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class="string" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"transparent"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class="string" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"backgroundColor"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;);&lt;br /&gt;&amp;nbsp; &amp;nbsp; info.setAttribute(&lt;/span&gt;&lt;span class="string" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"white"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class="string" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"black"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span class="string" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"color"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;);&lt;br /&gt;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="-webkit-box-shadow: none !important; background-color: white; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;});&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I created and configured a &lt;a href="http://www.lightstreamer.com/docs/client_javascript_uni_api/Subscription.html"&gt;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;Subscription&lt;/span&gt;&lt;/a&gt;, added the previously created grid as a listener for its updates and subscribed to to the Lightstreamer Server through the &lt;span style="font-family: Courier New, Courier, monospace;"&gt;LightstreamerClient&lt;/span&gt;.&lt;br /&gt;
I could have specified the list of fields to be subscribed to manually but in this case I preferred to read such list from my grid template; extending the template with a new cell for a different field will automatically expand the list of subscribed fields. Also extending the list of items to be subscribed to will make the grid grow vertically.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span class="keyword" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;var&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;sub&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="keyword" style="-webkit-box-shadow: none !important; color: #006699; font-family: 'Courier New', Consolas, Courier, mono; font-weight: bold; line-height: 14px;"&gt;new&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;&amp;nbsp;Subscription(&lt;/span&gt;&lt;span class="string" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"MERGE"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;,[&lt;/span&gt;&lt;span class="string" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"item3"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;,&lt;/span&gt;&lt;span class="string" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"item4"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;,&lt;/span&gt;&lt;span class="string" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"item5"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;,&lt;/span&gt;&lt;span class="string" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"item6"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;,&lt;/span&gt;&lt;span class="string" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"item7"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;],grid.extractFieldList());&lt;br /&gt;sub.addListener(grid);&lt;br /&gt;sub.setDataAdapter(&lt;/span&gt;&lt;span class="string" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"QUOTE_ADAPTER"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;);&lt;br /&gt;sub.setRequestedSnapshot(&lt;/span&gt;&lt;span class="string" style="-webkit-box-shadow: none !important; color: blue; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;"yes"&lt;/span&gt;&lt;span style="-webkit-box-shadow: none !important; font-family: 'Courier New', Consolas, Courier, mono; line-height: 14px;"&gt;);&lt;br /&gt;lsClient.subscribe(sub);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
That’s it!&lt;br /&gt;
The full source code of the application shown here is available on my GitHub account; go to &lt;a href="https://github.com/Mone/phonegap-start"&gt;https://github.com/Mone/phonegap-start&lt;/a&gt;&amp;nbsp;and check it out.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-BaRGw3xab1s/UB_jM2SWY5I/AAAAAAAAACo/98QCtnnyaQk/s1600/screenshot-phonegap.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/-BaRGw3xab1s/UB_jM2SWY5I/AAAAAAAAACo/98QCtnnyaQk/s400/screenshot-phonegap.png" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;/div&gt;
&lt;h2&gt;
Building&lt;/h2&gt;
&lt;div class="separator" style="clear: both;"&gt;
Now that the application code is ready we have to build it, head for the previously cited &lt;a href="http://build.phonegap.com/"&gt;PhoneGap:Build&lt;/a&gt;&amp;nbsp;and login:&amp;nbsp;you can use an Adobe ID or a GitHub account to authenticate on the site, if you have none you’ll have to create one (my personal suggestion is to pick the GitHub option).&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
After the first login PhoneGap asks to create an application; simply fill the &lt;i&gt;name&lt;/i&gt;&amp;nbsp;input box for the application and the address of your (or mine) GitHub project, sit and wait, your application is being built!&lt;/div&gt;
&lt;h2&gt;
Hey! What about Websockets?&lt;/h2&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
The Lightstreamer JS library will open a WebSocket to a Lightstreamer Server if a WebSocket implementation is made available by the hosting platform.&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
In this case the library counts on PhoneGap for such implementation to&amp;nbsp;be available. PhoneGap in turn relies on the hosting OS's browser&amp;nbsp;for the WebSocket class to be available so that, by default, as of today,&amp;nbsp;you will not get a WebSocket connection on most phones.&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
Obviously the Lightstreamer JavaScript Client will resort to HTTP-STREAMING&amp;nbsp;if Web Sockets are not available on the platform: when using Lightstreamer you never have to worry, we got your back.&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
Note: a WebSocket implementation can be injected into&amp;nbsp;PhoneGap&amp;nbsp;via plugin but it will be OS dependant. Note that for the&amp;nbsp;implementation to play nice with Lightstreamer Server it has to adhere to&amp;nbsp;&lt;a href="http://tools.ietf.org/html/rfc6455"&gt;RFC 6455&lt;/a&gt;.&lt;/div&gt;
&lt;h4&gt;
Don’t like PhoneGap and/or JavaScript development?&lt;/h4&gt;
&lt;div class="separator" style="clear: both;"&gt;
If you still prefer pure-native apps, we offer Lightstreamer client libraries for a plethora of technologies; talking about the mobile world we offer SDKs for iOS, Android, Blackberry, Windows Phone and J2ME-enabled devices. Also our protocol is fully documented so you can potentially use Lightstreamer on any device.&lt;/div&gt;
</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/2118421630088974544/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2012/08/lightstreamer-in-phonegap-app.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/2118421630088974544?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/2118421630088974544?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2012/08/lightstreamer-in-phonegap-app.html" title="Lightstreamer in a PhoneGap app" /><author><name>Simone Fabiano</name><uri>https://plus.google.com/111480189631597790681</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-0idzJcjdtFM/AAAAAAAAAAI/AAAAAAAAAC8/YnH4Ro6GWq8/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-XwEsan471E4/US4ypCaqCMI/AAAAAAAAAPs/SmkxFz87BgE/s72-c/PhoneGapLogo.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUYESH08fSp7ImA9WhBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-6172758853769598834</id><published>2012-08-03T14:26:00.000+02:00</published><updated>2013-02-27T20:25:09.375+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T20:25:09.375+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ANNOUNCEMENTS" /><title>Lightstreamer 5.0 Colosseo is now available!</title><content type="html">&lt;br /&gt;
&lt;div class="separator" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"&gt;
&lt;img border="0" height="216" src="http://3.bp.blogspot.com/-X2eauvkJKT0/UA1e-TlilLI/AAAAAAAAADE/zR6RAPRyAZk/s640/lightstreamer-colosseo-logo-thin-2.png" width="640" /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
We are very thrilled to announce that the final release of &lt;b&gt;Lightstreamer 5.0, codename Colosseo&lt;/b&gt;, is now &lt;b&gt;generally available for &lt;a href="http://www.lightstreamer.com/download" target="_blank"&gt;download&lt;/a&gt;&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Lightstreamer 5.0 includes full support for WebSockets, a brand new JavaScript client API, impressive performance boost, and many new features.&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;
WebSocket Support&lt;/h2&gt;
The &lt;b&gt;WebSocket&lt;/b&gt; protocol is a new Web standard that enables bidirectional, full-duplex communication over the Web. Lightstreamer 5.0 provides a rock-solid implementation of the WebSocket standard. Even if WebSockets are not yet universally supported by the browsers and the network infrastructure, the &lt;b&gt;Stream-Sense&lt;/b&gt; algorithm of Lightstreamer is able to automatically choose the best transport among the many available (WS, HTTP Streaming, HTTP Long Polling, and their different flavors), for each connection. This means that real-time bidirectional communication will work smoothly in every case, even when connected via very invasive proxies and firewalls and when using older browsers (including IE 6). Among the many transports supported by Lightstreamer, there is even "polling over WebSockets"... Yes, it might sound odd, but there exist rare cases where you would prefer using polling rather than streaming even over WebSockets. For a historical perspective on Lightstreamer and WebSockets, &lt;a href="http://blog.lightstreamer.com/2011/07/push-technology-comet-and-websockets-10.html" target="_blank"&gt;see a previous article&lt;/a&gt;.&lt;br /&gt;
&lt;h2&gt;
New JavaScript Client API&lt;/h2&gt;
On the client side, a &lt;b&gt;completely redesigned JavaScript API&lt;/b&gt; is available. The new library is much easier to use, much faster, and represents the first implementation of the &lt;b&gt;Lightstreamer Unified Client API&lt;/b&gt;. The other client libraries will follow the same interface in the future, so that switching languages and platforms (e.g. from JavaScript to Objective-C, or from Java to .NET) will be extremely easy. The new JavaScript API, version 6,&lt;b&gt; is based on AMD&lt;/b&gt; (&lt;a href="http://requirejs.org/docs/whyamd.html" target="_blank"&gt;Asynchronous Module Definition&lt;/a&gt;) and RequireJS, the de facto standard for modularization and loading of JS libraries. This implies that it is now possible to include only the objects that are actually used by your application, rather than having to include the full library. For this purpose, a &lt;a href="http://www.lightstreamer.com/latest/Lightstreamer_Allegro-Presto-Vivace_5_0_Colosseo/Lightstreamer/DOCS-SDKs/sdk_client_javascript/tools/generator.html" target="_blank"&gt;generator tool&lt;/a&gt; is available for on-the-fly creation of custom versions of the JS library. As the resulting lib is a single file, you don’t need to include anymore a set of different JS and HTML resources as in previous versions of Lightstreamer.&lt;br /&gt;
&lt;br /&gt;
There is now full support for &lt;b&gt;cross-origin connections&lt;/b&gt;, so that in most cases you don’t have to use the same domain name for the Web server and the Lightstreamer server.&lt;br /&gt;
&lt;br /&gt;
The new JS library has is compatible with "&lt;b&gt;out-of-browser&lt;/b&gt;"&lt;b&gt; JavaScript applications&lt;/b&gt;, resulting in the possibility of leveraging Lightstreamer inside any JavaScript-based platforms, including &lt;b&gt;Node.js&lt;/b&gt; and &lt;b&gt;PhoneGap&lt;/b&gt;. For example, you can now use the Lightstreamer JS API inside your Node.js application to get real-time data from Lightstreamer Server with few lines of code. Source-code examples for both Node.js and PhoneGap are included in the distribution.&lt;br /&gt;
&lt;br /&gt;
The new &lt;b&gt;Stream-Sense&lt;/b&gt; algorithm is much faster, with &lt;b&gt;impressive performance boost&lt;/b&gt; on session start up. The connection to Lightstreamer Server will be established in a fraction of the time it took with previous versions.&lt;br /&gt;
&lt;br /&gt;
A brand &lt;b&gt;new logging and error management facility&lt;/b&gt; has been implemented in the library, as well as &lt;b&gt;new ready-made widgets&lt;/b&gt; (a new status indicator and new data grids).&lt;br /&gt;
&lt;br /&gt;
Among the other released features, we should mention the possibility of changing the max frequency of a subscription on the fly. In other words, you can subscribe to an item and change the resampling frequency without having to unsubscribe and resubscribe.&lt;br /&gt;
&lt;h2&gt;
Improved Server&lt;/h2&gt;
Even if Lightstreamer Server has a long history of successful production deployment, we keep improving the code, as this is the base of our philosophy.&lt;br /&gt;
&lt;br /&gt;
With Lightstreamer Server 5.0 the performance has been boosted even more, in terms of &lt;b&gt;increased scalability and reduced latency&lt;/b&gt;. Lightstreamer can be easily &lt;b&gt;deployed in a cloud &lt;/b&gt;and take benefit from both horizontal and vertical scalability.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Many new features&lt;/b&gt; and improvements have been added, such as:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;new support for TLS/SSL renegotiation&lt;/li&gt;
&lt;li&gt;heartbeat randomization for bursty broadcast traffic&lt;/li&gt;
&lt;li&gt;easier and more explicit error messages&lt;/li&gt;
&lt;li&gt;new install scripts for Linux and better service support for Windows &lt;/li&gt;
&lt;li&gt;automatic update check for new versions of Lightstreamer&lt;/li&gt;
&lt;li&gt;new easier licenses (Lightstreamer Moderato comes with an embedded Free license, without requiring registration anymore; Lightstreamer Allegro/Presto/Vivace come with an embedded Demo license, again without requiring registration)&lt;/li&gt;
&lt;li&gt;...and much more!&lt;/li&gt;
&lt;/ul&gt;
Make sure you &lt;b&gt;check out the detailed &lt;a href="http://www.lightstreamer.com/latest/Lightstreamer_Allegro-Presto-Vivace_5_0_Colosseo/Lightstreamer/CHANGELOG.HTML" target="_blank"&gt;changelog&lt;/a&gt;&lt;/b&gt; to learn about all the changes to Lightstreamer Server and to the Client and Adapter APIs. &lt;br /&gt;
&lt;h2&gt;









How to Get Lightstreamer 5.0 Colosseo &lt;/h2&gt;
Just go the &lt;a href="http://www.lightstreamer.com/download" target="_blank"&gt;download page&lt;/a&gt; and choose the Lightstreamer edition to download (between Moderato and Allegro/Presto/Vivace). Then refer to the README.TXT and GETTING_STARTED.TXT notes to know how to install or upgrade the server. To use Lightstreamer Moderato, you don't need to get a license key anymore. Lightstreamer Allegro/Presto/Vivace runs in Demo mode without a license key, allowing a maximum of 20 concurrent users.&lt;br /&gt;
&lt;br /&gt;
In the meantime, we keep working on new features! So expect more exciting releases soon.&lt;br /&gt;
&amp;nbsp;&lt;i style="font-weight: normal;"&gt;&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;&lt;i style="color: #cccccc; font-weight: normal;"&gt;(Photo courtesy of Antonio Pastorino) &lt;/i&gt;&lt;/span&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/6172758853769598834/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2012/08/lightstreamer-50-colosseo-is-now_3.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/6172758853769598834?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/6172758853769598834?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2012/08/lightstreamer-50-colosseo-is-now_3.html" title="Lightstreamer 5.0 Colosseo is now available!" /><author><name>Alessandro Alinone</name><uri>https://plus.google.com/105311861211129158469</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-zoTzaja2FUg/AAAAAAAAAAI/AAAAAAAAAEk/hNkDsERBb3M/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-X2eauvkJKT0/UA1e-TlilLI/AAAAAAAAADE/zR6RAPRyAZk/s72-c/lightstreamer-colosseo-logo-thin-2.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUUFRXk9eip7ImA9WhBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-3535779332609707438</id><published>2012-07-24T16:18:00.000+02:00</published><updated>2013-02-27T20:26:54.762+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T20:26:54.762+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CASE STUDIES" /><title>Meet our Customers: FINODEX BV</title><content type="html">&lt;img border="0" src="http://3.bp.blogspot.com/-IVKDhb7LgX8/URJmsWGqZFI/AAAAAAAAAN8/-u5vMQMh7PY/s1600/Herbert+Robijn.jpg" style="float: right; height: 150px; margin-bottom: 10px; margin-left: 10px; margin-right: 0px; margin-top: 0px; width: 150px;" /&gt;
A short interview with Herbert Robijn, Founder and Managing Director of &lt;a href="http://www.finodex.com/" target="_blank"&gt;FINODEX&lt;/a&gt;, a Dutch company that builds investment tools.
&lt;br /&gt;
&amp;nbsp;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Let’s talk about your organization. What is your core business?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: black;"&gt;
&lt;i&gt;Web-based investment tools for equities, options, and leveraged products (e.g. Turbo's).&amp;nbsp;&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Who is the typical user of your product or service?&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://www.finodex.com/" imageanchor="1" new="" style="clear: left; float: left;" target=""&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-c7V3KGMuLN0/UBeP5xyl9NI/AAAAAAAAADc/zdrHfM4Z0iw/s1600/logo.gif" style="float: left; height: 50px; margin-bottom: 12px; margin-left: 0px; margin-right: 12px; margin-top: 12px; width: 162px;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;i&gt;B2B: banks, brokers and financial portals who provide our tools white labeled to their retail clients. B2C: we sell our tools via direct channel.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What does your application or service do?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;We provide Smart Investment Tools to help investors make better investment decisions.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What functionalities are powered by Lightstreamer?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Lightstreamer is used for streaming our market data and analytics to client front-end.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Is your main application based on HTML or other front-end technologies?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Javascript and PHP.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Do you provide any native apps for smartphones and tablets?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Yes, we created Apps for iOS, Android and BlackBerry (e.g. MobileQuotes App). We will consider to stream market data and analytics to mobile devices too.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Do you use Lightstreamer for bi-directional data push (that is, also for sending messages from the client to the server)?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;No, not yet.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-uYa7EwB3W4k/UBeQb5mozMI/AAAAAAAAADk/a4UC1lrDWyM/s1600/screenshot.jpg" target="_blank"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-nWUrqSRkGC0/UA6rVUePSqI/AAAAAAAAADQ/_rOGCMxIBUQ/s1600/finodex-small.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Click on the image to enlarge&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;b&gt;What other features of Lightstreamer are you taking benefit from (e.g. data throttling, low latency, bandwidth management, security, smart proxy traversal, etc.)?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;None of the above yet. We just started to use your technology to push our streaming calculations and analytics to our front-end.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;/div&gt;
&lt;b&gt; Is your product or service visible at any URL (publicly or registration based)?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;i&gt;Check out &lt;a href="http://www.finodex.com/" target="_blank"&gt;www.finodex.com&lt;/a&gt;, &lt;a href="http://www.telegraaf.nl/dft/DFTBeleggersTools/" target="_blank"&gt;http://www.telegraaf.nl/dft/DFTBeleggersTools/&lt;/a&gt; and &lt;a href="http://tools.iex.nl/" target="_blank"&gt;tools.iex.nl&lt;/a&gt;.&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Any comments on your experience integrating Lightstreamer?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Adapting Lightstreamer to push our streaming analytics was a no-brainer. Implementation went very smoothly and our clients are now able to make full use of streaming real-time analytics.&lt;/i&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/3535779332609707438/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2012/07/meet-our-customers-finodex-bv.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/3535779332609707438?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/3535779332609707438?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2012/07/meet-our-customers-finodex-bv.html" title="Meet our Customers: FINODEX BV" /><author><name>Valerio Celletti</name><uri>http://www.blogger.com/profile/14208644245431044513</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-IVKDhb7LgX8/URJmsWGqZFI/AAAAAAAAAN8/-u5vMQMh7PY/s72-c/Herbert+Robijn.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUYESH08eyp7ImA9WhBSGUQ.&quot;"><id>tag:blogger.com,1999:blog-2020370271027153869.post-5578407113044117773</id><published>2012-05-24T10:06:00.002+02:00</published><updated>2013-02-27T20:25:09.373+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T20:25:09.373+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ANNOUNCEMENTS" /><title>Start Me Up!</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-aL5Ztf1-T6s/T75HN-A_8oI/AAAAAAAAACM/DV9a92FLb1Q/s1600/startmeup.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/-aL5Ztf1-T6s/T75HN-A_8oI/AAAAAAAAACM/DV9a92FLb1Q/s200/startmeup.png" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
No, we are not talking about &lt;a href="http://www.youtube.com/watch?v=ZzlgJ-SfKYE" target="_blank"&gt;the old, amazing Rolling Stones Song&lt;/a&gt;. We are just enthusiastic to introduce the &lt;a href="http://www.lightstreamer.com/startup" target="_blank"&gt;&lt;b&gt;Startup Program&lt;/b&gt;&lt;/a&gt;, a way Weswit can provide promising new businesses with Lightstreamer technology at an exceptionally generous rate.&lt;br /&gt;
&lt;br /&gt;
We are more than sure that smart tools are mandatory requirements to transform a good idea into a great success. &lt;b&gt;Many promising start-ups need real-time data streaming&lt;/b&gt; for their ideas to take off, but they simply can't afford the additional investment in the early stages. We think that if some companies are given the chance to thrive, we can thrive with them: that's why &lt;b&gt;we decided to offer Lightstreamer only to a few, valuable start-ups every year&lt;/b&gt;.&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Being admitted to the Startup Program means that &lt;b&gt;any edition and configuration of Lightstreamer&lt;/b&gt; &lt;b&gt;can be used for any purpose&lt;/b&gt;, including production and development, &lt;b&gt;with no limitations&lt;/b&gt;, for a maximum period of &lt;b&gt;eighteen months, including full support and maintenance&lt;/b&gt;. Any company with less than one million Euros in annual revenue or any new company in its first fiscal year can qualify.&lt;br /&gt;
&lt;br /&gt;
All desktop and mobile technologies are fully supported, including HTML, JavaScript, iOS, Android, Flex, Silverlight, BlackBerry, Windows Phone, Java, and .NET.&lt;br /&gt;
&lt;br /&gt;
The Startup Program rocks! &lt;a href="http://www.lightstreamer.com/startup" target="_blank"&gt;Read all the details now&lt;/a&gt;.</content><link rel="replies" type="application/atom+xml" href="http://blog.lightstreamer.com/feeds/5578407113044117773/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.lightstreamer.com/2012/05/start-me-up.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/5578407113044117773?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2020370271027153869/posts/default/5578407113044117773?v=2" /><link rel="alternate" type="text/html" href="http://blog.lightstreamer.com/2012/05/start-me-up.html" title="Start Me Up!" /><author><name>Valerio Celletti</name><uri>http://www.blogger.com/profile/14208644245431044513</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-aL5Ztf1-T6s/T75HN-A_8oI/AAAAAAAAACM/DV9a92FLb1Q/s72-c/startmeup.png" height="72" width="72" /><thr:total>0</thr:total></entry></feed>
