<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3773034705174268132</id><updated>2011-09-13T08:00:08.312-07:00</updated><category term='Coding'/><category term='scripting'/><category term='Sophia'/><category term='Code'/><category term='Intranet'/><category term='tools'/><category term='SQL'/><category term='planning'/><category term='Roadmap'/><category term='SharePoint'/><category term='important links'/><category term='email'/><category term='Calendars'/><category term='communications'/><category term='CAML'/><category term='Jscript'/><category term='exchange'/><category term='about this site'/><category term='MDX'/><category term='InfoPath'/><category term='Windows 7'/><title type='text'>Peasants with PCs</title><subtitle type='html'>peas⋅ant   /ˈpɛzənt/ [pez-uhnt] 

–noun 1. a member of a class... (snip) 
2. a coarse, unsophisticated, boorish, uneducated person of little financial means (the author, not the reader).</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-5483908589986705810</id><published>2010-12-16T15:10:00.000-08:00</published><updated>2010-12-16T15:34:45.786-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><title type='text'>Using an HTA to launch an .exe  (be very afraid)</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_RfCjHduHwW4/TQqdG7BsdKI/AAAAAAAAAaA/2pcUa4h74ik/s1600/Fear.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 336px; FLOAT: left; HEIGHT: 400px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5551422232937133218" border="0" alt="" src="http://4.bp.blogspot.com/_RfCjHduHwW4/TQqdG7BsdKI/AAAAAAAAAaA/2pcUa4h74ik/s400/Fear.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Turns out you can script a .HTA to launch just about anything. Which likely is why even the BPOS site for my RnD project blocks saving them by default.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;The example below will launch an executable with a button click.  One use I am considering using this for is to launch some of my legacy .exe code inside of a Share Point Web Part.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Of course if I allow access to HTA's on a production server I am just begging for the script-kiddies to turn my life into a living hell.  But if I can get it into a Web Part that cannot be modified expect by me it might be worth trying.   &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Meanwhile here is the launcher bits for running remote desktop:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;'&lt;'INPUT style="background-color:transparent; width:160;height:25"&lt;br /&gt;TYPE="button" VALUE="Terminal Svcs" ID="essctermsvcs"&gt;&lt;br /&gt;&lt;br /&gt;essctermsvcs.onclick = function runtermsvcs()&lt;br /&gt;{&lt;br /&gt;   var shell = new ActiveXObject("WScript.shell");&lt;br /&gt;   if (shell)&lt;br /&gt;   {&lt;br /&gt;      shell.run("mstsc.exe");&lt;br /&gt;   }&lt;br /&gt;   else&lt;br /&gt;   {&lt;br /&gt;      alert("Terminal Services Not available");&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-5483908589986705810?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/5483908589986705810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=5483908589986705810' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/5483908589986705810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/5483908589986705810'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2010/12/using-hta-to-launch-exe-be-very-afraid.html' title='Using an HTA to launch an .exe  (be very afraid)'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_RfCjHduHwW4/TQqdG7BsdKI/AAAAAAAAAaA/2pcUa4h74ik/s72-c/Fear.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-8248935803765235216</id><published>2010-12-16T09:51:00.001-08:00</published><updated>2010-12-16T10:00:33.530-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MDX'/><category scheme='http://www.blogger.com/atom/ns#' term='Sophia'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Roadmap'/><title type='text'>OLAP and SASS (get cubic)</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_RfCjHduHwW4/TQpRy4avkuI/AAAAAAAAAZ4/msmf1hiblUk/s1600/OLAP%2BCube.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 392px; FLOAT: left; HEIGHT: 265px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5551339425267421922" border="0" alt="" src="http://3.bp.blogspot.com/_RfCjHduHwW4/TQpRy4avkuI/AAAAAAAAAZ4/msmf1hiblUk/s400/OLAP%2BCube.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;After my first class was canceled, they gave me a 10% discount on the next, which is SASS, &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;SQL&lt;/span&gt; Analytics and &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;MDX&lt;/span&gt; to get into the cube.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;At first glance &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;OLAP&lt;/span&gt; is very &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-corrected"&gt;similar&lt;/span&gt; to &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-error"&gt;SQL&lt;/span&gt;, at which I am an old hand. But the &lt;span id="SPELLING_ERROR_5" class="blsp-spelling-error"&gt;OLAP&lt;/span&gt; concept is multi-&lt;span id="SPELLING_ERROR_6" class="blsp-spelling-corrected"&gt;dimensional&lt;/span&gt; cubes with a lot of spreadsheet &lt;span id="SPELLING_ERROR_7" class="blsp-spelling-corrected"&gt;type&lt;/span&gt; functionality.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Here is a code snippet:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;SELECT&lt;br /&gt;{ [Measures].[Store Sales] } ON COLUMNS,&lt;br /&gt;{&lt;br /&gt;[Date].[2002],&lt;br /&gt;[Date].[2003] } ON ROWS&lt;br /&gt;FROM Sales&lt;br /&gt;WHERE (&lt;br /&gt;[Store].[USA].[CA] )&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;That translates into the cube above, with a &lt;span id="SPELLING_ERROR_8" class="blsp-spelling-corrected"&gt;measurement&lt;/span&gt; &lt;span id="SPELLING_ERROR_9" class="blsp-spelling-corrected"&gt;dimension&lt;/span&gt; of sales, two date &lt;span id="SPELLING_ERROR_10" class="blsp-spelling-corrected"&gt;dimensions&lt;/span&gt; for 2002 and 2003, all sliced by the state of California.&lt;br /&gt;&lt;br /&gt;This could be an interesting and &lt;span id="SPELLING_ERROR_11" class="blsp-spelling-corrected"&gt;useful&lt;/span&gt; class&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-8248935803765235216?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/8248935803765235216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=8248935803765235216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/8248935803765235216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/8248935803765235216'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2010/12/olap-and-sass-get-cubic.html' title='OLAP and SASS (get cubic)'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_RfCjHduHwW4/TQpRy4avkuI/AAAAAAAAAZ4/msmf1hiblUk/s72-c/OLAP%2BCube.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-325158084946046458</id><published>2010-12-09T13:56:00.001-08:00</published><updated>2010-12-09T14:00:59.213-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Sophia'/><title type='text'>Adventures with IPSec</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_RfCjHduHwW4/TQFQyy-zxUI/AAAAAAAAAZw/JOtxLU1N5zI/s1600/SmallSophia.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 54px; FLOAT: left; HEIGHT: 66px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5548805049506055490" border="0" alt="" src="http://2.bp.blogspot.com/_RfCjHduHwW4/TQFQyy-zxUI/AAAAAAAAAZw/JOtxLU1N5zI/s400/SmallSophia.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Looking at how to control access on what MS calls an External Secure Communication Mode for SharePoint and Project Sophia I ran across the improvements made by MS in Windows 7 to IPSec configuration.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;First question out of the box is, can I dump the gunky Sonicwall Software VPN that is such a pain?&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Second question is what is up with the "Join to your companies Domain" stuff?&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;When I have the answers, I'll update this post... &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-325158084946046458?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/325158084946046458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=325158084946046458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/325158084946046458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/325158084946046458'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2010/12/adventures-with-ipsec.html' title='Adventures with IPSec'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_RfCjHduHwW4/TQFQyy-zxUI/AAAAAAAAAZw/JOtxLU1N5zI/s72-c/SmallSophia.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-7326861743986360227</id><published>2010-12-08T13:17:00.000-08:00</published><updated>2010-12-08T14:45:39.258-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='important links'/><category scheme='http://www.blogger.com/atom/ns#' term='Intranet'/><title type='text'>@Home php equal to an RSS Feed</title><content type='html'>Is something that I can never remember...&lt;br /&gt;&lt;br /&gt;So here: &lt;a href="http://essc-home.org/feed.php"&gt;http://essc-home.org/feed.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-7326861743986360227?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/7326861743986360227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=7326861743986360227' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/7326861743986360227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/7326861743986360227'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2010/12/home-index-equivelant-to-rss-feed.html' title='@Home php equal to an RSS Feed'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-1103922120672878997</id><published>2010-11-19T11:15:00.000-08:00</published><updated>2010-11-19T11:18:14.566-08:00</updated><title type='text'>Bypassing Validation</title><content type='html'>To test my IIR Form, I needed to bypass all the Infopath required fields.  My method was simple enough, I saved a copy of the form to a local drive as testbeta.xml, and then replaced the input for the webservice with an xmldocument type taht loaded the test form...&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;xmlDoc := XmlDocument.Create;  &lt;br /&gt;xmlDoc.Load('C:\testbeta.xml');&lt;br /&gt;Root := TParticipantRecord.Create;&lt;br /&gt;&lt;em&gt;//   Root.LoadFromXML(Root,IIRForm);    &lt;br /&gt;&lt;/em&gt;Root.LoadFromXML(Root,xmlDoc);&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-1103922120672878997?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/1103922120672878997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=1103922120672878997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/1103922120672878997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/1103922120672878997'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2010/11/bypassing-validation.html' title='Bypassing Validation'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-3245927316116279635</id><published>2010-11-12T15:26:00.000-08:00</published><updated>2010-11-12T15:35:26.672-08:00</updated><title type='text'>The Roadmap</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_RfCjHduHwW4/TN3NaICDnxI/AAAAAAAAAZo/juP5KrGEqAw/s1600/Roadmap.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 400px; FLOAT: left; HEIGHT: 310px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5538808965451980562" border="0" alt="" src="http://3.bp.blogspot.com/_RfCjHduHwW4/TN3NaICDnxI/AAAAAAAAAZo/juP5KrGEqAw/s400/Roadmap.jpg" /&gt;&lt;/a&gt; &lt;strong&gt;Big...Huge...Gigantic...&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I’ve been asked for an expanded vision for ESSC I.T.&lt;br /&gt;&lt;br /&gt;I get the understanding that the gloves are off and we need to push forward under the assumption that the resources can be found, likely using grants and such.  Considering the mess that C.A.D.D.I.S and the boys from Oracle left behind it is both exciting and a bit frightening to consider that little old me might be allowed to take a shot where all the old gods failed…&lt;br /&gt;&lt;br /&gt;The key, in my own mind, is to decouple the different parts into something far more flexible than tradition allows, balancing the rigor of the ‘reported’ data entry with the ad-hoc nature of InfoPath forms services.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-3245927316116279635?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/3245927316116279635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=3245927316116279635' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/3245927316116279635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/3245927316116279635'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2010/11/roadmap.html' title='The Roadmap'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_RfCjHduHwW4/TN3NaICDnxI/AAAAAAAAAZo/juP5KrGEqAw/s72-c/Roadmap.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-3663018068255057120</id><published>2010-11-04T15:37:00.000-07:00</published><updated>2010-11-04T15:50:27.255-07:00</updated><title type='text'>Drop Dead Drop Downs</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_RfCjHduHwW4/TNM19_rEyKI/AAAAAAAAAZg/x6PECQ6Y-UQ/s1600/Regions.bmp"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 147px; FLOAT: left; HEIGHT: 200px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5535827706148866210" border="0" alt="" src="http://1.bp.blogspot.com/_RfCjHduHwW4/TNM19_rEyKI/AAAAAAAAAZg/x6PECQ6Y-UQ/s200/Regions.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;When consuming a dataset created from a table with a key and description, by selecting at the top element and splitting the value and display, we can get a return value in the xmlDocument to post the foreign key and bind the joins together.&lt;br /&gt;&lt;br /&gt;In this case the segment of xml is like:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;editregion&gt;&lt;br /&gt;&lt;em&gt;&lt;br /&gt;-&gt;editregion&lt;br /&gt;id-&gt;1&lt;br /&gt;Desc-&gt;North Los Angeles &lt;br /&gt;vpid-&gt;1227&lt;br /&gt;vpname-&gt;Kolenda, Kathleen&lt;br /&gt;vpstring-&gt;Kolenda, Kathleen&lt;br /&gt;-&gt;/editregion&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Then if the default value is -1, the value returned can be handled by determining if the result sent is a -1, in which case the source for VPName is the value (or in this case the VP’s Employee ID Number). What is funky is that the VPName will be the Display Name rather than the value if it’s an edit but if left untouched the VPName will be the Display Value. My solution is to load the table with a VPString field that doesn’t show and has the original name so that if they don’t match I know to use the VPName field but if they do I can use the VPID field.&lt;br /&gt;&lt;br /&gt;With this code segment to load the repeating group in the main data section, I can get around the funkyness…&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;function LoadESSCRegions()&lt;br /&gt;{ // Get the list of Services. var&lt;br /&gt;regions = Document.GetDOM("AsRegionsList").selectNodes("//REGIONS");&lt;br /&gt;&lt;br /&gt;// If nothing was found, then return; there will be no items to&lt;br /&gt;insert.&lt;br /&gt;if(regions == null)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;XDocument.UI.Alert("Error-&gt; Unable to load Regions List");&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;var reg;&lt;br /&gt;&lt;br /&gt;while&lt;br /&gt;(reg = regions.nextNode())&lt;br /&gt;{&lt;br /&gt;var row =&lt;br /&gt;XDocument.DOM.selectSingleNode("//my:myFields/my:RegionsTable/my:EditRegions");&lt;br /&gt;row = row.cloneNode(true);&lt;br /&gt;row.selectSingleNode("my:ESSCRegion_ID").text&lt;br /&gt;= reg.selectSingleNode("ESSCRegion_ID").text;&lt;br /&gt;row.selectSingleNode("my:RegionDescription").text =&lt;br /&gt;reg.selectSingleNode("Description").text;&lt;br /&gt;row.selectSingleNode("my:RegionIsActive").text =&lt;br /&gt;reg.selectSingleNode("IsActive").text;&lt;br /&gt;if (reg.selectSingleNode("RVP") ==&lt;br /&gt;null)&lt;br /&gt;row.selectSingleNode("my:RVPID").text = "-1"&lt;br /&gt;else&lt;br /&gt;row.selectSingleNode("my:RVPID").text = reg.selectSingleNode("RVP").text;&lt;br /&gt;&lt;br /&gt;if (reg.selectSingleNode("NAME") == null)&lt;br /&gt;row.selectSingleNode("my:RVPString").text = ""&lt;br /&gt;else&lt;br /&gt;row.selectSingleNode("my:RVPString").text =&lt;br /&gt;reg.selectSingleNode("NAME").text;&lt;br /&gt;&lt;br /&gt;var parent =&lt;br /&gt;XDocument.DOM.selectSingleNode("//my:myFields/my:RegionsTable");&lt;br /&gt;parent.appendChild(row);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt; &lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-3663018068255057120?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/3663018068255057120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=3663018068255057120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/3663018068255057120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/3663018068255057120'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2010/11/drop-dead-drop-downs.html' title='Drop Dead Drop Downs'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_RfCjHduHwW4/TNM19_rEyKI/AAAAAAAAAZg/x6PECQ6Y-UQ/s72-c/Regions.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-4059224513628869957</id><published>2010-10-29T10:16:00.000-07:00</published><updated>2010-10-29T10:40:41.791-07:00</updated><title type='text'>Recursion of the mummy</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_RfCjHduHwW4/TMsG1KRROHI/AAAAAAAAAZY/fZrr9Uf9ck8/s1600/317px-Mummy_in_Vatican.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 106px; FLOAT: left; HEIGHT: 200px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5533524077514406002" border="0" alt="" src="http://3.bp.blogspot.com/_RfCjHduHwW4/TMsG1KRROHI/AAAAAAAAAZY/fZrr9Uf9ck8/s200/317px-Mummy_in_Vatican.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;Recursion of the mummy&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;It’s Halloween, and its recursion which often makes me curse but it is the only realistic way to parse an xmldocument. It is critical for us, using Infopath, to get the functionality of the form libraries along with the aggregation type of goodies I can grab out of a traditional DBMS. So our submit logic often starts with a submit to DBMS and then save the form to the library, while the associated onopen event for the form updates the fields from a secondary datasource grabbed from the DBMS by a webservice.&lt;br /&gt;&lt;br /&gt;So, to parse a whole InfoPath form I first create an object for each repeating group in the form like so…&lt;br /&gt;TLocationRecord = class(System.Object)&lt;br /&gt;private&lt;br /&gt;function isNewRecord(thisNode : xmlNode) : Boolean;&lt;br /&gt;function isComplete : Boolean;&lt;br /&gt;procedure ParseNode(thisNode : xmlNode;&lt;br /&gt;thisRecord : TLocationRecord);&lt;br /&gt;procedure RecurseChildNodes(ThisNode : xmlNode;&lt;br /&gt;thisRecord : TLocationRecord);&lt;br /&gt;public&lt;br /&gt;Location_ID : Integer;&lt;br /&gt;Name : String;&lt;br /&gt;Address : String;&lt;br /&gt;City : String;&lt;br /&gt;Zip : String;&lt;br /&gt;Phone : String;&lt;br /&gt;Fax : String;&lt;br /&gt;isActive : String;&lt;br /&gt;&lt;br /&gt;Next_Location : TLocationRecord;&lt;br /&gt;&lt;br /&gt;procedure LoadFromXML(RootNode : TLocationRecord;&lt;br /&gt;xml : xmlDocument);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;The only tricky part is the recursion of course, so in this case after tossing the whole document to the LoadFromXML procedure I grab the first element of the form in a xmlNode object and feed into the recursion.&lt;br /&gt;&lt;br /&gt;The recursion looks for the specific part of the form I want to parse, in this case the locations repeating table named my:EditLocations, which will return true on the NewRecord function, at which point I add another node to then end of my own object and recurse. Otherwise I just toss it to the parser until I run out of document.&lt;br /&gt;&lt;br /&gt;procedure TLocationRecord.RecurseChildNodes(ThisNode : xmlNode;&lt;br /&gt;thisRecord : TLocationRecord);&lt;br /&gt;var&lt;br /&gt;wrkNode : xmlNode;&lt;br /&gt;NextRecord : TLocationRecord;&lt;br /&gt;wrkRecord : TLocationRecord;&lt;br /&gt;begin&lt;br /&gt;while ThisNode &lt;&gt; nil do&lt;br /&gt;begin&lt;br /&gt;if isNewRecord(thisNode) then&lt;br /&gt;begin&lt;br /&gt;NextRecord := TLocationRecord.Create;&lt;br /&gt;NextRecord.Next_Location := nil;&lt;br /&gt;&lt;br /&gt;wrkRecord := thisRecord;&lt;br /&gt;wrkRecord.IsWellFormed := self.isComplete;&lt;br /&gt;&lt;br /&gt;while wrkrecord.Next_Location &lt;&gt; nil do&lt;br /&gt;wrkRecord := wrkRecord.Next_Location;&lt;br /&gt;&lt;br /&gt;wrkRecord.Next_Location := NextRecord;&lt;br /&gt;RecurseChildNodes(ThisNode.FirstChild,NextRecord);&lt;br /&gt;end&lt;br /&gt;else&lt;br /&gt;if ThisNode.HasChildNodes then&lt;br /&gt;begin&lt;br /&gt;wrkNode := thisNode.FirstChild;&lt;br /&gt;ParseNode(thisNode,thisRecord);&lt;br /&gt;RecurseChildNodes(wrkNode,thisRecord);&lt;br /&gt;end;&lt;br /&gt;thisNode := thisNode.NextSibling;&lt;br /&gt;end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TLocationRecord.ParseNode(thisNode : xmlNode;&lt;br /&gt;thisRecord : TLocationRecord);&lt;br /&gt;var&lt;br /&gt;wrkNode : xmlNode;&lt;br /&gt;begin&lt;br /&gt;If ThisNode.Name = 'my:Name' then&lt;br /&gt;begin&lt;br /&gt;wrkNode := ThisNode.FirstChild;&lt;br /&gt;if wrkNode.NodeType = xmlNodeType.Text then&lt;br /&gt;thisRecord.Name := wrkNode.Value;&lt;br /&gt;end&lt;br /&gt;else&lt;br /&gt;If ThisNode.Name = 'my:Address' then&lt;br /&gt;begin&lt;br /&gt;wrkNode := ThisNode.FirstChild;&lt;br /&gt;if wrkNode.NodeType = xmlNodeType.Text then&lt;br /&gt;thisRecord.Address := wrkNode.Value;&lt;br /&gt;end&lt;br /&gt;else&lt;br /&gt;If ThisNode.Name = 'my:City' then&lt;br /&gt;begin&lt;br /&gt;wrkNode := ThisNode.FirstChild;&lt;br /&gt;if wrkNode.NodeType = xmlNodeType.Text then&lt;br /&gt;thisRecord.City := wrkNode.Value;&lt;br /&gt;end&lt;br /&gt;else&lt;br /&gt;If ThisNode.Name = 'my:Zip' then&lt;br /&gt;begin&lt;br /&gt;wrkNode := ThisNode.FirstChild;&lt;br /&gt;if wrkNode.NodeType = xmlNodeType.Text then&lt;br /&gt;thisRecord.Zip := wrkNode.Value;&lt;br /&gt;end&lt;br /&gt;else&lt;br /&gt;If ThisNode.Name = 'my:Phone' then&lt;br /&gt;begin&lt;br /&gt;wrkNode := ThisNode.FirstChild;&lt;br /&gt;if wrkNode.NodeType = xmlNodeType.Text then&lt;br /&gt;thisRecord.Phone := wrkNode.Value;&lt;br /&gt;end&lt;br /&gt;else&lt;br /&gt;If ThisNode.Name = 'my:Fax' then&lt;br /&gt;begin&lt;br /&gt;wrkNode := ThisNode.FirstChild;&lt;br /&gt;if wrkNode.NodeType = xmlNodeType.Text then&lt;br /&gt;thisRecord.Fax := wrkNode.Value;&lt;br /&gt;end&lt;br /&gt;else&lt;br /&gt;If ThisNode.Name = 'my:isActive' then&lt;br /&gt;begin&lt;br /&gt;wrkNode := ThisNode.FirstChild;&lt;br /&gt;if wrkNode.NodeType = xmlNodeType.Text then&lt;br /&gt;thisRecord.isActive := wrkNode.Value;&lt;br /&gt;end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function TWebService1.maintUpdateLocations(IIRForm : xmlDocument) : integer;&lt;br /&gt;var&lt;br /&gt;insstr : String;&lt;br /&gt;editStr : String;&lt;br /&gt;inscmd : sqlCommand;&lt;br /&gt;editcmd : sqlcommand;&lt;br /&gt;Root : TLocationRecord;&lt;br /&gt;wrkRecord : TLocationRecord;&lt;br /&gt;RVal : Integer;&lt;br /&gt;begin&lt;br /&gt;Root := TLocationRecord.Create;&lt;br /&gt;Root.Next_Location := nil;&lt;br /&gt;&lt;br /&gt;Root.LoadFromXML(Root,IIRForm);&lt;br /&gt;&lt;br /&gt;IIR_SQL_CONNECTION.Open;&lt;br /&gt;&lt;br /&gt;insstr := 'INSERT INTO LOCATIONS(NAME,ADDRESS,CITY,ZIP,PHONE,FAX) '+&lt;br /&gt;'VALUES (@NAMEPARAM,@ADDRPARAM,@CITYPARAM,@ZIPPARAM,@PHONEPARAM,@FAXPARAM)';&lt;br /&gt;&lt;br /&gt;inscmd := sqlCommand.Create;&lt;br /&gt;inscmd.Connection := IIR_SQL_CONNECTION;&lt;br /&gt;inscmd.CommandText := insstr;&lt;br /&gt;&lt;br /&gt;editStr := 'UPDATE LOCATIONS SET(NAME,ADDRESS,CITY,ZIP,PHONE,FAX) '+&lt;br /&gt;'VALUES (@NAMEPARAM,@ADDRPARAM,@CITYPARAM,@ZIPPARAM,@PHONEPARAM,@FAXPARAM) '+&lt;br /&gt;'WHERE LOCATION_ID = @LOCPARAM';&lt;br /&gt;&lt;br /&gt;editcmd := sqlCommand.Create;&lt;br /&gt;editcmd.Connection := IIR_SQL_CONNECTION;&lt;br /&gt;editcmd.CommandText := editstr;&lt;br /&gt;&lt;br /&gt;inscmd.Parameters.Add('@NAMEPARAM',sqldbType.NVarChar,50);&lt;br /&gt;inscmd.Parameters.Add('@ADDRPARAM',sqldbType.NVarChar,75);&lt;br /&gt;inscmd.Parameters.Add('@CITYPARAM',sqldbType.NVarChar,50);&lt;br /&gt;inscmd.Parameters.Add('@ZIPPARAM',sqldbType.NVarChar,10);&lt;br /&gt;inscmd.Parameters.Add('@PHONEPARAM',sqldbType.NVarChar,14);&lt;br /&gt;inscmd.Parameters.Add('@FAXPARAM',sqldbType.NVarChar,14);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// Walk the list and either update or insert.....&lt;br /&gt;wrkRecord := Root.Next_Location;&lt;br /&gt;&lt;br /&gt;while wrkRecord &lt;&gt; nil do&lt;br /&gt;begin&lt;br /&gt;if (wrkRecord.Location_ID &gt; 0) then&lt;br /&gt;begin&lt;br /&gt;// edit existing record&lt;br /&gt;if wrkRecord.isComplete then&lt;br /&gt;begin&lt;br /&gt;editcmd.Parameters.Item['@NAMEPARAM'].Value := wrkRecord.Name;&lt;br /&gt;editcmd.Parameters.Item['@ADDRPARAM'].Value := (wrkRecord.Address as TObject);&lt;br /&gt;editcmd.Parameters.Item['@CITYPARAM'].Value := (wrkRecord.City as TObject);&lt;br /&gt;editcmd.Parameters.Item['@ZIPPARAM'].Value := (wrkRecord.Zip as TObject);&lt;br /&gt;editcmd.Parameters.Item['@PHONEPARAM'].Value := (wrkRecord.Phone as TObject);&lt;br /&gt;editcmd.Parameters.Item['@FAXPARAM'].Value := (wrkRecord.Fax as TObject);&lt;br /&gt;editcmd.Parameters.Item['@ISACTIVE'].Value := (wrkRecord.IsActive as TObject);&lt;br /&gt;editcmd.Parameters.Item['@LOCPARAM'].Value := (wrkRecord.Location_ID as TObject);&lt;br /&gt;&lt;br /&gt;RVal := RVal + inscmd.ExecuteNonQuery;&lt;br /&gt;end;&lt;br /&gt;end&lt;br /&gt;else&lt;br /&gt;begin&lt;br /&gt;// Insert new record&lt;br /&gt;// Validate Record for completeness...&lt;br /&gt;If wrkRecord.isComplete then&lt;br /&gt;begin&lt;br /&gt;inscmd.Parameters.Item['@NAMEPARAM'].Value := wrkRecord.Name;&lt;br /&gt;inscmd.Parameters.Item['@ADDRPARAM'].Value := (wrkRecord.Address as TObject);&lt;br /&gt;inscmd.Parameters.Item['@CITYPARAM'].Value := (wrkRecord.City as TObject);&lt;br /&gt;inscmd.Parameters.Item['@ZIPPARAM'].Value := (wrkRecord.Zip as TObject);&lt;br /&gt;inscmd.Parameters.Item['@PHONEPARAM'].Value := (wrkRecord.Phone as TObject);&lt;br /&gt;inscmd.Parameters.Item['@FAXPARAM'].Value := (wrkRecord.Fax as TObject);&lt;br /&gt;&lt;br /&gt;RVal := RVal + inscmd.ExecuteNonQuery;&lt;br /&gt;end;&lt;br /&gt;end;&lt;br /&gt;wrkRecord := wrkRecord.Next_Location;&lt;br /&gt;end;&lt;br /&gt;Result := RVal;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;Then it is just a matter of walking the TLocation Object and editing or inserting the rows. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-4059224513628869957?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/4059224513628869957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=4059224513628869957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/4059224513628869957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/4059224513628869957'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2010/10/recursion-of-mummy.html' title='Recursion of the mummy'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_RfCjHduHwW4/TMsG1KRROHI/AAAAAAAAAZY/fZrr9Uf9ck8/s72-c/317px-Mummy_in_Vatican.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-3687865751829802062</id><published>2009-10-06T11:59:00.000-07:00</published><updated>2009-10-06T15:00:26.455-07:00</updated><title type='text'>JScript birth date madness</title><content type='html'>I had an earlier post on calculating a birth date in VBScript, but the IIR form was already set in java script which lacks a “datediff” function to calculate an age. It shouldn’t have been all that difficult to calculate just using date math, but there is a conversion issue when trying to use a date field in place of a string as the birth date source.&lt;br /&gt;&lt;br /&gt;The issue is the use of ISO8601 format of YYYY-MM-DD versus the entry format of MM-DD-YYYY. The solution is to parse the string before doing the math. A complete "age" functions is as follows:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;if (eventObj.IsUnDoRedo)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;return;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;} &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;//==============================================&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;//= On date of birth changed calculate age in years and set age field&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;//==============================================&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;var DOB = XDocument.DOM.selectSingleNode("my:myFields/my:DateOfBirth");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;   if ((DOB != null) &amp;amp;&amp;amp; (DOB.text != ""))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;   {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;      var myStringList = DOB.text.split('-');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;      var DOBText = myStringList[1]+'/'+myStringList[2]+'/'+myStringList[0];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;      var dt1 = new Date();&lt;/span&gt;  &lt;br /&gt;&lt;span style="font-size:85%;"&gt;      var dt2 = new Date(DOBText);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;      var years = dt1.getFullYear() - dt2.getFullYear();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;      // Check to see if it's before or after this years birthday &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;      dt2.setYear(dt1.getFullYear());&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;      if (dt1 &lt;&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;     {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;         years--;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;      SetField("Age",years);&lt;/span&gt;&lt;br /&gt;   }&lt;br /&gt; &lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_RfCjHduHwW4/Ssu5FON2RLI/AAAAAAAAAY0/wRIxNqdCc-o/s1600-h/script.JPG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_RfCjHduHwW4/Ssu4RFZ190I/AAAAAAAAAYs/EKqgILF7G68/s1600-h/script.JPG"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-3687865751829802062?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/3687865751829802062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=3687865751829802062' title='41 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/3687865751829802062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/3687865751829802062'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2009/10/jscript-birth-date-madness.html' title='JScript birth date madness'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>41</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-5854521753360156812</id><published>2009-05-01T11:03:00.000-07:00</published><updated>2009-05-01T11:18:35.279-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='InfoPath'/><category scheme='http://www.blogger.com/atom/ns#' term='Jscript'/><title type='text'>Picking a single node from an eventObj</title><content type='html'>While we have already done code for a &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;walkthru&lt;/span&gt; of all of the notes, after a column of buttons to our Daily &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-corrected"&gt;Activity&lt;/span&gt; Worksheet Form it is important for us to be able to select values associated with that row, and only that row.&lt;br /&gt;&lt;br /&gt;The object orientation of the &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;JSCript&lt;/span&gt; code makes that a snap.&lt;br /&gt;&lt;br /&gt;The button that was pressed, in particular, is the &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;eventObj&lt;/span&gt; passed to the event handler. The "Source" Property is a reference to the other items in the row.&lt;br /&gt;&lt;br /&gt;If we &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-corrected"&gt;reference&lt;/span&gt; the form as seen, then the particular participant bound to the button in the row pressed is referenced as eventObj.Source.selectSingleNode("my:Participant").text&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_RfCjHduHwW4/Sfs8EyCWuLI/AAAAAAAAAYk/YdOlZaPqLk0/s1600-h/eventObj.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 218px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5330920636771907762" border="0" alt="" src="http://3.bp.blogspot.com/_RfCjHduHwW4/Sfs8EyCWuLI/AAAAAAAAAYk/YdOlZaPqLk0/s400/eventObj.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;One important item of note, while doing the &lt;span id="SPELLING_ERROR_5" class="blsp-spelling-error"&gt;walkthru&lt;/span&gt; we used the path starting at the root... i.e. "//my:Participant". Since the button is already below the parent you need to reference it as "my:Participant" or at best, you'll always get the first child node.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-5854521753360156812?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/5854521753360156812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=5854521753360156812' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/5854521753360156812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/5854521753360156812'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2009/05/picking-single-node-from-eventobj.html' title='Picking a single node from an eventObj'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_RfCjHduHwW4/Sfs8EyCWuLI/AAAAAAAAAYk/YdOlZaPqLk0/s72-c/eventObj.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-2369796842545264234</id><published>2009-02-23T09:21:00.000-08:00</published><updated>2009-02-23T09:23:19.218-08:00</updated><title type='text'>Clearing some underbrush</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_RfCjHduHwW4/SaLbgTPFBJI/AAAAAAAAAYc/rQ93JY64Ojs/s1600-h/WeedWacker.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 400px; FLOAT: left; HEIGHT: 400px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5306044658961679506" border="0" alt="" src="http://3.bp.blogspot.com/_RfCjHduHwW4/SaLbgTPFBJI/AAAAAAAAAYc/rQ93JY64Ojs/s400/WeedWacker.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;One mistake I've noticed with the budget developer is the tendancy for webservie functions to grow like weeds. With a week left before deployment it's time to take a crack at seperating out those functions that are no longer required...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-2369796842545264234?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/2369796842545264234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=2369796842545264234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/2369796842545264234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/2369796842545264234'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2009/02/clearing-some-underbrush.html' title='Clearing some underbrush'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_RfCjHduHwW4/SaLbgTPFBJI/AAAAAAAAAYc/rQ93JY64Ojs/s72-c/WeedWacker.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-2493160143227584143</id><published>2009-02-12T08:58:00.001-08:00</published><updated>2009-02-12T09:03:21.738-08:00</updated><title type='text'>Next Up</title><content type='html'>I'm on the SharePoint Tour, friday, in Torrance.  Hoping that will go well while at the same time I'm going back to the Budget Developer.  So I'll be spending time in this space organizing my thoughts, with a special concentration on "What-If" additions to budgeting.&lt;br /&gt;&lt;br /&gt;So here is a very early list of what if's&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Income impact of program income by percentage&lt;/li&gt;&lt;li&gt;Line item, across the board or by entity tree percentage changes&lt;/li&gt;&lt;li&gt;Reducing staff work days&lt;/li&gt;&lt;li&gt;Ratio tools for employment related costs&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;But I do need some basis for better study... &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-2493160143227584143?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/2493160143227584143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=2493160143227584143' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/2493160143227584143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/2493160143227584143'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2009/02/next-up.html' title='Next Up'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-7494010257305145770</id><published>2009-01-30T09:14:00.000-08:00</published><updated>2009-01-30T09:16:30.027-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='InfoPath'/><category scheme='http://www.blogger.com/atom/ns#' term='Coding'/><title type='text'>Forms within Forms</title><content type='html'>An interesting InfoPath request; Quality has a project where I would like to use an InfoPath form for intakes.  The idea is that the Intake form would be a form of forms where the user would launch each of the forms required for enrollment from a single master form.  This form should be able to launch a blank copy of each of the enrollment forms, and this is the kicker, that follow “Paul’s Golden Rule” and avoid requiring any duplicate typing.&lt;br /&gt;&lt;br /&gt;Launching a form is a point and click exercise, doing so while exposing the other forms fields requires a bit of code, but as it turns out, not much.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;var newForm = Application.XDocuments.NewFromSolution(&lt;a href="http://sharepoint/sites/it/area54/Sample%20Face%20Sheets/Forms/template.xsn"&gt;http://sharepoint/sites/it/area54/Sample Face Sheets/Forms/template.xsn&lt;/a&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;var participant = newForm.DOM.selectSingleNode("my:FaceSheet/my:Client_Name");&lt;br /&gt;&lt;br /&gt;myField = XDocument.DOM.selectSingleNode("my:myFields/my:Test");&lt;br /&gt;&lt;br /&gt;participant.text = myField.text;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The first line launches the form, you’ll need the path to the form template, but that’s it.  Your newForm variable then contains XDocument for the form just launched, in this case the face sheet.  Now you can grab a field value from the parent form and copy it into the new form.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-7494010257305145770?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/7494010257305145770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=7494010257305145770' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/7494010257305145770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/7494010257305145770'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2009/01/forms-within-forms.html' title='Forms within Forms'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-4204258166774098976</id><published>2009-01-28T12:06:00.000-08:00</published><updated>2009-01-28T12:09:58.772-08:00</updated><title type='text'>Dash Phone as a laptop Internet connection</title><content type='html'>We are replacing Verizon as a carrier with T-Mobile, and so the QPhones we have been using are changing to a Dash phone, which has the same windows mobile operating system.  But T-Mobile is actually sending out the USB cables to synch the new phones, if we would like, to a laptop or other workstation.&lt;br /&gt;&lt;br /&gt;While our default configuration connects directly with our exchange server, limiting the ActiveSync to a workstation’s utility, there is one really nifty feature I tried out on the new phone last night. &lt;br /&gt;&lt;br /&gt;You can use the phone as a cellular modem to connect your laptop to the internet while on the road.&lt;br /&gt;&lt;br /&gt;To do so first install the ActiveSync software that comes with the phone.  If you have already set-up your access to exchange it will keep that configuration and by default will only load your Internet favorites to the phone on synch, otherwise it changes nothing.  In our case we really don’t want the synch, just the drivers it installs, which is why we never bothered with doing this on the Q Phones. &lt;br /&gt;&lt;br /&gt;Once installed, close the program, and connect the phone to the laptop using the USB cable provided.&lt;br /&gt;&lt;br /&gt;From now on you’ll be able to use the phone to connect to the internet wherever you have a signal for your phone.  Just connect the cable, and then select “Start”, “Accessories”, “Internet Sharing” on the phone.  There will be three fields on the phone, “Status”, “PC Connection”, and “Network Connection”.  Leave the Network Connection on T-Mobile Data, make sure the PC Connection is still USB, and then use the left button on the phone to change the status from disconnected to connected.&lt;br /&gt;&lt;br /&gt;The speed is not blazing, functionally its speed is roughly equal to a 28.8 modem, but it operates anywhere.  That is worth it…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-4204258166774098976?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/4204258166774098976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=4204258166774098976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/4204258166774098976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/4204258166774098976'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2009/01/dash-phone-as-laptop-internet.html' title='Dash Phone as a laptop Internet connection'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-1113037454776989288</id><published>2009-01-26T14:20:00.000-08:00</published><updated>2009-01-28T10:15:44.260-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='InfoPath'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>InfoPath Date Math Shuffle</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_RfCjHduHwW4/SX43glHw26I/AAAAAAAAAX8/8PqZUROUrlY/s1600-h/SelectPgm.JPG"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 200px; FLOAT: left; HEIGHT: 76px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5295731244694297506" border="0" alt="" src="http://3.bp.blogspot.com/_RfCjHduHwW4/SX43glHw26I/AAAAAAAAAX8/8PqZUROUrlY/s200/SelectPgm.JPG" /&gt;&lt;/a&gt;Late Friday I got asked one of those seemingly simple questions whose simple answer is, as it turned out, missing. All my user wanted to do was have the difference between two dates calculate in her Infopath 2003 form. Naturally it’s a piece of cake in 2007… sigh.&lt;br /&gt;&lt;br /&gt;But it can be done in 2003 with a fairly short VB script. Problem was I started out trying to write it as a Jscript and kept running into a lack of functionality… So anyway here is how to do the InfoPath 2003 Date Math Shuffle in all it’s glory.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step One:&lt;/strong&gt; Set the form to use VB Script in place of Jscript. This can only be done at the start, before you write any code for the form. Select Tools, then form options. This will open the form options dialog box, allowing you to select the Advanced Tab, where you can set the programming language to Visual Basic Script (VBScript as shown above).&lt;br /&gt;&lt;br /&gt;To test it I added two date fields and a text field to a blank form.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/_RfCjHduHwW4/SX47FujzWOI/AAAAAAAAAYM/nGcMBX3oIuQ/s1600-h/DateSample.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 333px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5295735181417863394" border="0" alt="" src="http://2.bp.blogspot.com/_RfCjHduHwW4/SX47FujzWOI/AAAAAAAAAYM/nGcMBX3oIuQ/s400/DateSample.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once there we can open our editor so we can add the code by grabbing the properties of the second date picker, select the onAfterChange event and click on the Edit button.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_RfCjHduHwW4/SX4-x7JXLkI/AAAAAAAAAYU/WhiiQzUlkgM/s1600-h/DataValid.JPG"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 316px; DISPLAY: block; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5295739239245753922" border="0" alt="" src="http://3.bp.blogspot.com/_RfCjHduHwW4/SX4-x7JXLkI/AAAAAAAAAYU/WhiiQzUlkgM/s320/DataValid.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This will launch the Microsoft script editor for the proper event.&lt;br /&gt;&lt;br /&gt;Of course after we’re done we should go back and add a call to the first date to the second date’s event in case the form’s user changes the first date after the second… heh.&lt;br /&gt;&lt;br /&gt;But for now let’s just add the code. Thank goodness that the VB editor seems to have all the functionality that the Jscript lacked. At one point I was even considering a web-service call, but as it turns out that this VB script can handle this in a flash and without any of the nasty delays inherent in a web-service.&lt;br /&gt;&lt;br /&gt;So, &lt;strong&gt;Step two&lt;/strong&gt; is to write the code for the event. First we need to leave the premade code alone, it's only there in the event an "If eventObj.IsUnDoReDo" argument is present, and we don't care.&lt;br /&gt;&lt;br /&gt;Below is the code, with further descriptions commented in the event you want to cut and paste it in as is...&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;em&gt;‘==========&lt;br /&gt;‘ date_from follows the XDocument path to get access to the forms SecondDate Field&lt;br /&gt;‘ date_to is the same for the first date field&lt;br /&gt;‘ dt1Val is a variable where we will load the value of the date_from field&lt;br /&gt;‘dt2Val is a variable where we will load the value of the date_to field&lt;br /&gt;‘daysElapsed is a variable where the difference is calculated&lt;br /&gt;‘==========&lt;br /&gt;&lt;br /&gt;Dim date_from&lt;br /&gt;Dim date_to&lt;br /&gt;Dim dt1Val&lt;br /&gt;Dim dt2Val&lt;br /&gt;Dim DaysElapsed&lt;br /&gt;&lt;br /&gt;‘=====&lt;br /&gt;‘ Now we set the date_from and date_to so we can read the fields&lt;br /&gt;‘=====&lt;br /&gt;&lt;br /&gt;Set date_from = XDocument.DOM.selectSingleNode("/my:myFields/my:SecondDate")&lt;br /&gt;Set date_to = XDocument.DOM.selectSingleNode("/my:myFields/my:FirstDate")&lt;br /&gt;&lt;br /&gt;‘======&lt;br /&gt;‘ Then we test the fields to see if we have dates in both fields, if so then we calculate the difference and put &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;‘ it into the display field on the form, otherwise we make the display field blank&lt;br /&gt;‘======&lt;br /&gt;If (date_from.Text &lt;&gt; "") and (date_to.Text &lt;&gt; "") Then&lt;br /&gt;dt1Val = CDate(date_from.Text)&lt;br /&gt;dt2Val = CDate(date_to.Text)&lt;br /&gt;daysElapsed = DateDiff("d",dt2Val,dt1Val)&lt;br /&gt;XDocument.DOM.selectSingleNode("/my:myFields/my:Difference").Text = daysElapsed&lt;br /&gt;else&lt;br /&gt;XDocument.DOM.selectSingleNode("/my:myFields/my:Difference").Text = ""&lt;br /&gt;End If&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;All that is left is to call this function when the first date changes by creating it’s event just as you did the second date fields and copying the function call, in this case:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;em&gt;msoxd_my_SecondDate_OnAfterChange(eventObj)&lt;/em&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Not too shabby, but having Microsoft add the DateDiff function to InfoPath, as I believe they did in 2007 would have saved my people a lot of trouble. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-1113037454776989288?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/1113037454776989288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=1113037454776989288' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/1113037454776989288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/1113037454776989288'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2009/01/infopath-date-math-shuffle.html' title='InfoPath Date Math Shuffle'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_RfCjHduHwW4/SX43glHw26I/AAAAAAAAAX8/8PqZUROUrlY/s72-c/SelectPgm.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-5272226489748106929</id><published>2009-01-20T11:08:00.001-08:00</published><updated>2009-01-20T11:09:49.309-08:00</updated><title type='text'>Trouble with Key-loggers</title><content type='html'>Came in this morning, opened my email, and discovered that one of my users had fallen prey to a key-logger. While no corporate accounts were accessed, only her personal email, it is nevertheless disturbing. Increasingly we find ourselves using public facilities to access the internet, and many internet features are secured with weak passwords.&lt;br /&gt;&lt;br /&gt;In our case, here at ESSC, we are also protected with Passfaces, which can and does defeat key-logging. Additionally, outside of some executive accounts for GotoMyPC, we live behind a very strict firewall.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_RfCjHduHwW4/SXYhVb5C8mI/AAAAAAAAAXs/A-cLK1fOFMk/s1600-h/DisplayProp.bmp"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 285px; FLOAT: left; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5293455064168591970" border="0" alt="" src="http://4.bp.blogspot.com/_RfCjHduHwW4/SXYhVb5C8mI/AAAAAAAAAXs/A-cLK1fOFMk/s320/DisplayProp.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;It’s those accounts that presented a security hole, since the users would remain logged in to our network for ease of access when connecting via GotoMyPC, skipping the security of Passfaces and therefore leaving us vulnerable.&lt;br /&gt;&lt;br /&gt;To fix this issue we are requiring those who have GotoMyPC accounts to set their workstation to require a password on waking the screen saver.&lt;br /&gt;&lt;br /&gt;To do this the user first needs to right click on a blank area of the screen, which will open a pop-up menu. Selecting “Properties” from the pop-up menu will open the Display Properties dialog box.&lt;br /&gt;&lt;br /&gt;The user can then click on the Screen Saver tab, select a screen saver (it will not work without a screen saver selected) and put in the length of time before the screen saver is activated. If the checkbox labeled “On resume, password protect” is checked, then the user will be required to log back into our network whenever the screen saver activates itself.&lt;br /&gt;&lt;br /&gt;This solves our GotoMyPC issue since the faces in the Passfaces grid cannot be hacked by a key-logger. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-5272226489748106929?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/5272226489748106929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=5272226489748106929' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/5272226489748106929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/5272226489748106929'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2009/01/trouble-with-key-loggers.html' title='Trouble with Key-loggers'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_RfCjHduHwW4/SXYhVb5C8mI/AAAAAAAAAXs/A-cLK1fOFMk/s72-c/DisplayProp.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-5674992094352674344</id><published>2009-01-07T12:12:00.000-08:00</published><updated>2009-01-07T13:19:28.016-08:00</updated><title type='text'>The Employee Newsletter and Really Simply Syndication</title><content type='html'>In the prior post I defined a number of Social Networking technologies and what they are normally used for. Our starting hypothetical, replacing the print version of an employee newsletter, frankly, just screams Blog. Unlike many other Social Networking techniques, a blog can remain directive in that, like this one, it can have one author with many readers (you can stop laughing anytime now.)&lt;br /&gt;&lt;br /&gt;Blogs are designed specifically to host the same kind of articles and photos normally seen in a newsletter, while allowing for shorter posts and links to other resources of interest. In the case of our "hypothetical", an existing intranet page can be slightly rebranded and reorganized to fill this role, and remain sited on an already well-known and public Internet address.&lt;br /&gt;&lt;br /&gt;The only realistic limitation with the Employee Newsletter in the form of a blog is the “opt-in” problem. Simply providing the message and advertising the site location internally is unlikely to see widespread adoption, and it doesn’t provide any medium for more urgent communication since the slowly changing nature of the content does not encourage staff to regularly visit the page.&lt;br /&gt;&lt;br /&gt;One solution suggested was to co-opt Email as a means of notification by providing a link to the new story when it comes out. This suggestion can overcome the Opt-In issue, but at a heavy price. For an organization like mine, which has many employees in the field (and without corporate email accounts) the difficulty and propriety of maintaining a list of employees home email accounts for work related communications is a nightmare. Beyond that, even for employees with work accounts, such Email can easily become little more than spam to them, getting buried in the ever increasing email load. Also, we optimally want our newsletter to be directive not collaborative like email is, and therefore routinely advertising new stories via email will inevitably lead to more and more recursively generated email responses, which is what pretty much sunk the concept of ListServ’s (which attempted to leverage email in a similar fashion.)&lt;br /&gt;&lt;br /&gt;An alternative to using Email is to use RSS (Really Simple Syndication.) While unlike email RSS still requires some form of simple opt-in, its flexibility and simplicity as well as its increasingly widespread adoption will encourage the maximum possible participation.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;RSS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;RSS revolves around the concept of subscription rather than a particular application. Its flexibility is that the subscriber decides the method of presentation by selecting the application he or she wants to use to subscribe to the site.&lt;a href="http://3.bp.blogspot.com/_RfCjHduHwW4/SWUOHjNB7II/AAAAAAAAAW8/_z5rx4ElAxQ/s1600-h/RSSFeed.JPG"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 184px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5288648860288281730" border="0" alt="" src="http://3.bp.blogspot.com/_RfCjHduHwW4/SWUOHjNB7II/AAAAAAAAAW8/_z5rx4ElAxQ/s320/RSSFeed.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;For our hypothetical, staff members at work can be subscribed as a team through SharePoint as pictured. The feed is typical in that it shows the latest headlines in a gadget on each team’s site; if someone has an interest in a particular post they can click on the link and be taken to that story. Or they can click on the title and be taken to the page. The communications person(s) publishing the story need do nothing except create the post. The RSS will update itself automatically.&lt;/p&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_RfCjHduHwW4/SWUOlqqkSOI/AAAAAAAAAXE/Jh0i9jl0uiU/s1600-h/EmailRSS.JPG"&gt;&lt;img style="MARGIN: 0px 0px 10px 10px; WIDTH: 320px; FLOAT: right; HEIGHT: 213px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5288649377687292130" border="0" alt="" src="http://2.bp.blogspot.com/_RfCjHduHwW4/SWUOlqqkSOI/AAAAAAAAAXE/Jh0i9jl0uiU/s320/EmailRSS.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The biggest advantage of RSS is that the user can select which application he or she wants the headlines to appear. If the person is Email centric to the point where they insist upon it (although I do not like it much) they can subscribe thru Email with most email systems, including all versions of outlook&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;One of the most popular methods, my own favorite for home use, is to fit the RSS feeds onto the personalized home page of your subscribed search engine, such as iGoogle, My Yahoo, or MSN, in the form of a widget or gadget or web-part or whatever else it's called this week.&lt;a href="http://3.bp.blogspot.com/_RfCjHduHwW4/SWUPQZqyEuI/AAAAAAAAAXM/1ZRuW2AkT6k/s1600-h/RSSFeedGoogle.JPG"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 220px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5288650111859167970" border="0" alt="" src="http://3.bp.blogspot.com/_RfCjHduHwW4/SWUPQZqyEuI/AAAAAAAAAXM/1ZRuW2AkT6k/s320/RSSFeedGoogle.JPG" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;This method is “work independent” since the person would be able to subscribe their search home page which will make it showup on any of their computers, including ones at home.&lt;br /&gt;&lt;br /&gt;The final option I’m going to cover, although by no means the last kind of feed reader is the most mobile, and can be applied to all employees with company cell phones, or given as an opt-in to employees to use with their own phones. That is the cell phone news reader.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_RfCjHduHwW4/SWURvJoPpAI/AAAAAAAAAXc/3cIJVOz6kSU/s1600-h/RSSFeedCellPhone.JPG"&gt;&lt;img style="MARGIN: 0px 0px 10px 10px; WIDTH: 280px; FLOAT: right; HEIGHT: 320px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5288652839152755714" border="0" alt="" src="http://3.bp.blogspot.com/_RfCjHduHwW4/SWURvJoPpAI/AAAAAAAAAXc/3cIJVOz6kSU/s320/RSSFeedCellPhone.JPG" /&gt;&lt;/a&gt;The cell phone reader seems to be an excellent option for our hypothetical, since it does not require access to a computer at work or at home and does not interfere with people who prefer other methods or have access to different means.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;One downside, or course, is still getting people to subscribe, in that all RSS types still have an opt-in component (as well as a means for people to opt themselves out). But this can be mitigated in our case, first by placing the reader at all team SharePoint sites to enroll everyone who works at a desk, and second to provide the option and (quite simple really) instructions on how people can subscribe on their home search engine, or finally, for those people completely isolated from all other technologies, subscribing their company cell-phone.&lt;br /&gt;&lt;br /&gt;The limitation to the company cell-phone distribution method is, most often, the type of account more than the phone, since all of the modern phones have readers built in. Still, in some situations, while the phone itself will support RSS, the account the phone is on may not.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-5674992094352674344?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/5674992094352674344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=5674992094352674344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/5674992094352674344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/5674992094352674344'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2009/01/employee-newsletter-and-really-simply.html' title='The Employee Newsletter and Really Simply Syndication'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_RfCjHduHwW4/SWUOHjNB7II/AAAAAAAAAW8/_z5rx4ElAxQ/s72-c/RSSFeed.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-9086841749595487229</id><published>2009-01-07T10:38:00.000-08:00</published><updated>2009-01-07T13:37:06.205-08:00</updated><title type='text'>Social Media and Employee Communications</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_RfCjHduHwW4/SWT4G3Ue-gI/AAAAAAAAAW0/WtWZm5L_Owo/s1600-h/EmpAtWork.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 168px; FLOAT: left; HEIGHT: 117px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5288624659252574722" border="0" alt="" src="http://4.bp.blogspot.com/_RfCjHduHwW4/SWT4G3Ue-gI/AAAAAAAAAW0/WtWZm5L_Owo/s320/EmpAtWork.jpg" /&gt;&lt;/a&gt;Suppose company X is considering eliminating the printed version of its employee newsletter in favor of an alternative method of sharing interesting and important stories of interest to its people. Its executives are all too likely to pick up on buzzword’s like Social Networking or Web 2.0 and ask the legitimate question, “Is there any technology that can help?” Like most buzzwords the answer is yes, or no, depending on what the meaning of “help” is.&lt;br /&gt;&lt;br /&gt;In applying the term “Social Media” we are really talking about using technology as a conduit to facilitate communication. With modern technology the overhead costs normally associated with traditional media, such as printing presses and broadcast licenses, disappears. This allows us to discard the old model of one person communicating to N number of people, if we wish, with a model of N number of people communicating with M number of people. 1..N becomes M..N.&lt;br /&gt;&lt;br /&gt;This is why social media is collaborative in nature, while traditional media is directive. And it can be a curse as well as a blessing. For internal corporate communications, the professional working in a communications department might very well be forced to spend all of his or her time policing collaborative communication, doing damage control and swatting down rumors rather than staying focused on getting out the message the company wants to get to its staff.&lt;br /&gt;&lt;br /&gt;Nevertheless there are versions of technologies that more or less fit the social media model that may be appropriate, enough that it is worthwhile to take an inventory of the technologies currently available, and place them into appropriate categories.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Communication&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Stuff in the Communication category encompasses Blogs and Micro-blogs, Forums, Social Networks, Social Network Aggregation and events.&lt;br /&gt;&lt;br /&gt;Blogs, such as blogspot, livejournal, or typepad, allow one or more users to create a webpage to post very short stories, opinions, photos and links on one or more topics. Some bloggers concentrate their efforts less on original work and instead post link’s with comments to stories from other blogs or traditional media web-pages, acting as a form of editor. Others exist to distribute original content.&lt;br /&gt;&lt;br /&gt;The “Micro-Blogs”, such as twitter, are generally used to let a person’s social network, of friends and family, know what they are doing at that moment. These facilitate ad-hoc events like joining up for a dinner or going to a show. Used with mobile phones, the idea is that you can check to see if friends are available for something you want to do, or if they are doing something of interest to you.&lt;br /&gt;&lt;br /&gt;Forums are centered on threaded content, you may post a question or comment as a means to solicit answers or additional comments. A forum topic can generate a large number or replies, including replies to replies...&lt;br /&gt;&lt;br /&gt;Social networks, such as Facebook or LinkedIn, contrary to popular belief, do not create social networks. That is to say that people rarely, if ever, use them to find new friends. Instead they are used to surface already existing social networks. These are obviously popular among youth, especially since it demonstrates their social network in concrete terms, while being less popular among adults, whose social focus tends to be more on immediate family.&lt;br /&gt;&lt;br /&gt;Social Network Aggregation, like FriendFeed can be used to combine different social networking sites into a single display.&lt;br /&gt;&lt;br /&gt;Event sites are used primarily to leverage email as a means to invite your social network to a party or other event.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Collaboration&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Collaboration sites include Wikis, Social Bookmarking, Social News and opinion.&lt;br /&gt;&lt;br /&gt;If a blog is a diary, then a Wiki is an encyclopedia. The largest of which is Wikipedia. Wikipedia is an example of crowd-sourcing, where you make an open call to an undefined group of volunteers to produce a product. In Wikipedia’s case, any person with knowledge of, or an interest in, any topic can edit or create a page and write an entry. (Here is the entry for Easter Seals: &lt;a href="http://en.wikipedia.org/wiki/Easter_Seals_(US)"&gt;http://en.wikipedia.org/wiki/Easter_Seals_(US)&lt;/a&gt; as an example.)&lt;br /&gt;&lt;br /&gt;Social Bookmarking is a way for social groups to share links to common web-pages, as well as rate various web-pages and blogs. Social News Sites such as Digg, are built around rating news related web-content to encourage the reading of the most popular stories.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Entertainment&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;These sites include photo and video sharing sites, such as youtube and Photobucket, Livecasting sites that stream live video content from amateurs such as UStream, Music sharing sites like ccMixter, and massively multiplayer online games (MMORPG) like Eve and World of Warcraft.&lt;br /&gt;&lt;br /&gt;This post has already gone on too long, so I’ll go back to addressing my original hypothetical, the elimination of the paper copy of the employee newsletter, in the next post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-9086841749595487229?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/9086841749595487229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=9086841749595487229' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/9086841749595487229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/9086841749595487229'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2009/01/social-media-and-employee.html' title='Social Media and Employee Communications'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_RfCjHduHwW4/SWT4G3Ue-gI/AAAAAAAAAW0/WtWZm5L_Owo/s72-c/EmpAtWork.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-7167906264362327359</id><published>2008-12-23T10:35:00.000-08:00</published><updated>2008-12-23T10:53:58.012-08:00</updated><title type='text'>A few powerpoint rules</title><content type='html'>With a huge presentation, the Share Point on tour, coming up, I found myself sliding into PowerPoint hell.  So I stopped, tossed my work so far, and laid down a few rules to be effective while using PowerPoint.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;No, or very few, bullet points.  People cannot read and listen and think at the same time.  Use images that convey the story you are using to make your point.&lt;/li&gt;&lt;li&gt;Hand out the notes after the presentation and make sure your audience knows it.  It's helpful to get the audience to relax and form a frame of mind to learn.  Whatever you do, do NOT use copies of your slides as notes.  That is a clue you did  it wrong in the first place.  The slides shouldn't work without you, and vice-versa.&lt;/li&gt;&lt;li&gt;Use stories.  We are hard wired to understand stories, use it to get your major point across and then delve into the ugly details.&lt;/li&gt;&lt;li&gt;Avoid Hierarchy.  Nothing will kill a presentation faster than drill down slides.&lt;/li&gt;&lt;li&gt;Tell the story with pictures (see #1 above) not cheesy images (except when cheesy is part of the story)&lt;/li&gt;&lt;li&gt;Use jokes.  Jokes are stories that play; great at holding onto an audience's interest.  But they can't hang out there by themselves, they have to be part of the point you are trying to make.  &lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-7167906264362327359?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/7167906264362327359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=7167906264362327359' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/7167906264362327359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/7167906264362327359'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/12/few-powerpoint-rules.html' title='A few powerpoint rules'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-5631162911040265302</id><published>2008-12-18T14:01:00.000-08:00</published><updated>2008-12-18T14:02:29.159-08:00</updated><title type='text'>This explains a lot</title><content type='html'>&lt;a href="http://latimesblogs.latimes.com/booster_shots/2008/12/being-naughty-h.html"&gt;Naughty versus Nice...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-5631162911040265302?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/5631162911040265302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=5631162911040265302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/5631162911040265302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/5631162911040265302'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/12/this-explains-lot.html' title='This explains a lot'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-4149004979590329814</id><published>2008-12-18T12:54:00.000-08:00</published><updated>2008-12-18T12:58:00.204-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='exchange'/><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='communications'/><title type='text'>Organize your EMail</title><content type='html'>From Microsoft's at work site comes a few good tips on keeping your EMail nice and tidy:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.microsoft.com/atwork/manageinfo/emailtools.mspx"&gt;7 ways to organize your email&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-4149004979590329814?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/4149004979590329814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=4149004979590329814' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/4149004979590329814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/4149004979590329814'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/12/organize-your-email.html' title='Organize your EMail'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-365463851911906192</id><published>2008-12-12T08:52:00.000-08:00</published><updated>2008-12-12T09:16:58.356-08:00</updated><title type='text'>Picking up manure from the clean end</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_RfCjHduHwW4/SUKXr_B5j4I/AAAAAAAAAWc/vNSZy8v8AZU/s1600-h/HorseManure.jpg"&gt;&lt;img style="MARGIN: 0px 0px 10px 10px; WIDTH: 320px; FLOAT: right; HEIGHT: 214px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5278948495141212034" border="0" alt="" src="http://1.bp.blogspot.com/_RfCjHduHwW4/SUKXr_B5j4I/AAAAAAAAAWc/vNSZy8v8AZU/s320/HorseManure.jpg" /&gt;&lt;/a&gt;My first couple of efforts at getting the document mgmt part of SharePoint across to my users were miserable failures.&lt;br /&gt;&lt;br /&gt;It isn't that surprising since I didn't really have a model in mind for them to use in place of the old Hierarchical folder structure. The adaptation requires the X is like Y explaination which in turn must be made into a narritive to become understandable. &lt;br /&gt;&lt;br /&gt;Meanwhile, my first efforts made it seem like I'm promising them a pony if only they would start picking up the manure from the clean end.&lt;br /&gt;&lt;br /&gt;I've been using the term library and librarian, and that might just be the narritive explaination I need to start with... More thought...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-365463851911906192?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/365463851911906192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=365463851911906192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/365463851911906192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/365463851911906192'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/12/picking-up-manure-from-clean-end.html' title='Picking up manure from the clean end'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_RfCjHduHwW4/SUKXr_B5j4I/AAAAAAAAAWc/vNSZy8v8AZU/s72-c/HorseManure.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-4890755790821983571</id><published>2008-12-11T10:59:00.000-08:00</published><updated>2008-12-11T11:16:24.720-08:00</updated><title type='text'>Back to basics</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_RfCjHduHwW4/SUFjvbcpMDI/AAAAAAAAAWU/Jn8F7eskqmE/s1600-h/BackToBasics.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 130px; FLOAT: left; HEIGHT: 129px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5278609904727830578" border="0" alt="" src="http://2.bp.blogspot.com/_RfCjHduHwW4/SUFjvbcpMDI/AAAAAAAAAWU/Jn8F7eskqmE/s320/BackToBasics.jpg" /&gt;&lt;/a&gt;heh.&lt;br /&gt;&lt;br /&gt;At yesterday's Ops Team I heard that a user attempted to use another workstation but was not successful. Suddenly I realized just how dependant most of my users are on their home workstations profile. Sure, she could log in, but getting to her Email or files was beyond her without additional training.&lt;br /&gt;&lt;br /&gt;A one page FAQ seems to be all it will take, but the larger lesson here is despite all the years I've been doing this I still make assumptions about my users that are just plain wrong. I tell all my guys all the time, "The people we support were hired because they are experts in delivering social services, not I.T., that's what you are for..."&lt;br /&gt;&lt;br /&gt;Sound like I should be taking my own advice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-4890755790821983571?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/4890755790821983571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=4890755790821983571' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/4890755790821983571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/4890755790821983571'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/12/back-to-basics.html' title='Back to basics'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_RfCjHduHwW4/SUFjvbcpMDI/AAAAAAAAAWU/Jn8F7eskqmE/s72-c/BackToBasics.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-8980438896314958078</id><published>2008-12-10T10:20:00.000-08:00</published><updated>2008-12-10T10:27:03.379-08:00</updated><title type='text'>Versioning Issues</title><content type='html'>Well.... what else is new.&lt;br /&gt;&lt;br /&gt;We have SharePoint 2003 working inside the firewall as our main SharePoint server.  We have another server running the extranet that uses SP 2007.  We have InfoPath, combined with MS-Office professional, licenced for 2007 but often installed (since the users prefer) as 2003.  We can write InfoPath forms, including web-browser enabled forms, using Visual Studio, but they must be deployed on SP 2007.  Since our forms go on SP 03 we can't use those deployed forms.  Meanwhile office 2007 Word documents need to be downgraded to office 97-03 to save on the '03 SP server.&lt;br /&gt;&lt;br /&gt;All can be solved by upgrading SP '03 to '07 and upgrading office to '07 as well, but I just finally got my users onto '03 and besides, many of them hate the office '07 interface.&lt;br /&gt;&lt;br /&gt;So I am doomed...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-8980438896314958078?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/8980438896314958078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=8980438896314958078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/8980438896314958078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/8980438896314958078'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/12/versioning-issues.html' title='Versioning Issues'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-5070062717523321005</id><published>2008-12-10T09:42:00.000-08:00</published><updated>2008-12-10T09:48:57.551-08:00</updated><title type='text'>SharePoint on tour</title><content type='html'>At today's operations team meeting I am proposing to go on tour.&lt;br /&gt;&lt;br /&gt;To wit:&lt;br /&gt; * Each team will adapt to or adopt SharePoint in a unique fashion&lt;br /&gt; * SharePoint rewards a different way of thinking, which requires an "ah-Ha" moment&lt;br /&gt; * At it's best, SharePoint will allow team members to come and go without losing institutional knowledge, like where to find a particular file&lt;br /&gt;&lt;br /&gt;So the goals of the tour will be:&lt;br /&gt; • To demonstrate what others have been doing with the sites. (Share wins)&lt;br /&gt; • To create an “ah-Ha” moment.&lt;br /&gt; • To gain feedback for forms, designs, workflows and gadgets.&lt;br /&gt; • To show them how to access training resources.&lt;br /&gt; • To make plans specific to their site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-5070062717523321005?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/5070062717523321005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=5070062717523321005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/5070062717523321005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/5070062717523321005'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/12/sharepoint-on-tour.html' title='SharePoint on tour'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-1282895359054217522</id><published>2008-12-08T08:47:00.000-08:00</published><updated>2008-12-08T08:58:57.941-08:00</updated><title type='text'>Embracing something new</title><content type='html'>A new quote for me to chew on... again from Cleverworkarounds.com&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;To implement SharePoint without any appreciation for organisational culture is simply not smart. If you are dumbfounded by the fact that nobody in the organisation is embracing wiki's, blogs and discussion forums, stop and think about it. Is this organisation conducive to such technologies?&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;It is true that ESSC is mixed in this regard, one set of users is very good at embracing the new, another opposes change almost as a reflex, while a third group often embraces change as a panacea, with the bonus of being able to deflect their issues on the disappointing results their own attitude delivered.&lt;br /&gt;&lt;br /&gt;The key then, to success, is to implement small wins. Rather than looking for a game changer, modify something small to be SharePointish. I will admit however, that I often feel like I'm trying to use a paddle to move a supertanker...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-1282895359054217522?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/1282895359054217522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=1282895359054217522' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/1282895359054217522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/1282895359054217522'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/12/embracing-something-new.html' title='Embracing something new'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-618727071989059484</id><published>2008-12-01T15:06:00.000-08:00</published><updated>2008-12-01T15:13:53.675-08:00</updated><title type='text'>Folder Hell</title><content type='html'>To move forward on the post below I wrote an introductory guide titled "&lt;a href="http://http//sharepoint/sites/TrainingOnDemand/default.aspx?RootFolder=%2fsites%2fTrainingOnDemand%2fShared%20Documents%2fInformation%20Technology&amp;amp;View=%7b355B6760%2d4E37%2d4A46%2dA93D%2dCF7DA3D60235%7d"&gt;Free yourself from folder hell&lt;/a&gt;" which I posted on our training on demand SharePoint page.  Of course the link will not work outside the ESSC firewall, so if you aren't an Easter Seals Southern California staff member, its not available.&lt;br /&gt;&lt;br /&gt;But it is a nice introduction to going folderless....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-618727071989059484?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/618727071989059484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=618727071989059484' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/618727071989059484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/618727071989059484'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/12/folder-hell.html' title='Folder Hell'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-827230816375617482</id><published>2008-11-21T09:28:00.000-08:00</published><updated>2008-11-21T09:32:35.968-08:00</updated><title type='text'>Nothing but folders</title><content type='html'>Another especially poigiant bit from &lt;a href="http://www.cleverworkarounds.com/"&gt;http://www.cleverworkarounds.com/&lt;/a&gt; and his series on SharePoint failure:&lt;br /&gt;&lt;blockquote&gt;Prior to SharePoint, many users will have known nothing else but messy shared file systems where the only means of classification was folders and file naming conventions (that no-one ever followed anyway). Now we have many other tools at our disposal which in theory is a good thing.&lt;br /&gt;But as I said, &lt;em&gt;many people know nothing but folders&lt;/em&gt;. This has been the predominant file classification mechanism for more than 30 years. Trying to “un-learn” more than 30 years of operating fundamentally the same way is not something that will come naturally. Thinking in terms of columns, views and content types requires a deeper understanding of the divisions, disciplines, compliance and vertical market of an organisation.&lt;/blockquote&gt;Really I need to expand on this, and try to get it out to my users...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-827230816375617482?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/827230816375617482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=827230816375617482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/827230816375617482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/827230816375617482'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/11/nothing-but-folders.html' title='Nothing but folders'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-6495824839504969965</id><published>2008-11-20T08:24:00.000-08:00</published><updated>2008-11-20T08:45:37.893-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planning'/><title type='text'>Horst Rittel and “wicked problems”</title><content type='html'>For today, a fantastic definition of wicked, that is to say, planning problems, from &lt;a href="http://www.cleverworkarounds.com/2008/04/11/why-do-sharepoint-projects-fail-part-1/"&gt;http://www.cleverworkarounds.com/2008/04/11/why-do-sharepoint-projects-fail-part-1/&lt;/a&gt;; I find the fourth one especially poignant:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;There is no definitive formation of a wicked problem.&lt;br /&gt;&lt;/strong&gt;•The information needed to understand the problem depends on one’s idea for solving it … Every textbook of systems engineering starts with an enumeration of these phases: "understand the problem or the mission", "gather the information", "analyse the information", "synthesise information and wait for the creative leap", "work out solution", or the like. For wicked problems, however, this type of scheme does not work"&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Wicked problems have no stopping rule&lt;/strong&gt;&lt;br /&gt;• … because (according to Proposition 1) the process of solving the problem is identical with the process of understanding its nature. You can always try to do better as your understanding grows. This leads to the presumption that additional investment of effort might increase the chances of finding a better solution.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solutions to wicked problems are not true-or-false, but good or bad &lt;/strong&gt;&lt;br /&gt;• Judgements on the effectiveness of solutions are likely to differ widely based on the personal interests, value sets, and ideology of the participants.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;There is no immediate and no ultimate test of a solution to a wicked problem&lt;/strong&gt;&lt;br /&gt;• Any solution, after being implemented, will generate waves of consequences that may yield utterly undesirable repercussions which outweigh the intended advantages.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Every solution to a wicked problem is a "one shot operation"; because there is no opportunity to learn by trial-and-error, every attempt counts significantly.&lt;br /&gt;&lt;/strong&gt;• "One cannot build a freeway to see how it works"&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Wicked problems do not have an enumerable (or exhaustively describable) set of potential solutions&lt;br /&gt;&lt;/strong&gt;• There are no criteria which enable one to prove that all solutions to a wicked problem have been identified and considered&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Every wicked problem is essentially unique&lt;/strong&gt;&lt;br /&gt;• By "essentially unique" we mean that … there always might be an additional distinguishing property that is of overriding importance … one can never be certain that the particulars of a problem are consistent with previous problems already dealt with.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Every wicked problem can be considered to be a symptom of another problem &lt;/strong&gt;&lt;br /&gt;• As you investigate problem causes, there is a tendency to discover that the current problem is the symptom of a larger problem. The level at which a problem ’settles’ cannot be decided on logical grounds. Rittel implies here that this characteristic makes phase-based problem solving as described in the first characteristic. "&lt;em&gt;Marginal improvement doesn’t guarantee overall improvement. For examine, computerisation of an administrative process may result in reduced cost, But at the same time it becomes more difficult to incur structural changes in the organisation, because technical perfection reinforces organisational patterns and normally increases the cost of change&lt;/em&gt;."&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The existence of a discrepancy representing a wicked problem can be explained in numerous ways. The choice of explanation determines the nature of the problems resolution.&lt;/strong&gt;&lt;br /&gt;• "You might say that everybody picks an explanation of a discrepancy which fits their intentions best"&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The planner has no right to be wrong&lt;/strong&gt;&lt;br /&gt;• This final distinguishing property is not as relevant as the previous ones. Rittel asserts here that when scientists propose a theory in the "search for truth", they do not have to be right. Rather, the theory is validated by its ability to withstand peer review and repudiation over an extended period of time. Wicked problems on the other hand, do not have this luxury. "Planners are liable for the consequences of the actions they generate".&lt;br /&gt;&lt;br /&gt;Of course, from my experience anyway there is one missing:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Human beings are by their nature, reactive&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;"They won't decide to use your freeway before it's built."&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-6495824839504969965?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/6495824839504969965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=6495824839504969965' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/6495824839504969965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/6495824839504969965'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/11/horst-rittel-and-wicked-problems.html' title='Horst Rittel and “wicked problems”'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-6078931649233112619</id><published>2008-11-19T08:36:00.000-08:00</published><updated>2008-11-19T08:44:00.067-08:00</updated><title type='text'>Wiki v Blog</title><content type='html'>Fiddling with SP 7 I find that it comes with wiki page types as well as blog page types. So if:&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;strong&gt;Encyclopedia is to wiki as diary is to blog&lt;/strong&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;Then I should be able to organize some of the same information I'm listing as discovering here in a format better designed for reference. And of course a majority of what we do has nothing to do with technology, so a generalized ESSC wiki would be quite useful.... hmmmm....&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-6078931649233112619?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/6078931649233112619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=6078931649233112619' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/6078931649233112619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/6078931649233112619'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/11/wiki-v-blog.html' title='Wiki v Blog'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-8202640399511019750</id><published>2008-11-18T09:26:00.000-08:00</published><updated>2008-11-18T09:27:38.549-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SP 7</title><content type='html'>Our first SharePoint version 7 has been deployed and it’s our new extranet server; which begs the question, just what is an extranet?  If an Internet site is for anyone, and an Intranet site is only for people within our organization, then the extranet is the place that fits in between.  It is a site where people can securely share information with our suppliers, vendors, partners or others.  So, for example, this is a place for a partner at National Easter Seals to share documents, presentations, and other files with people in our own development department.  This is a place where a Regional Vice-President can share a document with a partner at Regional Center in preparation for a joint presentation.  This is the place where a program director can park a non-sensitive file that she wants access to from home.  It is a place where one of our vendors can view a purchase order, or potentially track payment information.&lt;br /&gt; &lt;br /&gt;What it is &lt;strong&gt;not&lt;/strong&gt; is a place where information covered under the privacy act, or HIPPA is to be stored.  No medical information about our participants, no medications, no diagnostic’s or addresses or phone numbers… and no non-public information on our contributors.  Summary information is fine, but the type of details that are of interest to identity thieves must be avoided.  This site is only secured by username and password, which is a much weaker form of protection from outside scams and hacking than the information we hold on the SharePoint server that is tucked safely inside our firewall.&lt;br /&gt;&lt;br /&gt;On the other hand, it is available publically, so you can log into it from anything connected to the internet, which can be very useful.  It is not, however a part of our domain, so while we have single sign on, using Passfaces, to everything inside the firewall, from Email to SharePoint, that log-in will not work for the extranet.  You will be prompted for a username and password no matter what machine you are accessing it from.&lt;br /&gt;&lt;br /&gt;Getting access to the extranet is going to take a tad more than just calling I.T. and asking for a new user.  We have a form to fill out, which includes terms of use.  These terms are an important acknowledgement, whether the user is an ESSC associate or a partner in another organization; that the user understands that information shared on the extranet should be restricted in order to avoid abuse.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-8202640399511019750?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/8202640399511019750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=8202640399511019750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/8202640399511019750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/8202640399511019750'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/11/sp-7.html' title='SP 7'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-5955834313548592723</id><published>2008-11-17T10:36:00.000-08:00</published><updated>2008-11-17T10:39:54.575-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Calendars'/><title type='text'>Team Calendars</title><content type='html'>Here's a link to a site which &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-corrected"&gt;has&lt;/span&gt; a link to a demo on how to properly use SP 7 to build team calendars. Always trouble currently since they wind up becoming &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-corrected"&gt;separate&lt;/span&gt; calendars when what is desired is a merge. &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-corrected"&gt;Definite&lt;/span&gt; must read.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sharepoint.microsoft.com/blogs/GetThePoint/Lists/Posts/Post.aspx?ID=138"&gt;http://sharepoint.microsoft.com/blogs/GetThePoint/Lists/Posts/Post.aspx?ID=138&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-5955834313548592723?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/5955834313548592723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=5955834313548592723' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/5955834313548592723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/5955834313548592723'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/11/team-calendars.html' title='Team Calendars'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-1776109432491450245</id><published>2008-11-17T09:53:00.000-08:00</published><updated>2008-11-17T09:56:39.385-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Getting the most from your Metadata</title><content type='html'>I’ll bet you didn’t know you had metadata… but you do. The shortcut meme would be: Meta is to data as Super is to natural. That is, Metadata is beyond data in that it is data that describes data. Now that I have you confused, let me try to unconfuse you a tad by providing a simple example.&lt;br /&gt;&lt;br /&gt;Your Christmas CD may have “White Christmas” as a song turned into a data file that you can play. The label on the CD that tells you that this is Bing Crosby’s Christmas album is Metadata. Simple.&lt;br /&gt;&lt;br /&gt;SharePoint 7 and Office 2007 work together to allow you to easily organize your documents using metadata in the form of ‘Document Information Panels.’ Metadata is hardly new to documents, but has been rarely used in the past. This has been because users were presented with the request to provide Metadata at the time they were saving the document. Nobody wants to answer a bunch of questions about what this is when they are saving it… at that point we are supposed to be done. One of the new twists, in an attempt to make the process easier, is using InfoPath to create custom panels that gather required information, in fields, about a particular document that runs off a template.&lt;br /&gt;&lt;br /&gt;So, what to use it for?&lt;br /&gt;&lt;br /&gt;One example might be, if we have access to participant case notes in an electronic format, to add Metadata fields, in a custom document information panel, that force the selection of a client about whom the notes are written, a date range that lists the dates of service and a reconciliation check box that allows a manager to note that the notes are complete and has been reviewed prior to the workflow moving on to billing.&lt;br /&gt;&lt;br /&gt;This could be done in a word template managed by a document librarian, which in turn could be queried by a gadget on a VP’s home page to show the summary of a day’s work. Cool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-1776109432491450245?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/1776109432491450245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=1776109432491450245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/1776109432491450245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/1776109432491450245'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/11/getting-most-from-your-metadata.html' title='Getting the most from your Metadata'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-7717761042530428646</id><published>2008-11-17T08:36:00.001-08:00</published><updated>2008-11-17T08:50:11.394-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CAML'/><title type='text'>CAML's nose, intent</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_RfCjHduHwW4/SSGgllJ5dwI/AAAAAAAAAQE/cdmYdqpN2zM/s1600-h/ACamel.jpg"&gt;&lt;img style="MARGIN: 0px 0px 10px 10px; WIDTH: 100px; FLOAT: right; HEIGHT: 80px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5269669606489421570" border="0" alt="" src="http://3.bp.blogspot.com/_RfCjHduHwW4/SSGgllJ5dwI/AAAAAAAAAQE/cdmYdqpN2zM/s200/ACamel.jpg" /&gt;&lt;/a&gt; &lt;div&gt;One element of concentration, coming up as we do more and more with SharePoint, is the ability to present information to my various teams in the form of webparts. I thought, prior to studying a bit more, that the approach would be similar to that I use for distributed projects, specifically a call to a web-service that returns XML for the host application to process. I was wrong.&lt;br /&gt;&lt;br /&gt;The proper approach appears to be CAML (Collaborative Application Markup Language) an XMLish query language specific to SharePoint. It appears at least that I can build the gathering query(s) into the gadget, greatly increasing speed and reliability. CAML also seems to have a set of tags designed to render the data.&lt;br /&gt;&lt;br /&gt;So today the blog gets its first tag… CAML &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-7717761042530428646?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/7717761042530428646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=7717761042530428646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/7717761042530428646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/7717761042530428646'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/11/camls-nose-intent.html' title='CAML&apos;s nose, intent'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_RfCjHduHwW4/SSGgllJ5dwI/AAAAAAAAAQE/cdmYdqpN2zM/s72-c/ACamel.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-3278341465986991573</id><published>2008-11-14T07:48:00.000-08:00</published><updated>2008-11-14T07:53:02.472-08:00</updated><title type='text'>Burning Chrome</title><content type='html'>Took a look at chrome, Google's new browser, as well as a beta of explorer eight.  While Chrome has some interesting features I'm still panning it, especially since it simply will not run on a Vista Business (32 bit) machine, although it's perfectly happy on my 64 bit home ultimate...&lt;br /&gt;&lt;br /&gt;The MS explorer eight meanwhile, is an incremental improvement over seven.  Slightly better look, and a few extra tools including suggestions for similar sites to what you are currently browsing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-3278341465986991573?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/3278341465986991573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=3278341465986991573' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/3278341465986991573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/3278341465986991573'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/11/burning-chrome.html' title='Burning Chrome'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-7484916838620646297</id><published>2008-11-12T11:47:00.000-08:00</published><updated>2008-11-13T07:20:39.170-08:00</updated><title type='text'>Using iGoogle</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_RfCjHduHwW4/SRxExCozPwI/AAAAAAAAAP8/Ujw5Im79JuM/s1600-h/79.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 127px; FLOAT: left; HEIGHT: 85px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5268161273428918018" border="0" alt="" src="http://2.bp.blogspot.com/_RfCjHduHwW4/SRxExCozPwI/AAAAAAAAAP8/Ujw5Im79JuM/s200/79.jpg" /&gt;&lt;/a&gt; &lt;div&gt;Despite their slogan, "Don't be evil" Google is... well a bit creepy. Case in point, when googling for directions to a friends house, up popped a picture of their house, yard, and car in driveway... And that demonstrates both the usefulness of Google, and the creepiness factor. In order to find anything it must know everything, even if it takes its own Hydro-electric power plant to keep all those hard drives spinning...&lt;/div&gt;&lt;br /&gt;&lt;div&gt;But creepy or not I still use all their really neat and free stuff (like this blog site). And I'm including a heavy dose of iGoogle.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;At it's most basic iGoogle is a way of customizing your search page by dropping gadgets all over it. Not at all dissimilar to Microsoft's Share Point, which I'll be going about in length (in future posts) for pure team oriented business goodness, iGoogle is instead tailored to the individual user. They also blended it with optional artwork which makes it really quite pretty as well.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;For myself, since I use a number of different computers, having a home web page with all my links is a real time saver. I don't even bother with Explorer's favorites anymore. Beyond that I use it's RSS feeds to get headlines from news and blogs of interest to me, the sticky note pad is handy so I have a couple of those, I use the google mail gadget for my personal email address, and finally I organize it all by the tabs.... Home, Assorted, Projects, Information Systems, and Learning.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Granted, it means Google winds up knowing even more about me, but I figure if resistance really is futile you might as well aim for Jerri Ryan's collective. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-7484916838620646297?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/7484916838620646297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=7484916838620646297' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/7484916838620646297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/7484916838620646297'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/11/using-igoogle.html' title='Using iGoogle'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_RfCjHduHwW4/SRxExCozPwI/AAAAAAAAAP8/Ujw5Im79JuM/s72-c/79.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-536591160618758291</id><published>2008-11-12T10:57:00.000-08:00</published><updated>2008-11-12T11:16:16.781-08:00</updated><title type='text'>Unified Messaging</title><content type='html'>From the always helpful Wikipedia....&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;blockquote&gt;&lt;strong&gt;&lt;em&gt;Unified Messaging&lt;/em&gt;&lt;/strong&gt; is an indistinct term that can refer to the typical definition&lt;a title="" href="http://en.wikipedia.org/wiki/Unified_Messaging#cite_note-0"&gt;[1]&lt;/a&gt; of simple inclusion of incoming faxes and voice-mail in one's email inbox, all the way to dictating a message into a cell phone and the intelligent delivery of that message to the intended recipient in a variety of possible formats like text email, fax, or voice recording. Because of the nebulous definition of UM, it was number one on the 1998 &lt;a class="mw-redirect" title="Wired Magazine" href="http://en.wikipedia.org/wiki/Wired_Magazine"&gt;Wired Magazine&lt;/a&gt; "Hype List".&lt;a title="" href="http://en.wikipedia.org/wiki/Unified_Messaging#cite_note-1"&gt;[2]&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;It is, nevertheless on it's way to us as a test at least.&lt;br /&gt;&lt;br /&gt;My primary goal is the less inclusive defination of the term.  Put in peasant terms, I want to be able to have my voicemails in my email so I don't have to go through the process of dealing with two different systems, phone and email, for my work related messages.  I like the idea, and I'm hoping enough of my internal customer base will as well to make it a hit.&lt;br /&gt;&lt;br /&gt;That said, a few things about Unified Messaging using our existing systems (NorTel KSU's and Call-pilot) deserve mention.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Our NorTel Call-pilots, which host our voicemail boxes, are capable of providing voice mail to email with a reasonably priced add-on.&lt;/li&gt;&lt;li&gt;Unlike the BCM's (Business Communication Managers) the call pilot version won't hook directly to our exchange server, rather they present as seperate mail boxes through each Outlook client.&lt;/li&gt;&lt;li&gt;That means that it will be limited to the users home workstation, be unable to put voicemails in the general inbox, and require deployment on a site by site basis.&lt;/li&gt;&lt;li&gt;To avoid (3) I could go with replacing the callpilots and KSU's with BCM's but won't... because I'm a cheap bastard unwilling to spent several thousand dollars per site just to avoid having to push a bunch of buttons on my phone.  &lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-536591160618758291?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/536591160618758291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=536591160618758291' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/536591160618758291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/536591160618758291'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/11/unified-messaging.html' title='Unified Messaging'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3773034705174268132.post-4013083986954190636</id><published>2008-11-12T10:48:00.000-08:00</published><updated>2008-11-12T10:56:29.141-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='about this site'/><title type='text'>I really don't care...</title><content type='html'>...If anyone ever reads this...&lt;br /&gt;&lt;br /&gt;That may seem strange, to go to the effort of creating a blog that you don't really care is read, but there is a method to this madness.  You see, one of the things I have discovered over the years is that if you have to explain something, especially something you think you already know well, the concentration involved actually improves your understanding.&lt;br /&gt;&lt;br /&gt;As such, I've developed the habit of writing about the things I have learned in my job.  Namely, stuff about technology and it's application in the real world.  I just generally throw away whatever it was I've written, but as a change of pace I decided to write it in a blog.&lt;br /&gt;&lt;br /&gt;Which should be all the explaination this site needs, although doubtless it will get much much more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3773034705174268132-4013083986954190636?l=peasantswithpcs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://peasantswithpcs.blogspot.com/feeds/4013083986954190636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3773034705174268132&amp;postID=4013083986954190636' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/4013083986954190636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3773034705174268132/posts/default/4013083986954190636'/><link rel='alternate' type='text/html' href='http://peasantswithpcs.blogspot.com/2008/11/i-really-dont-care.html' title='I really don&apos;t care...'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='http://bp1.blogger.com/_RfCjHduHwW4/R4J-xIHFGjI/AAAAAAAAAAM/aoaPUULDayE/S220/KG4R5607.JPG'/></author><thr:total>0</thr:total></entry></feed>
