Category Archives: Technology

Kids Summer Programming Class Setup

As mentioned in my prior post announcing my summer programming class for kids you will need to supply your own computer and setup your software ahead of time. Follow the instructions on this post to get things ready.

We will be using Windows operating system that supports the free version of Visual Studio called “Express 2013 for Windows Desktop.”

Even though the Visual Studio Express is free you should create a Microsoft Login Account. May already have one if you have a Skype, Xbox, Hotmail, or any other Microsoft login.  If not then goto and create one.  Here are the instructions Microsoft has for creating a Microsoft Account.

There are a number of flavors of Visual Studio Express so be sure you install the “Express 2013 for Windows Desktop” version only!

Install this version for our class: à
Click Here to Download Express 2013 for Windows Desktop


If you don’t have a machine powerful enough to run Visual Studio you are out of luck so go have your parents pick up a shiny new PC for you. If you need recommendations email me and I’ll help.

If you are a Mac user you will need to setup a Windows Virtual machine. I won’t be able to help with this type of setup so it is best to find someone with Mac expertise to help you. I have cousin who is a big-shot Mac user and I am sure he will help J. Another idea is that you may be able to go to the Apple store and schedule some time with them to help.


Here is what your PC will need to have in order to support Visual Studio

  1. Windows 7, 8, or 8.1
  2. 1.6 GHz or faster core CPU Processor
  3. 1 GB RAM (1.5 GB RAM is using a Virtual Machine)
  4. 4 GB of available Hard Disk which will be used to install Visual Studio

If you have questions please email me and I’ll help!





Summer School Programming Classes

I’ve been pondering for some time now the idea of teaching my kids programming. It seems to me all kids need to have some understanding of how to program computers because it fosters so many additional skills such as critical thinking, attention to detail, logic and mathematics. Programming computers is an enabler of creativity by transforming people from mere consumers of technology to makers.

So while I’m at it I’ll be inviting your kids to. I’ll be following some well thought out class material put together from the good folks at Mona Foundation which I found on my Pluralsight subscription. Lear more about the class content here at  I don’t have a schedule yet but I am thinking of Saturday mornings PST for an hour or so until we get through the materials.

Here is what I plan to teach.

  1. What is a computer program and a few varieties of them
  2. Using a text editor to make a Hello World app
  3. Expanding from text editors to using and understanding Microsoft Visual Studio
  4. Completing the course materials as described in the “Teaching Kids Programming with C#

You will need a computer running Windows or if you have a Mac then run the Windows Virtual Machine.

Update:  See my post about setting up Visual Studio

The classes will be starting soon since summer has already begun I will be live at my home with internet simulcast. Let me know as soon as possible if you are interested in joining us.

Office 365 Premium == Happy Home Computing

For a measly $20 per user you can now power up your family of 5 with:

  • Word
  • Excel PowerPoint
  • OneNote
  • Outlook
  • Access
  • Publisher


Yes that’s right! 5 family licenses for $100 per year! I can suite up my kids and wife with all the tools for school, work and social and never worry about upgrades again! Me so happy!


If you are not familiar with Office 365 it is the same Microsoft Office you are familiar with only your license allows for you to access it not only from your Laptop of Desktop but also from within your browser, mobile phone, public PC’s or Macs. Upgrades just happen so you are always fresh with the latest and greatest features and unburdened from the hassle of buy and/or downloading and installing upgrades yourself (bit time saver). Documents can be stored on OneDrive so you a free from losing data when you’re hard drive fails. OneDrive makes is very easy to share a document with others. Just selected it and click “Share”. You can then share it with anyone you want and set permissions for them to either view-only or edit.


Each license comes with 20 GB of OneDrive storage making it extremely easy to share documents with each other and out-siders like teachers, friends, coworkers and extended family. Included are 60 minutes of Skype caller per month so if you make that many calls it almost off-sets the price of a single user license.


I am having great success with this product and would like to hear how or if it works for you!


