Tuesday, June 26, 2012

Interact Intranet: Enabling Windows Integrated Authentication

Enabling Windows Integrated Authentication in Interact Intranet (the only way to authenticate via Active Directory) is a simple quick step.
  1. Login to your Interact sever
  2. Open the Internet Information Services Manager
  3. Select your Interact instance on the left panel
  4. On the right panel in the IIS area, select Authentication
  5. On the authentication screen set Windows Authentication to enabled and disable Anonymous Authentication
Ta-da! That is it!

Interact Intranet: Installing the API

Creating a custom widget in Interact Intranet takes a few steps, the first of which is to install the API (aka Interact Web Service - IWS).
  1. Navigate to your web server roo
  2. Create a folder called InteractAPI (or whatever you want to call it), and within it create another folder called bin
  3. Go to your interact/Web/bin folder
    1. Copy the following files to your new InteractAPI/bin folder: 
      • InteractWebService.dll
      • Odyssey.Interact.Core2.dll
      • Odyssey.Interact.Database.dll
  4. Go to your interact/web folder
    1. Copy the following files to your new InteractAPI folder: 
      • Service.asmx
      • web.config
        • A web.config is needed, however the file from this specific location will cause issues.  Your best bet when you are doing this is to contact Interact to ask for a web.config because there are a lot of changes that need to happen to this file for it to work.
  5. Edit the web.config file in your InteractAPI folder
    1. Change the <add key=”connectionstring”> entry to point to your Interact db.
      1. The new entry should look something like this: <add key="ConnectionString" value="Data Source=INTERACTDB;user=interactdba;password=p!SSw!&#;Database=interact;Persist Security Info=True;MultipleActiveResultSets=True;Connect Timeout=30;Min Pool Size=5;Max Pool Size=1000 " />
  6. Register InteractAPI to IIS
    1. Open the IIS Manager
    2. Right click on "Sites"
    3. Select "Add Website"
    4. Set the Site name to "InteractAPI"
    5. Determine which Application Pool you want the API to be a part of
    6. Set the Physical path to your newly created InteractAPI folder (C:\InteractAPI)
    7. The binding shouldn't have a host name and the port should be set to 81 
  7. Configure InteractAPI Authentication
    1. Select InteractAPI from the left panel
    2. Within the IIS area select Authentication
    3. Adjust the authentication settings to match this:
      1. Anonymous Auth: disabled
      2. ASP.NET Impersonation: disabled
      3. Basic Auth: disabled
      4. Forms Auth: disabled
      5. Windows Auth:  enabled










  8. Set Default Document
    1. Select InteractAPI from the left panel
    2. Within the IIS area select Default Document
    3. Click "Add..." from the right menu
    4. Enter "service.asmx"
  9. Test the Setup
    1. At this point you should be able test your setup by going to http://localhost:81/ from your server. This should display your service.asmx page
    2. Additionally you should be able to view the service page using whatever DNS you've created for your install and appending the port.  For example http://interact:81
  10. Create a DNS entry for IWS
    1. Clicking through from your localhost path (and example code which you can request from Interact) will display some errors because there are hard coded paths pointing to http://IWS:81 
    2. To get around this you'll need to create an internal DNS entry pointing to the IP address of server you've installed the IWS on.
    3. If your DNS is setup properly you should now be able to view the Service.asmx page by visiting http://IWS:81
Stay tuned for more blog posts geared toward creating custom widgets once the API is fully installed!

Wednesday, June 20, 2012

Interact Intranet Thesaurus - under the covers

If you go into the thesaurus section of Interact's site admin area and see a blank list one can easily be tricked into thinking that there simply aren't any entries.  Try doing a search for a 2 letter combination such as DD and you'll see that there are in fact quite a lot of entries.

Some of the default pairing make perfect sense, others are colloquial, and some are a bit more mysterious.

Examples:
Trimorphodon genus Trimorphodon
Myrciaria cauliflora jaboticaba tree
Second Earl of Guilford north
charity toss foul shot
Anthophyta class Angiospermae
half-wit thicko
hebdomad week

How it is Used

The thesaurus is used to display a list of similar terms to what the user has searched on.  So if you search on "Second Earl of Guilford" it will display an area that says "Did you mean? north".
The search results themselves don't appear to be influenced in any way by the thesaurus from my testing, but I can't say that with 100% certainty.

Additionally, the thesaurus is used to build the list of keywords that users are promoted to users when they are creating documents, categories, and sections to help them make their content easier o find.

