By Will on
8/29/2009
 I had the honor of once again speaking at the Jacksonville Code Camp, for the second year in a row. I was very happy to be accepted to speak at this event, as it is one of the largest and most renowned in the State of Florida. I do not know what their official final head count was, but I am told that their registration number reached a whopping 640! That is impressive for any community event, and definitely a number that most reach for.  I...
|
By Will on
8/29/2009
I have begun to build up a list of projects on the popular project repository, CodePlex. In doing so, I have noticed a management problem, in terms of usability and convenience. When you are logged in, and go to the home page, there is a convenient shortcut area on the right side, that will take you to your projects. It lists all of the projects that you participate in, regardless of your role in that project. This alone is just fine, but what if I want to know more about two or more of the projects?  ...
|
By Will on
8/27/2009
I posted an entry a few days ago about a problem I began experiencing with Windows Live Writer. I am proud to announce that those woes are all gone, and I am back using Windows Live Writer (WLW) again! Woo hoo! Here’s what I went through… If you looked at the other post, you know that I began getting an obscure error from WLW. It was, “An invalid IP address was specified.” What in the heck does that mean? I didn’t know until several hours later. I was extremely lucky to have the expert assistance from a well-known DNN community member and Core Team Member, Brandon Haynes. I already knew he was a smart guy. I mean, look at his blog address! :) I now got to see first-hand how bright Brandon is… Luckily for me, my...
|
By Will on
8/26/2009
As I mentioned in a previous blog entry, I am speaking at the Jacksonville Code Camp this weekend. My topic is “Using jQuery in DotNetNuke Development”. In outlining and planning my presentation, I quickly realized that a real-world example will be necessary in order to effectively express my points to attendees. So, I began to think… What kind of module could I write that would allow me to demonstrate integrating jQuery in several ways? I immediately determined that I wanted to use a jQuery plugin of some kind. I began browsing through the most popular jQuery plugins for ideas. Eventually, a light bulb went off in my head while browsing. I might have been...
|
By Will on
8/26/2009
Scare tactics happen too often these days. You see them in the news, politics, sports, commercials, and so on. This is not new to us. For example, most pharmaceutical ads basically tell us that we will die if we don't talk to our doctor and begin using their product. The HPV ads are the worst at this. Now, we are on to the average consumer and their PC. I have been hearing and seeing ads for products like CleanPCToday, where they scare the average person into thinking that their PC is infected with viruses before the commercial even ends. I am sure that if you have family members like I have, you will undoubtedly be asked about this product, or one like it. Your Aunt Jane will buy this up immediately. But why? (FYI - I didn't link that company on purpose. I don't want them to have the benefit of the link.) This commercial uses statements such as, "Does your email take more than 3 seconds to open? This is a tell-tell sign of virus activity on your PC." Give me a break! Many programs can...
|
By Will on
8/25/2009
Earlier today, I began writing a blog in between solution builds. This is common for me to do. I try to multi-task every moment throughout the day. Somehow, I still always seem to be out of time. Weird...
I have been using Windows Live Writer (WLW) to create, publish, and manage my blog entries for several months now. I used to use a web interface on my site. I must say, that using WLW was awesome! I was able to work on a blog post for as long as I wanted without worrying about the session expiring, or any other web-based snafu. It was like having electricity for the first time. I loved not having to light the candles on my blog!
Well, I eventually got my blog post to the point of being able to publish it. I had all of my text where I wanted, my styles all shored up, images added, tags added, and so on. I clicked the Publish button. Ding! I received an error. Whaaaa...?!! I never get an error using WLW. Crap! Here is the error I was seeing:

