Clint Patterson's Blog


Read the thoughts and musings of a cultured redneck here

Splunk’ing Around With DNN
Specify Alternate Text

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.

Splunk Enterprise

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.

Screenshot of API Endpoint

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.

REST Configuration in Splunk

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!

DNN Data in Splunk search

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?

Splunk's Convert panel to HTML feature

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!

My first Splunk panels

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:

  • Dashboards that visually communicate mission critical data to your client’s management tier
    • Think a specific page of dashboards only visible to your client’s leadership showing application performance dashboards.
    • Think about posting monitors in your client’s offices (or your office) showing performance or usability metrics 
    • Dashboard Examples:
      • Failed Logins – to denote potential bot attacks 
      • New Users – to denote growth or potential bot attacks 
      • 404’s – to denote when pages aren’t found, SEO issues, or other concerns 
      • Etc., etc., etc. 
  • Alerts – Any type of alert you can imagine based on the data you expose 
  • Proactive Client Consulting 
    • If you represent a web firm you can shift your business from being reactive to proactive by monitoring your client’s data and then reaching out to them when trends are noticed
      • Consider your SEO person suggesting redirects be put in place when 404’s for a specific page continuously occur
      • Consider shutting down account creation when a rapid account creation occurs over a short period of time in the scenario of bot registration attacks 
      • Have you developed custom modules for your clients? You could create visualizations and alerts from the data of those modules to help provide business intelligence & insights to your clients 
  • IOT 
    • As I mentioned earlier I also wrote a blog on using Particle & Splunk to monitor temperature. Check it out for more potential use cases. 
    • Many clients are seeking or will be seeking IOT solutions in the future. If you are working with connected devices you could easily setup web services in DNN to log data from these microcontrollers, sensors, motors, or actuators. If you’re logging data into DNN (or any other location) you can easily feed that data to Splunk to parse and analyze the data. Presenting data from IOT devices coupled with data from your DNN instance could potentially provide a holistic picture for your client’s business and deliver critical insights to them.
      • DNN firms like nvisionative are already building IOT based solutions that integrate with DNN. Splunk opens even more possibilities for organizations like this.

Splunk FTW!
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

DNN Prompt: Making DNN Admins Power Admins via the Command Line
Specify Alternate Text

At DNN Summit I learned of a new tool created by Kelly Ford called “DNN Prompt”. I first saw it in a session that Peter Donker gave and it immediately caught my attention. Since then I’ve learned more about it and want to share some initial thoughts on it.

Peter was demoing something related to the persona bar in his session on React.js when he mentioned that he was going to try a “new trick” he’d just learned from Kelly Ford. He then opened a panel up and a command line was visible. He typed in something like “new-extension” and voila, just like that a new extension was created. He closed the panel and moved on with this session, while I was left in amazement wondering what had just happened.

As one of the hosts of DNN Summit I was in and out of rooms all day, taking pictures and tweeting them, and just busy helping out in general. It was hard for me to pay attention to things, but whatever Peter had just done definitely caught my eye. I turned to the person beside me and asked them what was that panel he just used. I thought it may have been some Powershell script or something. The person to my left didn’t know either.

Enter DNN Prompt
After asking around and nagging enough people I learned that this new feature was called “DNN Prompt”. Prompt is the latest and greatest from Kelly Ford who most of the DNN Community knows as being the creator of XMod

Thinking back on it I think I remember hearing whispers around the DNN Community that Kelly had been working on something that was really cool, but yet I never heard any details. Now I’d seen it in action and was connecting the dots.  At first glance I thought it was black magic of sorts.

In the time since DNN Summit I’ve been able to connect with Kelly and the team of people working on DNN Prompt and actually use the tool. It is definitely neat. In this blog I want to provide a quick intro video on DNN Prompt and relevant links for those who are interested.

The Return to the Command Line
It seems there’s been a recent trend going back to the command line among developers. If you look around at NPM, Node.js, etc. you’ll find the command line being used more and more. Even Kelly’s recent presentation to the Southern Fried DNN User Group here in Charlotte referred to this notion as his title was “How Something Old Can Make DNN New Again”. 

Although the user interface for the command line is not as “user friendly” as a wizard based approach it does allow for faster execution of tasks. When you think about it, it really makes sense because the users of this kind of tool are typically admins or developers… not content editors… and they love this kind of power at their fingertips. Don't get me wrong though, this tool is more than just about speed. The vision Kelly has for the tool is very forward thinking and one to get excited about.