I appreciate why this approach was taken and it certainly fits the term thesaurus.  In my previous intranet experience thesaurus lists have been used to add to search results by executing what essentially is an OR based search.  For example in our organization we use HBWW as an acronym for Healthy Babies are Worth the Wait.  Our content is inconsistent with which of those is used in titles/descriptions so users need to search for both under the Interact thesaurus system and the result set would be different for each.  With an OR based search on the same terms the result set would be identical and inclusive.

Extracting the Synonym List: Database Query

If you want to examine the out of the box thesaurus list you'll need to dig into the SQL database.  There are 13 tables dedicated to the thesaurus, yet only 2 of them are populated with any content.  I've added a few thesaurus entries but still none of these tables have changed so I'll continue to look for how they are used. It could be that the other tables populate through site usage.

 SELECT SYN.SynonymID, WORDS1.Word, SYN.WordID, WORDS2.Word
  FROM Interact.dbo.THES_SYNONYMS AS SYN
    INNER JOIN Interact.dbo.THES_WORDS AS WORDS1
        on SYN.WordID = WORDS1.WordID
    INNER JOIN Interact.dbo.THES_WORDS as WORDS2
        on SYN.SynonymID = WORDS2.WordID

Deleting the Full List

I'm waiting on verification from Interact on how to delete the entire list, in case we need to.  My assumption  is that I could delete the full contents of the tables, but there might be a catch dealing with how the ID #'s are generated/incremented and I don't want to screw anything up.

My Advice

If you are moving from an existing intranet to Interact you might want to compare your top 100 search terms  against the thesaurus.

Interact-Intranet 5.1 new features revealed

Earlier today I attended the Interact Intranet 5.1 release announcement webinar and am a little upset because I got distracted at a few key points by work issues and wasn't able to catch every point that was made!  Luckily at the end of the webinar they announced that the recording will be made available soon and that there will be a more in-depth follow-up webinar on July 12th to cover the new features and product enhancements.  (I'll add those links as I get them).  The new version will be released on Wednesday June 27, 2012.

Upcoming dates:
July 11th, 2012 Interact Intranet 5.1: What every intranet manager should know  (webinar)

New widgets

  • YouTube
    • place it on the page, add the URL and up comes the video
    • automatic sizing depending on where you place the widget
    • you add a single video, and add other videos to a queue
    • Questions: 
      • can you add a channel or favorites feed?
      • can this widget display videos from the media manager?
      • are these videos indexed for search purposes?
  • Google
    • allows you to add map points through the widget
    • works in the US
    • Question: 
      • can you add a map created in google maps? or does it only allow you to add a blank map and add points via the widget?
      • is there a limit to the number of points you can add?
  • Translator
    • works in real time on full content of the intranet
    • 37 different languages, Welch not included
    • backend is Microsoft Translator, not Babelfish
    • the translator works on all text, documents, forums
    • Question:
      • from what I could see it doesn't appear to be tied to your profile language, instead it seemed to require you to change languages via a portlet.  Is that accurate?
  • Rotating banner
    • "incredibly useful because homepage is the most valuable real estate. This is the place that everyone will look"
    • it stops if you mouse over it
    • it is a free text widget which uses regular HTML, or an image
    • you can control the rotating speed and length of time each image stays on the screen

New & enhanced tools

  • Activity Management
    • this area had a lot of focus in the webinar and unfortunately is the area I payed the least attention to because of work needs
    • activities go live when the document goes live
    • categorization of staff for assigning activities is done in an advanced search area and lets you select based upon things such as location, department, etc.
    • it work with teams 
    • Watch the demo




  • Profile completeness score
 
  • Improved blogging tools
    • ability to subscribe to blogs 
      • Question: 
        • What is the difference between subscribing vs following?
        • Is there a way to manage all subscriptions or would one need to visit each blog to selectively unsubscribe if they wanted?
        • What is the process for subscription notification, email or alerts I assume?
  • Mobile app
    • integrated filtered content based upon your location 
 
  • Improved authentication
    • ability to reset AD passwords w/ password strength rules
  • Widget selector
    • There is a new widget selector tool to help homepage managers select widgets. Details about the widget, display of latest widgets.

Coming soon: Integrations with...

  • MailChimp
    • MailChimp helps you design email newsletters, share them on social networks, integrate with services you already use, and track your results. It's like your own personal publishing platform. 
  • Basecamp
    •  web-based project management and collaboration tool