The...
|
By Will on
8/25/2009
(FYI... I had problems with Windows Live Writer tonight, so I am posting this usnig ScribeFire.) I have a full plate right now in terms of upcoming speaking engagements the next few months. I love spreading the word about DotNetNuke®. The best part about it is, that I know I am helping someone learn something that they might have otherwise not known. This hobby is continuing. You should try to make it out to one of these events. Jacksonville Code CampDate/Time: Saturday, August 29, 2009 at 8:00 AM EST I submitted 3 sessions to the popular Jacksonville Code Camp (a.k.a., Jax Code Camp), and at first, I was not selected to speak. I was not heart-broken, as I was going through a lot at the time, and it was something...
|
|
|
By Will on
8/21/2009
As is usual for me, I will be working on one thing, and concentrating on another thing, and then – BOOM! An idea or thought pops in my head that is usually completely unrelated to the tasks at-hand, but are really good ideas. This time, it’s more of a philosophy though. I think those of you that have private modules that you only make available to certain customers should consider selling those “private” modules. Here’s why… I am not going to mention any names, but during my evaluation period where I was trying our different Social Networking solutions for DotNetNuke®, one of my options was from a major DNN vendor. From one stand point, I really favored that option from the outset, because I trusted this vendor completely to very quickly, efficiently, and consistently fix or add any features that I needed. Good right? Maybe… Then there were other public options out there, such as: Active Social,...
|
By Will on
8/20/2009
 I mentioned and posted a picture to twitter of what I made for breakfast this morning. Following that, someone asked for the recipe. So, I decided to go ahead and put the recipe here on by blog for all to benefit from. The Tuna Before you can make the melt, you have to first have some tuna on-hand. While any variation of tuna salad will do, I find that tuna melts usually are better with a plainer variation. Here...