DNN Prompt is a Game-Changer
From my first few times using DNN prompt and from seeing people's reactions at the Southern Fried DNN User Group meeting (both in-person and online) I think it’s a game changer for DNN. Everyone's minds were spinning and it didn't take developer's long to see what this could mean for DNN as the tool is extensible. I think Prompt will be a DNN Administrator’s best friend. Normal DNN administrators will now be “Power Administrators” once they use DNN Prompt enough to know the commands by heart. At conferences in the future you’ll see everyone having Prompt installed, using, and referencing it. I plan on using it a lot in my own DNN sites and think that you will end up using it too! Kelly's goal is to get this into the core of DNN Platform and I hope he is successful with that goal.

As you saw in the video, DNN Prompt has the potential to be a game changer for DNN. It will impact the DNN platform, community, and ecosystem. Also, just as Kelly’s earlier DNN creation (XMOD) has done, I believe Prompt could follow a similar path and potentially spawn a new sub-ecosystem for DNN developers and administrators. DNN Prompt could open a new era for development within the DNN ecosystem as the possibilities are endless. Imagine doing all your daily tasks via the command line or imagine modules and other extensions having their own hooks into Prompt. What if you could instantly shut down registrations across 100 portals with one single command or script out batch commands to do whatever you want within your site… it could get interesting quickly!

Get Involved
Kelly ended his presentation with asking people to get involved. He wants to know your feedback, how you envision using the tool, the commands that would be important to you, etc. The good news is taht DNN Prompt is open source and active on GitHub! I know that the team of people developing the solution would love to have more people contributing to the code base and pushing the solution forward.

Here are some links for those of you interested in participating and knowing more:

3 Reasons to Attend DNNCon Baltimore
Specify Alternate Text
DNNCon Baltimore Banner


It’s DNNCon week! The DNN Community is ramping up with excitement about the conference this upcoming weekend. I know that our Carolina based crew is looking forward to the road trip to the DC/Baltimore area, the convos/sessions/parties at the conference, and most of all the fellowship with everyone in the community.

That said, if you’re still on the fence about attending I think you should give a go and here are 3 reasons why:

  1. You’ll Meet People Who Can Help You Learn
    If you’re looking to learn there is no place better to be. Whether you are a DNN guru or a new person in the DNN Community there is so much knowledge to soak in that you should definitely attend. One of the things I’ve always enjoyed is learning how other people go about solving the same challenges that I was facing. Literally everyone around you at the conference has some sort of experience or knowledge that you can benefit from. All you have to do is ask… don’t be shy! 
  2. Node / SPA / MVC / JWT / IOT
    If you’re in the loop on trending technologies then you’ve probably heard of Node JS, Single Page Applications, the Model View Contoller programming style, JSON Web tokens, and the Internet of Things. However, if you’re like me you probably don’t know how to use all of those like a rock star just yet. Well the good news is that there are sessions on all these subjects during the conference! Where else can you go and find this type of knowledge in one day that is all linked to DNN? I’m excited to learn more about these technologies and their integrations with DNN and you should be too!
  3. Open Source is Free & Awesome and DNNCon Is Too!
    DNN is an open source platform and as such you are able to freely download the code and contribute/modify/update as you wish (DNN Platform on GitHub). There is a lot of power, energy, and community in open source and in the DNN Community specifically. This weekend you can experience all that and more simply by showing up at the event. You may even win some of the awesome swag that’s available too! I’ve seen tweets about XBOX’s, Drones, and more! The future is open source, join the movement!
I also heard there was going to be an interesting keynote + some creative Ignite sessions as well! We hope to see you this weekend at DNNCon Baltimore!

Using TypeKit in DotNetNuke
Specify Alternate Text
TypekitLike many web designers I’m constantly working on some side project or rebuilding/redesigning one of my sites.  I’m currently in the process of redesigning a site and since I’m a member of Adobe’s Creative Cloud I figured I should freshen up some of the fonts that I use on the site via Adobe’s Typekit. Typekit makes it really simple to integrate custom fonts into your site. In this blog I’ll walk through how to incorporate custom fonts through Typekit in your DotNetNuke site.

