<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Siolon &#187; Tutorials</title>
	<atom:link href="http://www.siolon.com/blog/category/tutorials/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.siolon.com</link>
	<description>Musings on SharePoint, User Experience, and More</description>
	<lastBuildDate>Mon, 22 Apr 2013 17:32:50 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Sample Information Architecture Design Process for Migration</title>
		<link>http://www.siolon.com/blog/sample-information-architecture-design-process-for-migration/</link>
		<comments>http://www.siolon.com/blog/sample-information-architecture-design-process-for-migration/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 17:02:15 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Information Architecture]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[content analysis]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[mindjet]]></category>
		<category><![CDATA[mindmanager]]></category>

		<guid isPermaLink="false">http://www.siolon.com/?p=572</guid>
		<description><![CDATA[I was asked recently to give a talk on a topic of my speciality for the weekly SharePoint ShopTalk that I participate in (a weekly forum to ask SharePoint questions to consultants). I chose the topic of doing a fictional file share migration into SharePoint. I focused specifically on the creation of an information architecture<span class="continue-reading"> <a href="http://www.siolon.com/blog/sample-information-architecture-design-process-for-migration/">Continue Reading »</a></span>]]></description>
				<content:encoded><![CDATA[<p>I was asked recently to give a talk on a topic of my speciality for the weekly <a href="http://www.linkedin.com/groups?mostPopular=&amp;gid=3100222">SharePoint ShopTalk</a> that I participate in (a weekly forum to ask SharePoint questions to consultants). I chose the topic of doing a fictional file share migration into SharePoint. I focused specifically on the creation of an information architecture to meet the needs of the migrated content. In the video you’ll the kinds of questions and decisions necessary when embarking on such a crucial process.</p>
<p>You can also download the files I used in the presentation.</p>
<ul>
<li><a href="http://www.siolon.com/wp-content/files/IA_Sample.zip">PowerPoint and Mindmap from the video</a></li>
<li><a title="Sample MindMap for SharePoint Taxonomies" href="http://www.siolon.com/blog/sample-mindmap-for-sharepoint-taxonomies/">Sample taxonomy mindmap mentioned in video</a></li>
</ul>
<p><iframe src="http://player.vimeo.com/video/20344737" width="625" height="391" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/sample-information-architecture-design-process-for-migration/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using hMailServer with SharePoint</title>
		<link>http://www.siolon.com/blog/using-hmailserver-with-sharepoint/</link>
		<comments>http://www.siolon.com/blog/using-hmailserver-with-sharepoint/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 15:55:30 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[e-mail]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.siolon.com/?p=519</guid>
		<description><![CDATA[When testing and/or developing with SharePoint it is helpful to test and use e-mail functionality. You might be working on a workflow or want to demonstrate alerts to potential stakeholders, and it would be nice to do this in your testing environment. The problem is that traditionally Exchange is used for this activity, and when<span class="continue-reading"> <a href="http://www.siolon.com/blog/using-hmailserver-with-sharepoint/">Continue Reading »</a></span>]]></description>
				<content:encoded><![CDATA[<p>When testing and/or developing with SharePoint it is helpful to test and use e-mail functionality. You might be working on a workflow or want to demonstrate alerts to potential stakeholders, and it would be nice to do this in your testing environment. The problem is that traditionally Exchange is used for this activity, and when you’re in a testing environment adding the bloat of Exchange to an environment that is already nearly maxed isn’t an option. Enter <a href="http://www.hmailserver.com/">hMailServer</a>.</p>
<p>hMailServer is a full featured e-mail server, but we’re just going to use it for e-mail relay (SMTP) (I <a href="http://weblogs.asp.net/wesleybakker/archive/2010/08/09/configure-hmailserver-for-sharepoint.aspx">found a post</a> with supposedly a VB script for specifying the drop folder for incoming e-mail but haven’t worked with it). This is also only a good idea for <em>testing </em>purposes. While I don’t see why hMailServer cannot be used for deployments (albeit small ones) it still isn’t advisable. Most likely if you’re implementing SharePoint in your enterprise then you’re already drinking the Exchange juice so just use that.</p>
<h3>Installing and Configuring hMailServer</h3>
<p>1. First you’ll want to download <a href="http://www.hmailserver.com/index.php?page=download">hMailServer</a>.</p>
<p>2. Start the install.</p>
<p>3. Move through the prompts, but choose full installation when asked.</p>
<p>4. It will then bring you to a screen asking you about the database to use. Since we’re already running SQL Server for SharePoint let’s use that so select “External Database Engine.” (Clicking the images will magnify them.)</p>
<div id="attachment_520" class="wp-caption alignleft" style="width: 310px"><a href="http://www.siolon.com/wp-content/uploads/hmail_dbase.png"><img class="size-medium wp-image-520" title="Specify Database Engine" src="http://www.siolon.com/wp-content/uploads/hmail_dbase-300x230.png" alt="Specify Database Engine" width="300" height="230" /></a><p class="wp-caption-text">Specify Database Engine</p></div>
<p>5. After finishing the install it will open up a database wizard. The first option we’re giving is the database instance. Select the option to  create a new hMailServer database.</p>
<div id="attachment_521" class="wp-caption alignleft" style="width: 310px"><a href="http://www.siolon.com/wp-content/uploads/hmail_dbwiz.png"><img class="size-medium wp-image-521" title="Create Database" src="http://www.siolon.com/wp-content/uploads/hmail_dbwiz-300x192.png" alt="Create Database" width="300" height="192" /></a><p class="wp-caption-text">Create Database</p></div>
<p>6. Then it will ask for information to connect to your database instance. The database server address is most likely your computer name (contoso for me), and then choose whatever you want to call the database. Lastly, choose the Windows authentication option for authentication mechanism (most likely the account you’re using has the dbowner role on SQL Server but if not add it).</p>
<div id="attachment_522" class="wp-caption alignleft" style="width: 310px"><a href="http://www.siolon.com/wp-content/uploads/hmail_dbwiz2.png"><img class="size-medium wp-image-522" title="Server Connection Info" src="http://www.siolon.com/wp-content/uploads/hmail_dbwiz2-300x191.png" alt="Server Connection Info" width="300" height="191" /></a><p class="wp-caption-text">Server Connection Info</p></div>
<p>7. Then you will be prompted to select the service instance. Select the SQL Server (MSSQLSERVER) service.</p>
<div id="attachment_523" class="wp-caption alignleft" style="width: 310px"><a href="http://www.siolon.com/wp-content/uploads/hmail_dbwiz3.png"><img class="size-medium wp-image-523" title="Service Instance Selection" src="http://www.siolon.com/wp-content/uploads/hmail_dbwiz3-300x192.png" alt="Service Instance Selection" width="300" height="192" /></a><p class="wp-caption-text">Service Instance Selection</p></div>
<p>8. Move through the next screens (it will provision the database), and then lastly you will be prompted to specify a password for the admin account. Add one and finish the wizard.</p>
<p>9. Next it will open the hMailServer administrative interface. Login and expand the following nodes: Settings — Advanced — IP Ranges. Highlight My computer. Then specify 0.0.0.0 as the Lower IP and 255.255.255.255 as the Upper IP.</p>
<div id="attachment_525" class="wp-caption alignleft" style="width: 310px"><a href="http://www.siolon.com/wp-content/uploads/hmail_ip.png"><img class="size-medium wp-image-525" title="IP Relay Configuration" src="http://www.siolon.com/wp-content/uploads/hmail_ip-300x224.png" alt="IP Relay Configuration" width="300" height="224" /></a><p class="wp-caption-text">IP Relay Configuration</p></div>
<p>10. Now click on Domain in the navigation panel. Here you’ll add a domain. I chose my computer name (with a .com suffix), and then click advanced and specify a catch-all e-mail address. You can then exit the hMailServer administration interface.</p>
<p>11. Next open Central Administration. We will now specify the outgoing e-mail settings by clicking on the System Settings header on the splash page and then choosing “Configure outgoing e-mail settings.”</p>
<p>12.For the “Outbound SMTP server” put in your computer name, and I put in my catch-all e-mail address for the “From address” and “Reply-to address.” Save your change.</p>
<div id="attachment_526" class="wp-caption alignleft" style="width: 310px"><a href="http://www.siolon.com/wp-content/uploads/hmail_cadminemail.png"><img class="size-medium wp-image-526" title="Central Admin E-mail Settings" src="http://www.siolon.com/wp-content/uploads/hmail_cadminemail-300x186.png" alt="Central Admin E-mail Settings" width="300" height="186" /></a><p class="wp-caption-text">Central Admin E-mail Settings</p></div>
<p>13. Lastly, I tested it by adding a user to a site with an e-mail specified in AD, and it worked!</p>
<div id="attachment_524" class="wp-caption alignleft" style="width: 310px"><a href="http://www.siolon.com/wp-content/uploads/hmail_email.png"><img class="size-medium wp-image-524" title="E-mail Success!" src="http://www.siolon.com/wp-content/uploads/hmail_email-300x131.png" alt="E-mail Success!" width="300" height="131" /></a><p class="wp-caption-text">E-mail Success!</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/using-hmailserver-with-sharepoint/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Adding Edit Dialog to a Data Form Web Part</title>
		<link>http://www.siolon.com/blog/adding-edit-dialog-to-a-data-form-web-part/</link>
		<comments>http://www.siolon.com/blog/adding-edit-dialog-to-a-data-form-web-part/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 18:55:02 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[data form]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[page]]></category>
		<category><![CDATA[SharePoint Designer]]></category>
		<category><![CDATA[wcm]]></category>
		<category><![CDATA[web part]]></category>

		<guid isPermaLink="false">http://www.siolon.com/?p=316</guid>
		<description><![CDATA[A client asked me to create a roll-up of some document libraries, and I decided to exercise the data form web part. It worked fine until I was asked why he got an open/save dialog and not the standard SharePoint read-only/edit dialog from document libraries as to the right. After some help from some Twitter<span class="continue-reading"> <a href="http://www.siolon.com/blog/adding-edit-dialog-to-a-data-form-web-part/">Continue Reading »</a></span>]]></description>
				<content:encoded><![CDATA[<div id="attachment_321" class="wp-caption alignright" style="width: 115px"><a href="http://www.siolon.com/wp-content/uploads/context.png"><img class="size-thumbnail wp-image-321" title="Edit Dialog" src="http://www.siolon.com/wp-content/uploads/context-150x150.png" alt="Edit Dialog" width="105" height="105" /></a><p class="wp-caption-text">Edit Dialog</p></div>
<p>A client asked me to create a roll-up of some document libraries, and I decided to exercise the data form web part. It worked fine until I was asked why he got an open/save dialog and not the standard SharePoint read-only/edit dialog from document libraries as to the right.</p>
<p>After some help from some Twitter folk (@<a href="http://twitter.com/zaijian">zaijian </a>and @<a href="http://twitter.com/gvaro">gvaro</a>) it was made evident that there is some JavaScript that surrounds the anchors in the document library.  After comparing AllItems.aspx to my custom page I saw the JavaScript not included. I then added the JavaScript references around my XSL, and sure enough I got the dialog!</p>
<p>I tried to go one step farther and the whole context menu, but I was only able to get portions of us such as the gold hover bar. I know there were some hidden divs the JavaScript used, but alas I had other work to move onto. If anyone has experience with adding the whole context menu I’d be glad to add it here for others.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;a onclick=&quot;return DispEx(this,event,'TRUE','FALSE','TRUE','SharePoint.OpenDocuments.3','0','SharePoint.OpenDocuments','','','','110','0','0','0x7fffffffffffffff')&quot; href=&quot;{@FileRef}&quot; onfocus=&quot;OnLink(this)&quot;&gt;&lt;xsl:value-of select=&quot;@FileLeafRef&quot; /&gt;&lt;/a&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/adding-edit-dialog-to-a-data-form-web-part/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Faking Exchange Support in OS X Leopard</title>
		<link>http://www.siolon.com/blog/faking-exchange-support-in-os-x-leopard/</link>
		<comments>http://www.siolon.com/blog/faking-exchange-support-in-os-x-leopard/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 06:04:38 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[exchange]]></category>
		<category><![CDATA[ical]]></category>
		<category><![CDATA[Life Hacks]]></category>
		<category><![CDATA[mail.app]]></category>
		<category><![CDATA[os x]]></category>
		<category><![CDATA[outlook]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://www.siolon.com/?p=217</guid>
		<description><![CDATA[I recently took the plunge and bought the new MacBook Pro (well my company bought it for me).  The workflow is completely different and frustrating at times, but when you get the hang of it it’s worth it. My iPhone experience was so positive that became a victim of the “iPhone Halo.” That being said,<span class="continue-reading"> <a href="http://www.siolon.com/blog/faking-exchange-support-in-os-x-leopard/">Continue Reading »</a></span>]]></description>
				<content:encoded><![CDATA[<p>I recently took the plunge and bought the new MacBook Pro (well my company bought it for me).  The workflow is completely different and frustrating at times, but when you get the hang of it it’s worth it. My iPhone experience was so positive that became a victim of the “<a href="http://blogs.eweek.com/applewatch/content/mac_os_x/the_iphone_halo_effect.html">iPhone Halo</a>.”</p>
<p>That being said, making the migration is painful in some areas. One of which was how I handle the lack of productivity software I had in Windowsâ€”namely Microsoft Outlook.  As I search around there are a few options in attempting to tackle this problem.</p>
<ol>
<li>Use <a href="http://www.vmware.com/products/fusion/">VMWare Fusion</a> or <a href="http://www.codeweavers.com/products/cxmac/">Crossover</a> to load Windows and then Outlook.</li>
<li>Use Microsoft Entourage.</li>
<li>Find a way to use the native OS X applications (iCal, Mail.app, and Address Book).</li>
</ol>
<h3>Using Virtualization Technology</h3>
<p>This seems straight forward enough on the surface, but on the inside it’s fraught with problems.  First, the idea of using a virtual machine to load productivity software doesn’t seem, well, productive.  This is especially true when I have to dedicate a gig of precious memory to the VM (granted I have 4 GB).  I tried it, and I was able to use it without problem but I wasn’t happy with this option.  I became discontent with it when I started using Mail.app for my personal e-mail. I love the simplicity of the application, and I wanted to use it full time.  I should say I tried Crossover, and I didn’t like it at all. VMWare’s unity feature is far better.</p>
<h3>Use Microsoft Entourage</h3>
<p>I went out and got a license of MS Office 2008 for Mac.  Word, Excel, and PowerPoint aren’t bad, but they pale in their Windows counterparts. After using the ribbon for so long now I love it. Office 2008 has a “ribbon” of sorts, and it’s not that bad. For quick document work it works fine. If I need more then I can use my virtual machine. However, this isn’t the case for Entourage.</p>
<p>Microsoft Entourage has to be one of the worst e-mail clients I’ve ever used. Sure, it connects to Exchange without a problem, but when you have expectations it will work like Outlook it is very disappointing.  I tried it for a while, and I decided it simply doesn’t cut it. The way you add recipients in e-mail is awful, and I quickly found out that you can’t do HTML e-mail in Entourage which means no embedded links. Epic fail. I hated it, and it made me look to the third option.</p>
<h3>Faking Exchange Support</h3>
<p>I say “faking,” because the support isn’t native to the OS X apps. Recently, Apple unveiled that the next version of the OS dubbed “<a href="http://www.apple.com/macosx/snowleopard/">Snow Leopard</a>” will have native support for Exchange 2007 in their apps similar to the iPhone (which I use without complaint). But right now my company uses Exchange 2003 which I don’t know if it will be support in Snow Leopard, and it isn’t to be released until next summer.  That leaves a long time for frustration. Surely, there must be a way to do this right?</p>
<p>After searching extensively I discovered I’m not the only who has struggled through this. What surprises me even more is the lack of a third party vendor to fill this void. I would’ve happily paid several hundred dollars for this, but there is nothing out there to accomplish this. It is obvious that only until recently is Apple taking the enterprise environment seriously with Exchange support (no matter how much they may despise it).  I fortunately was able to find a solution in the mean time. Here is my recipe:</p>
<h4>Ingredients</h4>
<ol>
<li>Microsoft Entourage (bear with me)</li>
<li>Mail.app</li>
<li>IMAP enabled in Exchange</li>
<li><a href="http://foggynoggin.com/dockdodger">Dock Dodger</a></li>
</ol>
<h4>Preparation</h4>
<div id="attachment_218" class="wp-caption alignright" style="width: 130px"><a href="http://www.siolon.com/wp-content/uploads/preferences.png"><img class="size-thumbnail wp-image-218" title="Entourage Preferences" src="http://www.siolon.com/wp-content/uploads/preferences-150x150.png" alt="The preferences pane in Entourage" width="120" height="120" /></a><p class="wp-caption-text">The preferences pane in Entourage</p></div>
<p>I discovered that Entourage supports sync services to send calendar events and contacts to the native OS X programs. OK, this is a good start.  As you can see in the screenshot go to Entourage — Preferences and select Sync Services in the left panel.  Then check both boxes to send calender events and contacts to the native applications.  This will via a background service take care of the synchronization from the native apps to Exchange. When you select the option to sync you will receive a prompt, and you will want to choose “Merge Entourage items with Sync Services items” which will allow bi-directional sync between the two. So if you add an event in iCal it will go to Entourage and then Exchange, and if I add an event in my iPhone it will go from Exchange to Entourage to iCal. Not pretty but it works.</p>
<p>Then we have the e-mail issue. This was by far the most difficult and frustrating part. When you create accounts in Mail.app it allows you to create Exchange accounts which is a misnomer. What it means is it will attempt to use Outlook Web Access to send/receive, but it also means you’ll be really using IMAP on an Exchange server.</p>
<p>I <a href="http://www.isaserver.org/img/upl/exchangekit/2003secureimap4/2003secureimap4.htm">found an article</a> which outlines setting up IMAP on Exchange. I had to sweet talk my boss, and he sympathized and helped.  They set up IMAP (Exchange is above me), and that led me to now getting closer to being free of Entourage.  When you set up an account under the Exchange heading you’ll be asked to specify a mail server (such as mail.yourdomain.com) which will come from your Exchange admin. You will also give it the address where you access Outlook Web Access (your webmail address). I was then able to successfully download messages. I had some problems with SMTP. My company uses RPC over HTTPS to connect so I had to use the Password option and specified my credentials (for the username I had to use domain\username).  Then I was up and running!</p>
<h4>Cleaning Up</h4>
<p>Now it’s working. It’s not pretty, but I wasn’t expecting it to be. It was a utilitarian effort, and it succeeded in accomplishing my goal. But it wasn’t as seamless as I wanted. Entourage would always show up in the dock and also the application switcher. Now I never want to see Entourage anywhere, and I found Dock Dodger. This is a freeware program that removes running applications from the dock and application switcher. By simply dragging the Entourage icon into the app it removed it. Before I did that I click on the icon in the dock and decided to open it at login (as I’ll always need it).</p>
<p>You’ll also notice dialogue windows for the send/receive. I haven’t found a way to completely remove them, but if you close it when it’s running it will go away. Unfortunately, on reboot it comes back. I hope to find an answer to get rid of the dialogue.</p>
<h3>Concluding Thoughts</h3>
<p>I can now use the native apps, and I am up and running. Entourage now uses around ~75 MB of memory which is much better than the 1 GB option with VMWare Fusion.  I am happy for now, and I look forward to Snow Leopard when I can completely axe Entourage from my life.</p>
<p>I would like to thank <a href="http://www.nickdawson.net/">Nick Dawson</a> (my Pownce buddy) for empathizing with my struggle and pointing me in the direction I needed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/faking-exchange-support-in-os-x-leopard/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>The Pains of Altering the SharePoint UI</title>
		<link>http://www.siolon.com/blog/the-pains-of-altering-the-sharepoint-ui/</link>
		<comments>http://www.siolon.com/blog/the-pains-of-altering-the-sharepoint-ui/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 00:42:31 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[branding]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[master pages]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.siolon.com/?p=192</guid>
		<description><![CDATA[I was recently tagged to “brand” a SharePoint installation for Hirsch Pipe &#38; Supply Co.  I knew it would be an interesting challenge, but I had no idea how bad it truly would be. SharePoint is built on ASP.NET 2.0 which I had worked with in my previous job. I found ASP.NET very powerful and<span class="continue-reading"> <a href="http://www.siolon.com/blog/the-pains-of-altering-the-sharepoint-ui/">Continue Reading »</a></span>]]></description>
				<content:encoded><![CDATA[<div id="attachment_191" class="wp-caption alignright" style="width: 178px"><a href="http://www.siolon.com/wp-content/uploads/hirsch.png"><img class="size-medium wp-image-191" title="Hirsch Pipe and Supply Co." src="http://www.siolon.com/wp-content/uploads/hirsch-300x155.png" alt="Hirschs Branding Effort" width="168" height="87" /></a><p class="wp-caption-text">Hirsch’s Branding Effort</p></div>
<p>I was recently tagged to “brand” a SharePoint installation for <a href="http://www.hirsch.com/">Hirsch Pipe &amp; Supply Co</a>.  I knew it would be an interesting challenge, but I had no idea how bad it truly would be.</p>
<p>SharePoint is built on ASP.NET 2.0 which I had worked with in my previous job. I found ASP.NET very powerful and flexible. Master pages, App_Themes, <a href="http://www.asp.net/CssAdapters/">CSS Friendly Adapters</a>, and more made working on ASP.NET interfaces relatively painless.  Knowing that SharePoint utilized master pages I thought it would be much easier than it was.  However, it turned out to not be the case.</p>
<h3>The Default Master Page</h3>
<p>I was immediately struck by the mess that is the default master page.  The master page is laid out with, of course, tables which is reminiscent of why Microsoft is such a joke in the designer world.  Well, I decided to rip out the tables, and surely that would make it easier right?  No.  It turns out that SharePoint only uses one standard ASP.NET control (the navigation control), and the rest are SharePoint specific “delegate” controls which made layouts with CSS difficult.  These are of course stored on the file system, and the only way to edit them is to create painful features.  It looked as though I was stuck with extensive tables for much of the layout.</p>
<p>When I did yank out much of the table layouts it only opened up a headache down the road.  It was actually more painful to try and layout it with CSS then just sticking with the table layouts.  What made it difficult are the extensive nuances in the SharePoint interface that are dependent on others.  For instance, I would lay it out in CSS, but when I went to edit the page to add web parts everything went awry due to dependencies on extensive tables for layout.  I was able to lay out the majority of the default master page with CSS, but I ended up reverting to tables for the main content area due to pain after pain. I did go with Heather Solomon’s <a href="http://www.heathersolomon.com/blog/articles/BaseMasterPages.aspx">minimal base master page for publishing sites</a> which was a better start then I had.</p>
<h3>The CSS</h3>
<p>The fun doesn’t stop there.  SharePoint has a core stylesheet that is over 4,000 lines long.  I’ve dealt with more styles in one shot, but looking at the stylesheet you would think a 10th grader created them.  There is a lack of shorthand, units of measure, and extensive IE proprietary styles.  Add onto the fact there are no comments in the stylesheet it is absolutely useless to attempt to decode it.  You also can’t simply remove the core styles; well, you could, but it’s another headache that is ultimately not worth tackling.  It’s again easier to deal with the bad then try to make it better.</p>
<p>SharePoint does allow you to specify an alternate stylesheet which does, thankfully, get rendered after the core styles.  The cascade becomes your best friend in altering the styles.  You’ll also notice the “classitis” that abounds in the master page and core styles.  They all have a prefix of ms– which is unneeded and unhelpful.  I wasn’t surprised to find a lack of advanced CSS 2 selectors due to the pressure to support IE 6, but they are hardly any descendant selectors which would drastically decrease the amount of classes in the markup.</p>
<h3>The JavaScript</h3>
<p>I know Microsoft is now <a href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx">supporting jQuery</a> which we can only hope will reduce the amount of “obtrusive” JavaScript through the site.  It reminds me of how I wrote JavaScript back in the day.  Attempting to decode the core JavaScript is a puzzle I didn’t even attempt.  You are once again forced to use proprietary JavaScript instead of taking it on to write it any better.  If they did abstract the obtrusive JavaScript it would drastically decrease the complexity of the markup sent to the browser. I did end up using jQuery to set the size of certain divs, and I also attempted to clone() and append() DOM elements but it proved fruitless.</p>
<h3>Hope for SharePoint vNext</h3>
<p>I hope, first that I never have to alter the SharePoint UI again, but that the next version of SharePoint will construct a better default UI with the following changes.</p>
<ol>
<li>Use CSS for layouts.</li>
<li>Ditch the delegate controls to use more of the standard ASP.NET controls (or at least improve them).</li>
<li>Use a well-commented core CSS file with advanced selectors to eliminate the need for classes.</li>
<li>Switch to an unobtrusive JavaScript model.</li>
<li>An increased focus on accessibility for public-facing sites.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/the-pains-of-altering-the-sharepoint-ui/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Contributions to End User SharePoint</title>
		<link>http://www.siolon.com/blog/contributions-to-end-user-sharepoint/</link>
		<comments>http://www.siolon.com/blog/contributions-to-end-user-sharepoint/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 01:39:37 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Adoption]]></category>
		<category><![CDATA[contribution]]></category>
		<category><![CDATA[Resources]]></category>

		<guid isPermaLink="false">http://www.siolon.com/?p=139</guid>
		<description><![CDATA[When I started becoming interested in the SharePoint world I was immediately drawn to the end-user adoption of the technology. I came across Mark Miller’s blog EndUserSharePoint.com, and I was instantly hooked in. The articles stay away from the ethereal issues that implementers get caught in and stick with the questions that are pertinent to<span class="continue-reading"> <a href="http://www.siolon.com/blog/contributions-to-end-user-sharepoint/">Continue Reading »</a></span>]]></description>
				<content:encoded><![CDATA[<p>When I started becoming interested in the SharePoint world I was immediately drawn to the end-user adoption of the technology.  I came across Mark Miller’s blog <a href="http://endusersharepoint.com/">EndUserSharePoint.com</a>, and I was instantly hooked in.  The articles stay away from the ethereal issues that implementers get caught in and stick with the questions that are pertinent to users that are actually using the application.</p>
<p>I contacted Mark to contribute to his fantastic catalog of contributors, and he passed some my way.  In the last week I handled questions from two users already!  One deals with a technical use of the technology and another asks for advice in encouraging adoption by end users.  Please check them out as well as subscribe to Mark’s blog!</p>
<ul>
<li><a href="http://www.endusersharepoint.com/?p=365">How can I restrict views to the contributor’s content, only?</a></li>
<li><a href="http://www.endusersharepoint.com/?p=374">How do I get End Users to start using SharePoint?</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/contributions-to-end-user-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Browsing SharePoint Sites in Firefox With IE Tab</title>
		<link>http://www.siolon.com/blog/browsing-sharepoint-sites-in-firefox-with-ie-tab/</link>
		<comments>http://www.siolon.com/blog/browsing-sharepoint-sites-in-firefox-with-ie-tab/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 01:14:40 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[internetexplorer]]></category>

		<guid isPermaLink="false">http://www.siolon.com/?p=137</guid>
		<description><![CDATA[I don’t hate Internet Explorer. I do hate version 6, but 7 was better, and 8 looks blockbuster. But due to the incredible extensions available in Firefox I’m a big fan. The problem is that browsing SharePoint sites in something other than Internet Explorer proves to be a less than perfect experience. With the IE<span class="continue-reading"> <a href="http://www.siolon.com/blog/browsing-sharepoint-sites-in-firefox-with-ie-tab/">Continue Reading »</a></span>]]></description>
				<content:encoded><![CDATA[<p>I don’t hate Internet Explorer.  I do hate version 6, but 7 was better, and 8 looks blockbuster.  But due to the incredible extensions available in <a href="http://getfirefox.com/">Firefox</a> I’m a big fan.  The problem is that browsing SharePoint sites in something other than Internet Explorer proves to be a less than perfect experience.</p>
<p>With the <a href="https://addons.mozilla.org/en-US/firefox/addon/1419">IE Tab Firefox extension</a> we can browse SharePoint sites inside the Firefox interface on demand without having to open IE.  Here is a short screencast on how to do it.</p>
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="551" height="485" align="center"><param name="movie" value="http://content.screencast.com/bootstrap.swf"></param><param name="quality" value="high"></param><param name="bgcolor" value="#FFFFFF"></param><param name="flashVars" value="thumb=http://content.screencast.com/media/1b2a1795-f386-409e-bb2f-21ffebe76215_4ca41b08-15fb-4bd7-bade-d137faa11398_static_0_0_Thumbnail.gif&#038;content=http://content.screencast.com/media/70fedde4-5d6c-49bd-b6c6-4addf1a7ffb3_4ca41b08-15fb-4bd7-bade-d137faa11398_static_0_0_2008-06-02_2109.swf&#038;width=551&#038;height=485"></param><param name="allowFullScreen" value="true"></param><param name="scale" value="showall"></param><param name="allowScriptAccess" value="always"></param>  <embed src="http://content.screencast.com/bootstrap.swf" quality="high" bgcolor="#FFFFFF" width="551" height="485" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/media/1b2a1795-f386-409e-bb2f-21ffebe76215_4ca41b08-15fb-4bd7-bade-d137faa11398_static_0_0_Thumbnail.gif&#038;content=http://content.screencast.com/media/70fedde4-5d6c-49bd-b6c6-4addf1a7ffb3_4ca41b08-15fb-4bd7-bade-d137faa11398_static_0_0_2008-06-02_2109.swf&#038;width=551&#038;height=485" allowFullScreen="true" scale="showall"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/browsing-sharepoint-sites-in-firefox-with-ie-tab/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Better SEO Titles in WordPress 2.5</title>
		<link>http://www.siolon.com/blog/better-seo-titles-in-wordpress-25/</link>
		<comments>http://www.siolon.com/blog/better-seo-titles-in-wordpress-25/#comments</comments>
		<pubDate>Sun, 30 Mar 2008 17:42:27 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Findability]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[titles]]></category>

		<guid isPermaLink="false">http://www.siolon.com/?p=123</guid>
		<description><![CDATA[A bane of WordPress development for a long time were the awful titles generated for blog posts. In this post I discuss some PHP code to generate better titles for your WordPress blog.]]></description>
				<content:encoded><![CDATA[<p>A bane of WordPress development for a long time were the awful titles generated for blog posts.  When I speak of this I’m talking about the order of the blog title and the post title are put together.  An example of this can be found below.</p>
<p><img class="aligncenter size-full wp-image-124" title="badtitles" src="http://www.siolon.com/wp-content/uploads/badtitles.png" alt="Bad Title" width="483" height="100" /></p>
<p>And this example is better than other’s I’ve seen.  On some sites where the blog/post title is long then the post title is truncated!  This is unacceptable when search engines give so much weight to the content of your post titles.</p>
<p>For a long time I circumvented this behavior by using the <a href="http://elasticdog.com/2004/09/optimal-title/">Optimal Title plugin</a>.  It worked fine, but it was yet another plugin for something that should’ve been inside the core.  So I opened ticket <a href="http://trac.wordpress.org/ticket/4407">#4407</a> to integrate the plugin architecture into the core.  I created a patch, and it became changeset <a href="http://trac.wordpress.org/changeset/6538">6,538</a>!  In short, I added a parameter into wp_title() that sets the location of the separator.  By default, it goes to the left, but you can move it to the right by specifying it.  If you don’t specify anything it defaults to the legacy behavior of going to the left.</p>
<p>This is the code you can now use to generate sexy SEO titles:</p>
<pre class="brush: php; title: ; notranslate">&lt;?php wp_title('&amp;raquo;',true,'right'); ?&gt; &lt;?php bloginfo('name'); ?&gt;</pre>
<p>This will print: Post/Page Title » Blog Name.  By ensuring that you specify meaningful titles for your postings then you can ensure that your findability will increase.  The <a href="http://codex.wordpress.org/Template_Tags/wp_title#Separator_with_Blog_Name_and_Title_Reversed">official documentation on this function</a> has also been updated to include this change.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/better-seo-titles-in-wordpress-25/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Form Layouts With CSS</title>
		<link>http://www.siolon.com/blog/form-layouts-with-css/</link>
		<comments>http://www.siolon.com/blog/form-layouts-with-css/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 17:41:10 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.siolon.com/2008/form-layouts-with-css/</guid>
		<description><![CDATA[Laying out forms with Cascading Style Sheets (CSS) is a complex topic. In light of many developers doing their first overall CSS layouts they often bail when it comes to laying out forms with CSS and avoiding both tables and line breaks. The code example shows the following: Well-formed, semantic markup CSS for layout and<span class="continue-reading"> <a href="http://www.siolon.com/blog/form-layouts-with-css/">Continue Reading »</a></span>]]></description>
				<content:encoded><![CDATA[<p>Laying out forms with Cascading Style Sheets (CSS) is a complex topic.  In light of many developers doing their first overall CSS layouts they often bail when it comes to laying out forms with CSS and avoiding both tables and line breaks.  The <a href="http://www.siolon.com/wp-content/uploads/cssformlayout.html">code example</a> shows the following:</p>
<ol>
<li>Well-formed, semantic markup</li>
<li>CSS for layout and presentation</li>
<li>Ensure that the form is both usable (easy to read/use) and presentable</li>
<li>No tables or line breaks</li>
</ol>
<p>To avoid the line breaks we simply use the CSS “clear” property.  This property says: “clear all floated elements to the x side of me”.  So for clear: left; means that there should be no floated elements to the left of the element, and I use this in laying out the form.</p>
<p>Here is the CSS, but be sure to check out <a href="http://www.siolon.com/wp-content/uploads/cssformlayout.html">the full example</a>.</p>
<pre class="brush: css; title: ; notranslate">

body {
font: 13px &quot;Myriad Pro&quot;, serif;
}
fieldset {
width: 300px;
padding: 10px;
}
legend {
font-weight: bold;
}
label, select, textarea, input {
float: left;
font: inherit;
border: 1px solid #ccc;
margin-bottom: 15px;
}
fieldset *:hover, fieldset *:focus {
background-color: #eee;
}
label:hover, legend:hover {
background-color: transparent;
}
label {
width: 75px;
clear: left;
font-weight: bold;
border: none;
}
input[type=&quot;submit&quot;] {
clear: left;
margin-top: 10px;
margin-left: 75px;
}
textarea {
width: 200px;
height: 75px;
}

</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/form-layouts-with-css/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>jQuery: JavaScript That Doesn’t Suck</title>
		<link>http://www.siolon.com/blog/jquery-javascript-that-doesnt-suck/</link>
		<comments>http://www.siolon.com/blog/jquery-javascript-that-doesnt-suck/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 03:44:02 +0000</pubDate>
		<dc:creator>Chris Poteet</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[effects]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.siolon.com/2008/jquery-javascript-that-doesnt-suck/</guid>
		<description><![CDATA[I hate JavaScript. I mean I really hate JavaScript. Dealing with different implementations of the DOM between browsers is a menace I couldn’t duplicate if I tried. I’ve tried JS libraries from Mootools, script.aculo.us, and so on until recently. I knew jQuery existed, but I didn’t realize how powerful the language was until recently. When<span class="continue-reading"> <a href="http://www.siolon.com/blog/jquery-javascript-that-doesnt-suck/">Continue Reading »</a></span>]]></description>
				<content:encoded><![CDATA[<p>I hate JavaScript.  I mean I really hate JavaScript.  Dealing with different implementations of the DOM between browsers is a menace I couldn’t duplicate if I tried.  I’ve tried JS libraries from Mootools, script.aculo.us, and so on until recently.</p>
<p>I knew <a href="http://jquery.com">jQuery</a> existed, but I didn’t realize how powerful the language was until recently.  When I realized I could select and manipulate DOM elements with CSS selectors then I was off to the races!  I love how it’s tailored for designers who already understand that syntax.  There is no more getElementById(“search”) or other garbage, because I can write this.</p>
<pre class="brush: jscript; title: ; notranslate">
$(&quot;search&quot;).show();
</pre>
<p>Now, that is elegant!  The only thing more impressive then the way it does selectors is how extensive the API is.  Not only is extensive, but it is actually understandable.  It’s the perfect balance between extensibility and ease of use.  It’s like adding Mootools and script.aculo.us together with better DOM selectors.</p>
<h4>Toggle Goodness</h4>
<p>I love JavaScript toggles and its variations.  It’s much more elegant that simply changing an element from display “none” to “block.”  jQuery comes with an easy way to toggle elements, and I recently did something like this at work.  </p>
<pre class="brush: jscript; title: ; notranslate">
$(&quot;.click&quot;).click(function() {
        $(&quot;.toggle&quot;).slideToggle(&quot;fast&quot;);
	return false;
});
</pre>
<h4>Ajax With jQuery</h4>
<p>jQuery doesn’t stop there.  Doing Ajax is simpler than it seems it should be.  Here’s a function that onclick will do a GET via Ajax and return a message notifying the user that the request was successful.</p>
<pre class="brush: jscript; title: ; notranslate">
$(&quot;.ajax&quot;).click(function() {
	$.ajax({
    		type: &quot;GET&quot;,
    		url: &quot;load.html&quot;,
    		dataType: &quot;script&quot;
		})
	$(&quot;.successmsg&quot;).ajaxSuccess(function(evt, request, settings){
    	        $(this).append(&quot;&lt;p&gt;Successful Request!&lt;/p&gt;&quot;);
	});
});
</pre>
<p>What if I want to append content into the DOM?  Difficult right?  Not so much.</p>
<pre class="brush: jscript; title: ; notranslate">
$(&quot;.append&quot;).append(&quot;Append some text&quot;);
</pre>
<h4>jQuery Plugins</h4>
<p>The cool thing for all those effects that jQuery doesn’t provide out-of-the-box then it provides a rich API for users to develop plugins on top of jQuery.  For instance, <a href="/portfolio">my portfolio</a> utilizes the <a href="http://www.ndoherty.com/demos/coda-slider/">Coda-Slider</a> jQuery plugin.</p>
<p>At work I was tasked to create some DHTML menus which I believe is a usability nightmare and an IA mistake, but alas I had to.  I wanted to maximize the usability, and I found <a href="http://users.tpg.com.au/j_birch/plugins/superfish/">Superfish</a> which is “Suckerfish on ‘roids.”  I was able to make sexy menus that had plugins on top of the plugin including the <a href="http://cherne.net/brian/resources/jquery.hoverIntent.html">hoverIntent</a> jQuery plugin which is smart enough to know whether you really want the menu or if you’re just trying to move around the page.</p>
<h4>Additional Resources</h4>
<p>Well, that’s just scratching the surface of what jQuery can do!  While learning more about it I’ve found several sites that have helped me.</p>
<h5>Tutorials/Blogs</h5>
<ul>
<li><a href="http://www.digital-web.com/articles/jquery_crash_course/">jQuery Crash Course</li>
<li><a href="http://www.learningjquery.com/">Learning jQuery</a></li>
<li><a href="http://jqueryfordesigners.com/">jQuery for Designers</a></li>
<li><a href="http://remysharp.com/">Remy Sharp</a></li>
<li><a href="http://www.webdesignerwall.com/tutorials/jquery-tutorials-for-designers/">jQuery Tutorials for Designers</a></li>
</ul>
<h5>jQuery Plugins</h5>
<ul>
<li><a href="http://plugins.jquery.com/">Official Repository</a></li>
<li><a href="http://ui.jquery.com/">jQuery User Interface</a> (Coming Soon)</li>
<li><a href="http://www.sastgroup.com/jquery/240-plugins-jquery">240 Plugins jQuery</li>
<li><a href="http://www.noupe.com/jquery/50-amazing-jquery-examples-part1.html">50+ Amazing jQuery Examples (Part 1)</a></li>
</ul>
<h5>API Documentation</h5>
<ul>
<li><a href="http://remysharp.com/jquery-api/">jQuery API Browser</a></li>
<li><a href="http://docs.jquery.com/Main_Page">Official Documentation</a></li>
<li><a href="http://docs.jquery.com/Discussion">jQuery Mailing Lists/IRC</a></li>
</ul>
<h5>IDE Integration</h5>
<ul>
<li><a href="http://www.aptana.com/docs/index.php/Getting_started_with_Aptana_and_jQuery">Getting Started with Aptana and jQuery</a></li>
<li><a href="http://lancefisher.net/blog/archive/2008/02/12/intellisense-for-jquery-in-visual-studio-2008.aspx">Intellisence for jQuery in Visual Studio 2008</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.siolon.com/blog/jquery-javascript-that-doesnt-suck/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
