Sunday 13 December 2009

The Horns of the Dilemma

On December 3 2009 news gatherers reported that the General Motors (GM) Facebook page had been subjected to a vitriolic post from the alleged daughter of an allegedly sacked executive. This is the BBC version.

GM removed the post, but not before it had been captured and re-posted across the web. Apart from the mildly patronising tone of the GM damage limitation statement below (quoted from the BBC's report), one might think that this would be the end of the matter, apart from a bit of temporary huffing and puffing and a lot of people having a chuckle at GM's embarrassment.

"We consider children of GM employees to be private citizens," GM said in a statement. "We do not believe a brief Facebook post by a child who had no actual knowledge of critical business issues, and which was removed almost immediately, moves a person from 'private' to 'public' status, and makes her a legitimate source for a major global business story."

However unfortunate for GM, this was a very small incident in what everybody knows has been an annus horribilis for them for all sorts of far more serious and threatening reasons. But I bet the thought must have crossed the minds of a least some GM executives: should we bug-out of Facebook? They won't dare do it, but I'm sure somebody must have thought it.

But I believe that in time this sorry incident may come to be seen as the turning point in a lot of big corporations' relationships with Facebook. Because whatever GM spin doctors do or don't say, or however many tweaks they make to the way they use Facebook, the incident has been a PR failure. And, because of the nature of Facebook, there is nothing anyone could have done to stop it. It was a failure because it drew salacious and prurient attention to General Motors and the fact they have a Facebook page: people with Facebook accounts who would never dream of going anywhere near such a page have been drawn in like hyenas around a dying wildebeest. I am one of them. And I bet there have been plenty of people who wouldn't even dream of having an FB account in the first place who have been drawn to the page too - just once for a little look to see what all the fuss is about, you understand.

And what have we found? To the disinterested outsider the whole GM Facebook presence currently has the appearance we would expect. Plenty of complaints about everything to do with GM from financial and boardroom shenanigans, through criticism of dealerships to the "I bought a lemon" variety. But alongside that there are a certain number of puff posts; plus those with sensible advice for owners with a problem; and those simply passing on company news. And there is quite a lot of reasonable discussion about the problems facing GM and the decisions they are making to deal with them.

So really not so bad, then?

No, apparently not so bad.

But wait a minute: General Motors are roughly the 18th largest corporate entity in the world and something like the 3rd or 4th biggest automobile builder, selling those cars in about 140 countries worldwide. Until very recently they were the unchallenged biggest motor vehicle builder year after year.

According to OICA GM produced over 8.25m vehicles of all types worldwide in 2008. That's produced in one year. Not the total GM vehicles driving around on the planet. I can't find even a rough estimation for that, so I did my own unscientific one. The total number of all types of motor vehicles in the world today is something between 800 and 1000 million, depending on whose figures you use. And sifting through motor industry statistics, it seems that GM have nearly 10% of the world motor vehicle marketplace.

If it is vaguely acceptable to relate share of marketplace directly to percentage of vehicles driving around, then one could guesstimate that there are more or less 80 million GM-badged vehicles on the planet today (10% of 800m).

There are now 350+ million Facebook users. The main GM Facebook page has just over 100,000 'fans', and I will bet GM's bottom dollar (if they still have one) that a very large percentage of that number are typical passive or inert Facebook page fans. Those are the ones who, when they first get an FB account, become fans of a number of pages just because they feel they have some kind of connection to those particular businesses ("My dad used to own a GM pick-up," or "I always wanted to own an old Chevy."). However, rarely, if ever, do these 'fans' return to the pages, and they tend to forget that they ever clicked the button. It is one of the basic facts of life about Facebook, and it describes most 'fans'.

And, however inaccurate my stats are, 100,000 (passive or active) Facebook fans is a piddling number for an outfit the size of General Motors.

Just as we would expect, GM have a pretty decent corporate website at with all the right kind of stuff including links to various blogs. But not a mention of their FB page that I could find... All this tells me that GM have an FB page because, well, it's the trendy thing to do. They would feel a bit silly without it, and the world would think them odd or old-fashioned without it. And they can't exactly give it up, even if they'd like to, for very much the same reasons.

But they really don't need an FB page: GM's web presence is so long established and so widespread, both official and unofficial, that they can't possibly provide anything extra at Facebook that isn't already much better covered elsewhere. And I have already suggested in a previous post Is Facebook (or will it ever be) any good for business? that unless you are considered a real 'lifestyle' brand by the Facebook public, there's no real reason to have an FB page for your business, other than to occupy real estate and prevent others doing it for you on the sly. But the fact remains that Facebook is high profile - in good times and bad.

Think on this: if you wanted to find anything out about General Motors - and I mean anything, from boardroom musical chairs, through press releases, to the nearest available new transmission for your pick-up, or to let off steam on a discussion board, then is your first thought to go to their Facebook page? Somehow I doubt it, except possibly for my last example.

And that is the Facebook dilemma facing business.

Go to this post's page at and get the PDF file or perform various sharing actions.

Friday 20 November 2009

Glanton Hits Vegas - DotNetNuke Openforce 2009

John, Amisha and I sat back after the last session at Openforce 09 and, over a well-deserved Margarita at Cleopatra’s in Caesars Palace, we reflected on what had made the Openforce conference a success for us and why we’d recommend it to others.

Firstly, it was an appreciation of the DNN community. This is not your usual, large scale gathering of folks with a passing interest in technology on a company funded junket – this was more like a City Hall gathering in a small town – everyone was there because they wanted to be there, because they had something to contribute, something to share and because they wanted to see their community and its infrastructure grow stronger.

With our livelihoods so dependent on DotNetNuke Corp and how it manages its people, its strategy and the product, it was very re-assuring to meet all the main people, to experience first-hand how approachable they are and to feel that their door is always open. Navin Nagiah, the CEO, gave us a shout out in his session on DotNetNuke Commerce and Community as new Fusion partners.

Our mindsets have changed about our role in the ecosystem. No longer do we have to work so hard to sell DotNetNuke on its merits and its backing – Doug Howell (Director of Alliances) and Tom Kress (VP Sales) are there to support those activities and we’ll expect to see more sales and marketing support from these great guys. Now we can focus on selling our capabilities on top of this great product.

Being a young and evolving product, there were plenty of breaking news items delivered during the conference.

It was great to hear the announcements on Professional and Elite editions. Future announcements like the implementation of a file management provider will be a great boost to our enterprise clients. It will also open up an opportunity to develop on top of SharePoint as we see many of our customers opt for SharePoint for document management and collaboration.

The announcement of a deal on the inclusion of the Telerik RAD controls was very welcome. We’ve used Telerik from the beginning so it was nice to see we are making the right decisions. What that actually means is that user experience and the extensibility of modules will taken to a new level.

Integration of Google Analytics and segmentation of traffic is also a welcome addition.

There was plenty of lively debate on what the acquisition of Snowcovered means and what the community felt DotNetNuke Corp needed to do to clean it up and further raise module development standards. We'd like to see some standards and a QA process before modules are listed there. Even if that means the cost of individual modules goes up.

Probably the most contentious issue discussed was licensing and it was interesting to see the different perspectives on the chosen “per instance” model. Those running DNN across large server farms were understandably concerned and those running very large single instance, multi-portal implementations were very quiet!

With two DNN tracks running over the three days and six sessions a day, there was plenty of information being dispersed. We even snuck into a couple of Sharepoint sessions running as part of the larger ASP.Net Connections conference which was helpful in understanding the relative strengths and differences of both platforms.

All in all, an event well worth attending, and one which will pay for itself over the coming year through new found contacts and knowledge.

Go to this post's page at and get the PDF file or perform various sharing actions.

Sunday 8 November 2009

Twitter Account Syndication Part 2 - WebAdvantage®

Using Twitter feeds in WebAdvantage®

Last time I showed how easy it is to syndicate single or multiple Twitter feeds by putting them in a web page. Here in Part Two I will show that it is even easier to do the same in a WebAdvantage® page.

As a WebAdvantage® site administrator you can go to the page into which you want to import a Twitter feed; select 'RSSFeeds' from the drop-down module menu; select the 'pane' in which the module will appear; give the module a title and click 'Add'. The new (empty) module will appear in the selected pane.

At the left of every module title is a little 'drop-down' arrow. In the case of the 'RSSFeeds' module it provides the menu at left.

Click on 'NukeFeeds Admin' and you will see this menu - again at left.

Click on 'Edit Feeds' and you will see this.

Click on 'New Feed' and you will see this:

Put your Twitter RSS feed URL in the appropriate field, as indicated. (To get your Twitter RSS feed, please see Part One.) Click 'Save' and your feed will appear in the module on your page, picking up your 'Style' in the process. A capture of the glantonsolution Twitter feed appears below. (There are other options for setting up the feed in the module: for instance, you can include and exclude tweets based on keywords, but I suspect most people will be happy to show the whole stream.)

Now, what if your organisation has multiple departmental Twitter accounts and you would like to show them all in your page, but you don't want to clumsily use up hectares of real estate? Then it is a job for 'The Aggregator'. Not, as you might imagine, a 1960s 007 television rip-off (nor, more prosaically, a trade mag for the concrete industry), but one of the most useful modules available.

The Aggregator is added to a page in exactly the same way as the 'RSSFeeds' and all other modules. Once installed, you create and name tabs and then suck a Twitter RSS feed into each tab. The easiest way to do this is to put each feed in turn in its own RSSFeed module and then tell the Aggregator to grab it and put it in the tab of your choice. The 'RSSFeed' module it came from will then disappear. Repeat until all your departmental feeds are in the Aggregator. Below is a capture of the Glanton Twitter Feed Aggregator, with glantonsolution (our main account), JohnJRoyle (John Royle), glantonian (Ian Sampson) and adalwadi (Amisha Dalwadi) in the tabs.

However, if you prefer, you can put a 'mash-up' of your departmental Twitter feeds into a WebAdvantage® page. In other words, a single feed containing all the tweets from all the departments posted in chronological order. Just like I made last time with Yahoo Pipes. This time, get the RSS feed for the 'Pipe' and put it in a plain 'RSSFeeds' module in WebAdvantage®. Below is the result for the same four Twitter accounts that are in 'The Aggregator' above. Note that the source account of each tweet is clearly indicated.

This is only a 'taster' for what is possible with WebAdvantage®. For the full User Guides and Support Pages, please visit

Go to this post's page at and get the PDF file or perform various sharing actions.

Friday 6 November 2009

How to Choose a DotNetNuke Module From Snowcovered



One of DotNetNuke’s greatest attractions is its modular architecture which literally allows you to "plug and play" almost any kind of functionality from Ad Rotators to YouTube plugins. Whilst we could develop all of these tools ourselves, there's really no need when you can pick and choose from the thousands of ready-made modules available, at low cost, through the Snowcovered online market for modules and skins. It's DotNetNuke’s version of the Apple App Store.

By and large, the quality of the modules is pretty high, but in our field where we're integrating DNN into large Enterprises, we need to make sure that the modules we implement are best in class.

To achieve this, we follow a fairly rigorous process to identify, filter, test and implement only those modules that meet our criteria. I've set out below all the points that we consider when selecting a new module. The points cover not only any technical issues but also help you identify how much work you'll need to do to install, skin, set up, train and support a module and your site editors.


It sounds pretty obvious, but before you even start searching Snowcovered, you need to capture the key requirements. Don't forget that what your client is asking for may not be want they want and probably isn't what they need.

• Brainstorm all of the key requirements

• Categorise them: features that are essential, and those which are nice to have.

• Consider where the module will be used; on what pages and how do you want it to look. Does it need to tuck neatly into a narrow column, or is something full width acceptable?

• What will it be used for? For example the most popular use of the FAQ module is to create nice lists of expandable content to save on screen real estate - not to help users find answers.

• Who will be using it and what will be their technical level?

Search Snowcovered for ideas and shortlist. Think laterally, as modules may be categorised or labelled differently from what you would expect. For example, you will find many 'Form' modules provide survey functionality.

Look more widely. Go and ask the DNN community on the DNN forums or on Twitter (hashtags #DNN, #DotNetNuke) if they know of any modules that can help. Some developers don't list on Snowcovered - For example Ventrian Systems has excellent news and document management modules - but doesn't sell them directly on Snowcovered.


Assuming that you are in business for the long haul, you should favour modules from developers who are committed to continually improving their products and who’ll be upgrading their modules as DNN evolves. It’s a hard conversation with a client when you have to pull a module that used to work because the back end is upgrading.


• The ratings and feedback they have received on Snowcovered

• How long they have been in business?

• Are they a professional developer or a hobbyist?

• How many modules have they produced?

• Are they continually issuing new versions and improving existing products?

• Is there an on-line demo you can play with or a library of screen shots?


• Is there a forum?

• Is there a help desk system/tickets? (if they sell through Snowcovered, then you'll be able to raise tickets through them)

• Is there a user guide or training available?


• What is the balance of complexity versus functionality - does it do what you need it to do? Does it do too much which makes it hard to use?

• Will your end user be able to manage it or does it require 'super user' or 'mega user' skills?

• Search web and DNN for references to the module (or module category) for any compliments or complaints.

Twitter the question (with hashtags #DNN and #DotNetNuke) to see if anyone has any experience with the module.

• Is there a trial version available?


• Does it look good?

• Look at the module.css file - does it have custom styles and colours that aren't overloaded by your skins?

• Does the module offer template functionality under module settings to allow you to change the layout? Can you change the default template that's available to users?


• When the module is installed in DeskTopModules does the module folder name have a "." (e.g. "\desktopmodules\BigShot.Developer" ) in the folder install path? If you are going to run this in an older network envirnment your CSS and javascript files may not load in the client browser.

• Are you running this in a a multi-portal environment? Test it within a number of children - some developers don't cater for Portal IDs.

• Consider browser compatibility, XHTML compliance and accessibility requirements and test against the W3C validation tools.

• Does the module have .resx files for localisation? Whilst you may not be looking to add other languages, if the developer's first language is not English, you may want to clean up some of the module's labels.

• If design (styles etc) is hard coded in a DLL it makes it impossible to clean up later.


• Look in the PA ZIP and open up the script files in Notepad. Has the developer used tokens for the database prefix and object owner? Don't hardcode DBO as the default database object owner - some DBAs won't allow DBO access to production sites inside Enterprise networks.

• Has the developer included uninstall database scripts? If the module requires no changes to the database (i.e. it has no script files) the install/uninstall risk is low because no structural changes are taking place.


• Does the module have any dependencies on other components? For example, we use the Telerik RADcontrol suite extensively and recently had an issue where a module installed an older version of the primary Telerik DLL.

• Is the module searchable? Does it integrate with DNN search? Does it allow search engines to crawl its content? You will want to look at how it redirects pages, its use of cookies and javascript and how it manipulates the URLs.

• Is the module exportable (iPortable)? This is a fantastic feature that allows you to easily backup a module’s setting and content and/or re-use that content elsewhere. The code DNN "Copy Module" functionality relies on this. Can you syndicate content out of the module using the DNN syndication features, or does it have its own?

• Once installed, look at the web.config and make sure you understand the implications of any changes it has made.

• Does it install or use any directories other than under desktop modules? (e.g. App_data or folders e.g. Telerik.)

• Look at the size of the PA file - if it is too large you may have time-out issues uploading the module.

• Look at the .dnn manifest file - is the friendly name really friendly and will the site administrators identify the module from its name? We prefer to rename modules based on their functionality. For example, it's not really useful if a user looks at the module list and sees "GeeWhiz ezeMap" - we'd change it to "Google Maps".

• Is the .dnn manifest file complete with license information, version (that matches the DLL) and help links?


• Can you use the module more than once on a site? For example, if you use the core blog module on multiple pages it will reference the same content. (It is PortaslID and not ModuleID based.)

• Can you put the module more than once on a page? We implemented a ratings module once, but then the site owner wanted to rate several articles on the same page and it didn’t work.

• File uploads and permissions: if the module uses its own file manager and upload tools, check that it is integrated with the DNN file manager and its permissions.

• Does the module use a text editor? If so, is it using your default editor or its own?

• If the module sends out emails – are the templates customisable?

• Look at where module settings are – does it include a section at the bottom of the module settings, or does it create a separate entry in the module action menu? Will the users find where to administer the module?

• When the module is installed, how many modules are created? Are they all needed? For example, do you really need that "Top5" companion module?

• Is the module easy to set up on a page? Some modules, like the blog, add about 5 modules to a page - this can be a daunting process for a user!


• What are the terms? (per child; per DNN instance; unlimited; etc)

• Cost - is it cost effective?

• Does it require a licence key? (We have had issues with a module which required text license file in the BIN directory – every time the server was re-started, we had to re-install the licence.)

• Are upgrades free for point releases? Or do you only have to pay for major releases?

Hopefully module developers will consider these points and, by following them, will raise the quality of DNN modules - for the better of the whole DNN ecosystem.

Go to this post's page at and get the PDF file or perform various sharing actions.

Tuesday 20 October 2009

Twitter Account Syndication Made Simple

So, you have your company Twitter account or accounts and you are managing them competently with Cotweet or Hootsuite and your departments are tweeting about the right stuff. (See previous post). But how to make the best of your Twitter output? How to show off your accounts so they get followed by the right people inside and outside you business?

This is the first part of our simple guide to Twitter syndication. It will show you how easy it is to embed feeds into your company's web pages. The second part will look specifically at putting them into your WebAdvantage® site.

The simplest way of syndicating is to insert a link to a Twitter account which says "Follow us on Twitter" or "Follow our Chemical Division's tweets". There are any number of free Twitter icons you can incorporate in this link - have a look at the free giveaway icons at Smashing Magazine. A simple link like that might just suit your style. However it is much more eye-catching to give people a taste of what they would be getting if they followed you - live content which refreshes regularly always being a good draw.

The first thing to do is to find and save the RSS feed for each of your Twitter accounts. Go to the profile page of of the account and look at the bottom of the right sidebar as illustrated below. There you will see the link to the RSS feed for your tweets.

Click on it an you will see something like this:

Bookmark, or copy & paste the URL from the address bar to a safe place for future reference.

The next thing to do is put the feed in a badge or widget so it can be embedded in a webpage. These are kinds of miniature feed-reeders which can be easily incorporated in the HTML of a webpage. There are many different services which will generate widgets for free, and blogs have their own gadgets for putting RSS feeds in the sidebar. In Blogger, for example, click on 'Customise' > 'Add a Gadget'; then scroll down until you find 'Feed' > click '+' > 'Configure' > choose options > 'Save' and you get something like ours in your sidebar, which has conformed to the 'style' of the blog. Scroll down this blog until you see it in the right sidebar.

However, that is Google doing it for you. In an ordinary webpage you need to use one of the free services already mentioned to generate the code for you. My preference is for Yahoo Pipes, about which I have already blogged. It may seem a bit 'OTT' to use Pipes for a single feed, but I like their customisable badges, and besides, Pipes is very useful for doing more complicated things with your feed(s), as I will demonstrate below, so it is right and proper to do everything in the same style.

Imagine you have four or five departmental Twitter accounts. You might like the idea of showing them off by putting them on your home page as a single feed, sorted into publication date order. Visitors to your site would see that different posts were generated by different accounts and when they clicked on an individual post they would be taken to the particular generating Twitter account. This can be done very easily with Yahoo Pipes.

Here is a snapshot of the four merged Twitter feeds I made at Yahoo Pipes:

The top four modules gather the Twitter RSS feeds; then 'Union' does what it says and puts them into a single feed. If you have more than five feeds to merge you will need to use an extra 'Union'. In the unlikely event you have more than nine, you will have to use a third, and so on. The new single feed is then piped through a 'Sort' module - in this case set to present the posts in publication time/date order.

If you would like to make your own version, save a clone of my Pipe, which I have made public, and then modify to suit your Twitter feeds.

To put the result in a webpage, click on 'Get as a badge',
then 'Embed', and copy & paste the generated script into your page, where it will pick up the style of the page for body text and links etc.

In Part Two I will look at putting Twitter feeds in a WebAdvantage® site.

Go to this post's page at and get the PDF file or perform various sharing actions.

Monday 12 October 2009

How can you manage multiple Twitter accounts for business?

Let's say you are a medium to large company with several departments - something like Chemicals, Pharmaceuticals, Mining, Exploration, Personnel and R&D. Each of them has an official blog and a Twitter account. Both the blogs and the Twitter accounts probably have a selection of people with posting permissions. You are in charge of the whole shebang. How do you get 'your ducks in row'?

One of the simplest levels of organisation is provided by Twirl. This is very useful if you need to continuously monitor posts in several Twitter streams at the same - while actively engaged in other activities on your computer. You can load all your Twitter accounts and have them sit on your desktop like this:

If Twirl is minimised, your Twitter accounts sit in the tray and pop up a little window every time any of the streams is updated, in the same way that the desktop tool for the private group micro-blogging service Yammer works. Twirl also handles replies, Direct Messages and URL shortening as well as image sharing, searching and filters. Definitely recommended for those who need to keep a constant eye on what is going on - and will work perfectly well alongside the other tools we suggest you use.

And that means you need some serious organisation as well. Tweetdeck is highly thought of by many people and it does have the extra feature that you can tie in a Facebook or Myspace account as well. This is useful if you are a Global Brand and are regarded as a 'Lifestyle Brand' by devotees on those Social Networking sites. But if yours is an ordinary boring business in the eyes of the world at large - however big - then, as I have said before, have an FB page by all means as an extra point of contact but keep it reasonably passive and you don't need Tweetdeck in order to feed that page with blog or Twitter feeds.

Personally I much prefer Cotweet or Hootsuite. They perform very similar jobs. Cotweet aims itself specifically at companies (Cotweet = Company-Tweet. Geddit?). Their strapline is "How business does Twitter" and incidently they have a number of those Global Lifestyle Brands mentioned above as users. Ford, Starbucks, Coca Cola and Pepsi to mention a few. However I think Hootsuite, whose strapline is "The professional Twitter client" and has its own Global Lifestyle Brand users, has a clearer, fresher interface. Cotweet is just a bit standard, serious bluey-silvery-grey-transparent for me - I happen to prefer Hootsuite's brighter and quirky sky blue, olivy-green and white layout. By such little things fortunes and empires are made and lost!

But seriously, they both do an excellent job. You can set up multiple users on multiple accounts. The multiple accounts are tabbed and inside each tab you can make posts, see replies and direct messages and set up keyword feeds (in the way Tweetizen works) to see who is talking about you. For example, we at Glanton have one for WebAdvantage®, DNN and DotNetNuke. Also, you can look at a range of statistics about each of your Twitter accounts. And, very usefully, you can set up 'pending tweets' which will be automatically posted on a later date and at at a time specified by you.

This brings me on to the whole business of automatic tweets. You need to be careful (see Tom's Twitter Rules). Automated tweeting, if not obvious to the reader, and with obvious reasons for doing it, can be very tedious and a turn-off. An 'Unfollow' situation. But used sensibly and with good reason it is very useful. For an example, dates in the future when your company is attending a trade show or confererence: tweet normally when you first get the info, then set up one or more automatic reminders to post nearer the time. Or use to post tweets of regular occurences - maybe special offers at your e-commerce site on the first of every month. Or maybe a bit of corporate image building with historical dates: "On this day in 1921 our founder, J. Arthur Blogs Snr. made the first plastic picnic set in his basement in Peoria." You can set up any number in advance. But please, use sensibly! An automatic tweet which just says "Hey, look at us!" is stupid and a waste of time and counts as spam for most people.

One more tool which counts as automatic tweeting. I should point out that at time of writing Hootsuite can do this, but Cotweet doesn't seem to have set it up yet, so if you want to use the latter you should also consider Twitterfeed. This is very useful for making tweets about your blog updates. Load your blog feeds or other RSS feeds, then choose how often you want Twitterfeed to check for new content (range is 30mins to 24 hours), and then select which Twitter account(s) should receive the update. And then forget it - it just gets on with it. For a big company with lots of blogs and a number of Twitter accounts like our imaginary one at the top of this piece, it is perfect. And posting about a new update to a blog surely can't be spamming in anybody's book. You might have one main company Twitter account which takes all the company blog updates, while individual departmental Twitter accounts might only need the update tweet from their own blog or blogs.

So, to summarise. Use Cotweet or Hootsuite for your main Twitter organisation. Use Twirl on your own desktop when you don't want to have one of the former open, but want to keep an eye on what's going on. Use Twitterfeed to make auto-tweets about blog or feed updates.

Next time I want to have a look at putting your Twitter feed(s) in websites, concentrating on how to use in a WebAdvantage® site.

And finally, just a little memo: No payola here! We are not paid to recommend any other companies or their products.

Go to this post's page at and get the PDF file or perform various sharing actions.

Tuesday 29 September 2009

Glanton Recommends...

This week for a bit of fun we are posting a first selection of free tools and add-ons which are recommended and constantly used by the Glanton team. This is not an 'advertising feature' - we like and use this stuff all the time. It just has to be free, or at least have a free basic version to qualify.

SARAH SMITH recommends:

Pixie. Ever thought, "What's that colour? - I want it!" Pixie is a great little tool which has rather taken over from the old 'Colorpicker'. It gives you the hex, RGB, HTML, CMYK and HSV values of any colour you point at on your screen for instant copy & paste into your work. Pixie

and Pixelruler is, as its name suggests, a ruler for measuring pixels on your screen - "fantastic!" says Sarah. Load the ruler horizontally or vertically; line up the zero with the start of what you want to measure and point at the end and the ruler tells you how many pixels it is. Just like that. Pixelruler

IAN SAMPSON recommends:

"Discover Adobe® Kuler™ — the web-hosted application for generating colour themes that can inspire any project. No matter what you're creating, with Kuler you can experiment quickly with colour variations and browse thousands of themes from the Kuler community." So they say - and it is fascinating and extremely helpful. You can create colour swatches in two ways: start with a 'base' colour and then manipulate the others (above), or use an image which is central to your project and move the five selection points around until you have a swatch you like (below). Don't forget to save it! Away from the serious business of designing websites and producing elegant brochures, there are hours and hours of fun to be had. For example, work out a colour scheme for redecorating your house... Kuler


"Turn your photos & videos into pure amazing. Animoto automatically produces beautifully orchestrated, completely unique video pieces from your media. Free, fast and shockingly easy. And now we support video clips from your camera or phone!" That's their blah blah - and yes it is a lovely tool and great to play around with. Basically set a slide show of your photos to music. The simplest version (max about 30secs) is free. Below is one we made earlier -

JOHN ROYLE recommends:

Xtranormal 3d animations. An extraordinary tool which makes animated movies with your own script. Very easy to use, write the script, choose set & characters, and then drag and drop actions, camera angles, expressions into the script. Like Animoto, the basic version is free, but if you want more advanced stuff you must subscribe. The example below was made by John to play on the WebAdvantage® site.

TOM MUIR recommends:

Hyperwords is an add-on for Firefox. You can select any word on any web page (not quite true: doesn't work in form fields as far I can see) and choose from powerful commands, including: Reference; Search; Translation; Conversion; Email; Twitter; Facebook; Tag; Blog; & More. Set up how you want & very easy to use. I find the translation particularly useful - it puts the result straight back in the page where it came from - great for finding out exactly what my German friends are jabbering about in Facebook! Hyperwords

Friday 25 September 2009

Module Categories to help you plan your DNN site design

There are a bewildering number of DotNetNuke modules to choose from, some good some bad some just weird. So how do you choose a sensible set to give to your editors?  At Glanton, We have been implementing DotNetNuke for over five years and in that time we have tried many modules. Some have stood the test of time, some have been discarded and many have evolved through upgrades and newer versions.  If you are looking to implement DotNetNuke or are looking for an implementer to help you then you might want to think about your module set by considering the following categories.  You'll want a mix of modules across all of these categories and I've suggested and highlighted some that work for us and our WebAdvantage implementations. Some modules straddle categories of course but in terms of the user's experience I think they work.

Content Management
'Stuff on the page' in other words. Mainly static, read and jump content. If you want a brochure ware site you probably don't need to go far outside this category.

This is the daddy. You'll spend the vast majority of your time in here.  Editing text, adding photos, links and doing layout with tables.  The standard editor from DNN is ok but the RAD editor from Telerik is the one we choose. It's well supported and well documented.  You could build a very good site using this and this alone.

Links are well handled in the RAD editor but the DNN links module has one feature that keeps it in our toolbox - the drop down option.  This means you can save space and tuck all your links in a small space. Lots of our clients use this feature to have a 'Quick Links' feature that they put high up on the page then make it available on every page.

This module gives you the ability to put tabbed content within a page.  You'll have seen it on many websites, DNN or otherwise. We use it ourselves on  Use it to manage content on a page. Group themes or related content on tabs.  You should consider it as an alternative to child pages. Since all the tabs load at once it avoids a server page refresh. It's much more satisfying for your viewer to use.

For me, this module's name masks its true potential. Sure it does a great job as an FAQ manager; you can categorise, expand and have full control over numbering and ordering but it is also a great way to organise your content on the page.  Think of it as a 'heading and detail' module and you'll get the picture. Since both the 'Question' and 'Answer' are built with your Text/html editor, you can put a précis or tease in the 'question' which will reveal the full content, detail or 'answer' when clicked.  The settings allow you to switch off the 'Q' and 'A' and numbers so that to your user it would be like reading a list of summaries, the full content only revealed if they want to see it.  Like the Aggregator it all loads at once making it quick and enjoyable to use.

I'll be honest, we made a bit of a mess of this for a while. We tried 'Blog' modules and 'News' modules. Some were feature rich but clashed with the skin and some needed a lot of admin support. In fact, there is no real difference between a blog entry and a news piece. They are both 'articles' and need a time-stamp attribution, categorisation, archiving and the facility for the reader to comment. Once we realised that we settled on the Ventrian 'News' module and it has gone down very well with our users.

Site Map
A standard offering from DNN but essential to have one on every site I believe.  I gives an 'at-a-glance' shape and size view of the site and it's a quick navigation aid.  If your site is very big but with clear sections, then use the 'root' feature to give a local map to that section. We usually drop a link to the site map high up on every page.

Visual Appeal
It's a visual age and you never see a webpage without a picture so what else can be done to excite the eyes of your visitor, here's some ideas of modules and other tools.

Image Hotspots
The RAD editor has a nice feature to add multiple hotspots on an image, it's easy to use and great for diagrams, flowcharts and schematics.

Image photo galleries
There are many, many image galleries, rotators, carousels out there. They can be fun but don't have then spinning or changing too fast and always put controls so that the viewer can pause and control the flow.  Check out for lots of flash galleries that you can incorporate on your site.

Document viewer
Links to documents are fine but it's much nicer to show the document open and browsable. Print2Flash does just this.  You can zoom, search and page through docs in a natural way. Just convert your doc to flash then embed using your editor.

Everyone want clips these days and why not?  But movie files can get big, unwieldy and they don't perform well running straight from your web server.  If you are serious about streaming then use a streaming service. We use  You get a choice of movie sizes (width and height), borders and the streaming is very smooth.  Contact us if you'd like us to host your movie.

Mentioned flash a couple of times already but don't forget the interactive flash stuff.  Flash is very powerful in getting your point across. Use a professional flash developer (we can do that for you) and pay attention to performance and duration. It's easy to drop onto your page and still has a lot to offer.

Brochure ware only goes so far, especially in a corporate Intranet environment. Your visitors will want to integrate content from other corporate repositories, sites and applications to sit inside your portal.  Here are some easy ways to do that.

Document Manager
This has been a tough one. All businesses have a problem with document management but there just doesn't seem to be a module out there that strikes the balance between functionality and simplicity.

Bring2Mind and Xepient have good solutions but Ventrian have a fantastically simple, easy to use File Links module.  If you use SharePoint in your organisation remember you can iFrame to the document lists to bring them into your website.

Standard DNN. We like iFrame it's easy and with a bit of imagination it can really pull things together.  You can make web based apps sit in your site's context and stop your visitors having to jump somewhere else. You can expose nuggets (like share prices) from other sites if they are in their own frame (url).  It would be nice if you could iFrame resource not URLs (e.g. network shares).

By this I mean pulling RSS feeds onto your site, not syndicating out. Nukefeeds from Orizonti is what we use. It's good for it's caching, templating and aggregation. My favourite RSS source is Google News. Craft the search to your needs then click on the RSS button.  Yahoo weather is also nice because it feeds through the weather icons.

Users expect to interact with sites and by getting them to do some work you'll get more out of your investment - ans so will they.  These are some of the ways to make a site visit more of a two-way process.

Another standard DNN offering. The team have done a great job.  It is feature rich: enrolment, Outlook integration, multiple views and rich text editing of the content.  If you want a hands-off way of handling your events or training sessions then give this a try before you buy anything else.

A niche product and it takes a bit of setting up but in the right hands it works very well.  Great for knowledge capture especially in specialist areas (don't bother with a general purpose implementation, Wikipedia's got that covered!).  

Forms and Databases
Formmaster from Code5Systems is the Swiss army knife of modules. Has a great balance of being feature rich but not too complex. We hand users for the first form and then they manage it themselves  One client built 40 forms in 2 weeks for their Intranet site.  For simple parent/child databases we like Indoo Grid although the documentation leaves a bit to be desired.

The Rhema SuperSurvey. Was a very good module but has evolved into something so feature rich that it's become a little hard to train users on.  It's still probably the best out there but its current incarnation is another case of the balance between functionality and simplicity going wrong.

We are just about to launch a major implementation of an LMS and we are using the Accord module from Interzoic.  It looks easy to use and their site is full od info and video so we are feeling confidant!  As for content we'll be starting with the Articulate suite maybe enhanced with a bit of Camtasia.

Hope you found this guide useful, I'm sure you have your own favourites, if you really feel I'm missing a trick then let me know. You'll find my address at

Go to this post's page at and get the PDF file or perform various sharing actions.

Monday 21 September 2009

Impersonation in DotNetNuke Intranets

We (Glanton) specialise in implementing DotNetNuke ("DNN") as an intranet application for large enterprises and vouch for the fact that it's a very different animal from setting up your standard internet facing DNN site for clients.

I was surprised at the complexities introduced when impersonation is enabled on a DotNetNuke site and hopefully our experiences and thoughts below will help others. I've tried to keep this as simple and non-technical as possible.

When working inside large enterprises, you are not working on your infrastructure; you have very little control and you don't get admin rights to machines to set up as you like. Furthermore you have to adhere to a bewildering array of branding, security, legal, infrastructure, change control, project management and technical standards - which are often quoted but seldom found!

And, of course, you are running across a network - and that means that everything which DotNetNuke does has to be set against the backdrop of the identity in which it runs within that network.

If you are running DotNetNuke as a simple, low level 'brochure-ware' site using DNN authentication, it's simple. DNN will run quite happily in the context of the ASP.NET worker process doing what it needs to do inside its own server walls and never having to venture out into the big bad network.

However, what if we need to implement Active Directory authentication so users can manage DNN using their own familiar network accounts? Now the ASP.NET server account has to go and ask the Active Directory server ("AD") if Joe Bloggs is in AD (identification); if he is indeed Joe Blogs (authentication); what his phone number and email address are (profile management) and what groups he belongs to (role management). Because the ASP.NET account is local and specific to only the server that DNN is installed on, we have to get someone else - that AD knows and trusts - to ask for us. We have to enable impersonation.

Enabling Impersonation

Impersonation is enabled two ways:

1) By adding to the web.config file, the section

 <identity impersonate="true" />

This now means that when Joe Bloggs opens up our web page, DotNetNuke will run under the identity of Joe Bloggs. And because he is a network user, he can access Active Directory and so everything will work just fine - or so we think!

Alternatively, we could add to the web.config
<identity impersonate="true" username="svcUserName" password="P@ssw0rd" />

and actually specify the identity of the user that our DNN should run under instead of the user visiting the site. Rather than using an existing user account, for which the password may change or the user could leave the company (and then the site will simply stop working), we should go and ask the AD admins for a "service account". These are a system type of user account for which passwords can NEVER be changed and which generally have a very low level of access inside of the network (proxy servers, firewalls and AD read permissions) so can't do much damage.

Most Enterprise service desks will prohibit you from adding the service account password in clear text inside of a web.config so you'll have to either encrypt the password or get the service account password added to the server registry and retrieve it through code. This is to stop site users (not network admins) who may have root access to the site, from reading the service account details.

2) By code

A method I prefer is that, if our module needs to go out to other servers on the network, we add a routine to our code that impersonates a service account within the context of that code or module function only. This means we are not locked to the identity of the user set in the web.config. Generally I look up the proxy username and password that is stored under host settings, but the Active Directory authentication provider does it by storing this information in the module settings table and encrypting the password in the database.

The reality is that most DotNetNuke installations will set because of the extra effort of encrypting and retrieving passwords (or blatantly exposing service account passwords in clear text).

Microsoft's MSDN library has lots of technical information on how to use impersonation and delegation in ASP.NET 2.0.

Implications of Impersonation
OK great - we've done what the manual says and we've got impersonation working. Job done? Actually no - now the fun starts when you start getting calls from users saying the file manager is broken, RSS feeds don't work and performance has gone up the pole. Ooops!

File Access
For simplicity sake, assume we set impersonation=true but have not specified a user account so that that DotNetNuke assumes the identity of the visiting user - Joe Bloggs.

If we impersonate Joe Bloggs and he tries to upload a file (or even read the folder contents) through the file manager, it will fail. This is because Joe Bloggs does not have specific read/write/delete file permissions on our web server. Firstly, who are we going to give permissions to? We certainly don't want to give the generic groups "All Users" or "Everyone" permissions because that means that anyone who did manage to get access to the server could cause havoc. Our best option is to give read/write/delete permissions to the "Authenticated Users" system role. Anyone accessing the server would have to be network authenticated first and my network admins tell me network users can't map a direct drive to the share because sharing has not been enabled. So I'm feeling a little more comfortable but I'm still a bit twitchy about giving delete permissions for DNN system files.

So what do we give "Authenticated Users" access to? In summary, I give authenticated users users read/write/modify access to everything and delete permissions over the contents of the /portals folder.

I once fell into a trap where I initially just gave "Authenticated Users" permissions over the portals folder. Because I was the application owner and had been given full access to the share to set things up, I was able to install new modules, read pages (that were cached to file), use modules which write data to bizarre places (like Indogrid which writes to the app_data folder) and so on, and everything worked fine for me. But of course, as soon as it went into production, the phone started to ring with users who had different permissions to me. In one instance, we had to extend permission over the ASP.NET cache folder as well.

You also need to consider the implication of changing server permissions if you are working in a three stage DEV/TEST/Production environment - these server permissions have to be applied to all sites - and some support admins may have a problem with opening up permissions on a production site.

We've recently had to move into an enterprise environment where we had to use Integrated Security (i.e. a 'service account') to connect to a database server. For whatever reason, the Site admins could not set up a direct connection to the DB server so we had to use impersonation. This means we had to change the permission sets on the service account. And to make matters more complicated, the DB admin insisted on a separate service account for each of the three DEV/TEST/PROD databases. A mission to manage and co-ordinate. And then they complain that you can get hosted DNN out on the web for $50 per month!!!

If you are trying to access an RSS news feed from another web server on the network you are going to have a problem - even if you have enabled impersonation. The server that you are reading from will have to grant your impersonated user permissions to read its data. If you use a service account, it's easy for them to add. But they may not be so keen to open up Read access to "Authenticated Users" on their server. This is a difficult concept to explain to a user who is used to seamlessly accessing content across their intranet.

In Conclusion
I try and avoid impersonation like the plague and have written out of the DNN AD provider any calls that rely on impersonation. I stick to specific DirectoryEntry type searches where we can specify the service account and password stored in DNN. As systems integrators, it cuts down our work tremendously by avoiding all red tape associated with requesting service accounts and permission changes on boxes.

If you do use impersonation, hopefully I've shared with you some of the issues you may encounter - but not have foreseen. Let me know your experiences?

Go to this post's page at and get the PDF file or perform various sharing actions.