The first thing to do is navigate to the site. Once you’re logged in you can browse the font gallery and select the font(s) of your choice.  I chose the “Atrament web” font style for the site I’m redesigning. The image below shows the screen where you view and choose the font(s) you want to use.

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.

Browser Samples in Typekit

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. 

Add a new kit in Adobe's Typekit

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.

Adding a font to a kit in Adobe's Typekit

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.

Adding a new CSS Selector in Adobe's Typekit

Now at this point you’re probably wondering what is linking your site & Typekit together so that the selectors know which font face to use. In the kit editor Typekit gives you 2 lines of JavaScript that you need to include in order to make things work. Just copy and paste that script (shown in the below screenshot) into your code and you’ll be ready to rock. 

Copy & Paste JavaScript from Typekit

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.

Using fonts & weights in Typekit

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.

Using LocalHost in TypeKit

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.

Typekit's mobile settings

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. 

Adobe's Typekit

At this point we’ve successfully chosen our fonts and published them linking the custom fonts to our site. Now we just need to reference them in our skin's .ascx file, the skin.css or specific modules. In my skin’s .ascx file I’ve added the 2 lines of JavaScript to reference TypeKit.

Embedding TypeKit's JavaScript References in my DotNetNuke skin

Then in my HTML Module I simply referenced the CSS classes that I specified earlier in the Typekit selectors area.

Using CSS classes in my DotNetNuke module

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. using new custom fonts via Adobe's Typekit

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.



Custom styles in the DotNetNuke Telerik Rad Editor
Specify Alternate Text

If you ever need to put some custom styles in the Telerik Rad Editor of DotNetNuke HTML module it can be a little frustrating if you don't know exactly where to put the files. It's actually a simple process. I cut a quick video walking through this process and wanted to post here in hopes of helping someone who may encounter this same issue.


A new job? at DNNCorp!
Specify Alternate Text

I’d seen the job posting for the Sales Engineer role at DotNetNuke Corp for a while and thought that it seemed to be right up my alley. That is, until I got down to the part about the position being based out of San Mateo, California. I’m a Carolina boy through and through and don’t think I could survive without sweet tea! Not to mention that there’s no way the wife would move and I don’t believe you can hunt deer or catfish out there so it was a moot point to even think about it. I usually see Will Strohl tweet about the position, read the description, sigh, and then close the browser.   

Then a strange thing happened… it seemed there was an opportunity to work remote if I’d be willing to travel some. You can imagine when I learned about this that I got pretty pumped up about it and consequently assured the wife that she should be pumped about it too ;-)  After fixing my hair up, a trip to DNN HQ, and a few weeks later I’m now happy to announce that I've accepted a job at DNNCorp as a Sales Engineer! Along with my role as Sales Engineer I’ll also be doing some community evangelism.

After accepting the role I thought about my journey thus far with DotNetNuke and I would be doing an injustice if I didn’t thank several people and the DotNetNuke Community in general. If you care enough to read this post then you’re probably someone I should say thank you to… so thanks!

I've learned a lot about DNN over the past few years and much of my learning has stemmed from interactions with people online whether it’s on Twitter, a helpful blog entry that someone posted, or working through an issue on the forums or community exchange. In short I don’t think I’d have learned as much without the help, support, and encouragement from everyone in the DNN Community.

I’d specifically like to say thanks to a few individuals starting with Allen Foster. Allen has helped me out greatly along my way. Allen took me under his wing and continues to help me learn and grow. If Allen had never decided to revive the Charlotte based DotNetNuke user group then I’d never have been able to nag and mooch knowledge off people in the Carolinas and I probably wouldn't be writing this post. Will Strohl has always been a supportive, open ear willing to help me out as well as Will Morgenweck, Chris Paterra, and Chris Hammond have all gone out of their ways for me at some point. William Severance answered several of my forum posts way back when I was first trying to first figure things out which helped me to understand that there are people out there who want to help. This was my first glimpse into open source and the community behind DotNetNuke. Mitchel Sellers, Robb Bryn, Henry Kenuam, and Ryan Moore have all helped me out along the way too. I should also mention Armand Datema... Armand has helped me out by showing me the way with some really cool front-end stuff whether it be with JQuery, Form & List, or the DDR menu. I know that a great deal of my learning around DotNetNuke has only been possible through the relationships and graciousness of everyone in the community… so thank you!

