Monday, March 31, 2008

MOSS: Favelets for SharePoint Management Pages

Favelets (or Bookmarklets) are javascript uris that when added as a Favorite (or Bookmark) perform an action on the current page or browser instance rather than navigating you to a particular location. (For a more comprehensive description, see wikipedia.)

I frequently use the Links or Bookmarks toolbar to add static shortcuts to MOSS admin pages, but since I move from project to project and from VPC to VPC, TI thought it might be useful to have a set of favelets that would act on any MOSS page and site.  So below are some of the links normally found in the Site Menu, they may or may not be useful to you:

(Note that these links will only work on MOSS pages (so not on this blog), and of course you'll need proper access to the admin pages in question.)

Labels: , , , ,

Wednesday, March 26, 2008

MOSS: Quote of the day

Ok - so actually it was the quote of the day on March 19, but...

'The unfortunate reality is that working directly with XML still requires a significant paradigm shift in the way most developers think.  With all the buzz about improving the SharePoint "developer experience", I keep thinking there must be a better way.'

John F. Holiday in SharePoint Reflection - Working with Content Types

Mr. Holiday then goes on to propose a very interesting Attribute and reflection based framework with the following lofty goals (emphasis mine):

    1. 'We want to make it easier to declare content types in code.
    2. 'We want to eliminate the need to work directly in CAML or XML.
    3. 'We want to use the same coding idioms we are used to when working with other code.
    4. 'We want to make it easier to write custom event receivers for our content types.
    5. 'We want to make it easier to associate sub-components like document templates and XML documents with our content types.
    6. 'We want to be able to build libraries of reusable components that can be leveraged across multiple projects easily.
    7. 'We want to enable DRM for content type components at the assembly level so that developers can protect their intellectual property.'

He then shows how to use this framework for creating Content Types and associated Site Columns.  VERY elegant.  Definitely worth a read (or watch the screencast).

I wish MS would go in this direction for SharePoint v.Next...

Labels: , , ,

MOSS: HTML Object Hierarchy

There's been many complaints about skinning/designing for SharePoint, and while some complaints can be debunked it's hard to argue that MOSS is not a mess, from an HTML object hierarchy standpoint.

I was looking at the InfoCision webpage, which is hosted in MOSS (or WSS - not sure), and I used the excellent View Source Chart Firefox extension to have a better look at the rendered HTML.

On a random content page, here is the path to the main content:

body > div > [table > tbody > tr > td] > [table > tbody > tr > td] > div > div > [table > tbody > tr > td] > [table > tbody  tr > td] > [table > tbody  tr > td] > div > p

According to Firebug, that poor paragraph tag is acted upon by no less than 12 - TWELVE - style sheet rules...  Debug that!

(This is not a rip on InfoCision's webpage - it's a nice example of customizing SharePoint's masterpages and themes to get a custom look and feel.) 

Labels: , ,

Tuesday, March 25, 2008

One OLPC XO For Sale

I decided to stop pretending I was ever going to use the XO and decided to let it go:

Update:  The XO is now sold...

Labels: , ,

MOSS: On Skinning SharePoint

Leon/fallenRogue has a lengthy blog post debunking some criticism on the difficulty of skinning SharePoint, and offers some good tips, one of which is below:

In order to make the application (/_layouts/) pages that are part of your SharePoint solution share the same look and feel as the rest of your custom pages:

“...craft a simple SharePoint Solution that installs an HttpModule to the Farm. This module will determine if the currently requested page is a: coming from layouts and b: from a site that has your feature for the admin master swap enabled. If it does… then in 1 line of glorious C# you can swap the master page to one of your choosing. The best part? It scales, it’s managed cleanly through admin sections and is future proof (or at least future compatible).”

Labels: , ,

Monday, March 24, 2008

Rapid for SharePoint Mini-Review: Pass.

So I decided to finally test Rapid For SharePoint, and I have to say the results were a bit underwhelming.

It does let you set up a Taxonomy for an entire site (collection), and then you simply add the classification column to your list(s) to add it.  (It also has other unrelated features that I was not interested in and are not reviewed here.)

For instance when I added my classification column to a blog list, when I edit a post, I get a new AJAX based pop up for editing the taxonomy of my posts (I called my Taxonomy Tags):


So far so good. But this taxonomy edit field does NOT appear on New items. And when you try to add the column to a doc lib you get the following warning:


Also, there is no OOTB way to view items by classification – apparently that has to be done through content queries.  And finally, there is like zero documentation.

Bottom line – It's free (for up to 100 terms), and you get slightly more than what you pay for, but IMO this adds too much complexity and overhead for what it gives us. We’d be better off looking at other solutions, or coming up with one of our own. 

I think I'll try CKS:TagCloud next.

Labels: , ,

Thursday, March 20, 2008

Office 2007 SP1: Obscure workaround for completing installation

I tried installing Office 2007 SP1 this morning, but no matter what I did, I got some variation of this error, conveniently 98% through the installation:

Product: Microsoft Office Enterprise 2007 -- Error 1935.An error occurred during the installation of assembly component {04E73476-518E-4B6A-8E10-021A00078847}. HRESULT: 0x80131047. assembly interface: IAssemblyCacheItem, function: Commit, assembly name: Microsoft.Office.Interop.RandomOfficeComponentHere,

The first time I got the error I googled and came across posts that said to repair Office 2007 first.  So I did that.   Then rebooted.  Tried again.  Another error.  Looking closer at the event log entry I saw that it pointed the finger at InfoPath, so I uninstalled InfoPath, rebooted, and tried again.  Same error, but now it pointed at PowerPoint.  I could see where this was heading - soon I'd have nothing left to upgrade...

Finally I found this series of posts; I am not sure which part of these two steps worked, but the following combination finally did:

  • I first started the Office Source Engine service (which was set to Manual).
  • I then inserted a CD in my DVD drive AND
  • mounted an ISO (the original Office 2007 ISO) in my Virtual CloneDrive virtual drive (this part may or may not be required, but I believe it is).

Installation complete.


Labels: , ,

Friday, March 14, 2008

Rant: 616-980-2143 calls cell phone, leaves computerized message. Over, and Over, and Over, and Over. And Over.

Clearly I'm not alone:

How the hell is this effective marketing?

Labels: , ,

Wednesday, March 12, 2008

Vista Rant: New install lasted 3 weeks

...almost, before coming to a whimpering halt.


I could interact with open windows, but could not shut down Outlook, or open Task Manager.

I am fairly certain that it is all due to some unholy union between Vista, Office 2007 (specifically Outlook), and the AntiVirus.


Why doesn't Vista's Task Manager have priority over normal tasks?  Note that Vista thinks two Task Manager instances are running.


(Ok, sure a hard reboot worked, but come on, MS.)

Labels: , ,

Tuesday, March 11, 2008

OLPC: XP on the XO

So, my OLPC XO has been sitting on top of a bookshelf gathering dust for the past 2 months.  Besides the low WAF, the device, in its current form just isn't useful for me.  This is less a criticism of the XO than an admission that I am not the target demographic.

That said, I would like to actually use the thing again.  My primary issues with it, as is, are (off the top of my head):

  • No battery life management (I can't make it sleep - I have to turn it off)
  • Browser (90% of my use) is kludgey
  • I strongly dislike the Sugar interface in general
  • The e-book format buttons are not currently useful - I want to browse the web in e-book format, can't do that now
  • ..and of course the neon green which my wife hates.  (I guess maybe I could paint it...)

That's why I welcome the news that MS is introducing a version of Windows for the XO.  It's hard NOT to improve on what's there at present.

But of course, time will tell whether a) I can get it, and b) it'll be any better.

Labels: , , ,

Wednesday, March 05, 2008

Microsoft Office Live Workspace - it's a Beta

This reminds me of the "old" joke:

Q: What's the difference between a Google Beta and  Microsoft Beta?
A: The Google one works.

Seriously, Microsoft Office Live Workspace Beta is NOT ready for prime time.  It breaks left and right, and documents saved using the Office Add-In do not show up on the site, and vice versa.  It's not at all clear how/where documents and notes are published to the world (or selected editors), it appears shared notes have gorgeous urls such as ZWEtOTM2NC1kNWRkYmZiYzMwZWIAexNNcSrC4klMmPClqr_ axD99e9iDDuoAk1lAgpXOMHVa0Gh9...  Say that 10 times fast...

That said, it is an intriguing offering.  TechCrunch claims it's a free public offering of SharePoint, but besides being Office related I have a hard time seeing any similarity to SharePoint.  Maybe MS uses SharePoint on the back-end, but the UX is completely different from any Sharepoint install I've ever seen or used.  The functionality is also trimmed down to a minute fraction of even WSS (which is also free, but you have to host it yourself, on Windows 2003 (or 2008) which of course is NOT free).

Though I'm not tempted to participate, it will be interesting to watch.

Labels: , ,

Tuesday, March 04, 2008

Office: Inserting Visio Diagrams in Word Documents

If you copy a drawing from Visio to Word, Word will insert it as a Visio drawing, which is quite bulky.

A better option is to save the drawing in Compressed Enhanced Metafile (*.emz) format, and then add it as a Picture to Word, as emz is a vector-based format that Word accepts.  Is it the best format to use?  <shrug/> I don't know - but it works well.

Below is the list of acceptable picture types from Word 2007 and the list of Save As types from Visio: Word Picture Types image

Labels: , ,

Sunday, March 02, 2008

Concept: The 'Serverless' Database-Driven Web Application

For some time now I've been intrigued with the notion of using free hosted services such as Google Base or Google Docs as back-end databases for simple consumer-oriented web applications.  I'm not sure what drives my fascination, other than an irrational but predictable attraction to anything free.

In any case, since the debut of Google Base it has been easy to offload the database itself to Google.  As long as your load is within a certain limit, Google is happy to take your data load.

It will also let you query and read data anonymously, so you can offload that process to each end-user's browser, through the JSON API and client side processing of the results

Ok, so, now we have:

  • DB and DB queries: hosted at Google
  • Reads and processing of read data: JS on Client
  • Presentation: JS/HTML on Client

What's missing?  Writes of course.  Google, probably wisely, have so far chosen to restrict Google Base writes and updates to authenticated users.  Which means you still needed some server code to handle POST requests and wrapping the request with authentication data.  Makes sense.  Right? 

Yes. Except they have now decided to open up Google Spreadsheets to accept data input through a Forms interface.  Which means it is now VERY possible to post data to Google anonymously - thereby removing the final need for your server-based code.  Granted - it's not Google Base, but for simple (non-relational) storage needs, Google Spreadsheet does quite nicely.

Take the following boring spreadsheet:
Reads are still simple GETS, and the querying can be done at Google (quite speedily, I might add):

So far this is pretty much the same as Google Base.  But it also accepts anonymous input from a form:

Go ahead and enter some data and go back to the spreadsheet - as you can see it is updated live.  This form can easily be faked in JS (though that may be against Google's Terms of Service).

Next time I have some serious downtime I'll have to reproduce in pure JS/Google format.  And then maybe wrap it up as an iGoogle and/or a Facebook widget...

Labels: , , , , ,