Link to the Amazon download here.

Release of my latest Web Project: “Check In Now”

I don’t usually get to showcase my development work because the vast majority is for internal business and intranet usage. Today, however, is an exception as we are live with a project I have worked on over the past 4 months. It is an ASP.Net, HTML5 MVC4 application which leverages Entity Framework 6, JQuery, Titter Bootstrap, oAuth, Toastr and other plugins.

The Covenant Medical Group “Check In Now” application allows patients to view current wait times and pre-register at four urgent care facilities located in Lubbock Texas. This app will be expanded to cover many more facilities and regions of the St. Joseph Health System. Patients can complete paperwork at home, ahead of their arrival time. Doing so, fast-tracks their registration process and time to treatment once they arrive. Facility administrators have the ability of updating wait times, view incoming queue of patients and send emails and SMS text messages directly to arriving patients.


Sniffing SharePoint for Enterprise License Feature Usage

SharePoint Enterprise features provide users the ability to use advanced capabilities not found in standard SharePoint licensing. Once you have licenses for Enterprise features all you do is enable them on the site collections and users are free to consume them.

Once enabled, however, there is no easy way to determine if they are being actually used. Enterprise license are pretty expensive so you want to be sure you are getting your money’s worth.

One, painful way to determine usage is to manually thumb around sites looking for things like Excel or Visio Web Parts, InfoPath forms, Content Organizer Rules, Data Connection Libraries or Power Pivot libraries. That is not practical, nor accurate, nor fun.

In my case I have no fancy commercial tools to manage and administer my farm so I often resort to rolling my own PowerShell scripts. The following are some functions I wrote to detect and document the instances of Enterprise feature usages.

The first thing you need is a loop that iterate down through your farm Site Collections and sites. Something like this usually works fine.

Once this main loop is in place we can insert detection functions which analyze SPList objects of each site. With the help of some online research below are the functions I came up with. All of the functions accept a site URL and iterates over the SPList objects to determine if the condition I am looking for is found. If a SPList object contains the feature I seek, it is added to an ArrayList and returned to the calling main loop. The main loop collects all ArryLists and then exports them to CSV or whatever you want to do with them. I export to CSV and put those in MS Access for creating nice reports.

Detecting PowerPivot Libraries

The trick to this function is to analyze the TemplateFeatureId property of a document library and compare it to the feature ID’s for PowerPivot. The PowerPivot feature Id’s are specified in the code.

Detecting Data Connection Libraries

This method is the same as used for detecting PowerPivot Libraries with the exception of a different feature Id.

Detecting Excel Web Parts

This one is a bit more complicated and requires first determining if the function is dealing with a Publishing site or not. For Publishing sites we have to get something called a “LimitedWebPartManager” from each SPListItem in the Pages library. The “LimitedWebPartManager” allows you to iterate over each web part on the page to detect if the any web part of type “ExcelWebRenderer.”

If we are not dealing with a Publishing site, then function looks through all SPList objects that have a “BaseTemplate” property of “WebPageLibrary.” Again using the “LimitedWebPartManager” we look for the same “ExcelWebRenderer” type web parts.

When we find even one “ExcelWebRenderer” web part in a page we add the SPList to the ArrayList which is returned to the calling loop.

Detecting Content Organizer Rules

Content Organizing Rules are Enterprise features usually found in Document or Record Centers. These rules are created by users to automatically route documents to their proper folder based on Meta data on the document. Look it up if you are not sure what they are I think you will find them pretty cool.

Content Organizer Rules are stored in HIDDENs list using a content type named “Rule” so we just iterate over the Hidden SPList objects looking to see if the “Rule” content type is being used. If it is, the SPList is put in my return ArrayList.

Detecting InfoPath Forms