Something I didn't know, Rackspace can be used for hosting of Interact.

Tuesday, June 19, 2012

How to avoid Firefox's Windows Integrated Authentication login prompts

I never embraced IE and was one of the evangelists clinging to Netscape Navigator before they pulled the plug on it.  Now they Firefox has taken the help things have picked up speed but there are still a few areas where it can be less user friendly (I admit) than IE.  One of those areas that has been a sour point for me over the last 7 years is in dealing with Windows Integrated Authentication.  As anyone dealing with Intranet or other SSO based applications will know, Firefox isn't able to get these parameters from the OS and so you get an ugly popup forcing you to enter your username and password.  While it will remember what you enter, it doesn't store a cookie so you get the prompt each time you visit the site (irk!).

Today I was browsing the web and found an interesting article that details how to get around this problem.
Kudos to Interact Intranet's Ross Jamieson for this tip!

To enable Firefox to pass NTLM authentication particulars to an IIS
server and thereby prevent a login popup do the following:

1. Type about:config in the Firefox address box and press Enter.

2. Scroll down to the setting network.automatic-ntlm-auth.trusted-uris and add the website name (i.e. "intranet") to any hosts already listed as the value (comma separated).

3 Scroll down to the setting network.negotiate-auth.delegation-uris and add the website name (i.e. "intranet") to any hosts already listed as the value (comma separated).



Wednesday, June 13, 2012

Interact Intranet: Renaming "My Page" to "My Profile"

One of the default pages setup in the out of the box Interact Intranet installation is a "My Page" link.  The destination page has information that, to me, is typical of a profile so this post documents how to change that page name.


Step 1) Change the page name
  1. While in the "Home" area, select "Manage Menus" from the Administration options.
  2. Click on the "My Profile" menu item
  3. Change the Link Name and click the save button
Unfortunately the "My Page" terminology is more pervasive, displaying within the People Directory as well.

Step 2) Change the system text
  1. Navigate to the Administration-> Site Admin -> Control Panel - Manage System Text area
  2. Click on the corresponding language you wish to change
  3. Search for: My Page
  4. A single entry should return which points to: SYSTEXT/INTERACT/CONTROLS/NAVIGATION/SIDEMENUS/MODULES/DIR/STAFFDIRECTORY/MYPAGE
  5. Change the value from My Page to My Profile
If you go to the People Directory you'll notice that the link has now changed and you should be done with this process.

Tuesday, June 12, 2012

Interact Intranet: Customizing Search Results

Out of the box the Interact-Intranet search results look very practical and user friendly.  However for those with a purist design eye there are a few things that can be cleaned up to make it more stream-lined.



This document is a work in progress that will cover modifications that I've done.
The examples below are based upon using the Interact Intranet stylesheet which comes with 5.07.  It has some bugs and I'm debating redoing these changes using the "default" stylesheet instead


Quick vs Full Search
The difference is that full search is a full text search.  Will your users actually use this? Will they comprehend when to use it and what it does?  Will it clutter search results?
The fix:
Because this is a layout.css customization (F12 Developer Tools in IE will help you with figuring this out) and not in the display.css you'll need to override the class by entering something like this:

/* Search Results Customization */
.SearchDiv .SearchOptions {display:none;}


Time & number of results
This is cool to see once, but in the end I think it takes up space and provides little value.
The fix:
Change the line that says this:
.SearchDiv .Searchspec {margin-top: 0.2em;}
To this:
.SearchDiv .Searchspec {display:none;}


Order By
The average user won't know what "Interact Rank" means, and might have limited use for sorting (or ordering) by popularity and rating either.  So below are steps to remove this area.

The fix:
Add this line:
.ResultsOrder#ctl00_phi_DIV_ResultsOrder {display:none;}

What others are searching for
This area displays the most recent searches in the last 24 hours.
The fix:
Override the layout file by adding this line
#ctl00_phi_fsPopularDayPhrases {visibility:hidden;}
If you use display: none it triggers the hiding of the Saved Search module also even though they aren't connected.  Haven't been able to figure out why.


Shared Folders
Do you plan on indexing your share drives? We don't so we'd like to hide this entire section.
The fix:
Add line:
#ctl00_phi_fldSummary {visibility:hidden;}