I’m excited to be a part of the DotNetNuke team and hope to make a positive impact. Just when you thought I couldn’t tweet about DotNetNuke any more they go and offer me a job ;-)



MVP + SuperFan = One Excited Country Boy: DNNWorld 2012 Recap
Specify Alternate Text

Our crew had a blast last year at DNNWorld 2011 so we eagerly looked forward to this year’s conference all year long. This year DNNWord was moved up a month from November to October which was a welcomed change by me as November is the best part of deer hunting season in South Carolina. As soon as the early-bird registration came out I registered.  

To me, DNNWorld is like a combination of a family reunion, a pep rally, and information-loaded-boot-camp. It’s really hard to describe and put into words, you just have to experience it. There are great people to meet, prizes to win, awesome sessions to inspire you and get your creativity flowing, a side-conversation constantly going on via social media, competitions to enter, arrows to shoot at people, good times to be had, and trees to be climbed. It’s fun and I always leave energized about the future. There was no way we’d miss it.

Road Trip
One of my favorite parts of the DNNWorld experience is simply the road trip down and back. We get a crew from the Carolinas to make the trip and we set out on an 8 hour ride full of a variety of interesting conversations, sing-alongs, fast-food stops, status-tweets, and pee breaks. When I get around smart people I have a habit of asking a lot of questions in hopes of learning. It all makes for a fun and interesting trip. 

This year we were lucky enough to have a very courteous chauffeur in @RobbBryn. He wouldn’t let us pay for anything, he brought chargers and converters for all electronic devices, and even had a mobile hotspot set up as well. Talk about a geek’s dream-mobile. It was awesome. We surfed the net and talked about things in anticipation of the conference… that is… until a good song came on and we blasted the music. The road trip down was only the first time that Garth Brooks’ “Friends in Low Places” would be heard on this trip! 

ODUG or Bust
After 8 hours we arrived in Orlando, checked in to the hotel, dropped luggage, came right back downstairs, and headed to the Orlando DotNetNuke User Group meeting. The pre-DNNWorld ODUG meeting is always fun and filled with a lot of the prominent DNN Community folk. Bruce Chapman presented this year and offered some very useful information regarding URLs in general and some best practices specific to DotNetNuke. After the meeting we all hung out at a local restaurant and then came back to the hotel.

The Conference
DotNetNuke CTO - Shaun Walker during his keynoteDNNCorp put on another excellent conference. Everything was extremely nice and organized. From planning the Day of DNN I recognize that there are tons of details that go into making a successful event. Sometimes tech-folk are the most critical and difficult to please and a conference of this size was surely not an easy feat to pull off. From the location, to the food, to the decorations, key notes, sessions, sponsor booths, competitions and social events… everything was AMAZINGLY AWESOME!! I think this was a consensus among all attendees too. Everything was really nice and well-orchestrated. Kudos to Richard Dumas, Stephanie Tejada, and everyone else involved with hosting the conference. The next version of DotNetNuke (DNN 7) looks to be awesome. It just keeps getting better with every release. And yes, I did leave with 3 more signs this year, 2 of which are huge. See pics from the event.

DNN SuperFan
Every year it’s challenging to come up with something creative and clever that would merit consistent votes from people in the community. I had fun creating my project and talking smack online with everyone throughout the competition and honestly didn’t think I would win. I would like to say a big THANK YOU to everyone who voted for me, especially the ones voted consistently. I know it’s aggravating and I also know that without your votes and support that I wouldn't have been able to wreck a brand new bike on concrete on my first trip out of the garage. Yes, it’s true (more in a bit). Thanks for giving me that opportunity. Seriously (after I get the bike fixed) there are some great riding courses near my house and I plan to exercise more with it in the near future. I've already downloaded the Strava app and hope to figure it out shortly as well.

I was very surprised, thankful, and humbled to be selected as a DNN MVP.  Most of my accomplishments thus far in life have been in the world of athletics so this was different for me and I did feel a little out of place. When I was on stage I looked around at the people to my side and quickly noticed that everyone on the stage surrounding me was way smarter than I am. I looked to my left and to my right and I had brilliant, knowledgeable guys from all around the globe who I look up to and respect. These are the guys that if I post in the forum or in exchange… I hope they respond, guys that if they tweet anything I’m reading it because it’s valuable, guys who make code contributions that are significant to the platform, guys who are well known and respected in the community. Standing there on stage beside these guys still seems unreal to me (and my old ball coaches probably won’t believe it happened either), but it’s just a testament to the fact that hard work, persistence, and motivation can overcome lack of intelligence! Thanks to everyone who nominated me for this award. I really appreciate it and am humbled to have received this honor. 

