In the past few years I’ve been getting into IOT. You may have seen tweets or blog about the Tech-Turkey project I’ve been working on or flame throwing pumpkins at Halloween. I’ve learned and used Arduinos, Raspberry Pi’s, and Particle Photons and Electrons. It has been fun to learn more and get into the connected world… the internet of things!
I’ve been keeping ServoCity in business and even recently worked to get a custom PCB created. Every step of the way I’ve been learning different things and realizing just how much more there is to learn. Recently I’ve started learning more about Splunk.
What is Splunk If you don’t already know what Splunk is, Splunk is a software company based in San Francisco that produces software for searching, monitoring, and analyzing machine generated big data via a web style interface. Splunk’s software helps organizations with operational intelligence, log management, application management, enterprise security and compliance.
Side note: In my first exploration into Splunk I wrote a blog about using Splunk with DNN that may interest you.
Particle & SplunkDNN is a web application, but what if I wanted to get data from an IOT device? That’s when we call on Particle. If you’re not familiar with Particle, it makes it really easy to bring real world objects online. Particle is one of my favorite IOT platforms. It makes awesome microcontrollers, provides a nice IDE, has awesome documentation, and a great community. Connecting to Particle’s cloud is straight forward and even southerners can do it! See my presentation at our user group on DNN & Particle.
If you’re not familiar with Splunk, it makes it really easy to pull in data (machine data) and make sense of it. I’m talking about parsing vast amounts of data, creating visualizations and/or alerts and making it simple to understand. Even southerners can use it too!
Both Particle and Splunk are industry leaders and have some really big names behind their companies and as clients of their companies.
So why not bring Particle & Splunk together?
Reading Temperature with ParticleTo use the awesomeness that both solutions bring us we’ll first need to read the temperature and post it to a webservice. Here again, Particle makes this easy. I used a basic temperature reader in a bread board layout for this experiment.
Then, in Particle’s IDE I used the basic tutorial level code to read an analog value and post it to a Particle cloud variable. Cloud variables are accessible via web services. That is, I can make a GET request and parse the JSON object to get the data. Epic.
Now we were cooking with oil! The next step was to get this data into Splunk.
Getting Particle’s RESTful Data Into SplunkGetting RESTful data into Splunk is really straightforward thanks to Splunk’s extensibility. Splunk has an extensions gallery that can be found on the Apps and Ad-Ons sections of the Splunk website. I tell you this because ultimately, I followed a blog by Damien Dallimore on getting REST data into Splunk which used a modular input extension and that was all it took. I simply completed the required fields in the Splunk REST Modular Input as shown below.
After clicking save, the data from my Particle temperature reader was showing up in Splunk!
Creating Dashboards from the Particle DataOnce data shows up in Splunk you can literally perform any search query you want on the data and create/configure dashboards, panels, reports, alerts and more. Splunk is very powerful in this regard and scale to infinity. However, for this scenario I just wanted log the temperature over time from one device, as well as the temperature’s highest, lowest, and average. Splunk, again, made this very simple.
After clicking on the “result” field I created some visualizations and voila! Out popped some neat dashboards showing all my data in a way that’s easy to understand.
If you are like me, you kind of want to see things in action. So for those of you like me who are visual learners, here’s a quick video of the solution in action.
An IOT Combination That’s Hard to Beat!As you can see, both solutions are awesome and the opportunities are endless. Consider the possibilities here… Particle is easy to deploy and post data to the net and Splunk can easily connect, suck in data, and bring instant insights. The more data you give to Splunk the more knowledge you’re going to have. Splunk can handle this at scale too… I mean massive scale. Why not connect thousands of devices and pump all the data into Splunk and tune it to your liking! I believe that’s what they refer to as operational intelligence 😊 Now my mind is spinning with possibilities. Is yours?
I’ve recently been researching Splunk and have been impressed with its power, flexibility, and ease of use. This blog is not intended to be a step-by-step tutorial, but rather is aimed to show some initial findings, overview one way to integrate Splunk with DNN, and paint the picture of some potential use cases.
So What is Splunk?
If you don’t already know what Splunk is, Splunk is a software company based in San Francisco that produces software for searching, monitoring, and analyzing machine generated big data via a web style interface. Splunk’s software helps organizations with operational intelligence, log management, application management, enterprise security and compliance.
Installing Splunk was simple and after clicking around a little while it was evident that Splunk is an intuitive software. From a UI standpoint, it makes logical sense and the flow is easy to understand. And it didn’t take long to see and understand how powerful it is.
As you may imagine, I began to wonder if and how I could integrate Splunk with DNN.
DNN + Splunk: One Way to Connect the Two
One of Splunk’s powerful features is that it can literally suck in all types, styles, and formats of data. This data can be machine data, log files, or even data from a REST API. There are several mechanisms for getting data into Splunk, but for this scenario, DNN’s web API implementation makes this an easy fit. On the DNN side, a developer can easily create a custom module using web services to expose any DNN data on an endpoint, which Splunk can then access. If you’d like to go the custom module route, check out my other blog series on module development. However, I did not write a custom module to test the integration.
For my initial investigation into Splunk I chose to use DNN Sharp’s API Endpoint module as it allows easy configuration of end points. Splunk is architected to consume any type of data and then it makes that data extremely easy to search, create visualizations and/or alerts with. These searches, visualizations, and alerts can be very basic or very complex in nature.
Another thing to note is that Splunk is architected to do this at scale and can easily parse enormous amounts of data. For example, every time you drink from a Coca-Cola “Freestyle” machine at a fast food restaurant, the data from your drink selection is logged and Splunk helps analyze the data, denote trends, and sends alerts. So yes, those Coke machines (all across the world) are connected IOT devices and Coke is a Splunk customer. See how Coke is using Splunk in the Splunk Conf 2014 Keynote replay session. Imagine how much data that is on a global scaled --> Splunk is helping Coke make sense of it.
Side note: Check out the blog I wrote on using Particle & Splunk to monitor temperature
So, my first goal was simple: see if I could get data from DNN into Splunk.
Sticking along the thought process of “data logs” I figured why not expose the DNN event log on an endpoint and see what I could make happen. Obviously, the event log may not be the best use case as site administrators can clear logs or processes to automatically clear logs sometimes exist. However, for this initial test it is a good candidate. To get the event log data on an end point I used the DNN Sharp API Endpoint module to make a SQL query on the event log view and return it as JSON.
With the event log now sitting out there as JSON on a DNN end point now all I needed to do was get it into Splunk…
Getting REST Data Into Splunk
The Splunk side of this configuration only took a few minutes to configure and keep in mind I’m no Splunk guru (read, it’s easy!). Splunk is similar to DNN in that it’s extensible. Splunk extensions can be found on the Apps and Ad-Ons sections of the Splunk website. I tell you this because ultimately, I followed a blog by Damien Dallimore on getting REST data into Splunk which used a modular input extension and that was all it took. I simply completed the required fields in the Splunk REST Modular Input as shown below.
I chose to poll the data every 60 seconds. With this information inputted I clicked save and returned to the Data Inputs screen of Splunk and chose my newly created data source.
BOOM! I was seeing DNN event log info in Splunk!
Searching, Visualizations, & Alerts in Splunk
With data in Splunk now I needed to proceed to using Splunk to make sense of the data. Splunk’s searching functionality makes it very easy to search for, well... anything you'd like. I’m not yet knowledgeable enough to fully explain all the capabilities, but what I can easily see is that you can select your data source, click on keywords, add them to the source's search criteria and set your desired timeframe for the search. It’s feels as if you have a Google search bar and all your searches are performed on your data source and intellisense & syntax highlighting for your search are provided too!
Once you have a search returning data you can then create visualizations or alerts. And yes, there are tons of visualizations provided by Splunk. These visualizations can be saved as reports or live as “panels” that reside on dashboards. Dashboards can have as many panels as you want and you can have multiple dashboards if you like. Also, you can easily embed these panels into DNN or any other location by clicking the “convert to HTML” link that each panel has. Being able to display this info anywhere you like is a neat feature. Are your mental light bulbs turning on yet?
So, I created a few visualizations based on event log data that was available. I created a number-based-visualization to show a large number that represented a count of 404 errors, a line graph showing the number of failed logins, and a chart showing the 404’s over time. So, in just minutes Splunk was already helping me understand that I have some issues going on with one of my sites. I believe one reason for the 404's is that I've renamed some pages that I think bots are targeting trying to register. Anyways, I've got work to do... don't judge!
Opening Up Possibilities
Now you may be looking at this and thinking to yourself, yeah this is neat, but I could create a custom module to make something similar to this happen. And you would be correct, but keep in mind the potential use cases, flexibility, and scalability of Splunk in comparison to a custom module. You could easily have all your customers as data sources and create dashboards to help you (and your customers) quickly understand what’s going on with your customer's applications. You could also do data mashups of data from a DNN website/web app, some IOT device out in space, and any other data source you can think of to provide valuable insight. And again, Splunk has no problem doing this with massive amounts of data.
With just a little research into Splunk it didn’t take long to get my mind spinning with all the possibilities within DNN and beyond. Think about your current DNN use cases, requirements of your customers, and the exploding IOT market and you’ll soon see the light.
Here are some ideas I had right off the bat:
As you can see the power and flexibility Splunk provides is really nice. I believe Splunk could be a game-changer especially for those with large amounts of data to parse, anybody in the IOT space, and much more. I hope this blog has provided you with an introductory glimpse into some of the capabilities of Splunk and even got you thinking of potential ways to integrate Splunk into your applications or customer's environments. I am still learning about it and hope you will too. I know that I'm just scratching the surface here in my initial findings.
Find out more about Splunk at http://www.Splunk.com
I need to start out by saying that I’ve been inspired to do all this by some great guys in the Charlotte area and they are Dan Thyer, Mike Linnen, and Jay Ziobrowski… thanks for the motivation guys! I am either copying something creative I’ve seen them do or trying to imitate their passion, talent, and drive for Halloween and/or IOT projects. One day I hope to be as sharp and creative as they are.
Halloween & IOT
In 2016 I made a flame throwing pumpkin (copy-catting one of Dan’s inventions) and let’s just say some of the parents weren’t too keen on fire being near their kids and I also didn’t make any fans on the community’s HOA! Though, we all must start somewhere. In 2017 I went the safer route and made the AirGhost which is very similar to this year’s project.
The IOT Clown
This year I have created an IOT Clown. I did some testing and iterating on various ideas and concepts and there’s just no way to get around it… the thrust of compressed air brings a startling surprise and the best part is that it’s safe. We have tons of young kids in our neighborhood and moving a skeleton bone (which I debated in this early prototype) could likely hit someone, cause a toddler to fall, or trip someone up which could potentially lead to a spill on the concrete sidewalk. I don’t want to injure anyone or have some local parents mad at me, so I reverted to the compressed air, but then added a few more movements and changed the medium from a ghost to a clown.
Here’s a quick video of the end-product prototype just to show you where we’re heading… I’m going to dress it up a little more by Halloween, but you’ll get the gist.
Here are the main components I’m using for this project:
Here’s a video “talk-through” of the mechanical parts and power supplies being used.
Let’s Talk About Particle
The Particle platform is awesome! Check out this video of the Particle platform to learn more. I am admittedly a little bit behind all of Particle’s new innovations. I still need to learn about their Mesh and Argon solutions. Even though I’m not 100% up to speed I know you can do tons of creative stuff with the particle platform, their multiple IOT devices, and their integrated IDE. Since I’m using the Particle photon, we’ll start with it.
The Particle photon is a small IOT (internet of things) device that makes it easy to bring real world objects online. Particle makes it easy to setup the device and to connect to Wifi via a mobile app. If you want to know more about initially connecting and getting up and running with Particle they have some of the best documentation I’ve seen check out the doc, tutorials, and guides.
For this project all I really want to do is to move 3 servos… one for the head to spin, one for the head to roll, and one to push the handle on the air compressor. To do that we need to use the components I listed above + Particle’s platform + some code. I’ve listed out the components and just introduced the photon… now let’s look at some code.
Let’s Look at Some Code!
Particle’s platform is awesome, but we need some code to make things happen! I could easily copy and paste code here, but that wouldn’t help you understand the “why” and “how” behind some of the concepts. I hope to help you connect some dots here and as such I’ve cut a video walking through how I’m doing some of this stuff. The video shows code and includes videos of the device in action.
To all you senior devs… yes, the code shown in the video could be much better. I have not refactored anything yet, so the code is not nearly as efficient as it could be. And yes, I showed my handy Particle access token in the video… no worries though, by the time you read this I’ve already recycled it and created a new one.
Here are some relevant links:
So, with some disclaimers down and links shared let’s talk through the code some…
If you take the sum of all the info presented here that is how I’m making this happen!
And We Wait on Halloween!
Halloween is just about a week away at this point. If you have any questions or issues filling the gaps in this high-level tutorial, please reach out and ask your question. I plan on trying to video some of the fun at Halloween and posting any interesting reactions here just below this section… so stay tuned!
The Halloween Video
Check out some of the reactions we got from kids and a few adults!
When we moved into the neighborhood everyone told us “Just wait til Halloween”. Well, they were right! Our friend up the street, Jay Ziobrowski, is super passionate about Halloween and turns his garage, driveway, and entire front yard into a magical haunted house that’s free to kids in the neighborhood. After doing this for several years, everyone in the neighborhood and surrounding area knows about this and the result is that our street gets blocked off by cops and is absolutely flooded during Halloween. It’s non-stop action from 4:30 to somewhere around 10pm and it’s a really fun time.
After running out of candy in the first 2 hours on year 1 we knew we needed to step it up in following years. So, each year I’ve tried to contribute to the energy and excitement on our street by creating some type of Particle-based IOT Halloween device. Check out the devices from previous years:
Halloween, a Great Opportunity to Get Kids Involved & Learning IOT!
Over the years I’ve had my friend’s kids help me with the setups. That is, since these devices are mobile controlled, I enlist kids to push the button on their mobile phones while I record the reactions of trick-or-treaters from my phone. One of the kids has taken an interest in wanting to know how to build these things, so this year I’ve been working with my friend’s son to both build the devices and teach him along the way. I even gave him a Particle dev kit. It has been a fun project for everyone. I’ve also been overwhelming him with text messages and videos as I make incremental progress on each device. Now he’s using Particle at his school for his science project!
Here are some pics from when we first got started…
Compressed Air, The Key to Speed & The Key to Scaring People!
After doing this for a few years I realized that HOA’s don’t like fire breathing pumpkins and that the best way to scare people is by using compressed air in some shape, form, or fashion. Geared motors just don’t move fast enough … or … if you do make them move fast enough, they are too dangerous and could potentially hurt someone. So, for the past two years I’ve been using a servo to press the button on an air hose to blow air out and move some spooky object toward trick-or-treaters. Nobody gets mad about getting hit with a gust of air!
Last year, right after Halloween, I decided to try something new. I ordered a pneumatic cylinder and solenoid kit from FrightProps. I had no idea how to really make it work, but I wanted to try and low and behold I was able to figure it out. It was way easier than I thought and FrightProps even provided very helpful videos to walk through the hookups for everything. Just a few weeks after last Halloween my mind was already spinning about next year’s Halloween. The pneumatic cylinders with solenoid kits move a lot faster, you can control the speeds, and they use less air. The only negative is that these could potentially be more dangerous. Though, I’m countering the danger by creating physical space around the implementations so that no one will get close enough to be hit or injured. So, I’m happy with the tradeoff and will take extra precaution in the initial setups.
Here's a picture of the solenoid kit from Fright Props
Quick Show of the Headless Clown & Trash Can “Slimer” in Action
The (Main) Parts
There are a lot of parts used in these devices. Of course, you must have wires, wifi, power, and all the normal things you would anticipate. However, I’m going to just list the main items below. If you have questions about other parts or want to build your own, just submit an email to me through this website and I can connect with you and help you with the smaller details. That said, here is the basis for both IOT Halloween devices:
One thing to note is that these devices are using the exact same principles, concepts, and code to make them work. At a high level the solenoids just need to be hit with a 12-volt current to make the pneumatic cylinder fire. To bring the pneumatic cylinder back in, simply turn off the power.
To do this we are using a relay that can be controlled by a Particle microcontroller, a Photon. The relay essentially breaks the circuit of the 12 volts going to the solenoid. Then, whenever we call the cloud web service endpoint in the Particle cloud, it invokes a function in the microcontroller which sends the relay a signal. The relay then completes the circuit which allows the 12 volts to flow to the solenoid which consequently causes the cylinder to fire. We let it fire for a specified period of time (say .200 of a second) then we cut power which causes the head to go back in. We control the speed going both in and out via the speed control valves on the solenoids. So, if you had to draw one negative of the solenoid it would be that you can’t programmatically control the speed.
The Slimer in the Trashcan implementation is such that the cylinder needs to be stabilized yet, due to the Slimer mask and body we couldn’t have any support mechanisms coming from the sides to stabilize the cylinder. Since the Slimer ghost must move up and down vertically we need to allow it room to do so. What this means is that the cylinder needed to be stabilized from the bottom. The cylinders I ordered are threaded at the bottom with 3/8 of an inch thread. This happened to match to some steel plumbing pipes that you can find at your local Lowes or Home Depot. So, I bought a few pieces to connect and make it stand up on its own. After that I added in weighted sandbags to keep the cylinder from wobbling whenever it fires. I attached velcro to the solenoid and breadboard and have the parts sticking to the inside of the trashcan walls. You will see these in the build pics below.
The Headless Clown implementation uses actobotics for its internal structure. Actobotics are awesome and are basically like metal legos that you can easily configure however you would like and mount anything you want to them. I’ve mounted the cylinder, hoses, and breadboard setup to it. I stuck the actobotics down into 2 bales of hay for stabilization.
Here are some pics from the build out(s):
The code to make this work is very simple. I have identical code running on both devices to make these things work. The only thing that is different is the device id!
In Particle – I’ve written a simple program that creates a cloud function which invokes a function on the Photon and all that function does is write a pin from low to high… that’s it! What we’ve done is inject a relay into the circuit of the solenoid which allows us to use some logic to complete or short the circuit.
Here’s the firmware (code) that I’m using for the Particle Photons:
On the Web – I’ve written a basic jQuery AJAX function to call these web API (services) when buttons are clicked. Maybe jQuery is not cool anymore, but it’s pretty simple to implement so it works for me!
Here’s the code I’m using to make an HTTP Post request when a button is clicked. And if you’re worried about me showing you my access token below, no worries… I’ve already recycled it!
Structural & Electrical Video Walkthrough
In this section I aim to give you a structural overview of the devices. Both devices use pneumatic cylinders but are being stabilized in different ways.
Code Video Walkthrough
In this section I walk you through the setup of the devices and the code that I’m using to make them work. The whole point here is… if I can do this, then you can too!
The Halloween Reactions
In my area we currently have an 80% chance of rain on Halloween night so I'm not sure if we'll have any trick-or-treaters at all. I guess we'll see. If the weather cooperates, I will update this page after Halloween with a video showing reactions we get from trick-or-treaters and their parents. Stay tuned for the hopeful post-Halloween-video update!
Once you choose a font you can click to the “Type Tester” section to see how any specific words you type will look in your selected font. You can easily increase or decrease the font with the slider and you can also view how the font looks in various browsers on the “Browser Samples” tab as shown in the screenshot below.
Typekit uses “kits” to organize fonts for usage by designers. It’s really easy to create a new kit. Simply hover the kit section and click “Add New Kit”. As you can see from the screenshot below, I've created a kit for each site on which I use custom fonts. You can see how to add a new kit in the below screenshot.
Now that the "kit" is ready I need to add some fonts to it. Once you decide on a font you simply hover over the font and click “Add to Kit” and the font will be added to the kit for which you are currently viewing as denoted in the below image.
After you add a font to a kit you can go into the "kit editor" to further customize. Once you’re inside the kit editor you can customize various settings and styles that make the custom fonts appear on your site. You can simply add the CSS selectors that you’re using on your site & they will then render showing the custom font that you've just selected in Typekit. Notice in the below screenshot where I'm adding " .ANewSelector " class in Typekit's editor.
If you wanted to access specific weights & styles via your skin.css file you can click on the “Using weights & fonts in your CSS” option which will give you the below screen allowing you to copy the CSS necessary for your specific font & weight.
Now if you did click the “Copy CSS” option you would end up with some CSS that resembled the below:
font-family: "atrament-web",sans-serif; font-style: normal; font-weight: 400;
Once you click publish you will be ready to go. I should also mention that if you want to develop or test out styles locally you can also enter “localhost” in your kit editor settings and that will make your local sites work with the new custom fonts.
If you were concerned about how your styles would display on mobile devices you can click into the "Mobile Settings" section of the Typekit editor as seen in the below screenshot.
Now to make all of this active we need to click the big green “Publish” button at the bottom right hand corner of the kit editor screen which you can see in the below screenshot.
Then in my HTML Module I simply referenced the CSS classes that I specified earlier in the Typekit selectors area.
And that's all it takes to get everything lined up. You can see an example of the redesigned home page (running locally) using the custom font “Atrament web” that I selected earlier.
Typekit makes it extremely easy to use custom fonts in your site. If you’re a Creative Cloud member you should check it out. I hope this blog has been helpful to you with integrating custom fonts in your DotNetNuke sites.
Have you ever seen a small pixel in your Pulsar Thermal optic’s screen that you wish wouldn’t stick out like a sore thumb? If you fire your gun a lot these pixels-that-need-repair occasionally occur, but fear not, Pulsar has anticipated this and provided a way to resolve it. I had one on my screen for a few months before I investigated it and the good news is that it’s simple to correct!
A “defective pixel” is a pixel within your viewfinder or screen that is “degraded”, sticks out, and won’t go away even after your scope calibrates. I’ve owned a Pulsar Trail XP-50 for over 2 years and in this time, I’ve only had 2 defective pixels. Though, when it does happen, over time it will bother you enough to want to know how to fix it.
Here’s a screenshot of one of my defective pixels while in “White-Hot” mode
In this screenshot, the defective pixel may not seem like a big deal, but when you’re hunting and looking through the viewfinder it can become distracting to your eye over time, especially if it’s near the crosshairs. While hunting with the defective pixel shown in the screenshot above there were several times I panned the horizon and mistook the small white dot for being an animal that was a great distance out.
The first thing to do if you notice a defective pixel or something that doesn’t look correct in your viewfinder is to calibrate the optic. If you haven’t changed any settings on your scope then your Pulsar thermal optic will automatically calibrate every so often to ensure what you’re seeing is accurate, clear, and crisp. Calibrating the optic makes the clicking sound that you may have grown accustomed to hearing by now if you own a thermal optic.
These calibrations can be forced by pressing the power button in the Trail models. If my screen ever gets hazy or I notice something not sharp in the viewfinder I simply calibrate the scope. With all that said, the first thing to do if you notice a defective pixel is to force a calibration because generally that will fix it.
If calibrating the optic doesn’t resolve the issue then repair the defective pixel by going to one of the last menu options in the menu system, the “Defective Pixel Repair” option.
Once you choose this option it’s simple. The system presents you with a pixel selector and provides you with the ability to move the X & Y coordinates. This task feels very similar to sighting in the scope.
Just move the X & Y coordinates until you are right on top of the defective pixel. As you update the values for the X & Y coordinates the pixel selector will move across the screen as shown below. The pixel selector surrounded by the box is like the Picture-In-Picture feature and is a magnified (zoomed in) version of the pixel selector.
The goal is to move the defective pixel selector on top of (or as close as possible to being on top of) the defective pixel.
Once you have the defective pixel lined up you then need to hit the record button, yes, the record button. The system will repair the pixel and respond with an “OK” message.
Note: You can also use the remote control to do this as shown in this video by Michael Bennett
And that’s all there is to it! Note that depending on your unique situation, it may take repairing multiple pixels to get the screen back to the desired state. In one of the previous defective pixel scenarios, I had to repair 2 pixels before it was back clear, and the pixel was no longer bothering me.
I also made a quick video walking through this process. You can see the video below:
I hope you found this content helpful. If so, leave me a comment below.
As a sales engineer, I do a lot of online presentations for clients, prospects, colleagues and partners. When conducted well, online presentations and demos can be very effective sales tools. We strive to make our demos interactive.
The sales rep and sales engineer work together like a well-oiled machine throughout the demo. We encourage interaction and strive to be most efficient and effective as possible within the given timeframe.
Each presentation follows the same schedule. There are things to do before the demo, during the demo, then after the demo. In this post, I’ll share 32 tips to help you rock your online presentations.
Preparation is an obvious step. I mention it as a reminder that attendees are giving you their time, and their time is valuable. Be respectful of their time by thoroughly preparing and providing value to them. Ultimately a demo is like anything else in life: if you put your time and energy into it, then it will turn out well!
Agreeing on the agenda beforehand helps set expectations, reduces wasted time on the demo, and ensures that we only review functionality in which demo attendees are most interested. Since there is generally an hour or so for the demo, we need to make sure we hit the mark given the allotted time. By agreeing on the agenda beforehand, we drastically increase the productivity of the demo.
I learned this one the hard way. I had a webinar to present with a few hundred people waiting on me and as soon as I was made the “Presenter” my machine’s memory overloaded and I got the blue screen of death as my computer crashed. I had been working in numerous programs before the demo and apparently had nearly maxed out my memory and making the presenter passed the tipping point resulting in a few hundred people waiting awkwardly on me to reconnect. Now I restart my computer before demos so that my memory is not used up.
At some point, the presenter role will be passed to you. When his happens, the software (GoToMeeting, Join.me, or whatever you use) will ask you which screen you want to share. If you have a multi-monitor setup, this can become challenging if the monitors aren’t numbered or have similar names. Knowing your monitors names beforehand can reduce missteps. You don’t want to accidentally share to the wrong screen!
Be sure to reduce the number of potential distractions. Ever been on a demo and as soon as the leader shares their screen, you see their desktop icons and you start looking at all their files to see what they’re interested in? You are not alone, as everyone does it (admit it!).
In order to remove this distraction, be sure to hide your desktop icons or demo from a monitor that doesn’t have any application or document icons on the background. With fewer things to look at, your attendees will be more focused on what you show them.
Along the lines of removing distractions, you should turn off all pop-ups that occur on the screen from which you are presenting. The last thing you want is a sales person to send you a Skype message cracking a joke and have it show up during the demo. If you do leave Skype (or any messaging application) on, be sure you know the monitor on which the pop-ups occur.
Everyone knows it, but I’m still listing it here. Mute cell phones so that while you’re presenting there is not a constant vibration happening anytime someone emails or calls you.
If you use the same environment over and over, your browser’s cache can become corrupted. Browsers often try to remember passwords, cache content, cache URL paths, etc. and these cached items can sometimes trip you up. I usually clear my cache before each demo to ensure everything is fresh.
Just when you think you’re getting in the groove you will get a “tickle in your throat” and get choked up. You’re going to be talking a lot and a glass of water can save you in long-winded demos and in the moments that you may need to wet the whistle.
I always have a backup environment prepared should something go wrong with the primary environment. This takes more time up front, but it’s worth it. Having that backup environment can be worth its weight in gold.
Have a back-up plan for getting online. Yes, it only happens once in a blue moon, but what if you are scheduled to give a demo on that particular blue moon? Having a My-Fi or hotspot is well worth the investment.
Before the demo, try to find out who will be attending, so that you can speak the right language to them. You don’t want to talk about server architecture if you are demoing to the marketing team; you don’t want to talk to the server guys about lead generation. Tailor your story based on our audience.
This won’t apply to all of you, but I demo websites and online communities.
I make sure I have my site up and loaded in memory by the time they make me the presenter. I don’t want any time wasted on something to load up. So I keep my site “warm” just minutes before the demo so that the site is up and ready to rock by the time I get controls.
Some sites load URL’s from third party services, such as Google Fonts, Facebook, and Twitter. In my demo sites, I try to remove these external calls, so that if Facebook is having a bad day, it won’t affect my load time on the demo. There are scenarios where you have to rely on these external calls, but reduce them as much as you can.
During the introduction, attendees will tell you new information. In some cases the information shared during the intro can drastically alter what you present.
Listening and waiting to talk are two entirely different things. By listening, you can pick up things that may alter your demo. You can also pick up on personality traits, the mood in the room, and social queues that may help you better connect with the demo attendees. Listening carefully can help you establish better rapport with demo attendees throughout the demo.
We like to do a roll call during the intro of a demo as well. It never fails that there is someone in the room that we didn’t anticipate being there. It may be some manager, marketer, or developer who just happened to have another meeting cancel and was able to attend, but usually there is somebody either there or not there that we didn’t expect.
This again helps us to more accurately hone in the demo. If all of a sudden the CEO shows up on the demo, then we’ll be sure to add in the value proposition and benefits of each feature as executives don’t necessarily like to know the nuts and bolts, but ask the “why’s” and the “what results can we get” or “what does this help us do” type questions. Taking roll call will help you be on point with your delivery.
I ask the question early on as to whether or not the attendees have a “hard stop.”. This helps me know whether or not we can get long-winded with explanations or if we need to be very mindful of the time. Attendees may have an extra 10 to 15 minutes at the end and when that happens we know that we have more time for questions. Finding out the exact ending time of the demo early on can help you better manage time.
One thing I strive for is smooth transitions throughout the demo. Whether it’s transitioning from one subject to the next, transitioning from me talking to the attendees talking, or the transition of the “passing of the presenter role,” we want everything to flow as smooth as silk.
I ensure that our sales reps know how to pass the presenter in the meeting software we use.
I also tell them to pass the presenter as they are finishing up their last few points. This gives me time to get the presenter role and share the correct monitor. Otherwise, there is an awkward pause where everyone waits on me to get the presenter controls.
People present in different ways and that’s a good thing. Some like questions and interactivity and some don’t. Whatever your style is, set the tone early so that demo attendees know how to act and what to expect. I encourage questions, interruptions, and interactivity, so I put that fact out there very early on in the demo. Setting the tone will eliminate any guessing on the part of your attendees.
I encourage questions during the “Setting the Tone” stage because I want attendees to feel comfortable asking questions. At the same time, each question equals an interruption. The more questions there are and the more disruptions there are, the less smooth the demo goes.
Over time, you will begin to see where similar questions get asked. After you denote a trend in the same question being asked then just go ahead and answer the question before it gets asked. This will help things flow more smoothly. So, again, while I encourage questions, I hope to give such a thorough presentation that I remove questions just before they get asked!
On some occasions, there will be an attendee who is determined to get you hung up on some very minor technical detail. In these situations, it is your job to control the demo and not let the train de-rail. When these scenarios happen, it’s good to schedule these topics as “follow up” topics so that you can get your demo back on track.
Ever listen to a very dry presenter and wanted to be somewhere else? Don’t be that presenter! When appropriate, I like to inject humor. I crack jokes on the sales guys or on my own Southern accent. Your attendees will relax and build a stronger rapport and maybe even remember you more as a result.
Oh the echo, ooo… ooo… ooo… You know the echo that I’m talking about! We’ve all been on meetings where one person is using their speakers and their microphone picks up on the sound from the speakers which creates an echo effect. The person usually denies that it’s them, it makes things awkward, and then you have to recover and make things un-awkward again.
So what can you do about this? One option is to mute your participants. You can see which participant is making the noise and then mute them. In some meeting software, you can mute all attendees.
You may have heard of the “Power of the Pause” before. If we are presenting a demo and the attendees are not very lively, then I will show a feature and then ask them what they thought about that feature. Sometimes these pauses seem like an eternity and I just let the awkwardness hang until someone responds.
While it seems like a long time on my end, I know that attendees may be in a meeting room with the phone on mute and they may be talking to each other or going around the room seeing if anyone has a question.
When I first started giving demos I was scared to death of not knowing something. Though, not knowing something is perfectly fine. If someone asks you a very technical question there is nothing wrong with saying “Hey, I don’t know that answer, let me check with our engineers and then we’ll get back to you.” Admitting that you don’t know something lets the attendees know that you are human, builds credibility, and it also gives you something to follow up on. Following up continues the conversation and gives you another touch point with the lead.
Just as I’m doing here in this blog post, tell a linear story. Build on top of things you’ve already covered. Telling a sequential or linear story makes it easy for attendees to follow you and better consume the information you are presenting to them.
There will come a time when you have to present or demo something that is complex in nature. When this happens it’s best to try to describe these via multiple concepts. Sometimes people refer to concepts differently so using multiple descriptions can help ensure clarity and that everyone understands and is on the same page.
As you get close to the end of the demo, be sure to check on the clock. If you have a hard stop, you may have to cut a feature set short so that you can leave time for questions. Q&A is critical to the demo because there are some people who will remain quiet until everything is over and then they speak up. We want to ensure that we give those people ample time to voice their thoughts because they can provide great insight.
This is a chance for you to get vital information about the demo. Attendees’ comments can be key indicators as to the demo’s effectiveness and whether or not the lead is ready to move forward.
After the demo is over, we work hard to solidify next steps so we can keep the process moving forward. Identify any “deliverables” that you need to follow up on. Often times these deliverables are PDF documents, blog links, or videos. Summarize the set of deliverables and let attendees know when they can expect them.
Once you’ve established those deliverables be sure to follow up in a timely manner. This will help you keep the process moving forward while things are fresh on the demo attendee’s minds.
The reason we conduct demos is to progress a sale forward. If the demo is effective then the lead will want to continue the conversation. Ultimately the demo is a reflection of the presenter and the organization they represent. By fine tuning the process of a demo you can better move your deals forward! I hope these tips have given you some insight into things you can do to have your demos and presentations at their best.
I have been recently trying to learn these very things! Dashboards are tricky, but I really enjoy the challenge. I have been reading Stephanie Evergreen's book called Presenting Data Effectively, stephanieevergreen.com is her site. Her book works for me as she has screenshots and checklists that I can follow to better equip myself when I am working on a presentation or what not.