Computer Technologies Fundamentals Offered for Fall Term

After two successful classes, we will be offering our Computer Technologies Fundamentals Course again this fall.

New This Term – Expanded UX Design Section

After some great feedback from our first graduates, we have expanded our wildly popular UX Design Section. User eXperience or User Interface Design is an extremely important technology in today’s app driven world and we go into even more depth with this technology in our updated class.

Dream Spark Program

Through a strategic partnership with Microsoft, we are able to offer our students a membership in the Microsoft DreamSpark program. This program offers verified students with thousands of dollars’ worth of Microsoft software for free so that students can learn the latest technologies. In addition, members have access to top notch training and discounts on hardware and other software. Access to the DreamSpark program easily offsets the cost of this class.

Computer Technology Fundamentals 101

This class would give a general knowledge of computer hardware and software. The focus would not be on surface usage, as most of our kids already know how to use a computer. Rather, the “behind the scenes” information would be covered. This will give a student the foundation needed for programming, networking, visual and application design.

Topics Covered

  • Computer Hardware and Repair
  • Operating Systems
  • Networking
  • Computer Programming
  • Databases
  • UX (User Experience/Interface) Design
  • Data Driven Programming

Is This for Your Student?

Students would need to have a strong interest in computers and a self-learner. This field requires someone who is self-motivated and likes to solve problems.

Class 411

Beginning on Tuesday, September 25, 2012, the class will be 8 weeks long, meeting once a week.

  • We would meet at my home in Pleasant Ridge, MI (across from the Detroit Zoo – off of Woodward Ave).
  • It will be an evening class since I work in the day, 7-9 pm.
  • Each student would need to bring a laptop to class and have one available for practice exercises.
  • The cost would be $150 per class.

Important Dates

August 15, 2012 Open Registration Begins
September 25, 2012 First Class Session 7:00 – 9:00 pm
November 13, 2012 Last Class Session 7:00 – 9:00 pm

Please see my post on the original offering and spring 2012 session for more information.

Posted in Education, Technology | Tagged , , , , | Leave a comment

Computer Technologies Course Offered for Spring term

After a successful class this fall, we will be offering our Computer Technologies Fundamentals Course again this spring.

New This Term – DreamSpark

Through a strategic partnership with Microsoft, we are able to offer our students a  membership in the Microsoft DreamSpark program. This program offers verified students with thousands of dollars’ worth of Microsoft software for free so that students can learn the latest technologies. In addition, members have access to top notch training and discounts on hardware and other software. Access to the DreamSpark program easily offsets the cost of this class.

Computer Technology Fundamentals 101

This class would give a general knowledge of computer hardware and software. The focus would not be on surface usage, as most of our kids already know how to use a computer. Rather, the “behind the scenes” information would be covered. This will give a student the foundation needed for programming, networking, visual and application design.

Topics Covered

  • Computer Hardware and Repair
  • Operating Systems
  • Networking
  • Computer Programming
  • Databases
  • UX (User Experience/Interface) Design
  • Data Driven Programming

Is This for Your Student?

Students would need to have a strong interest in computers and a self-learner. This field requires someone who is self-motivated and likes to solve problems.

Class 411

Beginning in Tuesday, February 7, 2012, the class will be 8 weeks long, meeting once a week.

  • We would meet at my home in Pleasant Ridge, MI (across from the Detroit Zoo – off of Woodward Ave).
  • It will be an evening class since I work in the day, 7-9 pm.
  • Each student would need to bring a laptop to class and have one available for practice exercises.
  • The cost would be $150 per class.

Important Dates

January 23, 2012 Open Registration Begins
February 7, 2012 First Class Session 7:00 – 9:00 pm
March 27, 2012 Last Class Session 7:00 – 9:00 pm

Please see my post on the first class offering for more information.

Posted in Education, Technology | Tagged , , , , , , , , , , | Leave a comment

Computer Technologies Fundamentals Course

Since coming to Detroit, I’ve had it in my heart to offer a tutoring class in computer technologies. I currently work as a programmer specializing in Microsoft SharePoint. There are many good paying jobs in my field, right here in Detroit and nationally, but very few people with proper training. Because of this, many of these jobs are being filled by people from other countries.

Preparing the Next Generation

I am now offering a two part class that could direct high school age students into these fields and technologies.

Computer Technology Fundamentals 101