Favorite Sessions/Presentations
I thought all the sessions I attended were good, but the ones that really stuck out to me were Brian Dukes’ “Responsive Views with Knockout”, Amelia Marschall-Miller’s “Advanced CSS for DotNetNuke”, Charles Nurse’s “DAL 2 – A New Data Layer for a New Decade” along with Nik Kalyani, Robb Bryn, and Joe Brinkman’s Ignite presentations. To me, those presenters really brought the goodness and left me inspired in some way or another. And after Nik’s Ignite I’m glad that my Ignite submission didn’t get accepted because he brought the house down and set the bar extremely high.

QCDUG in the House
Most people (the ones that didn’t leave DNN After Dark early) will remember QCDUG as being responsible for the stage-takeover and unique rendition of Garth Brooks’ “Friends in Low Places” (which by the way… many members of the audience knew the words and were singing right along), but there were more QCDUG members in attendance at DNNWorld than just those of us who took over the stage. I thought it was awesome that our Charlotte based user group had 11 registered members at the conference! It was neat to see so many of our user group members there connecting with the community. Hopefully next year we can have even more… so don’t leave DNN After Dark early or you might just miss something again next year. You never know.

Road Trip Part #2
After the conference was over the QCDUG crew started the return trip back to Charlotte. As I mentioned earlier, the road trip is a fun part for me. On the way down we get hype about the conference with anticipation of things that may occur, but the return trip always consists of a retrospective, post-game, sense-making and deconstruction discourse about the conference. Sharing info we all learned and neat stuff we observed always makes for good conversation and usually breeds creative ideas for the future… and we did have some good convos and ideas being tossed around. One of the keys to ensuring this creative convo happens is to make sure that @CoolCoyotes gets his Starbucks before leaving Orlando! A stop at a Starbucks in Orlando, a gas station near 95, and Cracker Barrel in Georgia, and before you knew it we were back in God’s Country ie, South Carolina. The ride back was more low-key than the ride down, but we were brainstorming all kinds of things surrounding DNN. It was equally enjoyable.

From SuperFan to SuperDork in 12 Hours
Many saw this unfold on Twitter, but I would like to confirm its occurrence. When I got back to the house in SC I had to put the wheels back on the SuperFan bike. After putting them on what would anyone want to do? … ride it down the driveway to make sure it worked right? I hopped on the bike and made my way into the darkness. With the first pedal I heard a clicking sound coming from the chain. I knew this didn’t sound right. The bike chain was clicking against the gear-shifting-mechanism that moves the chain to a new gear. So I clicked the gear shifter to move the chain over hoping that would make the clicking stop. The gear didn’t shift. By this time I had pedaled a few times and was gaining speed. The clicking was getting louder. I clicked the gear shifter on the other side. Nothing happened. Then all of a sudden in mid-pedal-push the chain broke and slung against my ankle leaving me off balance and headed toward concrete. I went to the ground with the bike mangled around me. I felt pain and felt stupid! This just didn’t seem like the correct ending to the story. I was mad that I’d already broken a new bike and even more upset at the pain I now felt in my knees, left elbow, ankle, left-big-toe, head, and right hamstring. I threw the bike off of me and laid there looking at the stars recognizing my inability to ride a bike. Long story short, I’m headed to a bike shop somewhere in Charlotte this week to get the chain/gears fixed and to get the bike sized to fit me. Even though the bike is currently without chain and mad at me I do plan to get it fixed and use it a lot in the near future.

DNN World 2012 will probably be the most memorable DotNetNuke conference for me simply because of all the things that happened. That’s not to say that future conferences won’t be good too, it’s just saying that somehow the stars aligned for me. Whether it was winning an award, singing a country song to the crowd, or watching video of me being thrown out of Canada… I somehow ended up on stage too many times. That won’t happen again and I’m still not quite sure how it happened this time and am humbled by it all.