|
By Will on
8/20/2009
Near my work, I used to go to a Tijuana Flats. However, they recently closed that location. I haven’t been back since, because they do not have another location that’s convenient to me. There was good news though… In place of the now closed restaurant was another Mexican restaurant – though this one being more of an authentic restaurant. Tajuitos Jalisco is the new restaurant in the area. I thought it was completely new, until I realized that this was just the newest in a small chain of local Mexican restaurants. This location is located on Orange Blossom Trail, a few blocks north of Sand Lake Road, in South Orlando. From the outside, it often looks closed if it’s not busy. Especially since the employees began parking in the rear of the building – but it’s open. The owners do a great job trying to establish an ambience. The servers are all wearing stereotypical...
|
By Will on
8/19/2009
Here is another tip, that grew out of an implementation using the Active Social module suite. Once I was ready to roll the module out on an existing site, I needed to add all of the existing users to the security role that Active Social uses to give certain permissions to end-users. I know I could have created a new role and added all users to it, but I wanted to use the new role that Active Social created for me. As far as I know, DotNetNuke® does not provide a way to do this through the existing admin modules. Since all of the users and roles are kept in the database, I naturally decided to generate a T-SQL script to accomplish this task for me. At first, I thought it was going to be a complicated query, but I soon found myself to be wrong. Here is how I investigated this task to find it’s solution. First, I began looking through the source code of DNN library project. Normally, when you want to perform a utility function like this task, there’s a method in the appropriate controller to accomplish it. From there, a console app might be able to quickly written to perform your task. In my case, I was not able to find an appropriate method in the UserController, RoleController, or any of the other classes where I thought this might be. However, I did find one that might be useful. In the RoleController class, there’s a method called AddUserRole(). The AddUserRole() method accepts the PortalId, UserId, RoleId, and optionally the effective and expiration dates. In turn, this method calls the underlying AddUserRole stored procedure in the database. The purpose of this method and data call is to add a single user account to a security role. That is nearly what I was looking for, but it was all I could find – and it would do just fine. This method pointed me to something I could work with. Since I only needed to do this one time, I decided to write a T-SQL script to take advantage of the existing DNN stored procedures. Here is what I came up with. 1: USE [DNN_DATABASE_NAME]...
|
By Will on
8/18/2009
(In the spirit of The Onion… Don’t take anything seriously, and make sure you follow the links.) NORTH AMERICA – As is with the recent trend, some DotNetNuke® news was just broken on the popular mini-messaging site, twitter. Users of twitter were surprised to find out that the famed originator of the fastest growing online content management system (CMS), Shaun Walker, was let go for unknown reasons. The still young DotNetNuke® Corporation was not able to be reached for a comment. Using Bing Maps, we were able to determine that they are having a pool party in their home base in San Francisco, California in celebration of the new DNN Corp Team Members being announced. (None of the team members were invited.) Sources close to the Walker family say that Shaun...
|
By Will on
8/18/2009
As I mentioned before, I am going to begin featuring some of the blogs that I read, and tell you why. The first installment to this ongoing series is Nik Kalyani. First of all, who is Nik Kalyani? If you’re familiar with DotNetNuke®, then you should already know that Nik is one of the co-founders of the DotNetNuke® Corporation. Beyond that, he is a very innovative technologist, who brings many ideas together to approach tasks and projects. I have only met Nik in person once (at Open Force Connect – Orlando 2008), and spoken to him on a couple of conference calls, as well as watched his web casts. Above all though, I read Nik’s blog.  ...
|
By Will on
8/18/2009
Looking through the myriads of questions and answers out there, and the quality of blogger content out there that focuses on DotNetNuke®, it is quickly apparent that many people out there are not familiar with all of the better DNN blogs out there. So, to help solve that for the folks that might be readers of my blog, I have decided to occasionally feature a DNN blog that I read, and tell you why I read that particular blog. Hopefully, I introduce you to a new blog that you cannot live without! If you have any suggestions, feel free to leave a comment to let me know. Expect the first installment of this blog series later today. Can you guess who I will feature first? Technorati Tags: DotNetNuke, DNN, DNN Blogs, Bloggers, Feature
|
By Will on
8/17/2009
I don’t know about you, but my RSS Reader of choice is Google Reader. It’s chock full of features, fast, and I can access it everywhere. With feature updates like the one I am about to talk about, it only gets better. There may be a better reader out there, but so far, this one suits me just fine. Google Reader is the main tool I use to keep up with all things DotNetNuke®. What is an RSS Reader? Some of you might not know what a RSS Reader is. First, Wikipedia does a great job of defining a RSS Reader. In short, a RSS Reader is a software tool or program that allows you to aggregate content of your choosing from anywhere on the Internet. ...
|
By Will on
8/16/2009
There may be a time where you’ll have to find display names that are not unique. I recently had to do this for an Active Social implementation. (I have done a few of those now.) There could be any number of reasons for you to do this. You might need to for the same reason as me, to accomplish a business objective, or you may simply be curious. Regardless to why you feel you need to find the user accounts with matching display names, doing so is pretty simple. There is a simple query that you can run to get the results you are looking for. The good news is, that with a few simple changes, you can use this same query to do similar checks in other data tables. Here is the query I used to find the non-unique display names in my DotNetNuke® site: SELECT u.*
FROM [dbo].[Users] u
LEFT JOIN
(
SELECT [DisplayName],...
|
By Will on
8/15/2009
Some time ago, I won a free VPS hosting account from Applied Innovations at Open Force Connect – Orlando (now known as Day of DotNetNuke®). Well, like a dummy, I didn’t make time to use it and my entire free year went by without me so much as logging in to my account. However, this led to something much better! This free account led to me getting to know the CEO of Applied Innovations, Jess Coburn, a little better. (By the way, I didn’t know that Jess has a blog, until I wrote this post!) When I contacted them upon getting my expiration notice, Jess offered up extension of the free hosting. I certainly wanted to take him up on it, but time continued to be an issue, since this would involve moving...
|
By Will on
8/13/2009
I figured that since I have manager to build up a respectable readership here, I might as well try to make this a little more interactive, while also providing some useful information to you all. I was in the middle of refactoring an entire class library this morning when the solution to a few of my problems came in the form of changing a Shared method to a Singleton method, and vice versa. The question then hit me, “Is there something I don’t know about the tradeoffs of using each?” I set out to research this a bit, reminding myself of some things I have forgotten over time. (Warning, I am only looking at this from the ASP.Net side of the house.) For any newbies, or non-programmers reading this… The surface difference between the two types of methods are that a Singleton method requires an instantiation of it’s class, while a Shared (or Static in C#) method does not. This results in the difference of code such as: ' Using Singleton Methods
Dim ctlCustomer As New CustomerController...
|
By Will on
8/11/2009
 I wanted to wait until it was actually out before I mentioned anything, but the most recent INETA newsletter was just sent out. I am very proud and honored to report that this newsletter happens to feature me in the first list of featured Regional INETA Speakers! It humbles me to see that they would choose me in their first round of featured speakers. Thank you, INETA. ...
|
By Will on
8/11/2009
It’s that time of year again. Packt Publishing is once again holding it’s annual award process where everyone votes for the best open source content management system (CMS). While it’s an honor for any CMS to make it into the final voting, as DotNetNuke® always does, DNN usually gets snubbed pretty good in this contest. Traditionally, DNN has not been considered a true open source product since it requires to be installed on a Windows operating system, which...
|
By Will on
8/11/2009
My Grandfather had cancer for a while, but more recently, his illness took over to the point where he wasn’t going to live for more than a week. At the time, we thought he wouldn’t make it past the weekend. As many family members do, we immediately made plans to fly out and spend some time with my Grandfather before he passed. We used RezHub for the flight, as we couldn’t find a cheaper flight anywhere else. (And I am not just saying that because I work there. It was literally the cheapest flight we could find.) As fate would have it, our cheap flight was through United Airlines. (Their name is not linked, because I do not want to give them the traffic.) We chose United not only for the cheap rate, but also due to their bereavement policy. This was certainly not a planned trip, and it wasn’t a vacation. We called their customer service line, and were told that we would just need to furnish a death certificate, or the obituary, and they would...
|
By Will on
8/11/2009
Each year, my day job gives away a free green vacation to a lucky winner. If you don’t know who my employer is right now, it is RezHub. We are the first travel website to offer green options to all travelers, without forcing people to camp in the Amazon. :) In all cases, we don’t even need the traveler to think green, as we do that for them through our donation program. (And for my DNN readers, our site is 100% DNN!) Last year, the Dream Green Vacation Giveaway was to a beautiful resort in Riviera Maya, Mexico, called Hacienda Tres Rios. You can read more about their green vacation on our Dream Green site. We have pictures, and their e-mail posted on the site. Needless to say, they had an incredible...
|
By Will on
8/10/2009
I recently came across what I thought was a bug in the way that certain pages were added to the site map in DotNetNuke®. You see, if you’re not already familiar with the DNN site map feature, you can go to the SiteMap.aspx page on any DNN installation to see it. For example, mine is here: http://www.willstrohl.com/SiteMap.aspx This is a very useful feature, especially for larger sites, or for those who are not very familiar with generating their own site map XML file. That’s right! The site map we’re talking about is the same kind that gets submitted to search engines, to show them where all of your web pages are. It is written in XML, which is not the optimal language that some folks might want to work with. Anyhow, we were talking about what looked at first to be a bug in the site map feature. Basically, in reviewing my site map output, I noticed that all of the pages found in...
|
By Will on
8/10/2009
 I recently had the both the pleasure, and honor of being the Technical Editor for the recently released DotNetNuke User’s Guide, published by Wrox. The book is written by two very experienced and influential folks in the DotNetNuke®...
|
By Will on
8/3/2009
If you follow my blog (which it seems that a few people do), you would have undoubtedly noticed that I haven’t been blogging recently. Unfortunately, this is due to a family emergency that occurred in my family. A few weeks ago, very late on a Thursday evening (really Friday morning), I received a phone call from my cousin. He told me that our Grandfather was very ill, and was not expected to make it through the weekend. Despite being 2,400 miles apart, I was really close to my Grandfather. Kim and I immediately began to try to plan to fly out to California the next day. We stayed up until 3 AM, trying to figure out what to do.  ...
|