<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Particle</title><link>https://community.element14.com/products/devtools/single-board-computers/particle/</link><description>Particle platforms make it easy to build IoT connected devices in minutes – over Wi-Fi, cellular (2G/3G/LTE), or mesh. Their cloud-connected microcontrollers are powered by Device OS – a lightweight operating system for embedded IoT devices. The Particle p</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title /><link>https://community.element14.com/products/devtools/single-board-computers/particle/b/blog/posts/how-to-build-a-cross-platform-iot-mobile-app-with-nativescript-and-particle?CommentId=7036441c-d60b-433e-8bd6-04df5ee5055b</link><pubDate>Thu, 14 Mar 2024 16:28:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:7036441c-d60b-433e-8bd6-04df5ee5055b</guid><dc:creator>EnDevSols</dc:creator><description>Welcome to EnDevSols – your partner for transformative digital solutions. We specialize in custom software development, harnessing the power of AI, Deep Learning, NLP, and Computer Vision to drive your business forward. Our commitment lies in crafting scalable, tech-driven solutions tailored to your unique needs. Embrace the future with EnDevSols, and unlock the full potential of next-gen business technology. text-generation-inference</description></item><item><title /><link>https://community.element14.com/products/devtools/single-board-computers/particle/b/blog/posts/how-to-build-a-cross-platform-iot-mobile-app-with-nativescript-and-particle?CommentId=a02af7bd-92e0-490b-b5a1-db9bd0bb4ad8</link><pubDate>Thu, 25 Jan 2024 08:52:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:a02af7bd-92e0-490b-b5a1-db9bd0bb4ad8</guid><dc:creator>sunnyjutt123</dc:creator><description>The specifics of how plugins work can vary greatly depending on the host application and the programming language used. I&amp;#39;ll provide a simplified example using a fictional web browser and a JavaScript-based plugin. Keep in mind that real-world implementations can be more complex. Let&amp;#39;s consider a basic browser plugin that adds a &amp;quot;Hello, World!&amp;quot; message to every web page. We&amp;#39;ll use JavaScript for the plugin. Plugin Manifest: The plugin typically comes with a manifest file that describes its metadata, such as the name, version, and permissions. In a web browser, this could be a manifest.json file. json Copy code // manifest.json { &amp;quot;name&amp;quot; : &amp;quot;HelloWorldPlugin&amp;quot; , &amp;quot;version&amp;quot; : &amp;quot;1.0&amp;quot; , &amp;quot;permissions&amp;quot; : [ &amp;quot;webRequest&amp;quot; , &amp;quot;webNavigation&amp;quot; ] , &amp;quot;content_scripts&amp;quot; : [ { &amp;quot;matches&amp;quot; : [ &amp;quot; &amp;quot; ] , &amp;quot;js&amp;quot; : [ &amp;quot;content.js&amp;quot; ] } ] } Content Script: The content script is the JavaScript code that runs in the context of the web pages. It can access and manipulate the DOM (Document Object Model) of the webpage. javascript Copy code // content.js document . body . innerHTML += &amp;#39; Hello, World! &amp;#39; ; Background Script (Optional): Some plugins may have a background script that runs in the background, handling events and managing the plugin&amp;#39;s lifecycle. javascript Copy code // background.js // (This is just a placeholder and may not be needed for this example) Injecting the Content Script: The browser, using the manifest file, injects the content script into every webpage that matches the specified URLs. Interaction with the Host Application: The content script interacts with the host application (browser) through APIs provided by the browser. For example, it may listen for page load events and then modify the DOM accordingly. This is a very basic example, and real-world plugins can be much more complex. They may include options pages, background processes, user interface components, and more. Additionally, plugins for different host applications may have different APIs and requirements. Always refer to the documentation of the specific host application for detailed information. beingassistant</description></item><item><title>File: final electricGrid</title><link>https://community.element14.com/products/devtools/single-board-computers/particle/m/managed-videos/146607</link><pubDate>Tue, 30 Aug 2022 15:36:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:155dc57c-6901-454a-9d17-98ac7c89b25b</guid><dc:creator>element14 Community</dc:creator><description /></item><item><title>Forum Post: Detecting Unstable Electrical Grid with TinyML</title><link>https://community.element14.com/products/devtools/single-board-computers/particle/f/forum/51194/detecting-unstable-electrical-grid-with-tinyml</link><pubDate>Mon, 13 Jun 2022 09:47:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:cbe2105d-0f73-4f11-8dbf-d5ff28180c3f</guid><dc:creator>AlexMiller</dc:creator><description>Hi everyone! I conducted an experiment to find out how ML can be useful in the energy sector. In my area, voltage surges are a common thing (and annoying), so I made a model to predict if the electrical grid is stable or not. Although I wasn’t able to check the model performance in real conditions for lack of special equipment, it worked well on the test dataset. Things used in this project: Hardware components Particle Argon &amp;#215;1 Software apps and online services Neuton Tiny ML Particle Build Web IDE Introduction Electricity is the heart of modern social and economic development. More and more countries strive to transfer to sustainable energy systems, which is quite a challenging process, as it causes increasingly unstable power generation and grid overloads. The unstable electrical grid can endanger people&amp;#39;s lives and the safety of their property. This means that power systems should undergo timely monitoring and optimization, which AI and machine learning can easily handle. In fact, artificial intelligence has become an essential tool in the power industry. It provides unique self-learning solutions for energy consumption analysis and grid monitoring under dynamically changing circumstances. In this project, we’ll explore how to leverage a machine learning model for efficient monitoring of the electrical grid as shown on the video. https://youtu.be/INZeqsslbCc Renewable Energy Sources &amp;amp; Smart Economy The ascent of renewable energy sources provide the global community with a much demanded alternative to traditional, finite, and climate-unfriendly fossil fuels. However, their adoption poses a set of new paradigms, the two of which deserve particular attention: Prior to the rise of renewable energy sources, the traditional ecosystem involved few production entities (sources) supplying energy to consumers over unidirectional flows. With the advent of renewable options , end-users (households and enterprises) now not only consume energy but have the ability to produce and supply it. Also, for a reliable ecosystem, people need to ensure that energy grids are smarter and equipped with accurate detection of threats and faults. Despite the increased flexibility of renewable sources, the management of supply and demand in a more complex generation/distribution/consumption environment and the related economic implications (e.g. the decision to buy energy at a given price or not) have become even more challenging. Need for Grid Stability In a smart grid, consumer demand information is collected, and centrally evaluated against current supply conditions. The resulting proposed price information is sent back to customers for them to make decisions about further usage. As the whole process is time-dependent, dynamic estimation of grid stability becomes not only a concern but a major requirement. Put simply, the objective is to understand and plan for both energy production and/or consumption disturbances and fluctuations introduced by system participants in a dynamic way, taking into consideration not only technical aspects but also how participants respond to changes in the associated economic aspects (energy costs). The Challenges of Applying AI to Smart Electric Grids Insufficient data accumulation: there aren’t enough data samples that meet the requirements of diverse AI technology applications, and sample collection can be a time-consuming process. Reliability: although AI technology applied to power systems demonstrates high levels of problem identification, it doesn’t always meet the requirements of practical application. Infrastructure: applying AI is based on abundant data samples, advanced computing power, and distributed communication collaboration. However, the supporting capacity and level of relevant infrastructure resources such as quick production AI algorithms, and distributed collaboration platforms need improvement. Lack of power industry-specific algorithms: compared to perception, prediction, and security maintenance, algorithm adaptability of AI in power systems is still weak. Solution In this project, we will explore how we can predict electric grid stability with a free platform, Neuton Tiny ML platform , and an integrated IoT Platform-as-a-Service, Particle IoT that helps to deploy software applications to connected devices, from edge to cloud and back. Also, we will explore the communication infrastructure for such electric grid operations. With the combined knowledge of AI and IoT, we will try to solve some parts of the above-mentioned challenges. Dataset The original dataset contains 10, 000 observations. It also contains 12 primary predictive features and two dependent variables. Predictive features : &amp;#39;tau1&amp;#39; to &amp;#39;tau4&amp;#39;: the reaction time of each network participant, a real value within the range 0.5 to 10 (&amp;#39;tau1&amp;#39; corresponds to the supplier node, &amp;#39;tau2&amp;#39; to &amp;#39;tau4&amp;#39; to the consumer nodes); &amp;#39;p1&amp;#39; to &amp;#39;p4&amp;#39;: nominal power produced (positive) or consumed (negative) by each network participant, a real value within the range -2.0 to -0.5 for consumers (&amp;#39;p2&amp;#39; to &amp;#39;p4&amp;#39;). As the total power consumed equals the total power generated, p1 (supplier node) = - (p2 + p3 + p4); &amp;#39;g1&amp;#39; to &amp;#39;g4&amp;#39;: price elasticity coefficient for each network participant, a real value within the range 0.05 to 1.00 (&amp;#39;g1&amp;#39; corresponds to the supplier node, &amp;#39;g2&amp;#39; to &amp;#39;g4&amp;#39; to the consumer nodes; &amp;#39;g&amp;#39; stands for &amp;#39;gamma&amp;#39;); Dependent variables : &amp;#39;stab&amp;#39;: the maximum real part of the characteristic differentia equation root (if positive, the system is linearly unstable; if negative, linearly stable); &amp;#39;stabf&amp;#39;: a categorical (binary) label (&amp;#39;stable&amp;#39; or &amp;#39;unstable&amp;#39;). As there is a direct relationship between &amp;#39;stab&amp;#39; and &amp;#39;stabf&amp;#39;, &amp;#39;stab&amp;#39; will be dropped and &amp;#39;stabf&amp;#39; will remain as the sole dependent variable. Here is the link to the dataset: https://archive.ics.uci.edu/ml/datasets/Electrical+Grid+Stability+Simulated+Data+ Procedure Step 1: Importing the dataset and choosing the target variable On the Neuton platform, we will upload the dataset for our use case and select &amp;#39;stabf&amp;#39; as the target variable. In the training parameters, set the Input data type FLOAT32 and Normalization type &amp;quot;Unique scale for each feature&amp;quot; . Then proceed to model training. Step 2: Training and Exploratory Data Analysis Once the training has started, we see the model data analysis which helps us to understand the close relationship between the original dependent and independent variables. Correlation: It is important to verify the correlation between each numerical feature and the dependent variable, as well as the correlation among numerical features leading to potential undesired collinearity. The heatmap below provides an overview of the correlation between the dependent variable (&amp;#39;stabf&amp;#39; or &amp;#39;target&amp;#39;) and the top 10 numerical features with the highest binary correlation to the target. After the training is over, we can see the model metrics: the model accuracy is 0.921435! We can also see the classification performance using the generated confusion matrix. Download the model for further deployment on our IoT device. Step 3: Hardware setup and model embedding We have selected the Particle Argon board for this project (although you can use any Particle board without the need to reprogram each board). The Particle Argon is a powerful Wi-Fi development kit that you can use on Wi-Fi networks. Equipped with the Nordic nRF52840 and Espressif ESP32 processors, the Argon has built-in battery charging circuitry which makes it easier to connect a Li-Po battery and 20 mixed-signal GPIOs to interface with sensors, actuators, and other electronics. Particle IoT boards are secure and fully equipped to allow Smart Grid Infrastructure to deliver data and updates on grid failures at a faster and cheaper rate. Setting up Particle IDEand Workbench: Add your downloaded Neuton model inside the Particle Workbench project folder. Your folder structure will look like this (checksum, parser, protocol, application and StatFunctions) These files are required to make predictions on data received over serial communication using the CSV uploader tool. Here is the most important function: static float* on_dataset_sample(float* inputs) { if (neuton_model_set_inputs(inputs) == 0) { uint16_t index; float* outputs; uint64_t start = micros(); if (neuton_model_run_inference(&amp;amp;index, &amp;amp;outputs) == 0) { uint64_t stop = micros(); uint64_t inference_time = stop - start; if (inference_time &amp;gt; max_time) max_time = inference_time; if (inference_time &amp;lt; min_time) min_time = inference_time; static uint64_t nInferences = 0; if (nInferences++ == 0) { avg_time = inference_time; } else { avg_time = (avg_time * nInferences + inference_time) / (nInferences + 1); } RGB.control(true); RGB.color(255, 255, 255); // white switch (index) { case 0: Particle.publish(&amp;quot;Prediction: Stable Grid&amp;quot;, String(index)); RGB.color(0, 255, 0); break; case 1: Particle.publish(&amp;quot;Prediction: Unstable Grid&amp;quot;, String(index)); RGB.color(255, 0, 0); break; default: break; } return outputs; } } return NULL; } Compile the application in the cloud or locally. Once compiled, you are ready to flash it to your device. Make sure you have selected the correct Particle OS for your device. CSV data upload utility: We are going to test our predictions by sending the test data features from our test dataset CSV file over a USB serial port. Install dependencies, # For Ubuntu $ sudo apt install libuv1-dev gengetopt # For macOS $ brew install libuv gengetopt Clone this repo, $ git clone https://github.com/Neuton-tinyML/dataset-uploader.git $ cd dataset-uploader Run “make” to build the binaries, $ make Once it&amp;#39;s done, you can send the CSV file over USB. $./uploader -s /dev/ttyACM0 -b 230400 -d /home/vil/Desktop/electric_grid_test.csv The prediction is printed on the Particle IoT cloud. Monitoring the stability of the electrical grid helps to reveal &amp;quot;unreliable&amp;quot; energy sources and avoid serious damage. The best strategy for such AI+IoT projects is not only making predictions but also collecting and reporting data in order to improve models for future devices like Particle and make OTA updates easier.</description><category domain="https://community.element14.com/products/devtools/single-board-computers/particle/tags/particle">particle</category><category domain="https://community.element14.com/products/devtools/single-board-computers/particle/tags/electrical%2bgrid">electrical grid</category><category domain="https://community.element14.com/products/devtools/single-board-computers/particle/tags/machine%2blearning">machine learning</category><category domain="https://community.element14.com/products/devtools/single-board-computers/particle/tags/Neuton">Neuton</category><category domain="https://community.element14.com/products/devtools/single-board-computers/particle/tags/electrical">electrical</category></item><item><title>Wiki Page: Setup</title><link>https://community.element14.com/products/devtools/single-board-computers/particle/w/setup</link><pubDate>Wed, 10 Nov 2021 05:01:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:e105dc08-4305-415c-88fb-58c0fb323d44</guid><dc:creator>ChristyZ</dc:creator><description>The documents in this Wiki can be used to populate widgets on the group home page. &amp;quot;Featured Content Triptych Setup Doc&amp;quot; contains the 3 featured items - image, descriptive text, and button, that you can edit to change the image, text and link/button text as appropriate for this group. If there isn&amp;#39;t already a 3-box widget showing on the home page for this group, to display the document, you will need to get someone with Admin rights (one of the Devs or Pauline&amp;#39;s team) to add a Wiki Viewer widget for you and insert the url to the document. From then on, you will be able to update the content of that widget by making changes to the document. &amp;quot;Featured Video Setup Doc&amp;quot; lets you embed a video - YouTube, Brightcove, or an image that links to a document somewhere on the site that contains the video - and that can also be put into a Wiki Viewer (in the skinny column) using the url. From then on, that widget can be updated by changing out the image/link or embedded video that is in that document.</description></item><item><title>Wiki Page: Featured Video Setup Doc</title><link>https://community.element14.com/products/devtools/single-board-computers/particle/w/setup/27151/featured-video-setup-doc</link><pubDate>Wed, 10 Nov 2021 05:01:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:23692723-45fd-4cb1-9697-349ad67aa810</guid><dc:creator>ChristyZ</dc:creator><description /><category domain="https://community.element14.com/products/devtools/single-board-computers/particle/tags/featuredVideo">featuredVideo</category></item><item><title>Wiki Page: Featured Content Triptych Setup Doc</title><link>https://community.element14.com/products/devtools/single-board-computers/particle/w/setup/27152/featured-content-triptych-setup-doc</link><pubDate>Wed, 10 Nov 2021 05:01:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:9fcea511-98c5-4b9c-8bff-bde5c00a1a85</guid><dc:creator>ChristyZ</dc:creator><description>Feature 1 Sub Title 1 Description for Feature 1 - enter whatever text you wish to use as the description here Button Text 1 Feature 2 Sub Title 2 Description for Feature 2 - enter whatever text you wish to use as the description here Button Text 2 Feature 3 Sub Title 3 Description for Feature 3 - enter whatever text you wish to use as the description here Button 3 Text</description></item><item><title>Wiki: Setup</title><link>https://community.element14.com/products/devtools/single-board-computers/particle/w/setup</link><pubDate>Wed, 10 Nov 2021 05:01:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:8de091cf-af9b-4d2e-9b93-70fa80f9f365</guid><dc:creator /><description /></item><item><title>Files: Managed Videos</title><link>https://community.element14.com/products/devtools/single-board-computers/particle/m/managed-videos</link><pubDate>Sun, 10 Oct 2021 08:28:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:fd9d7458-2125-457b-af49-f3d9640ee618</guid><dc:creator /><description /></item><item><title>Blog: Blog</title><link>https://community.element14.com/products/devtools/single-board-computers/particle/b/blog</link><pubDate>Fri, 01 Oct 2021 18:11:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:f7d32710-0db4-4538-bcf1-3f88d1b58897</guid><dc:creator /><description /></item><item><title>Forum: Forum</title><link>https://community.element14.com/products/devtools/single-board-computers/particle/f/forum</link><pubDate>Fri, 01 Oct 2021 18:11:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:55ede021-5388-4385-b4dc-f4ea6597c63c</guid><dc:creator /><description /></item><item><title>Files: Files</title><link>https://community.element14.com/products/devtools/single-board-computers/particle/m/files</link><pubDate>Fri, 01 Oct 2021 18:11:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:d6f56488-bdd9-4f9f-8563-a3b262426aca</guid><dc:creator /><description /></item><item><title>Wiki Page: Documents</title><link>https://community.element14.com/products/devtools/single-board-computers/particle/w/documents</link><pubDate>Fri, 01 Oct 2021 18:11:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:2acbfcb6-7b01-4f34-9f95-8ca1250f6eae</guid><dc:creator>migration.user</dc:creator><description /></item><item><title>Wiki: Documents</title><link>https://community.element14.com/products/devtools/single-board-computers/particle/w/documents</link><pubDate>Fri, 01 Oct 2021 18:11:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:7255d6a7-60ac-453b-bdff-4803c2b43f6f</guid><dc:creator /><description /></item><item><title>Group: Particle</title><link>https://community.element14.com/products/devtools/single-board-computers/particle/</link><pubDate>Fri, 01 Oct 2021 13:15:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:009582de-418b-4f33-824c-bb94b4f33ada</guid><dc:creator /><description>Particle platforms make it easy to build IoT connected devices in minutes – over Wi-Fi, cellular (2G/3G/LTE), or mesh. Their cloud-connected microcontrollers are powered by Device OS – a lightweight operating system for embedded IoT devices. The Particle p</description></item><item><title /><link>https://community.element14.com/products/devtools/single-board-computers/particle/b/blog/posts/particle-is-discontinuing-development-of-particle-mesh?CommentId=742b3b56-48f2-4c5f-b5c2-65bb4031fcde</link><pubDate>Thu, 30 Jan 2020 17:11:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:742b3b56-48f2-4c5f-b5c2-65bb4031fcde</guid><dc:creator>BigG</dc:creator><description>Yes mesh is not a bad thing. Listening to the live stream and this is alluded to. Sub-gHz is better for industrial environment (refrigeration, is one example noted).</description></item><item><title /><link>https://community.element14.com/products/devtools/single-board-computers/particle/b/blog/posts/particle-is-discontinuing-development-of-particle-mesh?CommentId=729f7ebc-35ef-49b9-8f9e-26569fc329ae</link><pubDate>Thu, 30 Jan 2020 15:14:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:729f7ebc-35ef-49b9-8f9e-26569fc329ae</guid><dc:creator>jomoenginer</dc:creator><description>There is a live stream today where the CEO will go over a bit more as to why Particle decided to end support for Particle Mesh: https://www.particle.io/particle-ceo-livestream/ Also, for those who purchased a Xenon or Mesh related device will receive a store credit if the device was purchased directly from Particle. If the device was purchased by a third party vendor, it may still be possible to get store credit but proof of purchase must be filed before Feb 28. I guess they did not factor that it was Leap Year. https://docs.particle.io/support/shipping-and-returns/mesh-deprecation/</description></item><item><title /><link>https://community.element14.com/products/devtools/single-board-computers/particle/b/blog/posts/particle-is-discontinuing-development-of-particle-mesh?CommentId=64786928-d20f-4b18-8c33-b10278a0d2fc</link><pubDate>Thu, 30 Jan 2020 14:15:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:64786928-d20f-4b18-8c33-b10278a0d2fc</guid><dc:creator>clem57</dc:creator><description>BigG Thanks for the article. It appears the real answer is using a different spectrum. Mesh is not a bad thing!</description></item><item><title /><link>https://community.element14.com/products/devtools/single-board-computers/particle/b/blog/posts/particle-is-discontinuing-development-of-particle-mesh?CommentId=9a95503f-1819-4e9e-89e6-b44500c5342e</link><pubDate>Thu, 30 Jan 2020 14:00:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:9a95503f-1819-4e9e-89e6-b44500c5342e</guid><dc:creator>BigG</dc:creator><description>I love how the market responds. Here&amp;#39;s an article that popped up on my twitter feed about sub-ghz mesh: https://www.thingsquare.com/blog/articles/iot-sub-ghz-mesh/</description></item><item><title /><link>https://community.element14.com/products/devtools/single-board-computers/particle/b/blog/posts/particle-is-discontinuing-development-of-particle-mesh?CommentId=38d131a1-2288-495d-bd1b-fae7225621c0</link><pubDate>Thu, 30 Jan 2020 13:00:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:38d131a1-2288-495d-bd1b-fae7225621c0</guid><dc:creator>BigG</dc:creator><description>I did a road test with this mesh kit and I thought it was a very good system. Nevertheless, having read through the particle.io blog post I can understand their reasons, which are all valid, in my opinion. Particle.io have now drawn the boundary around the scope of their offerings. Being first to market with a new stretch solution has its risks and the CEO took a bold decision when assessing the risk-reward equation versus speed of customer adoption (I suppose) and how readily these new customer products are being scaled. They have demonstrated the importance of knowing what substitute products are around and whether these substitutes can ultimately provide a better solution than what you are currently offering. Not many companies are able to do that. A case of doing it sooner rather than later.</description></item></channel></rss>