“Internet of Things”, simplified!

I have been asked about “The Internet of Things” several times lately, especially by Engineering Students who are currently preparing for their next graduation projects. I thought of posting my answer here (along with some useful resources) publicly so that everyone can benefit from it. My aim is to keep my answer as simple as possible while using it to help you understand some of the jargons & buzzwords that you have been hearing lately (Cloud Computing, Big Data, Wearables, etc…) by tying everything together in the context of “Internet of Things”.

Rather than giving you a scientific definition for “Internet of Things” or “IoT”, I want you spend a few moments counting the number of internet-connected Objects that you currently have. Your PC? Your smartphone? Your tablet? Your iPod media player? Your XBOX gaming console? Maybe your smart watch? Your fitness gadget? Your smart TV? Your home sensors? Your Car? Ok you got it, the world is moving beyond standalone devices into a new era where everything is internet-connected. That’s exactly what is meant by “The internet of things”.

Now compare the number you concluded from the first exercise with the number of internet-connected objects you had a decade ago! The chart below says it all.

In 2004, PCs were the only internet-connected objects. What about now (2014)? Looks like smartphones are even surpassing PCs? Still wondering why Facebook acquired WhatsApp?

Analysts are expecting that by 2020, there will be around 50 Billion objects connected to the Internet. This means that for every person living on our planet, there will be 6.6 internet-connected objects. Sounds huge but we are almost there. For me, I have a PC, a laptop, a tablet, 2 smartphones, a smart TV, a Fitbit, a gaming console (XBOX) and I’m planning to buy a Google Glass once it’s officially released in my region. Oh, I already have eight internet-connected objects and I know a few people who are lucky enough to have more!

World will be full of sensors everywhere that is monitoring everything around you and uploading them to the cloud. The world will transform as you walk through because technology that you may not be aware of is monitoring your moves. It’s a world that is constantly changing around us due to these sensors.

Let me give you a few examples:

  • When you wake up in the morning, your smart watch advises you about the best route and how long it would take to go to work based on the traffic conditions.
  • Based on your blood pressure, music changes in your room to match your mood.
  • In case of any smoke or Carbon monoxide detected at your home, you receive an audio alert on your phone (or watch)
  • When it’s time for a video conference, music stops and lighting increases in your room.
  • When you walk into home, temperature changes based on your temperature changing habits in the four seasons.
  • Based on your activity & the calories burnt, your smart refrigerator will recommend the suitable meal (based on what already exists inside it).
  • Based on your mood, social media interactions and your personal calendar, your smart TV recommends a movie for you to watch in a free slot in the evening.

Again, software will anticipate what you want before you even know you want it and it will give you recommendations or even take actions. The examples above are simple ones & some of them are even available now.

For example, With Google NOW & the available wearable gadgets like Samsung Galaxy Gear or Google Glass, the first scenario is already available. Also, With Nest Learning Thermostat (Acquired by Google in Jan 2014 for $3.2 Billions), the 3rd and 5th scenarios can be easily setup @ your home.

Now, think about it, what enables the “Internet of Things” scenarios?

  • Software to run the objects?
  • Cloud Computing?
  • Social Media?
  • Big Data?

I’ll explain those terms in the context of “Internet of Things” in the next post. But before I leave you, I would like you to take a deep look at a very useful research conduct by Business Insider. Feel free to reach out to me on Twitter in case you have any questions.

 

 

Resetting Nintex Forms Repeating Sections

Have you ever found yourself in a situation where you needed to reset a Nintex Forms Repeating Section? I’m sure you’ve tried to reset different columns from within your Nintex Workflows and It’s actually easy to reset any type of fields like Yes/No, Single Line of Text, etc.. But what about the Repeating Sections?

First of all, why would you need to do so?

In my case, I had two lists; one for the orders and the other is for the order details. I’ve created a 1:Many relationship between both lists.

In my case, I wanted to use a Repeating Section only as a way for inputting data into another list (a Nintex Workflow on the parent list is being used here to parse the repeating section and create the child items in the second list.). I wanted this Repeating Section to always be empty and ready for data input. Unfortunately, this was not straightforward due to the fact that the Repeating Section data is always stored as XML either in a list column if the repeating section is connected or in a hidden field called “Form Data” if the repeating section is not connected.

What if you want to remove the data altogether from the repeating section after the form is submitted? Theoretically speaking, here is what you need to do:

As the figure suggests, you need to strip out all the node values and keep only one row in the repeating section. You will end up with something like the below:

You can definitely use the “Update XML” action to do the trick … Or you can use my custom action from here.

Here is how you can configure the custom action:

The good news is that the action is smart enough to detect whether the selected repeating section is connected to a column or not .. and it works in both cases.

Give it a try and let me know your feedback!

