This past week we had another Queen City DotNetNuke User Group meeting. This meeting was unique in the fact that we had been promoting hard because DNNCorp flew one of their engineers out to speak to our group. Will Strohl arrived to Charlotte late last Wednesday evening. I gave Will a late night mini-tour of Charlotte and we talked as we rode around. Our meetings happen every 3rd Thursday so it wasn’t long before the next day came and it was meeting time.
At some point either Wednesday night or Thursday during the day I told Will that I thought we should open the meeting up and try a Google+ Hangout to see if any DotNetNuke developers in other areas would like to jump on to watch the presentations. Will was open to it and so I made a point to bring my laptop. When we got to Microsoft (our group meets at Microsoft Charlotte) we began setting everything up. We weren’t really sure how the video or audio quality would be, but we wanted to give it a shot. I put my computer off to the side of the table (near an outlet) on the front row. I turned the Google+ Hangout on and posted a link to it on Twitter. Within minutes I had my first taker. Gifford Watkins, a DotNetNuke phenom from Nova Scotia, jumped on to see what the fuss was all about. Shortly thereafter we had one more, then another, then another and before long we had a crew on a Google+ Hangout at least 20 minutes before the meeting began.
One of the first things I did was to give the guys a walk-around tour of the meeting. I got my laptop in my hands and showed them the room and the spread of food that we had at the meeting. I showed them the server rack near the door and randomly videoed people and talked with them as I walked around. It was kind of like a live virtual tour of the meeting. I did this to try to give the hangout attendees as much of a view of what was going on as possible.
The guys online were saying that they could hear me well and see the video clearly so it seemed like it was working out well. I told them we would do the best we could to make them feel like they were attending the meeting with us. To achieve that we also had one of our guys join the hangout. Will turned his laptop and joined the hangout and he interacted with the attendees via the chat window. One issue we had to overcome was when someone at the meeting would ask a question from the back of the room. Obviously the guys online couldn’t hear the question so Will would type it out to them in the chat window. He also typed some lines of code that one of the presenters used in his slide deck to make sure the guys could clearly read it. During the Hangout one of the guys typed that being a part of the Hangout was better than being at the actual meeting because they got to see the presentation plus they didn’t get in trouble for “passing notes”. His statement referred to the fact that the hangout attendees could read and write message to each other in the chat window. Will also typed to the hangout attendees and asked them if they had any questions for the speaker and sometimes they did so we were able to ask the speaker questions from hangout attendees as well! Remote Q&A with the speaker. Cool stuff!
In this picture you can see our speaker, Will Strohl, interacting with members of the Google+ Hangout
One note that is worth mentioning is that to make this happen the hangout attendees needed to turn their microphones down. I could see where some of the attendees were muting each other because they were getting feedback or their sound would steal the “stage” of the live speaker momentarily because that’s how Google+ Hangouts are configured. We just had to ensure that our speaker was the “live speaker” in the hangout and muting the microphones did this.
I will add one unique note as well. We had one DNN guy who wanted to attend the meeting. Robb Bryn was attending a meeting in the afternoon and was heading to Charlotte after his meeting. His meeting went over by a couple of hours so he was unable to make it. Though, when he found out about us opening it up to a Google+ Hangout he was able to join the hangout from his phone while driving down the road. I could literally see him in his truck riding down the road with trees passing him in the background of his driver’s side window. Eventually Robb finally pulled over on the side of the road and watched the whole meeting from his vehicle. Now that is some dedication and also some awesomeness that he was able to achieve via his Google+ app on his phone.
Richard English raising his DotNetNuke mug as he enjoys attending the meeting from afar
By the time the meeting ended we had 12 people total on the Hangout from Egypt, the Netherlands, Ohio, Cali, Pennsylvania, South Carolina, Florida, North Carolina, Nova Scotia, and a few more states up north. They weren’t all on at the same time and some came and went, but nevertheless it was very neat to open the meeting up and reach out to even more people via the Hangout. At the end of the meeting the guys on the hangout were all commenting on how everything went well and they said they really enjoyed it. Some remarked that they felt like they were there and that the video and audio was very clear. They could even read the text that was presented on the screen. We asked them if they thought joining the hangout added value or was beneficial for them and they all overwhelmingly remarked saying yes! They also requested that we do it more at future meetings.
Ultimately the decision to open the meeting up added a new dimension to the meeting. During the meeting we had a lot of energy in the room as well as online in the hangout. There were 2 different conversations going on at the same time and it was really cool to be a part of the live & virtual meeting at the same time. I think we’re definitely going to try to do more of these in the future and I would encourage any other user groups to give it a shot so that members in your community who aren’t in the local area can also attend and contribute.
Google+ Hangouts just changed our user group meetings for the good! And with that said…be sure to tune in to our next meeting!
I’ve recently been researching Splunk and have been impressed with its power, flexibility, and ease of use. This blog is not intended to be a step-by-step tutorial, but rather is aimed to show some initial findings, overview one way to integrate Splunk with DNN, and paint the picture of some potential use cases.
So What is Splunk?
If you don’t already know what Splunk is, Splunk is a software company based in San Francisco that produces software for searching, monitoring, and analyzing machine generated big data via a web style interface. Splunk’s software helps organizations with operational intelligence, log management, application management, enterprise security and compliance.
Installing Splunk was simple and after clicking around a little while it was evident that Splunk is an intuitive software. From a UI standpoint, it makes logical sense and the flow is easy to understand. And it didn’t take long to see and understand how powerful it is.
As you may imagine, I began to wonder if and how I could integrate Splunk with DNN.
DNN + Splunk: One Way to Connect the Two
One of Splunk’s powerful features is that it can literally suck in all types, styles, and formats of data. This data can be machine data, log files, or even data from a REST API. There are several mechanisms for getting data into Splunk, but for this scenario, DNN’s web API implementation makes this an easy fit. On the DNN side, a developer can easily create a custom module using web services to expose any DNN data on an endpoint, which Splunk can then access. If you’d like to go the custom module route, check out my other blog series on module development. However, I did not write a custom module to test the integration.
For my initial investigation into Splunk I chose to use DNN Sharp’s API Endpoint module as it allows easy configuration of end points. Splunk is architected to consume any type of data and then it makes that data extremely easy to search, create visualizations and/or alerts with. These searches, visualizations, and alerts can be very basic or very complex in nature.
Another thing to note is that Splunk is architected to do this at scale and can easily parse enormous amounts of data. For example, every time you drink from a Coca-Cola “Freestyle” machine at a fast food restaurant, the data from your drink selection is logged and Splunk helps analyze the data, denote trends, and sends alerts. So yes, those Coke machines (all across the world) are connected IOT devices and Coke is a Splunk customer. See how Coke is using Splunk in the Splunk Conf 2014 Keynote replay session. Imagine how much data that is on a global scaled --> Splunk is helping Coke make sense of it.
Side note: Check out the blog I wrote on using Particle & Splunk to monitor temperature
So, my first goal was simple: see if I could get data from DNN into Splunk.
Sticking along the thought process of “data logs” I figured why not expose the DNN event log on an endpoint and see what I could make happen. Obviously, the event log may not be the best use case as site administrators can clear logs or processes to automatically clear logs sometimes exist. However, for this initial test it is a good candidate. To get the event log data on an end point I used the DNN Sharp API Endpoint module to make a SQL query on the event log view and return it as JSON.
With the event log now sitting out there as JSON on a DNN end point now all I needed to do was get it into Splunk…
Getting REST Data Into Splunk
The Splunk side of this configuration only took a few minutes to configure and keep in mind I’m no Splunk guru (read, it’s easy!). Splunk is similar to DNN in that it’s extensible. Splunk extensions can be found on the Apps and Ad-Ons sections of the Splunk website. I tell you this because ultimately, I followed a blog by Damien Dallimore on getting REST data into Splunk which used a modular input extension and that was all it took. I simply completed the required fields in the Splunk REST Modular Input as shown below.
I chose to poll the data every 60 seconds. With this information inputted I clicked save and returned to the Data Inputs screen of Splunk and chose my newly created data source.
BOOM! I was seeing DNN event log info in Splunk!
Searching, Visualizations, & Alerts in Splunk
With data in Splunk now I needed to proceed to using Splunk to make sense of the data. Splunk’s searching functionality makes it very easy to search for, well... anything you'd like. I’m not yet knowledgeable enough to fully explain all the capabilities, but what I can easily see is that you can select your data source, click on keywords, add them to the source's search criteria and set your desired timeframe for the search. It’s feels as if you have a Google search bar and all your searches are performed on your data source and intellisense & syntax highlighting for your search are provided too!
Once you have a search returning data you can then create visualizations or alerts. And yes, there are tons of visualizations provided by Splunk. These visualizations can be saved as reports or live as “panels” that reside on dashboards. Dashboards can have as many panels as you want and you can have multiple dashboards if you like. Also, you can easily embed these panels into DNN or any other location by clicking the “convert to HTML” link that each panel has. Being able to display this info anywhere you like is a neat feature. Are your mental light bulbs turning on yet?
So, I created a few visualizations based on event log data that was available. I created a number-based-visualization to show a large number that represented a count of 404 errors, a line graph showing the number of failed logins, and a chart showing the 404’s over time. So, in just minutes Splunk was already helping me understand that I have some issues going on with one of my sites. I believe one reason for the 404's is that I've renamed some pages that I think bots are targeting trying to register. Anyways, I've got work to do... don't judge!
Opening Up Possibilities
Now you may be looking at this and thinking to yourself, yeah this is neat, but I could create a custom module to make something similar to this happen. And you would be correct, but keep in mind the potential use cases, flexibility, and scalability of Splunk in comparison to a custom module. You could easily have all your customers as data sources and create dashboards to help you (and your customers) quickly understand what’s going on with your customer's applications. You could also do data mashups of data from a DNN website/web app, some IOT device out in space, and any other data source you can think of to provide valuable insight. And again, Splunk has no problem doing this with massive amounts of data.
With just a little research into Splunk it didn’t take long to get my mind spinning with all the possibilities within DNN and beyond. Think about your current DNN use cases, requirements of your customers, and the exploding IOT market and you’ll soon see the light.
Here are some ideas I had right off the bat:
As you can see the power and flexibility Splunk provides is really nice. I believe Splunk could be a game-changer especially for those with large amounts of data to parse, anybody in the IOT space, and much more. I hope this blog has provided you with an introductory glimpse into some of the capabilities of Splunk and even got you thinking of potential ways to integrate Splunk into your applications or customer's environments. I am still learning about it and hope you will too. I know that I'm just scratching the surface here in my initial findings.
Find out more about Splunk at http://www.Splunk.com
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!
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:
I’ve recently read 3 new books on leadership. One of these books was given to me as part of leadership training at work and the other two I ordered. I wish I could read more and am going to try to make an effort to read more frequently.
Anyways it was good to read these books because they confirmed some concepts I believe in and naturally try to exercise, they shed light on new leadership traits I should probably try to implement, and best of all they made me think. So what am I talking about here… let’s look into it.
I saw someone retweet a tweet by a guy named Jon Gordon @JonGordon11. I liked the tweet and looked at his website and shortly thereafter I ordered this book “Training Camp” of his on Amazon.When I received the book I started reading it that day and also finished it in the same day. It is a good read, told in a story fashion, with short chapters that will keep you engaged the entire time. In the competitive world we live in everyone wants to know what the best do to separate themselves from the rest.
The setting of the story in this book is with a football player trying to make it into the big leagues. As a former football player myself I really identified with the stories, struggles, emotions, and feelings of the story. In case you read the book I won’t ruin the story for you, but along the way of trying to make the team the player finds out all the things that the best do better than the rest. What some may be surprised with is that the recipe for success is not some magic formula, it’s more about doing the simple things well, consistently, and with great focus and pride.
If you are looking for a good read that will help you get a recipe for hopefully becoming better than the rest I would recommend this book. One thing I also admire about Jon Gordon is that he lets his faith shine through his in his writing. In one of the chapters he speaks about how the best draw from a higher power, in this case, the Lord. Jon’s spiritual beliefs tie into his recipe for greatness and it all makes sense.
Buy Training Camp on Amazon
We are reading this book as part of leadership training at work and this read is somewhat longer than the other two books mentioned in this review. Though, while it is longer it is jam packed with great insights on leadership for leaders in the middle of organizations. John C. Maxwell is a popular author and he’s been studying leadership for some time. Reading this book was like reading several books at once due to Maxwell’s thoroughness and how he cites and quotes other books. The author, John. C. Maxwell, is obviously well read, informed, and experienced on leadership.
This book was awesome and made sense in all directions (leading up, across, and down) of the 360 degree leadership model. One thing I really liked is that the author does a great job of giving a real life example with nearly every point made in the book. The examples really drive the points home and makes the concepts easy to comprehend.
As a leader in the middle of an organization I can identify with several concepts conveyed in this book. Another thing I liked was that not only did the author describe a leadership challenge, but he would also follow it up with proposed solution steps or ways to work through the challenges as well. This book provided tremendous insight into leading up, down, and across the spectrum of an organization. I may re-read this book in a few years… it’s got that much helpful info.
If you are the top leader of your organization and you’re reading this there is a chapter for you as well. At the very end of the book there is a chapter directly speaking to top leaders that offers insight into how you can better manage organizations and leverage your 360 degree leaders.
Buy 360 Degree Leader on Amazon
After reading the Training Camp book by Jon Gordon I saw some other books that he wrote. It seemed there was a lot of positivity around his book “The Energy Bus” so I ordered in on Amazon as well. Following suit of the Training Camp book I found this to be a very engaging and easy read. I read it within one day as well! Jon Gordon’s writing style makes his books easy to follow because he’s telling a story and because the chapters are short so you feel like you’re making constant progress.
I liked this book and would recommend it as well. The concepts in this book all speak to going after your work with passion and, yes, energy! Being motivated and passionate about your work makes a big difference. The book also talks about getting the right people on your bus, not letting people drain the energy out of your team, leading with your heart, and loving your passengers. If you lead a team and you (or your team) needs an energy injection then you should give this book a read! Get on the bus!
Buy The Energy Bus on Amazon
I hope this brief review has helped you out in some way. If you read any of these books I’d be interested to hear your take on them. Tweet to me @CBPSC and let me know your thoughts or post here in the comment section
Once you choose a font you can click to the “Type Tester” section to see how any specific words you type will look in your selected font. You can easily increase or decrease the font with the slider and you can also view how the font looks in various browsers on the “Browser Samples” tab as shown in the screenshot below.
Typekit uses “kits” to organize fonts for usage by designers. It’s really easy to create a new kit. Simply hover the kit section and click “Add New Kit”. As you can see from the screenshot below, I've created a kit for each site on which I use custom fonts. You can see how to add a new kit in the below screenshot.
Now that the "kit" is ready I need to add some fonts to it. Once you decide on a font you simply hover over the font and click “Add to Kit” and the font will be added to the kit for which you are currently viewing as denoted in the below image.
After you add a font to a kit you can go into the "kit editor" to further customize. Once you’re inside the kit editor you can customize various settings and styles that make the custom fonts appear on your site. You can simply add the CSS selectors that you’re using on your site & they will then render showing the custom font that you've just selected in Typekit. Notice in the below screenshot where I'm adding " .ANewSelector " class in Typekit's editor.
If you wanted to access specific weights & styles via your skin.css file you can click on the “Using weights & fonts in your CSS” option which will give you the below screen allowing you to copy the CSS necessary for your specific font & weight.
Now if you did click the “Copy CSS” option you would end up with some CSS that resembled the below:
font-family: "atrament-web",sans-serif; font-style: normal; font-weight: 400;
Once you click publish you will be ready to go. I should also mention that if you want to develop or test out styles locally you can also enter “localhost” in your kit editor settings and that will make your local sites work with the new custom fonts.
If you were concerned about how your styles would display on mobile devices you can click into the "Mobile Settings" section of the Typekit editor as seen in the below screenshot.
Now to make all of this active we need to click the big green “Publish” button at the bottom right hand corner of the kit editor screen which you can see in the below screenshot.
Then in my HTML Module I simply referenced the CSS classes that I specified earlier in the Typekit selectors area.
And that's all it takes to get everything lined up. You can see an example of the redesigned home page (running locally) using the custom font “Atrament web” that I selected earlier.
Typekit makes it extremely easy to use custom fonts in your site. If you’re a Creative Cloud member you should check it out. I hope this blog has been helpful to you with integrating custom fonts in your DotNetNuke sites.