Please note that some posts are written in Norwegian and some in English. I'm sorry for the inconvenience, but in some cases it's easier and more efficient to write in my native language.
Please use the blog channel English to view English posts only.

A better Vista than Vista

December 10, 2008 Leave a comment

I’ve been running Windows 7 Ultimate pre-beta (build 6801) for about a month now, and my conclusion is that the pre-beta release of Windows 7 is a lot better than Vista even as a pre-beta. Feature wise, it’s only a few changes in the basic usage of the OS compared to Vista, but I would like to emphasize a couple important changes.

  1. Running applications with elevated privileges
    One of most annoying parts of Vista is the elevated privileges dialog which appears each time you would like to run an application with administrative rights. I think the idea is very nice, but how the user experiences these pop-ups (and the endless time it takes) is horrible.
    In Windows 7 the feature is still present, but it’s now possible to run applications in elevated mode without the notification message. The icon on the applications which requires elevated privileges contains the well known shield (same as in Vista), but when the application is launched it’s just launched.
    If you like to launch an application which does not require elevated privileges with elevated privileges, you do the same as you’ve always done. Right-click and select “Run as administrator”.
     
  2. The concept of “Libraries”
    With Windows 7 you are presented with a new virtual folder structure called Libraries. A library contains a set of pointers to different physical file locations but seems like a folder tree to the user. During the past month I’ve grown so attached to this feature that each time I use a computer with XP or Vista, I nearly can’t find my way around.
    This is a very nice feature which I’ve been waiting for for years!
     
  3. The transparent desktop wide Side Bar
    The side bar is now desktop wide (not limited to the side of the screen) and completely transparent. Since the resource usages has been heavily reduced, it’s now possible to use gadgets (at least most of them) in an efficient way. Now my desktop contains key information from the net, most of which is a result of a query presented as a feed. In addition I’ve added some tools I use frequently. And yes, it works!
     

With regards to stability, I think it’s very stable, especially when you take the fact that it’s a pre-beta into consideration. In one month, I’ve had 2 complete system crashes which was related to third party drivers which, of course, was written for Vista. In addition I’ve experienced some snags which usually results in a restart of an application, but with basic applications such as Office 2007 and some utilities it usually works fine.

Speed! has always been an issue when working with Windows and Microsoft OS’s. My expectations was very low since my try-out was based on a pre-beta release of Windows. My experience was quite the opposite. Windows 7 is much faster to use than Vista with the same hardware configuration. The startup time was reduced by almost 50 %, and the system is seldom non-responsive. It’s even possible to actually use the Side Bar without having to buy a new computer (although, some gadgets should not be used if you want to be able to work properly).

My conclusion is quite easy. I’m going to use Windows 7 instead of Vista even if it’s in the early beta stages. No more Vista for me!

Possibilities beyond comparison

December 3, 2008 Leave a comment

The CKS:EBE solution is one of the best solutions available for SharePoint and “Web 2.0” type web site. This entire site is based on WSS3 and EBE 2.5 (and some other minor additions) and includes several of the required web 2.0 features. Among other things, the site has basic functionality such as:

  • Anonymous comments posting
  • Taxonomy tagging
  • True RSS feeds
  • Modular themes
  • Trackbacks and permalinks
  • Forms based feedback/contact

…and features are still being added to the solution.

A special thanks goes to the author ‘The Kid’ and contributors.

Read more about this site and the solution behind it in the about pages.

N’Joy!

Kerberos authentication and NLB clusters

November 24, 2008 Leave a comment

When you use Kerberos as the authentication mechanism with Sharepoint and want to configure NLB for load balanced front-end servers you will have to configure an extra SPN for the NLB cluster name. This is caused by the fact that Kerberos uses the hostname as a part of the Kerberos Ticket request, even if the URL used is something different. This is described in detail in Microsoft KB929650.

With the following scenario, set the SPN names accordingly:
NLB server A: SPServerA.MyDomain.com
NLB server B: SPServerB.MyDomain.com
NLB Cluster Name: SPNLB.MyDomain.com
Web Application Account: MyDomain\SharepointApp

SPN commands for NLB with Kerberos for the described scenario:
setspn.exe /A HTTP://SPServerA.MyDomain.com MyDomain\SharepointApp
setspn.exe /A HTTP://SPServerB.MyDomain.com MyDomain\SharepointApp
setspn.exe /A HTTP://SPNLB.MyDomain.com MyDomain\SharepointApp

Please note that all computer and application accounts must be enabled as trusted for delegation!

N’Joy!

CKS:EBE 2.5 Review

November 23, 2008 Leave a comment

I’ve been using the Community Kit for Sharepoint Enhanced Blog Edition 2.5 Beta for a couple of weeks and is quite impressed. Even if there’s several features that does not work, and the solution is somewhat unstable, I think this is the best addition to Sharepoint regardless of FreeProg or commercial wares.

I’ve posted some requests and questions on the authors web site (The Kid), which I hope will be implemented in the next final release, and I certainly hope the final release of 2.5 is somewhat close by.

I will recommend this solution to anyone with a public WSS3 site which they want to make a bit more user friendly and appealing to the user.