Note: The action has been tested only on SharePoint 2013.

The Visual Studio Post Deployment Script For Nintex Workflows & Forms

Application Lifecycle Management (ALM) has always been a problem for those who create SharePoint Solutions and need to include the Nintex Workflows & Forms within their final packages. The traditional way of doing it was deploying WSPs and then moving the different Workflows & Forms by exporting them from the Dev environments and importing them to the target ones (Testing, Staging, UAT, Prod, etc…). I’ve also seen some developers using the SDK to create features that take care of deploying & publishing the different Nintex artifacts.

pastedimage_11

I’ve explained how to automate the full process (like the above figure” along with the way to apply the Continuous Integration & Continuous Deployment concepts during my InspireX session “Application Lifecycle Management for Nintex Solutions” and right after the session, I received a lot of requests to start sharing the scripts.

This post is the first of a series and is going to deal with the first step towards Application Lifecycle Management for Nintex which is setting up your development environment. The goal of the post is to provide you with a way to manage your Nintex assets in Team Foundation Server so that any developer in the team can get the latest work from Team Foundation Server, click deploy and BOOOM, all the SharePoint & Nintex artifacts get deployed and published.

Here are the steps:

1) Download the scripts from Nintex Connect. I’ve also added the SharePoint Project so you can quickly test the whole thing.

2) In the Visual Studio SharePoint Project, create a new folder and name it “NintexArtifacts“.

pastedimage_0

3) Create a subfolder in the “Nintex Artifacts” folder for each list where you would like to publish the Workflows & Forms. Make sure to name the subfolders after the list instances.

pastedimage_1

4) In the Post-deployment Command Line, call the VisualStudioPostDeploymentScriptForNintex.ps1 . The script expects two parameters:

– Project Folder Location (projectFolderLocation)

– Site Collection URL (devSiteColUrl)

Here is what you should add in Visual Studio:

%windir%\sysnative\windowspowershell\v1.0\powershell -file “C:\DevScripts\Scripts\VisualStudioPostDeploymentScriptForNintex.ps1” -projectFolderLocation “$(ProjectDir)”” -devSiteColUrl “$(SharePointSiteUrl)”

pastedimage_2

If you’re wondering why we are using “%windir%\sysnative\windowspowershell\v1.0\powershell” rather than directly calling the script, it’s due to the fact that SharePoint is 64bit and Visual Studio is still 32bit. This means that Visual Studio will by default call the 32bit version of PowerShell resulting in errors. That’s why we, instead, need to instruct Visual Studio to load the 64bit PowerShell by referencing “%windir%\sysnative\windowspowershell\v1.0\powershell”.

5) Once you click “Deploy”, here is what you should see in the Output Windows:

pastedimage_3

6) Once deployment is done, open your list and check whether the Workflows & Forms have been successfully published!!

Give it a shot and let me know if you have any questions!

Speaking at InspireX, Las Vegas, Feb 22-24, 2016

InspireX has been finally announced and I’m super excited to be part of it and even to be selected to speak there!

inspirexlogo

So, What is InspireX?
InspireX is a great chance to connect, interact and learn from a community of Nintex and Drawloop customers, partners and employees to help you solve workflow challenges, and maximize the value of your solutions. It’s also a chance for you to hear inspiring keynotes from Nintex CEO John Burton and renowned futurist Mike Walsh.

And what are you speaking about?
Well, I was so lucky to have my both submissions accepted, here is a little bit of information on them:

Application Lifecycle Management for Nintex Solutions
Monday, February 22, 2016 – 1-2:30 pm
Are you facing difficulties deploying Nintex solutions between your different environments—Dev, Test, Staging and Production? Over several demos, we’ll help you extend the Application Lifecycle Management (ALM) techniques for SharePoint to support and deploy Nintex solutions – including the process to create Custom Actions in C#. We’ll also cover how to get started with automating the build and packaging of Nintex workflow and forms along with your SharePoint artifacts in WSPs, deploying the resulting packages to Virtual Testing labs, then automatically running automated tests against the solutions.

Getting the Most Out of the Nintex Repeating Section
Monday, February 22, 2016 – 3-4:30 pm
Repeating sections are very cool and powerful if you want to create 1: many relationships within your Nintex forms. However, they come with some difficulties when parsing, using and displaying the records stored within them. This session introduces you to best practices for using the Repeating Section Control and introduces you to powerful and easy-touse third-party solutions that were created by the Nintex community to enrich and simplify working with them.

Do you have a Conference Agenda?
Absolutely!

Monday, February 22, 2016
 1:00 PM – 5:00 PM
Pre-Conference Workshop: Nintex Workflow Platform Jumpstart
5:00 PM – 7:00 PM
Welcome Reception
Tuesday, February 23, 2016
 9:00 AM – 10:30 AM