It’s always refreshing to meet and connect with so many other passionate people in the DotNetNuke community. The energy and buzz from the event definitely recharges your batteries and leaves one with a renewed desire to continue to work hard, learn, and grow. If you weren’t able to make the conference this year, I suggest planning on attending next year… you won’t be sorry that you did.

Thanks again to DNNCorp for putting on such a great event and thanks again to everyone who nominated, voted, and showed me love! I do appreciate it. 



CSS Sprites in Adobe Fireworks + Form & List ManDeeps LiveContent Module Mashup
Specify Alternate Text
On 8/16/2012 I presented on CSS Sprites in Adobe Fireworks, the Form and List and ManDeeps LiveContent module. I've posted the YouTube screencasts of the techniques I used below. Hope you enjoy them.

CSS Sprites in DotNetNuke using Adobe Fireworks

Form & List + ManDeeps Module Mashup

I had to create a portfolio and handle various formats so I tied the form and list module together with the LiveContent module from and used them to create the gallery. Technically I could have done this all with ManDeeps LiveContent module, but tying it in with the Form and List module makes it a little bit easier to maintain for content managers as well as gives me sorting, paging, and stronger control via CSS.

Specify Alternate Text

About a month ago a friend of mine named Jason Fararooei told me I should submit a session to the TEDxCharlotteEd event here in Charlotte. I had no idea what this event was about so I took a look at the site. TEDxCharlotteEd’s web site describes the event as “an event that highlights innovative partnerships that are strengthening our community and enriching the lives of students in the Charlotte area.” The web site had a “Call for Speakers” section where they asked speakers from the community to submit their ideas & topics for sessions at the event.
Jason had previously worked with me on a video where I spoke in a local high school to some computer programming and web design classes about Microsoft’s Open Source web platform DotNetNuke. He knew that I was passionate about both technology and education so he encouraged me to enter a submission to the event. 
Below is the video of me speaking to the high school class

I thought about Jason’s suggestion for a while and decided to submit a topic. I submitted a topic titled “Open Source + Education = Brighter Future”. Upon submitting my idea I viewed the source code for the site and noticed that TEDxCharlotteEd’s site was running on an open source web platform… perfectly ironic.
   TEDxCharlotteEd - Twitter announcement of speakers via tweetingTEDxCharlotteEd - Twitter Announcment of speakers via
  Following the link I guess this tweet means I didn't get picked