There is probably a cleaner way to detect usage of InfoPath forms but this was what I found in a pinch. In my environment it worked for at least a very large portion of InfoPath usages. I noticed that when you examine a list that has a custom InfoPath form instead of the default, SharePoint Designer will display alongside the default NewForm.aspx and EditForm.aspx additional forms called newifs.aspx and editifs.aspx respectively. I assumed that the “ifs” suffix stands for “InfoPath Form Services” so I set out to detect those. In addition, Form Libraries can also use InfoPath forms and those can be detected by inspecting their BaseTemplate property. If “XMLForm” is the BaseTemplate then an InfoPath Form is being used.

Exporting to CSV

As mentioned before, the main loop collects all the ArrayLists returned by the detection functions for export to CSV (in my case pipe delimited rather than comma). Just select the properties of the SPList and send them to the Export-CSV commandlet. Since all the CSV’s have the same columns just import them into Excel or Access and make your report.

Final Code

Code Snippets using Geshi Syntax Highlighter

From here on out I will be using Geshi Syntax Highlighter. I think this will work out nicely. Below is a sample.

Using PowerShell to reboot remote servers

Here is a handy script to reboot remote servers in your SharePoint farm (or any server for that matter).

$stageSrvrs = @(“Server1″, “Server2″, “Server3″);
$prodSrvrs = @(“Server1″, “Server2″, “Server3″);

# Set downstream functions destination to either Stage or Production Servers.
$destAnswr = Select-Item “Select Destination” -Message “Deploy to: ” -choice “&Stage”, “&Production”;

if($destAnswr -eq 0)
{$destSrvrs = $stageSrvrs}
{$destSrvrs = $prodSrvrs}

$destSrvrs | foreach-object {
Write-Host “Rebooting ” $_;
(gwmi win32_operatingsystem -ComputerName $_).Win32Shutdown(6)

PowerPivot Won’t Work if CU is installed before PowerPivot

For all you installing a brand new SharePoint 2010 farm here is a Microsoft gotcha that I learned the hard way.  It turns out that if you install the October 2010 cumulative update prior to installing PowerPivot it will break and not work – forever!  Furthermore you will have to wait until the late June arrival of SP1 to fix it.  Enjoy!


SharePoint 2010 Central Administration URL

Yesterday I applied a CU to my farm and noticed that the URL to my Central Administration was changed to my front-end web server. 
No matter which server I used to open the Central Administration using the Start Menu I was directed to the wrong server. 

If you look at the shortcut target property on the start menu link you see:

“C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN\psconfigui.exe” -cmd showcentraladmin

See that –cmd showcentraladmin parameter? That told me the URL was configured somewhere. 

Many of us on the SharePoint Shoptalk figured the URL was stored in the configuration database but after fumbling through the tables there nothing was standing out at me. 
I then ran a search on my registry for “Central Administration” and low-and-behold found a CentralAdministrationURL key that contained the wrong URL. 
So I changed it to the correct URL and then opened Central Administration from the Start Menu and all was well again.. 

Unfortunatly, I have a number of Servers to fix this on so I decided to write this little Powershell Script to run on each server.

$oldValue = Get-ItemProperty -Path ‘HKLM:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\14.0\WSS\’ -Name CentralAdministrationURL | select CentralAdministrationURL;

$CentralAdminURL = http://myserver:port/default.aspx;

Set-ItemProperty -Path ‘HKLM:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\14.0\WSS\’ -Name CentralAdministrationURL -Value $CentralAdminURL;

If you know of any other way to set this than let me know.

Be very carful to have the correct URL specified in the $CentralAdminURL variable. You have been warned!

SharePoint 2010 Certification Exam Prep Materials

I conjured up some Exam preparation materials and wanted to share them with my readers.  These are not my own documents but docs I acquired by asking some very nice MS people (I have my sources :))

Having just passed the MCTS 70-667 Exam I can attest that these docs will help you!  Additionally I would recommend the book “Professional SharePoint 2010 Administration”  by Todd Klindt, Shane Young, and Steve Caravajal.

Here are the links to where you can download the materials: