DNN is an open source .NET CMS and application development framework that is a member project in the .NET Foundation. As the DNN Ecosystem Manager I am well aware of the benefits that our community reaps from the .NET Foundation. Last year I articulated several of these benefits in a blog titled “5 Reasons Why We’re Glad to be a Part of the .NET Foundation”.
Promoting Open Source & the .NET Foundation at Microsoft Conferences
Not too long after I posted that blog, I got an email that included a call for volunteers to help staff the .NET Open Source booth at Microsoft’s Build Conference. I responded to this call for assistance as I felt it was a great way to give back to the .NET Foundation since we receive so many benefits from it. A few weeks later I found myself at the conference and I was telling the story of DNN’s journey in open source. I spoke with attendees and articulated how the .NET Foundation plays a big role in the DNN Community’s ability to sustain and thrive.
The call for volunteers came again this year and I returned and it was apparent that developers in the .NET ecosystem are more aware that the .NET Foundation exists, but they may or may not know exactly what the foundation does or why they should be a part of it. Now that the .NET Foundation has a board in place it is a great opportunity to continue the messaging of the value the foundation provides.
DNN: A Great Case Study Example for the .NET Foundation
As I engaged with attendees over the past 2 years it became clear that DNN is a great case study example of why the .NET Foundation exists. It’s one thing for someone from Microsoft to explain what the .NET Foundation does and it’s a completely different thing for someone who is a member project of the foundation that represents the “living and breathing” example to be there on-site to convey the value and benefits the .NET Foundation provides. Telling the DNN story to attendees helps them understand a “real life” example of an open source project that’s reaping benefits from the foundation.
I think it’s somewhat of a poetic justice that DNN is the prime example of an open source project in the .NET Foundation given DNN’s history of being one of the earliest, if not the first, open source project in the .NET space.
Developers Love Open Source!
Another trend I noticed was the increased energy, appreciation of, and momentum around the open source movement at Microsoft. We had several people come up and show appreciation for how Microsoft is embracing the open source movement and for the role the .NET Foundation plays in that movement. It’s great to see this energy and it’s neat to help turn the lightbulb on for those who weren’t completely aware of what the .NET foundation is doing to help continue the OSS movement at Microsoft and in the Microsoft ecosystem.
.NET Foundation Panel on MSDN Channel 9 Live-Stream from MS Build 2019
If you’ve never been to Microsoft’s Build conference it is pretty big-time production. That is, everything is live-streamed and you commonly see video crews following people around, interviewing speakers/attendees/thought-leaders, and setup all around the stages for the keynotes. There is also a big stage where the cameras are permanently set-up and interviews and panel discussions take place. This year the stage was set up in a corner of the convention center not too far from our .NET Open Source booth.Sometimes you just end up at the right place at the right time and that is exactly what happened to me on the last day of the conference. There was a session scheduled to discuss the .NET Foundation which was slotted for the last day of the conference in the late afternoon. As things turned out, Jon Galloway, Executive Director of the .NET Foundation, had to leave early which left an open seat on the panel. Beth Massi felt bad for me and so I got to be the Jon Galloway stunt double on the panel. You never know where you’ll end up! The panel was more about the .NET Foundation in a broader sense rather than DNN specific, but it was still fun to represent the DNN Community on the panel.
You can find info from the session on the Channel 9 site and you can check out the replay below:
As an open source enthusiast and a .NET developer I’ve been watching the transformation of Microsoft happen and it has been great to watch. You see I’m an avid user of DotNetNuke and if you know anything about DNN’s history you know that DNN was one of the earliest, if not the earliest, open source project in the .NET Ecosystem. From 2003 on DNN has been a pioneer in the .NET open source world.
A lot has happened and several trends have come and gone in the Microsoft world since 2003. As an open source project built on Microsoft technology the notion of being open source wasn’t always a popular conversation topic. Being open source wasn’t “cool” and sometimes negative perceptions about open source solutions were visible.
Boy have times changed!
Microsoft is Serious About Open Source… and It’s Not Just Lip Service
One of my college football coaches always said “Your words don’t mean anything, but your actions mean everything.” Actions are a really good sign of what someone really believes.
Microsoft’s strategic shift to embracing and focusing on open source over the past few years has been such a refreshing transition to see, feel, and experience for me and my fellow DNN’ers because of the actions we are seeing.
If we look at the recent and strategic moves Microsoft has made it’s easy to see that Microsoft is indeed serious about open source. If you aren’t convinced that Microsoft is serious about open source or if you are not keeping up, let’s look at some of the actions Microsoft has taken related to open source. And these are just the ones I have observed… I’m sure there is even more evidence out there.
Why It’s a Great Time to Be a .NET Developer
There has never been a better time to be a .NET Developer. Literally everything you need to get started building is online and free to use and even better it’s likely open source. Anybody, anywhere can download code, look at it, enhance it, modify it, and submit it back to the projects if desired. If you can dream it, you can build it and you may build an online team of users and contributors to assist you in the process. Microsoft is literally making it easy to build open source projects via the technologies and resources they are providing. They are removing roadblocks for developers and being 100% transparent.
Consider the following capabilities anybody, anywhere has...
I referenced one of my college football coaches earlier, but he wasn’t the only one to to impart wisdom during my athletic days. My high school coaches had more one-liners than anyone could remember. One line that stuck with me was “If you do the little things, the big things will take care of themselves.” Microsoft is not only doing the big things, but they are also doing the little things that continue to reinforce their seriousness about open source.
We are watching a culture and paradigm shift occur in real-time and it’s awesome. By going “all in” on open source Microsoft is not only winning the hearts of developers, but they are making it easy for developers to get started with their technologies! I think the strategic decision to embrace open source will have a big impact for Microsoft in the long term.
Last week I attended Microsoft’s Build Conference in Seattle. I was helping at the .NET Open Source booth which promoted the .NET Foundation and all things open source. The conference was very nice, and the energy level was high. I had conversations with a wide variety of people during the conference and it is obvious that Microsoft’s strategy of embracing open source is welcomed by developers.
During one of my discussions a gentleman told me that his organization uses open source software (OSS) and he wants to allow his developers to contribute to OSS, but he needed to be able to justify it to his corporate leadership. His organization is a large, global organization so he needed solid and clear reasoning for why contributing to OSS is something his company should support.
He asked me if I knew of any blogs or resources that could provide insight into this topic. I thought about it and while I’m sure there is info somewhere, I wasn’t aware of any specific blogs or content about this subject. I am obviously biased about this topic, but let’s consider some reasons why a business should support OSS… especially if their organization is using OSS-based products.
Before we list out reasons we should first define what “support” means. When business people hear the term “support” they generally think about money, cost, or financial implications. Though, in the open source world it’s not necessarily about money as support can come in many different forms. Of course, the obvious need for any OSS project is code contribution, but there are more ways to contribute than one may initially think. As examples outside of the code, organizations could allow their developers to assist in marketing and promotions of sub-projects, conferences, user groups, GitHub repos, project documentation etc. Developers could also volunteer in any area of the OSS project as well as exchange knowledge online via forums, blogs, StackOverflow, and others. Organizations could also open up their offices for user group meetings, donate swag & door prizes, or sponsor the food at meetings. Any step taken to help move the the OSS project forward is a form of support.
Now that we know that support can come in forms outside of financial contributions let’s get back to the subject. If you are faced with the need to justify supporting open source software to your business leadership here are some thoughts and ideas to consider:
In this blog I’ve summarized my thoughts around why it’s important for organizations to give back, be active in, and support OSS projects and communities. As one considers justifying OSS participation to the business side of an organization much of the conversation will center around educating the business-side on how OSS ecosystems function. Communicating the potential positive benefits will be what’s needed to help bring on a change in perspective or cultural shift within the organization.
In my mind there are only positives to gain from contributing to OSS projects. Your developers will learn more, be empowered, meet new developers of all ages and skillsets, and your organization will be more efficient, and will likely be viewed as a great organization to work for.
If you don’t want to jump in head first then just try this one small thing to get your feet wet - if your developers have “down time” then simply encourage them focus their energies and time to assisting with the OSS project in any area they choose and watch what happens to your company in the months ahead. Be sure to pay attention to job satisfaction levels, quality of incoming new hires, general passion for work, and the perception of your organization among developers in your space.
After all, have you noticed that OSS projects that thrive are the ones with active community support? Who doesn’t want the project they use to not thrive? From my perspective the benefits of contributing to open source software far outweigh the drawbacks of not contributing.
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!
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!
It has been great for the DNN Community! I got involved right before it became a member of the .NET Foundation and participating in the open source aspect is night and day. It has been really great seeing all the benefits that the .NET Foundation can provide to Open Source and I hope more and more see the value of the .NET Foundation