I’ve posted this blog because I wanted to share my idea even though I didn’t get selected to be a presenter… at least I don’t think I got selected. I got an email saying that my submission was received and being reviewed, but I did not get one saying that I had or had not been selected. Though, given a twitter update from the TEDxCharlotteEd Twitter account announcing the event speakers I didn’t see my name listed and figured it was ok to share the idea here on my blog. I already had the idea conceptualized in my mind so I'm just blogging it instead.
I should probably back up and say that I grew up with parents who were both educators and later administrators in school systems in South Carolina. Today I have several close friends who are teachers and administrators in schools in the greater Charlotte community and one friend who is a former principal who now mentors principals in Charlotte.  I also had a brief stint teaching at Weddington High School in 2005-2006. Growing up in an educational environment, having previously taught, still helping coach my old high school football team, and having friends who are active within the education system makes me familiar with some of the challenges faced in education.  I know that there isn’t a ton of money to throw around and there aren’t a lot of resources available for school districts to utilize. Teachers are held to high standards and are compensated with low wages. To make it worse, recent budget cuts have forced many great teachers out of the profession as well as made it difficult for students to use cutting edge technologies simply because the school systems can’t afford them along with the materials needed to teach. Our school systems need help in a lot of different of which is our community.
The Web, Open Source, & DotNetNuke
Along with growing up with an educational background I grew up with a passion for the web. I can remember first surfing the internet back in the 90’s on a 56k modem and loving it. The web was a catalyst to my imagination and it still keeps the gears in my mind turning. 
As I learned more and more about web design and development I quickly realized that the tools one uses to build web sites can quickly become expensive. To build anything of significance a web designer has to have the right tools (software & hardware) and a good deal of knowledge. This sometimes brought on road blocks for me. I never had a ton of money to throw at software and computers and I also didn’t have a wealth of knowledge. 
DotNetNuke LogoOne day I accidentally bumped into DotNetNuke while looking into some style sheets while on my job which was, at that time, Queens University of Charlotte.  I became interested in the technology and decided to further investigate the platform.  
A week or two later I had the “aha” moment where I realized that somewhere, somebody was putting out a whole content management system (CMS) for free on the net. In my mind these people (whoever they were) were crazy to put this stuff out there for free.  With little cash and little knowledge this was like a dream come true for me. I could leverage the power of this system without creating it! It was a moment that changed my life.  Now days every time I use the system I know that I’m essentially standing on the shoulders of knowledge of many different developers from around the world.
Since researching and learning more I’ve become really enthusiastic about open source technologies, particularly DotNetNuke. Let me describe DotNetNuke a little more… DotNetNuke is a platform that allows for rapid creation of web sites and web applications. It’s very flexible, scalable, easy to learn, and most importantly it’s free! If you don’t speak “tech” lingo then you should research what open source means. In short, open source means that anyone can download the source code for the application, edit it, modify it, contribute to it, use it, etc. 
DotNetNuke an agile platform   
DotNetNuke helps businesses be agile  
After getting involved with DotNetNuke and interacting with the global community behind the platform I realized that my initial reaction of “these people are crazy” was very wrong. Turns out, these people are brilliant. By being open sourced, DotNetNuke taps into creativity and innovation from a vast audience of web designers and developers in a unique way. Many high level developers enjoy freely giving their code contributions to the greater good of the platform because they know that through the contributions of the greater body will stem a greater platform. This model touches on some levels of Systems Theory. This level of synergy is tough to find in a typical for-profit organization where people work because they have to rather than because they want to. I know this statement doesn't apply to every single organization, but I would say it applies to the majority.
Developers from all around the world come together to create the greater DotNetNuke Community.  The community is part of an ecosystem that helps push the platform forward. The ecosystem consists of many entities such as user groups, hosting companies, the corporation that formed around DotNetNuke, vendors, consultants, designers, developers, and integrators.  The result of the ecosystem's synergy is an awesome Content Management System and web application framework.  There’s a reason why DotNetNuke is the #1 open source CMS for .NET technologies.  Did I mention we have a thriving DotNetNuke user group here in Charlotte?
Education + Open Source
Why is all of this important to the education system in the greater Charlotte area or in any school system open to change? Simply put, business is changing, technology is changing, and the way we interact with technology is changing the world. Everyone is reacting to the impetus of change and school systems should too! How will our students compete with the global workforce of competition that awaits them upon graduation? The resources for learning cutting edge technologies (such as DotNetNuke) are available and are at the finger tips of our students. The only thing standing between the students and these resources is the school systems reacting to the change that’s going on around them and adjusting course. It can be done and it isn’t expensive.
With the growth of the web and web technologies, Microsoft started offering “Express” versions of their software. These “Express” versions of their software are free.  What this means is that all the software needed to develop a DotNetNuke site locally is completely free!  By “locally” I mean on a computer sitting in a classroom in any school… no networking or school system servers needed for students to learn and create their own web sites.  
Most schools already have computer labs on which these softwares can run. Check out SQL Server Express, Visual Studio Express, WebMatrix, & DotNetNuke and see if you can’t get any or all of those up and running for free within a day.  All of this software and technology is sitting out there available to anyone with the motivation to use it. If school systems got motivated and embraced these open source technologies students would benefit in the long run and hopefully the technology sector in Charlotte (or any city) would too. Decisions that administrators make surrounding curriculum today could directly affect the economy of Charlotte tomorrow, if not sooner.
I mentioned that we have a thriving DotNetNuke User Group here in Charlotte.  We meet once a month at Microsoft Charlotte and our group would love to have any and all interested students join us once a month to learn more about the framework. We bring in guest speakers, have free food, and free prizes as well. As technologies change so does the platform so there is always more to learn and relationships to be built.  Surely students in our region can learn from people who use the technology on a daily basis.
Charlotte is also home to at least 3 DotNetNuke specific web firms (that I know of) and guess what…those web firms come to our user group to connect and sometimes they hire talent that shows up at our user group.  It’s happened before and it can happen again. If a student was motivated enough to learn DotNetNuke and got a good handle on it then I feel sure they could find somewhere to get plugged in, utilize their skills, and get some extra gas money… that is if they didn’t decide to create a web firm while they’re still in school.  If the student continued to learn and grow with the platform you never know what they might create in the future that could potentially change our city or the world in some way.
TEDxCharlotteEd sought “innovative partnership that could strengthen our community” and I feel that for education a partnership or simply embracing open source technologies could achieve this. Being fair I should mention that there are other open source technologies out there, but I know that there is a strong DotNetNuke presence in the Charlotte area that could assist and partner with the school systems in the movement.  
Many of the training resources and ancillary materials that are being cut out of budgets within education are free and available online, you just have to know where to look and be motivated about it.  Need training materials for your teacher’s lesson plans or for students who want to know more? There’s a whole free video library full of them in DotNetNuke’s online video library.  Have a question that you can’t answer? Just use the hashtag #DotNetNuke on Twitter or make a post in the DotNetNuke Forums or Community Exchange and you’ll find help sooner than later. From an educational perspective these resources are like "live tutors" offering real-time assistance. Need a professional web developer to speak on real life applications of DotNetNuke to your students? We’ve got a whole user group full of them who would love to present.  Want your students to learn from reputable developers from around the globe? Have them attend our user group as homework… if they can’t make it they can join the online stream. There are a great number of resources out there available for learning DotNetNuke in Charlotte and beyond. 
In sum, if the school systems in the Charlotte area, or any area for that matter, incorporated open source technologies such as DotNetNuke into their curriculum then software costs would most likely be lessened, students would benefit from utilizing cutting edge technologies, students would be better equipped for college or employment, and students and teachers alike could tap into a global community of innovation that’s all free of charge.  Embracing these technologies could greatly benefit the students and Charlotte in the long-run.  Why can’t Charlotte be a hot-bed for technology startups in the future? Take a look at Packard Place... it’s already starting a little. The decision to adjust course and embrace change could be the difference.
If you agree that Open Source + Education = A Brighter Future (and that this is an idea worth spreading) then give this page a tweet!