Welcome and Nintex Keynote
10:30 AM – 6:00 PM
Sessions, lunch and breaks
Wednesday, February 24, 2016
 9:00 AM – 10:00 AM
Guest Keynote
10:00 AM – 5:15 PM
Sessions, lunch, breaks
6:30 PM – 10:00 PM
Attendee Party
How can I register?
Just click here
Download detailed session information and agenda here.

COLLAB 365 : Slides & Recordings!

Collab365 was a big hit and I’m really glad I was part of it. For all those who asked, the whole event is now available on demand. I’ve included in this post links to my session recording and slides.. As always, your feedback is very appreciated.

Light Up Your Office 365 Intranet with 10 Cool Add-ins

coollapp265

Video : https://youtu.be/Xajp-7_VlQU
Slides: http://www.slideshare.net/aymanelhattab/boost-o365-user-adoption-with-10-cool-addins

Collab365 Global Conference – Agenda

This is just a quick note to let you know that the agenda of Collab365 has been announced. You can check it out from here.

collab365_

Here is my session information:

Title: Light Up Your Office 365 Intranet with 10 Cool Apps
Date & Time : 10/8/2015, 9:00:00 AM (Dubai Time)

collab365__
Description: SharePoint is the intranet platform of choice and one of the most commonly-used tools of organizations. Users uses Intranets to find the information they need to perform their day-to-day functions, from HR to Help Desk Wikis to Travel Request forms, and much more. Attend this session to discover 10 cool SharePoint / Office 365 apps (Add-ins) that can be used to boost team & personal productivity, help your workforce cut back on meetings and email chains and get the different teams within the organization to work together in flexible and collaborative workspaces to get things done wherever, whenever.

If you haven’t already secured your free place – hurry on over to the Registration Page so that you don’t miss out! By registering you can also enter the Registration Raffle and win a Surface, Fit Band or one of many others prizes!

[Nintex Forms] Announcing The “Nintex Repeating Section Data” Field Type for SharePoint 2010

A few days ago, I released a custom field type called “Nintex Repeating Section Data” for SharePoint 2013 to simplify how you can display of the repeating sections in SharePoint List Views without the need of creating complex workflows. If you haven’t checked that yet, please refer to my blog post.

Tweet3.png

Tweet1.png

After the amazing feedback I received from the Nintex Connect Community as well as Nintex fans on Twitter, I’m glad to announce the availability of the same for SharePoint 2010. You can download the WSP from here.

Let me give you a more complex example than the one I showed you in the previous post:

1) Here is the 2010 form I designed. I have two repeating sections, the first one is named “RepeatingSection1” and contains a Choice control rendered as a drop down list and a Yes/No control. The second repeating section is named “RepeatingSection2” and contains a Multi Line Textbox control as well as a Date/Time Control.

Form.png

2) After publishing my form, I created two list columns from the type “Nintex Repeating Section Data“. The first column refers to “RepeatingSection1” and the second one refers to “RepeatingSection2“. I’ve also added both columns to the default view.

rs1Column.png

rs2Column.png

3) And here is the default view with both repeating sections rendered in tables. Nice and easy!

Form2.png

I’ve also received a couple of questions from the community on how the repeating section is rendered and the ways to customize it, I’ve already answered the question in several places but I would like to include this here as well.

If you want to further customize how the repeating section is rendered, the WSP creates a new folder under Layouts called “NintexRepeatingSectionView“, this folder contains two files:

–  GetRepeatingSections.js –> This is the file which is referred to from custom field type XSLT.  It does all the heavy lifting like querying the FormData hidden field, reading its XML to retrieve the referenced repeating section, parsing its XML and extracting its records. It is also responsible for rendering the values in a table.

–  NintexRepeatingSection.css –> This is the css file used within GetRepeationSections.js to style the table.

The idea is the same for both SharePoint 2010 & SharePoint 2013.

Download WSP from here

Notes:

  • The “Nintex Repeating Section Data” Field Type for SharePoint 2010 was created in my free time and is NOT a Nintex product. If you have any feedback, please feel free to post it here or ping me on Twitter @AymanElHattab
  • You can create as many columns based on the new custom field type as needed. For instance, If you have 3 repeating sections (Flights, Hotels and Events) in your travel request form, you can create 3 columns to display the repeating sections’ records in your View. Just make sure NOT to connect your Repeating Sections to list columns.
  • IE7+, Chrome (Latest) and Firefox (Latest) are supported for the SharePoint 2010 version of the solution.
  • Nested Repeating Sections are not supported (yet).

Quick-Hit Technology Thoughts from a Territory Manager @ Nintex, Microsoft Regional Director and 6x Microsoft MVP