General UI: Remove the Interact globe logo
The fix:
Add a 1 pixel transparent image name blank.gif to the Core folder.
Change the line that says this:
.SearchDiv {background: url("../Core/globe-search.png") no-repeat scroll 18% 10% #E6E6E6;}
To this:
.SearchDiv {background: url("../Core/blank.gif") no-repeat scroll 18% 10% #E6E6E6;}


General UI: Remove the horizontal rule in the search box area
Between Quick/Full search and the search results time area is a horizontal rule that can be removed.

The fix:
Since this is in the layout.css you'll need to override it by adding this line:
.SearchDiv .GreyDividerLine {visibility:hidden;}

Note: this will leave an empty space where the line had been.  If you set the display to none then it'll mess up the alignment of the "Did you mean?" section which would have to be corrected.


General UI: Cleanup the changes for Sara
In your CSS you'll find an entire section that has been commented out and begins with:
    /* Search changes - for Sara - 29/07/2011 

The fix:
Delete the whole section.


General UI: Remove the border around the results section
The fix:
Add this line:
.ResultsDiv#ctl00_phi_fsResults{ border-width:0px;}

Note: this will only remove the border, to remove the "Results" tag you'll need to add this other CSS entry.
#ctl00_phi_fsResults legend  {display:none;}

Final Result

Final Thoughts
There are a few quirks I'm still trying to over come.  In particular:
  • How to remove the gap between Filters and Your Searches
  • Renaming Your Searches to Your Saved Searches, or just Saved Searches
  • Changing the search text highlight from yellow to perhaps just bold, but not sure yet
  • Resolving an issue where the filter titles appear over the search box from time to time (click the Search button about 10x in a row and this error will show itself)
  • Removing the "Help" button in the upper right
  • Considering remove the grey box around the search input area

Thursday, June 7, 2012

LinkedIn vs private discussion boards

Lately I've been working with many vendors (dozens if not hundreds) across various industries from HR to Finance, DAM to scanners, aquarium supplies to exercise equipment, SaaS to hosting.  As a potential customer, a key differentiator between companies is the clarity of their message.  The vendors that have stood out for me answer the basic questions that I have in a clear, easy to find way on their websites.
  • What do you offer?
  • What does it do?
  • How does it do it?
  • How much does it cost?

Vendors should take the time to put themselves in the shoes of their target customers and ask those questions and see how far they get on their own websites.

A second step in evaluating some vendors is looking at their social marketing efforts.  Do they use Twitter, Facebook, Quora, LinkedIn, what is their Klout and Peer Index score like, etc.  This can be very telling, as larger vendors can have multiple accounts on each of these platforms (with little rhyme or reason) and smaller vendors sometimes skip one or more of these areas.

At a certain point more information is required than can be learned from social media and websites and potential customers will need to work with sales and support staff to answer more detailed questions.  An alternative to what can be tedious/drawn out email and phone communication is using LinkedIn groups.  Away from the vendor marketing net, potential customers can ask more pointed questions and access less biased information from other customers, implementers, integrators and other knowledgeable people.   While groups exist for almost any topic you can imagine, it is product specific groups that really help to hone in on specific experts.  Unfortunately this is an area that not all vendors have embraced as some don't see the value and others prefer to private customer areas.  From the vendor perspective I get wanting that control and centralized communication.  Heck even within our internal employee discussion boards there is a lot of discomfort over the idea that a less than perfect response would be posted.  But it is 2012, social is in, centralized communication is out.

When it comes to customer discussion areas there are a few advantages to using LinkedIn vs. a private area:
  • Access
    • LinkedIn groups can be set to open access or have an approval process
    • This beats waiting for a customer account to be created for a private area
  • Familiarity and convenience
    • Most folks doing research into technical vendors are probably already familiar with LinkedIn 
    • They probably doesn’t want to go to a dozen websites to check questions on each vendor
  • Notification
    • Subscription at the group, thread and post level is ideal so you don't need to return to the site to stay abreast of posts.
    • Lack of responses can be disheartening so the more that know about posts and can potentially respond, the better.
  • Ease of use
    • LinkedIn has an app that makes it simple to contribute to discussion boards.
    • People change jobs but tend to stay in the same professions.  Having a private account tied to a work email breaks the relationship when a person changes jobs.  I would assume most LinkedIn accounts are tied to personal email accounts which change less frequently.
  • Indexed
    • LinkedIn discussions are indexed for search engines. 
    • For technical folks that just want to search for this is easier than having to login to a non-indexed site.
  • Marketing
    • Public presence is worth its weight in gold.
  • Announcements, promotions, Job postings
    • With a captive audience tied to the group it is another channel to promote and announce information.