DotNetNuke Basic End-User HTML Editor Tutorials
At our last QCDUG user group meeting some of our members said they wished there were some basic content editing tutorials they could direct their users to for general help/guidelines with editing content in the DotNetNuke HTML editor. As far as I know there are not any ultra-basic tutorials focused on the HTML editor so I decided to cut a few videos in attempt to help fill this small, but sometimes repetitive need.  These tutorials are the ones that review tasks so simple that it almost seems pointless to create them. Nevertheless some end-user will eventually ask how to (INSERT SIMPLE TASK HERE) and it would be great to have a video link ready for them. Hopefully some of these tutorials can save you time from explaining the same principles over and over again to different content managers/editors.
I chose to cut these videos on a DNN 5x version because I figured that there may be a good percentage of sites who haven?t upgraded to DNN 6x yet (but you really should!).  Also since DNN 6 lets you configure the HTML editor some of the features I show may not be visible to your end users depending on how you configure your editors. 
I also realized that you may want to brand these tutorials as your own. For this reason I didn?t verbally publicize who I am in the videos nor did I affiliate myself with any organization or user group. What I couldn?t hide though, was the thick southern accent! If you?re not from the south then just tell anyone that may watch these videos that you?ve got a country boy doing your basic tutorials section. The videos are HD and I uploaded them to YouTube (all as "unlisted"), but in case you want to brand these videos as your own I?ve uploaded the raw video files that can be edited with a video editing software + I?ve uploaded the Camtasia project files in case you own Camtasia. The video files are .MP4 files that are embedded in the zip folder with the Camtasia files.
Be sure to watch these before distribution because I may do something in a way that you think is not correct and/or I may say something wrong! In the image video I used a free service to resize images and you may or may not want your clients doing that. So just a heads up.

The first batch of tutorials I cut were:
DotNetNuke CommunityIf there is a concept that I didn?t cover that you would like for me to?feel free to submit your ideas on the Contact Page. Will I do a tutorial for your customized need specific to your site?? no (or maybe for some dineros). Will I do a tutorial for a general editing task that could benefit the broader DotNetNuke community?? yes! 
I?ve created these tutorials as a small way to give back to the DNN Community and hopefully save someone out there some time. I encourage you to also find ways you can give back because after all, if you?re running a DNN site then you?re right here with the rest of us? standing on the shoulders of others! 


Clint Patterson

I also blog on other sites...

And contribute to OSS Documentation...

See my pics on UnSplash