This class would give a general knowledge of computer hardware and software. The focus would not be on surface usage, as most of our kids already know how to use a computer. Rather, the “behind the scenes” information would be covered. This will give a student the foundation needed for programming, networking, visual and application design.

Topics Covered

  • Computer Hardware and Repair
  • Operating Systems
  • Networking
  • Computer Programming
  • Databases
  • UX (User Experience/Interface) Design
  • Data Driven Programming

Computer Technologies 201

A second class would be offered to expose the students to various technologies in programming, networking, visual and application design to see what piques their interest. At the end of this class, depending on the student’s skills, I would like to direct them to specific online courses they can take to become certified in a certain area. Because technologies are changing at a very rapid pace, a traditional college/university cannot develop curriculum fast enough. Online courses are the best way to get the education needed for the demands of the job market today and into the future. This class will be offered after the Computer Technologies 101 class has completed.

Is This for Your Student?

Students would need to have a strong interest in computers and a self-learner. This field requires someone who is self-motivated and likes to solve problems.

Class 411

Beginning in Tuesday, October 4, the class will be 8 weeks long, meeting once a week.

  • We would meet at my home in Pleasant Ridge, MI (across from the Detroit Zoo – off of Woodward Ave).
  • It will be an evening class since I work in the day, 7-9 pm.
  • Each student would need to bring a laptop to class and have one available for practice exercises.
  • The cost would be $150 per class.

Important Dates

September 17, 2011 Open Registration Begins
October 4, 2011 First Class Session 7:00 – 9:00 pm
November 22, 2011 Last Class Session 7:00 – 9:00 pm
Posted in Education, Technology | Tagged , , , , , , , , , , | 3 Comments

Automating New SharePoint Sites with Domain Names for Development using PowerShell

One of the greatest capabilities of SharePoint 2010 is the ability to install on a client operating system like Windows 7 64-bit. This is a real plus for developers as we previously had to stand up a virtual machine running Windows Server operating system just to be able to develop for SharePoint. More information on how to do this can be found in the MSDN article. There is also an automated PowerShell install script available.

Once one gets SharePoint running on your computer, likely the next roadblock will be trying to figure out how to host a site like http://portal.company.com to run on their system. The first two problems with this scenario is that…

  1. I do not have access or the authority to add hosts to the corporate DNS. The way around this is to specify the IP and domain name in the C:\Windows\System32\drivers\etc\hosts file.
  2. IIS is designed to reject traffic from an external domain being routed back to the local computer. The resolution to this is outlined in the KB 896861 Article. Although one of the resolutions is to disable the loopback check, I prefer to specify the Domain Names to be allowed explicitly.

The good news is that we can automate all of the above with a simple PowerShell script that checks the hosts file and adds an entry if needed, then checks the registry value for the BackConnectionHostNames and adds this one if necessary.

param([String]$DN)

Function New-FQDN([String]$DN)
{
	Append-UrlToHostsFile -Url $DN
	Append-UrlToBackConnectionHostNames -Url $DN
}

Function Append-UrlToHostsFile([String]$Url)
{
	if((Get-Content $env:windir\System32\drivers\etc\hosts |?{$_ -imatch "\s$Url"}) -eq $null)
	{
		"`r`n#	Added automagically by the New-FQDN PowerShell Script`r`n::1		$url" | Out-File -FilePath "$env:windir\System32\drivers\etc\hosts" -Append -Encoding ascii
	}

}

Function Append-UrlToBackConnectionHostNames([String]$Url)
{
	if(($gchn = Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\" -Name "BackConnectionHostNames" -ea SilentlyContinue) -eq $null)
	{
    	New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\" -PropertyType MultiString -Value $Url -Name "BackConnectionHostNames"	}
	else
	{
		if(($gchn.BackConnectionHostNames |?{$_ -imatch $Url}) -eq $null)
		{
			Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\" -Name "BackConnectionHostNames" -Value ($gchn.BackConnectionHostNames+"`n$Url")
		}
	}
}

if($DN)
{
	New-FQDN -DN $DN
}
else
{
	Write-Host "Please enter the domain name e.g.
	.\New-FQDN.ps1 -DN sub.domain.com"
}

Copy the above script to notepad or some other text editor and save it as New-FQDN.ps1. Then you can execute it via PowerShell in the following manner.

.\New-FQDN.ps1 -DN portal.company.com
Posted in PowerShell, SharePoint | Tagged , , , | Leave a comment

SharePoint Project Without Assembly

I don’t know about you, but sometimes I have the need to produce a SharePoint 2010 Project using Visual Studio 2010 that contains only Modules, Element, List definitions and the like. These can all be activated by a feature and deployed using a wsp file. The Visual Studio project template creates the framework and folders that you would usually need for a robust SharePoint project. However, in this case, it is not necessary nor prudent to deploy an assembly to the GAC that does absolutely nothing!

There is actually a simple solution to this dilemma and I hope that it will save someone a whole lot of time. It took me quite some time to stumble on this one! Here is what you need to do:

After you have created a new empty project bring up the properties panel by selecting the project in the solution explorer and pressing F8. Do not select the Project Properties from the application menu or the Contextual menu (aka “Right-Click”) as these do not have the right options.

Simply set the Include Assembly In Package property to False. Now when you build, package and deploy your project, it will not contain an assembly.

Posted in SharePoint, Visual Studio | Tagged , , , | Leave a comment

Adventures With Office Web Apps

The company for which I am consulting recently had the need to install Microsoft Office Web Apps into their existing SharePoint 2010 farm. in the process of deploying this, I learned quite a few things that I will pass along to those who face this task.

There is an excellent Microsoft TechNet article at http://technet.microsoft.com/en-us/library/ff431687.aspx that explains a lot of the details. I would like to make several points that were crucial in the deployment:

  • When creating the Service Applications, use the ?SharePoint Web Service Default? application pool as described in the TechNet article.
  • Ensure ?SharePoint Web Service Default? application pool account has rights to database content database. In our case, the account was different than the Database Access account and did not have rights to the database. Because of this we received an error when we tried to open in the browser ? ?Word Web App cannot open this document for viewing because of an unexpected error.? After some troubleshooting we discovered this was due to a permission denied in the database of the app pool account.
  • Make sure you activate the ?Office Web Apps? feature on Site Collection. otherwise, you will not know Office Web Apps has been installed.
  • Although .doc and .ppt files can be viewed in the browser, in order to edit them in the browser, they must first be upgraded to the Open Office format ? .docx and .pptx formats respectively. However, . xls files cannot be even viewed in the browser and must be upgraded to .xlsx before they can be used at all.
  • Excel files also take an extra step to view them in the browser – you must make sure to add a “Trusted File Location” in Excel Services Application by navigating to the Central Administration web application –> Application Management –> Manage Service Applications –> Excel Services Application –> Trusted Files Location. You can add a path to the entire site collection, a specific site or a single library. If you are serving the site on http and https, you will need two entries to accomplish this.
  • Also note that if you are requiring Check-out on the library, Office Web Apps will prompt you to inform you that the file must be checked out before it can be edited. The user must perform this task. It will not do it for you!

Microsoft’s Office Web Apps is a very powerful add-in for Microsoft SharePoint Server 2010 and is especially useful in an extranet environment where Microsoft Office versions and Internet Browsers used cannot be controlled. If it is set up properly, the benefits to your organization can be huge.

Posted in Office, PowerShell, SharePoint | Tagged | Leave a comment

Running PowerShell Script from Task Scheduler

There are numerous posts out there about how to execute a PowerShell script from the Task Scheduler in Server 2008. I was unable to get them to work for me, so I wrote a BAT file that kicked off the PS1 and called the BAT file from the task scheduler.

Old skool – I know – but it works. If you have a better solution, feel free to leave comments…Smile

Posted in PowerShell | Tagged , , | Leave a comment

Applying WSS 3.0 SP2 After MOSS 2007 SP2

I know you are thinking that is a crazy title because MOSS 2007 SP2 cannot be applied before WSS 3.0 SP2. Well it can be done! With the original version of MOSS 2007, one was unable to install on the Server 2008 platform without a slipstreamed install version that included at least SP1.

On a recent engagement of mine, the consultants before me had inadvertently installed MOSS 2007 on Windows Server 2008 using a slipstream install that included MOSS 2007 SP2 but not WSS 3.0 SP2. As you can well imagine, the client was experiencing a myriad of issues with this configuration.

If you simply launch the Service Pack executable file,it will automatically unpack the contents and promptly produce a message box stating, “The update is already on this system.” Instead open a command prompt, cd to the directory where the exe resides and executed the file with the /extract: switch to extract the contents of the Service Pack to a location on the Local Hard Disk. For example:

wssv3sp2-kb953338-x64-fullfile-en-us.exe /extract:C:\SP2

This will extract the contents of the Service Pack to C:\SP2. Navigate to C:\SP2 and note that there are three msp files. The last one, wsswwsp2.msp, is a bootstrapper for the other two and is not needed in our situation. Open the first one, stswwsp2.msp, to apply the main SP2 for WSS 3.0. Then open the second one, wssmuisp2-xx-xx.msp, to apply the language pack for your language – mine was en-us or 1033.

After those complete make sure you repeat the process for every server in the SharePoint farm and don’t forget to run the SharePoint Products and Technologies Configuration Wizard to complete the update.

Posted in SharePoint | Tagged , | Leave a comment

Linking to SharePoint 2010 List Forms

The Dilemma

We recently upgraded from Microsoft Office SharePoint Server 2007 to SharePoint Server 2010. All in all it was a very smooth transition. But as in many things in life, we are discovering day by day – week by week some of the interesting quirks of this process.

One such dilemma was that a department here had a Publishing Page with a list of links that presented the user to go directly to a number of NewItem Forms for the various List on that department’s site. For Example…

In 2007 this was a great arrangement as it would link directly to the "New" Form. However, in SharePoint 2010, the forms are presented in a modal AJAX dialog and are not fully functional when called directly. My first instinct was to add the "OnClick" event to the links – following the pattern of the out-of-the-box functionality – except that the Rich Text Editor strips out javascript in the name of security.

The Resolution

The solution was to implement a XMLForm Web part with the data for the links and XSL to tranform the data into a list of links including the OnClick event needed to open the form in a Modal AJAX dialog.

The XML

<?xml version="1.0" encoding="utf-8"?>
<Lists>
  <List Name="Create a new Service Request" ListId="{E1EFFE1C-C77C-4A0B-A479-9705074EC20E}" />
  <List Name="Create a new Event" ListId="{B0F76C5B-0F81-46AA-AAE8-6B9B2850E061}"/>
</Lists>

As you see this is simply a representation of the List Name and the GUID of the ListId. The real magic is in the XSL transformation.

The XSL

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
  <xsl:output method="html" indent="yes"/>
  <xsl:variable name="formLink">../_layouts/listform.aspx?PageType=8&amp;ListId=</xsl:variable>
  <xsl:template match="Lists">
    <ul>
   numberswiki.com


   <xsl:for-each select="List">
        <li>
          <a>
            <xsl:attribute name="href">
              <xsl:value-of select="$formLink" />
              <xsl:value-of select="@ListId" />
            </xsl:attribute>
            <xsl:attribute name="onClick">
              <xsl:text>javascript:NewItem2(event, &quot;</xsl:text>
              <xsl:value-of select="$formLink"/>
              <xsl:value-of select="@ListId" />
              <xsl:text>&amp;RootFolder=&quot;);javascript:return false;</xsl:text>
            </xsl:attribute>
            <xsl:value-of select="@Name"/>
          </a>
        </li>
      </xsl:for-each>
    </ul>
  </xsl:template>
</xsl:stylesheet>

This code loops through the Lists and displays them as an bulleted list. The OnClick event is the key on the <a> tag as it builds the appropriate javascript call to open the New Form in a Modal AJAX Dialog box. This allows you full functionality in the New Form including attaching files – without errors!

Posted in SharePoint | Tagged , , | Leave a comment

Application Was Unable To Start Correctly Error

The Problem

I recently ran across this error when trying to open a PowerPoint deck that I had downloaded from a SharePoint site. My Platform is Windows Server 2008 R2 with Office 2010 installed. When I tried to open the file , I received the following dialog.

Application Was Unable To Start Correctly Screenshot

After clicking OK, I then received the following notification.

Found A Problem With Content In Dialog Screenshot

Clicking Repair was of no help, as it could not repair the file.

The Solution

After some googling, I found out that the source of my problem was that the file, having been downloaded from an internet location, had been blocked by Internet Explorer, the OS or both.

I selected Properties from the context-menu on the file – commonly known as “right-click” and found the dialog box below.

File Properties dialog with "Unblock" highlighted.

By selecting Unblock, the file was able to be opened successfully. While the file in this example is a PowerPoint Presentation, the solution is applicable to all Office Documents.

Posted in Office, SharePoint | Tagged , , | Leave a comment