My rating: 10 of 10!

N’Joy!

iFrame page template for MOSS

November 17, 2008 Leave a comment

As you all know, the web page viewer web part included in Sharepoint does not support dynamic sizing of the iFrame it creates. Because of this, I found the need for a page template which users might use to create a Sharepoint page with external content. The following code is the entire page template, which might be used as is by anyone it might suit.

Please not that the javascript variable FooterHeight has to be set according to the whitespace you would like at the bottom the page. The height of 30 pixels is based on the footer height of the default collaboration master included in Sharepoint 2007.

<%@ Page language="C#" Inherits="Microsoft.SharePoint.Publishing.PublishingLayoutPage,Microsoft.SharePoint.Publishing,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" meta:progid="SharePoint.WebPartPage.Document" %>
<%@ Register Tagprefix="SharePointWebControls" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<%@ Register Tagprefix="PublishingWebControls" Namespace="Microsoft.SharePoint.Publishing.WebControls" Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<%@ Register Tagprefix="PublishingNavigation" Namespace="Microsoft.SharePoint.Publishing.Navigation" Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>   <asp:Content ContentPlaceholderID="PlaceHolderPageTitle" runat="server">
   <SharePointWebControls:FieldValue id="PageTitle" FieldName="Title" runat="server"/>
</asp:Content>
<asp:Content ContentPlaceholderID="PlaceHolderPageTitleInTitleArea" runat="server">
   <SharePointWebControls:TextField runat="server" id="TitleField" FieldName="Title"/>
</asp:Content>
<asp:Content contentplaceholderid="PlaceHolderAdditionalPageHead" runat="server">
   <PublishingWebControls:editmodepanel runat="server" id="editmodestyles">
     <!-- Styles for edit mode only-->
     <SharePointWebControls:CssRegistration name="<% $SPUrl:~sitecollection/Style Library/~language/Core Styles/zz2_editMode.css %>" runat="server"/>
   </PublishingWebControls:editmodepanel>
   <SharePointWebControls:CssRegistration name="<% $SPUrl:~sitecollection/Style Library/~language/Core Styles/rca.css %>" runat="server"/>
   <SharePointWebControls:FieldValue id="PageStylesField" FieldName="HeaderStyleDefinitions" runat="server"/>
</asp:Content>
<asp:Content ContentPlaceHolderId="PlaceHolderTitleBreadcrumb" runat="server">
   <div class="breadcrumb">
     <asp:SiteMapPath ID="siteMapPath" Runat="server" SiteMapProvider="CurrentNavSiteMapProviderNoEncode" RenderCurrentNodeAsLink="false" SkipLinkText="" CurrentNodeStyle-CssClass="breadcrumbCurrent" NodeStyle-CssClass="ms-sitemapdirectional"/>
   </div>
</asp:Content>
<asp:Content ContentPlaceholderID="PlaceHolderMain" runat="server">
   <SharePointWebControls:CssRegistration name="<% $SPUrl:~sitecollection/Style Library/~language/Core Styles/pageLayouts.css %>" runat="server"/>
   <table id="MSO_ContentTable" cellpadding="0" cellspacing="0" border="0" width="100%">
     <tr>
        <td>
           <div class="pageContent">
             <PublishingWebControls:RichHtmlField id="content" FieldName="PublishingPageContent" runat="server"/>
           </div>
        </td>
     </tr>
     <tr>
        <td style="padding-top: 5px;">
     <WebPartPages:WebPartZone runat="server" FrameType="None" AllowPersonalization="false" Title="<%$Resources:sps,LayoutPageZone_BottomZone%>" ID="MiddleLeftZone" Orientation="Vertical" QuickAdd-ShowListsAndLibraries="false" allowlayoutchange="false"><ZoneTemplate></ZoneTemplate></WebPartPages:WebPartZone> <!-- _locID@Title="L_MiddleLeftZone_Title" -->
        </td>
     </tr>
   </table>
   <PublishingWebControls:editmodepanel runat="server" id="editmodepanel1">
     <!-- Add field controls here to bind custom metadata viewable and editable in edit mode only.-->
     <table cellpadding="10" cellspacing="0" align="center" class="editModePanel">
        <tr>
           <td>
             <PublishingWebControls:RichImageField id="ContentQueryImage" FieldName="PublishingRollupImage" AllowHyperLinks="false" runat="server"/>
           </td>
           <td width="200">
             <asp:label text="<%$Resources:cms,Article_rollup_image_text%>" runat="server" />
           </td>
        </tr>
     </table>
   </PublishingWebControls:editmodepanel>
<script language="JavaScript">
  <!--
    function resizeFrame() {
      objFrame = document.getElementsByTagName("iframe").item(0);
      windowHeight = document.body.offsetHeight;
      headerHeight = absoluteTop(objFrame);
      iframeHeight = windowHeight - (headerHeight + footerHeight);
      if (iframeHeight >=0) { objFrame.style.height = iframeHeight};
      objFrame.style.border = "1px solid gray";
      objFrame.style.margin = "0px";
    }       function absoluteTop(objNode) {
      var currentNode=objNode;
      var sumTop=0;
      while(currentNode.tagName!="BODY"){
        sumTop+=currentNode.offsetTop;
        currentNode=currentNode.offsetParent;
      }
    return sumTop;
    }       function getFooterHeight() {
      objPlaceHolder = document.getElementById("ctl00_MSO_ContentDiv");
      footH = document.body.offsetHeight - (absoluteTop(objPlaceHolder) + objPlaceHolder.offsetHeight);
      return footH;
    }       var footerHeight = 30;
    window.attachEvent ("onresize", resizeFrame);
    window.attachEvent ("onload", resizeFrame);
  //  resizeFrame();
  //  footerHeight = getFooterHeight();
  // -->
</script>
</asp:Content>  

N’Joy!

Resizing an iFrame to it’s parent

November 17, 2008 Leave a comment

In some cases it’s not possible to use the style tags width and height to define the size of an object on a web page. This is typically the case when an inline frame is placed within a placeholder such as a <div> or a <td>. My approach to resolve this is to include a javascript which resizes the iframe based on it’s parents width and height.

The script is based on a Sharepoint 2007 collaboration page template and has a static reference to the page footer. If this should be used elsewhere, please modify the static object references in the code.

function resizeFrame() {
   objFrame = document.getElementsByTagName("iframe").item(0);
   windowHeight = document.body.offsetHeight;
   headerHeight = absoluteTop(objFrame);
   iframeHeight = windowHeight - (headerHeight + footerHeight);
   if (iframeHeight >=0) { objFrame.style.height = iframeHeight};
   objFrame.style.border = "1px solid gray";
   objFrame.style.margin = "0px";
}

function absoluteTop(objNode) {
   var currentNode=objNode;
   var sumTop=0;
   while(currentNode.tagName!="BODY"){
      sumTop+=currentNode.offsetTop;
      currentNode=currentNode.offsetParent;
   }
   return sumTop;
}   function getFooterHeight() {
   objPlaceHolder = document.getElementById("ctl00_MSO_ContentDiv");
   footH = document.body.offsetHeight - (absoluteTop(objPlaceHolder) + objPlaceHolder.offsetHeight);
   return footH;
}

var footerHeight = 30;
window.attachEvent ("onresize", resizeFrame);
window.attachEvent ("onload", resizeFrame);

N’Joy!

SaaS in real life

November 16, 2008 Leave a comment

First of all, I think SaaS (Software as a Service) is a great idea, but if the user experience is to be comparable to a client installed application it has to be at least as quick and at least as flexible as an application. I work quite a lot with collaborative solutions such as Sharepoint, and if I should suggest to use an online text editor or a spreadsheet, it would need to have the same integration and collaborative features as Office 2007. However, I have some difficulties imaging this feature rich integration from a SaaS, unless Microsoft joins the game.

Configuring a web application for proxy

October 2, 2008 Leave a comment

For some mysterious reason, the web proxy auto detect setting in the web.config file for a web application does not work that well. Thankfully it’s possible to specify proxy settings manually in the web.config file by adding the following entries in the <system.net> section:

<defaultProxy>
   <proxy proxyaddress="http://%5BServerIP%5D:%5BPort%5D&quot; bypassonlocal="true" />
   <bypasslist>
     <add address="myOwnDomain.com" />
   </bypasslist>
</defaultProxy>

To revert to the default auto detect setting, replace the section above with the following:

<defaultProxy>
    <proxy autoDetect="true" />
</defaultProxy>

N’Joy!

Norsk lovverk – en fiasko

August 31, 2008 Leave a comment
I henhold til norsk lov er det ikke lov å spille om penger. Ja, det vil si om du ikke heter "norsk tipping", som tilsynelatende får lov til å ha gambling på mer eller mindre hva som helst.
Nå kommer snart de mye omtalte spilleautomatene som norsk tipping skal utplassere, som i hehold til "ekspertene" ikke skal fremprovosere spillegalskap, noe de forrige automatene gjorde.
 
Spør du meg så spiller det ingen rolle hva slags automat som blir utplassert. I alle fall ikke for de som lider av spillegalskap. Det som er forsvarlige spillere synes kanskje ikke de nye automatene er morsomme nok, og velger å avstå. De som derimot har en indre trang til å spille, det vil si de med spillegalskap, vil trolig spille uansett hvor kjedelige automatene er.
 
Er dette virkelig en forbedring? Spør du meg så er det ikke det. Og som ikke det er nok at de spillegale fortsatt sliter, så får ingen av de som sårt trengte inntektene fra de gamle automatene noe støtte lenger. Merkelig.

High quality Sharepoint components

August 31, 2008 Leave a comment
Usually I don’t recommend commercial web sites and solutions, but in this case I will make an exception. Bamboo solutions has proven to deliver high quality web parts and Sharepoint solutions, but unfortunately with a high price as well.
 
I’ve used several of the web parts and solutions by Bamboo, and are very pleased. The only down side is that there’s limited customization capabilities and no language translation support.
 
Otherwise it’s great solutions and strongly recommended.
 
N’Joy!

%d bloggers like this: