Saturday, January 3, 2009
F# leads the transformation
What F# represents is a partitioning of the programming languages. And unlike previous partitions this is a transformative change. General purpose languages are being supplanted by a collection of domain specific languages. These domain specific languages will include a general purpose language but it will not be there to rule them all but rather to orchestrate them all.
F# is a native or natural functional language where objects are possible (but the objects may not feel native or natural). C# is an object oriented language. With the advent of LINQ, some functional capabilities are possible but most C# programmers have experienced the unnatural things LINQ is doing to the language.
So each language has a dominant paradigm, C# is an object oriented language and F# is functionally oriented. Each supports the other paradigm but using that paradigm is for one off or special purpose needs. LINQ allows C# programmers to off load a bunch of data processing tasks that are hard and / or tedious to code in any C derivative language. Likewise objects are available in F# in case you need to maintain state. But the more you need to maintain state the less the task you are working with is a functional oriented task.
Since we are 60+ years into programming, Bare-Naked-Ladies-Fans ("It's all been done") are sure to point out this has all been done before. This is a valid point as C++ and Perl demonstrate. Both languages have adapted and provide these and numerous other features. However both languages have purchased these abilities at ever increasing complexity. As the Ruby creator aptly points out C++ is constantly surprising him. For a hobbyist, surprise is fun. For a guy trying to get something done surprise is bad.
But leaving aside surprise, it is hard to feel like you know either of C++ of Perl in their entirety. All special purpose languages that succeed will share this fate. Every feature the language supports will require some complexity to implement it in the syntax. The future being unknowable will always mean some choices turn out to be less than perfect.
So as the general purpose languages evolve their complexity and internal contradictions will grow as well. The languages scream for a refactoring. But refactoring is the one tool no language can ever use. No matter how ill advised a feature, it cannot be removed because this would break countless programs. And refactoring is not the removal of one feature but the wholesale change of several features.
What history gave us was series of general purpose languages (C, C++, Perl, Java, C# and others) where an attempt was made to refactor to the perfect paradigm. The dot Net platform opens up a new way; several languages can interoperate on the same platform and in the same development environment. F# is the break out example because unlike the C# and VB.net interaction it implements a completely different programming paradigm.
The general purpose languages do not have to implement every hot new feature. They can develop side by side with the F# languages, leveraging their power without corrupting their own syntax.
Thursday, October 30, 2008
Brief: Powershell With Visual Studio 2008
Books:
Windows PowerShell Cookbook
Microsoft Windows Powershell Step by Step
Links:
Powershell Main Page
http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx
Powershell Team Blog
http://blogs.msdn.com/Powershell/
UI Automation Article
http://msdn.microsoft.com/en-us/magazine/cc337896.aspx?pr=blog
Visual Studio Addins:
CodePlex project Powershell inside VS2008
http://www.codeplex.com/VSCmdShell
CodePlex project Powershell Debugger Visualizer
Wednesday, October 29, 2008
Code: Powerscript to remove directory
$ReleaseList = Get-Content '.\ReleaseList.txt'
foreach($Directory in $ReleaseList)
{
Write-Host "Removing Directory: " $Directory
if (Test-Path -Path $Directory)
{
remove-item -recurse $Directory
}
else
{
Write-Host "Directory does not exist: $Directory"
}
}
Wednesday, October 22, 2008
Link: 48 Visual Studio 2008 Tools
Link to page explaining 48 tools that ship with visual studio 2008.
Thursday, October 16, 2008
Link for Team Foundation System, Server and Suite VPC image
Link for Team Foundation System, Server and Suite VPC image
Tuesday, October 7, 2008
Outline Microsoft Partner Competency Requirements
Microsoft Partner Competency
Competencies
- Small Business
- Advance Infrastructure Solutions
- Business Intelligence
- Custom Development Solutions
- Data Management Solutions
- Hosting Solutions
- Information Worker Solutions
- ISV/Software Solutions
- Learning Solutions
- Microsoft Business Solutions (Dynamics)
- Mobility Solutions
- Networking Infrastructure Solutions
- OEM Solutions
- Security Solutions
- SOA and Business Process
- Unified Communications Solutions
Requirements
- Small Business
- Small Business Sales and Marketing exam
- One of three (four) technical exams
- 70-282 deploy network
- 70-236 Exchange Server 2007, Configure
- 74-134 OEM Preinstall Kit
- 70-631 Sharepoint 3.0, Configure
- 70-282 deploy network
- Small Business Sales and Marketing exam
- Advance Infrastructure Solutions
- https://partner.microsoft.com/40012655
- Specializations
- Active Directory
- Two Advanced MCP: MCSE, MCSD, MCDBA
- One of four exams
- 70-294 Planning 2003 Active Directory
- 70-297 Design 2003 Active Directory
- 70-640 Configure 2008 Active Directory
- 70-647 Server 2008, Enterprise Manager
- 70-294 Planning 2003 Active Directory
- Three refs
- Two Advanced MCP: MCSE, MCSD, MCDBA
- Systems Management
- Two Advanced MCP: MCSE, MCSD, MCDBA
- One of four exams (increase to two, June 2009)
- 70-400 SC Operations Manager, Configuring
- 70-401 SC Configuration Manager, Configuring
- 70-089 Systems Management Server 2003 (del. June 2009)
- 70-290 Managing Server 2003 Environment (del. June 2009)
- 70-400 SC Operations Manager, Configuring
- Three refs
- Two Advanced MCP: MCSE, MCSD, MCDBA
- Storage Solutions
- Two Advanced MCP: MCSE, MCSD, MCDBA
- One of eight exams
- Exam 70-270—Installing, Configuring, and Administering Windows XP Professional
- Exam 70-291—Implementing, Managing, and Maintaining a Windows Server 2003 Network Infrastructure
- Exam 70-293—Planning and Maintaining a Windows Server 2003 Network Infrastructure
- Exam 70-297—Designing a Windows Server 2003 Active Directory and Network Infrastructure
- Exam 70-620—TS: Configuring Windows Vista Client
- Exam 70-621—PRO: Upgrading your MCDST Certification to MCITP Enterprise Support
- Exam 70-640—TS: Windows Server 2008 Active Directory, Configuring
- Exam 70-642—TS: Windows Server 2008 Network Infrastructure, Configuring
- Exam 70-270—Installing, Configuring, and Administering Windows XP Professional
- Three refs
- Two Advanced MCP: MCSE, MCSD, MCDBA
- Windows Desktop Deployment
- Two MCP
- One of four exams
- Exam 70-620; TS: Windows Vista, Configuring
- Exam 70-621; PRO: Upgrading your MCDST Certification to MCITP Enterprise Support
- Exam 70-622; PRO: Supporting and Troubleshooting Applications on a Windows Vista Client for Enterprise Support Technicians
- Exam 70-624; TS: Deploying and Maintaining Windows Vista Client and 2007 Microsoft Office System Desktops
- Exam: 70-656; TS: Configuring Microsoft Desktop Optimization Certification Pack
- Exam 70-620; TS: Windows Vista, Configuring
- Three refs
- Two MCP
- https://partner.microsoft.com/40012655
- Business Intelligence
- Business Intelligence Platform
- Two MCP
- One of five exams
- Exam 70-228—Installing, Configuring, and Administering Microsoft SQL Server 2000 Enterprise Edition
- Exam 70-229—Designing and Implementing Databases with Microsoft SQL Server 2000 Enterprise Edition
- Exam 70-431—TS: Microsoft SQL Server 2005—Implementation and Maintenance
- Exam 70-445—TS: Microsoft SQL Server 2005 Business Intelligence—Implementation and Maintenance
- Exam 70-446—PRO: Designing a Business Intelligence Infrastructure by Using Microsoft SQL Server 2005
- Exam 70-228—Installing, Configuring, and Administering Microsoft SQL Server 2000 Enterprise Edition
- Three refs
- Two MCP
- Performance Management
- Two MCP
70-556: TS: Microsoft Office PerformancePoint Server 2007, Applications.
- Three refs
- Two MCP
- Custom Development Solutions
- Two MCPD, MCSD, MCAD
- Three refs
- Two MCPD, MCSD, MCAD
- Data Management Solutions
- Two MCP
- One of eight exams
- Exam 70-228—Installing, Configuring, and Administering Microsoft SQL Server 2000 Enterprise Edition
- Exam 70-229—Designing and Implementing Databases with Microsoft SQL Server 2000 Enterprise Edition
- Exam 70-431—TS: Microsoft SQL Server 2005—Implementation and Maintenance
- Exam 70-441—PRO: Designing Database Solutions by Using Microsoft SQL Server 2005
- Exam 70-442—PRO: Designing and Optimizing Data Access by Using Microsoft SQL Server 2005
- Exam 70-443—PRO: Designing a Database Server Infrastructure by Using Microsoft SQL Server 2005
- Exam 70-444—PRO: Optimizing and Maintaining a Database Administration Solution by Using Microsoft SQL Server 2005
- Exam 70-447—UPGRADE: MCDBA Skills to MCITP Database Administrator by Using Microsoft SQL Server 2005
- Exam 70-228—Installing, Configuring, and Administering Microsoft SQL Server 2000 Enterprise Edition
- Three refs
- Two MCP
- Hosting Solutions
- Two MCT, MCSA, MCAD, MCSD, MCSE, MCDBA
- Sales: 75 processor or 3000 subscriber
- Three refs
- Two MCT, MCSA, MCAD, MCSD, MCSE, MCDBA
- Information Worker Solutions
- ISV/Software Solutions
- Tested Software
- Three refs
- Tested Software
- Learning Solutions
- Licensing Solutions
- License Delivery
- Two MCP
- One of two tests
- Exam 70-671: Designing and Providing Microsoft Volume Licensing Solutions to Small and Medium Organizations
- Exam 70-672: Designing and Providing Microsoft Volume Licensing Solutions to Large Organizations
- Exam 70-671: Designing and Providing Microsoft Volume Licensing Solutions to Small and Medium Organizations
- Three refs
- Two MCP
- Software Asset Management
- Two MCP
- Exam 70-123: Planning, Implementing, and Maintaining a Software Asset Management (SAM) Program.
- Three refs
- Two MCP
- Microsoft Business Solutions (Dynamics)
- Microsoft Dynamics AX
- Microsoft Dynamics C5 (Denmark only)
- Microsoft Dynamics CRM
- Microsoft Dynamics GP
- Microsoft Dynamics NAV
- Microsoft Dynamics POS
- Microsoft Dynamics SL
- Microsoft Dynamics AX
- Mobility Solutions
- Networking Infrastructure Solutions
- Two MCP
- One of 12 exams
- Exam 70-270—Installing, Configuring, and Administering Microsoft Windows XP Professional
- Exam 70-282—Designing, Deploying, and Managing a Network Solution for the Small and Medium-Sized Business
- Exam 70-290—Managing and Maintaining a Microsoft Windows Server 2003 Environment
- Exam 70-291—Implementing, Managing, and Maintaining a Windows Server 2003 Network Infrastructure
- Exam 70-293—Planning and Maintaining a Windows Server 2003 Network Infrastructure
- Exam 70-294—Planning, Implementing, and Maintaining a Windows Server 2003 Active Directory Infrastructure
- Exam 70-297—Designing a Windows Server 2003 Active Directory and Network Infrastructure
- Exam 70-298—Designing Security for a Windows Server 2003 Network
- Exam 70-299—Implementing and Administering Security in a Windows Server 2003 Network
- Exam 70-350—Implementing Microsoft Internet Security and Acceleration (ISA) Server 2004
- Exam 70-620—TS: Configuring Windows Vista Client
- Exam 70-621—PRO: Upgrading your MCDST Certification to MCITP Enterprise Support
- Exam 70-270—Installing, Configuring, and Administering Microsoft Windows XP Professional
- Three refs
- Two MCP
- OEM Solutions
- Sell OS: 150 client OR 15 server
- 2 MCP (or 1 and a Designed for Windows Server)
- One test of 13
- Microsoft Exam 70-271: Maintaining and Troubleshooting Microsoft Windows XP for Desktop Support Technicians
- Microsoft Exam 70-272: Maintaining and Troubleshooting Applications on a Microsoft Windows XP Platform for Desktop Support Technicians
- Microsoft Exam 70-282: Planning, Deploying, and Managing a Network Solution for Small and Midsize Businesses
- Microsoft Exam 70-290: Managing and Maintaining a Microsoft Windows Server 2003 Environment
- Microsoft Exam 74-134: Preinstalling Microsoft Products and Technologies
- Microsoft Exam 70-620: Technology Specialist —Configuring Windows Vista
- Microsoft Exam 70-621: Pro —Upgrading Your Microsoft Certified Desktop Support Technicial Certification to Microsoft Certified IT Professional Enterprise Support
- Microsoft Exam 70-623: Pro —Microsoft Desktop Support, Consumer
- Microsoft Exam 70-624: Technology Specialist: Deploying and Maintaining Windows Vista Client and Microsoft Office System Desktops
- Microsoft Exam 70-271: Maintaining and Troubleshooting Microsoft Windows XP for Desktop Support Technicians
- Sell OS: 150 client OR 15 server
- Security Solutions
- Infrastructure Security Specialization
- One MCP with one of:
- Exam 70-350– Implementing Microsoft Internet Security and Acceleration (ISA) Server 2004
- Exam 70-351– TS: Microsoft Internet Security and Acceleration (ISA) Server 2006, Configuring
- Exam 70-557– TS: Microsoft Forefront Client and Server, Configuring
- Exam 70-350– Implementing Microsoft Internet Security and Acceleration (ISA) Server 2004
- And one of
- (ISC)2 Certified Information Systems Security Professional (CISSP)
- (ISC)2 Systems Security Certified Practitioner (SSCP)
- Information Systems Audit and Control Association (ISACA) Certified Information Systems Auditor (CISA)
- ISACA Certified Information Systems Manager (CISM)
- (ISC)2 Certified Information Systems Security Professional (CISSP)
- Second MCP with one of
- Exam 70-350– Implementing Microsoft Internet Security and Acceleration (ISA) Server 2004
- Exam 70-351– TS: Microsoft Internet Security and Acceleration (ISA) Server 2006, Configuring
- Exam 70-557– TS: Microsoft Forefront Client and Server, Configuring
- Exam 70-350– Implementing Microsoft Internet Security and Acceleration (ISA) Server 2004
- Three refs
- Identity and Secure Access Specialization
- One MCP with one of:
- Microsoft Certified Systems Engineer (MCSE)
- Microsoft Certified Systems Developer (MCSD)
- Microsoft Certified Database Administrator (MCDBA) on Microsoft Windows Server 2003 or Windows 2000 operating systems
- Microsoft Certified IT Professional (MCITP) Database Administrator
Or, who has achieved one of the following third-party security certifications: - (ISC)2 Certified Information Systems Security Professional (CISSP)
- (ISC)2 Systems Security Certified Practitioner (SSCP)
- (ISC)2 Certification and Accreditation Professional (CAP)
- Information Systems Audit and Control Association (ISACA) Certified Information Systems Auditor (CISA)
- ISACA Certified Information Systems Manager (CISM)
- ISACA Certified in the Governance of Enterprise IT (CGEIT)
- Microsoft Certified Systems Engineer (MCSE)
- And
- Exam 70-294: - Planning, Implementing, and Maintaining a Microsoft Windows Server 2003 Active Directory Infrastructure
- Exam 70-297: - Designing a Microsoft Windows Server 2003 Active Directory and Network Infrastructure
- Exam 70-640: - TS: Windows Server 2008 Active Directory, Configuring
- Exam 70-647: - PRO: Windows Server 2008, Enterprise Administrator
- Exam 70-294: - Planning, Implementing, and Maintaining a Microsoft Windows Server 2003 Active Directory Infrastructure
- Second MCP with one of
- Exam 70-294: - Planning, Implementing, and Maintaining a Microsoft Windows Server 2003 Active Directory Infrastructure
- Exam 70-297: - Designing a Microsoft Windows Server 2003 Active Directory and Network Infrastructure
- Exam 70-640: - TS: Windows Server 2008 Active Directory, Configuring
- Exam 70-647: - PRO: Windows Server 2008, Enterprise Administrator
- Exam 70-294: - Planning, Implementing, and Maintaining a Microsoft Windows Server 2003 Active Directory Infrastructure
- Three refs
- SOA and Business Process
- Two MCP
- One of n tests
- Exam 70-235—TS: Developing Business Process and Integration Solutions Using Microsoft BizTalk Server
- Exam 70-300—Analyzing Requirements and Defining Microsoft .NET Solution Architectures
- Exam 70-310—Developing XML Web Services and Server Components with Microsoft Visual Basic .NET and the Microsoft .NET Framework
- Exam 70-320—Developing XML Web Services and Server Components with Microsoft Visual C# .NET and the Microsoft .NET Framework
- Exam 70-431—TS: Microsoft SQL Server 2005 - Implementation and Maintenance
- Exam 70-526—TS: Microsoft .NET Framework 2.0 - Windows-Based Client Development
- Exam 70-529—TS: Microsoft .NET Framework 2.0 - Distributed Application Development
- Exam 70-549—PRO: Designing and Developing Enterprise Applications by Using the Microsoft .NET Framework
- Exam 74-135—Developing E-Business Solutions Using Microsoft BizTalk Server 2004
- Exam 70-235—TS: Developing Business Process and Integration Solutions Using Microsoft BizTalk Server
- Three refs
- Two MCP
- Unified Communications Solutions
Resources
- Small Business
- Advance Infrastructure Solutions
- Business Intelligence
- Custom Development Solutions
- Data Management Solutions
- Hosting Solutions
- Information Worker Solutions
- ISV/Software Solutions
- Learning Solutions
- Licensing Solutions
- License Delivery
- Software Asset Management
- Microsoft Business Solutions (Dynamics)
- Mobility Solutions
- Networking Infrastructure Solutions
- OEM Solutions
- Security Solutions
- Forefront
- https://partner.microsoft.com/global/program/competencies/securitysolutions/40032262
- https://partner.microsoft.com/global/program/competencies/securitysolutions/40032262
- SOA and Business Process
- Unified Communications Solutions
Monday, October 6, 2008
Brief: Microsoft Partner Competency
Microsoft Partner Competency
Competencies
- Small Business
- Advance Infrastructure Solutions
- Business Intelligence
- Custom Development Solutions
- Data Management Solutions
- Hosting Solutions
- Information Worker Solutions
- ISV/Software Solutions
- Learning Solutions
- Microsoft Business Solutions (Dynamics)
- Mobility Solutions
- Networking Infrastructure Solutions
- OEM Solutions
- Security Solutions
- SOA and Business Process
- Unified Communications Solutions
Requirements
- Small Business
- Small Business Sales and Marketing exam
- One of three (four) technical exams
- 70-282 deploy network
- 70-236 Exchange Server 2007, Configure
- 74-134 OEM Preinstall Kit
- 70-631 Sharepoint 3.0, Configure
- 70-282 deploy network
- Small Business Sales and Marketing exam
- Advance Infrastructure Solutions
- Business Intelligence
- Custom Development Solutions
- Data Management Solutions
- Hosting Solutions
- Information Worker Solutions
- ISV/Software Solutions
- Learning Solutions
- Microsoft Business Solutions (Dynamics)
- Mobility Solutions
- Networking Infrastructure Solutions
- OEM Solutions
- Security Solutions
- SOA and Business Process
- Unified Communications Solutions
Resources
- Small Business
- Advance Infrastructure Solutions
- Business Intelligence
- Custom Development Solutions
- Data Management Solutions
- Hosting Solutions
- Information Worker Solutions
- ISV/Software Solutions
- Learning Solutions
- Microsoft Business Solutions (Dynamics)
- Mobility Solutions
- Networking Infrastructure Solutions
- OEM Solutions
- Security Solutions
- SOA and Business Process
- Unified Communications Solutions
Brief: Microsoft Certified Partner
Certified Partner
- Points
- 50 Points
- 2 MCP professionals
- 50 Points
- Certified Software
- Cost varies from $400 to $18000
- Points vary from 10 to 50 (bonus to 60)
- https://partner.microsoft.com/40011374
- Cost varies from $400 to $18000
- Certified Hardware
Gold Partner
- 120 Points
- One competency minimum
Points Toward Partnership
- 30 Per Compentency
- 20 First Compentency bonus
- 25 Small Business Competency
- 40 (max) for Certified Professionals, ranges from 1 for MCP to 10 for Architect
- 20 (max) for Customer References, 2 per customer
- 70 (max) Tested Products
- 20 (max) Sales OS
- 60 (max) Sales Business Solutions
- 20, + 20 bonus, Customer Satisfaction Surveys, bonus for Net Satisfaction
- 20 (max ) ISV Royalty Program
- 20 (max) Customer Assessments, 1 point per 5 assessments
Monday, September 29, 2008
Flash, Silverlight and JavaScript Performance
Here is an interesting head to head performance comparison of Flash and Silverlight:
http://www.itwriting.com/primetest/index.html
Both grind thru a less than optimal algorithm for finding a bunch of prime numbers.
Code is provided in another link so that you can see that it is apples to apples in terms of the code implemented.
On my machine, I saw an over two one advantage for Silverlight. Silverlight ran 1M prime checks in .8892285 seconds and Flash took 2.153 seconds for the same. This ratio held up over a range of values:
Number | Flash | Silverlight | Ratio |
1 M | 2.153 | 0.8892285 | 2.42119995 |
2 M | 5.477 | 2.3092736 | 2.371741486 |
3 M | 9.627 | 4.056832 | 2.373033934 |
4 M | 14.324 | 6.0697226 | 2.359910155 |
5 M | 19.692 | 8.3445947 | 2.359850982 |
6 M | 25.895 | 10.802571 | 2.397114539 |
7 M | 31.773 | 13.3872827 | 2.373371857 |
8 M | 38.599 | 16.1520106 | 2.389733449 |
9 M | 45.238 | 19.0887398 | 2.369878812 |
Another individual, Tobin Harris no doubt, has provided a JavaScript implementation at:
http://www.tobinharris.com/primes.html
It took 54 seconds for the 1M to run in JavaScript. But this result had to be thrown out because IE was constantly popping up a dialog asking if the JavaScript should be terminated. Although that is a lesson in and of itself that JavaScript running loose in the browser will face ever increasing scrutiny that diminishes it's usefulness.
Friday, September 26, 2008
What Does Agile Lack?
In this "The Register" article AgileDevelopmentLessonsLearned the truth comes out.
Agile is suffering from what it lacks, specifically:
Effective Management
Design and Analysis
Developer Tools
Wednesday, September 24, 2008
Roll Back on Team System Source Control
To perform the equivalent of a roll back with Team System Source Control, you must create a changeset that contains the contents of the roll back.
- Get specific version
- Right click the root of the Source Control tree and select compare
- Select all and then select reconcile from context menu
- Reconcil Folder Differences"
- On drop down menu "Files that do not have pending changes select "check out"
- Check in
Saturday, September 20, 2008
Code F#: Generate Pascal Triangles
The following is code written in F#. It generates a list of Pascal Triangles.
#light
let oddTriangle x = [x, ( x * x - 1) / 2, (x * x + 1) / 2]
let evenTriangle x = [ 2 * x, (x * x) - 1, (x * x ) + 1]
let pairTriangle x = [ oddTriangle (2 * x - 1), evenTriangle x ]
let numbers = [ 1 .. 100]
let perfectTriangles = List.map pairTriangle numbers
printf "%A" perfectTriangles
open System
Console.ReadKey(true)
Output:
[[([(1, 0, 1)], [(2, 0, 2)])]; [([(3, 4, 5)], [(4, 3, 5)])];
[([(5, 12, 13)], [(6, 8, 10)])]; [([(7, 24, 25)], [(8, 15, 17)])];
[([(9, 40, 41)], [(10, 24, 26)])]; [([(11, 60, 61)], [(12, 35, 37)])];
[([(13, 84, 85)], [(14, 48, 50)])]; [([(15, 112, 113)], [(16, 63, 65)])];
[([(17, 144, 145)], [(18, 80, 82)])]; [([(19, 180, 181)], [(20, 99, 101)])]]
Tuesday, September 9, 2008
Publishing to Blogger From MS Word
XML has always been difficult to get posted on blogger.
Here is a test case:
<?xml version="1.0"?>
<!--
Note: As an alternative to hand editing this file you can use the
web admin tool to configure settings for your application. Use
the Website->Asp.Net Configuration option in Visual Studio.
A full list of settings and comments can be found in
machine.config.comments usually located in
\Windows\Microsoft.Net\Framework\v2.x\Config
-->
<configuration>
<appSettings>
</appSettings>
<connectionStrings>
</connectionStrings>
<system.web>
<sessionState
cookieless="true"
regenerateExpiredSessionId="true"
timeout="30" />
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<compilation debug="true"/>
<!--
The <authentication> section enables configuration
of the security authentication mode used by
ASP.NET to identify an incoming user.
-->
<authentication mode="Windows"/>
<!--
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically,
it enables developers to configure html error pages
to be displayed in place of a error stack trace.
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
</configuration>
Tuesday, September 2, 2008
Link: System Center Virtual Machine Manager
http://www.microsoft.com/systemcenter/virtualmachinemanager/en/us/overview.aspx
Saturday, August 30, 2008
Separate Installs for Service and Desktop Application
This created a problem in the Install for Everyone. The Resilency was firing because of items in the Desktop application install. Specifically, Shortcuts installed per user were causing the Resilency install to fire when the second user logged in.
The Windows Service Installer does not handle this situation. And testing for the existence of the service causes a corrupt install state.
The less than ideal solution was to have separate installers for the two components.
Tuesday, August 26, 2008
Monday, August 25, 2008
Fixing: Error 1001. The specified service already exists
Description: This error occurred during a per user install. The install was using the installer classes for services. The application was installed for all users. When a second user ran the installer classes tried to install the service again. This is fixed by testing for the existence of the service and skipping the service install if it already exists.
Sunday, August 24, 2008
Code: Test For Service Existence
bool serviceExists = false;
foreach ( System.ServiceProcess.ServiceController serviceController in System.ServiceProcess.ServiceController.GetServices())
{
if (serviceController.ServiceName == "TwentyTwentyLiveService")
{
serviceExists = true;
}
}
Saturday, August 23, 2008
Code: Determining If A User Is An Admin
WindowsIdentity currentIdentity = WindowsIdentity.GetCurrent();
WindowsPrincipal currentPrincipal = newWindowsPrincipal(currentIdentity);
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
if (currentPrincipal.IsInRole(WindowsBuiltInRole.Administrator))
{
//Administator code
}
// User code
}
// Guest or anonymous code
}
Friday, August 22, 2008
Level 2 Ignorance
This quote travels in IT/IS communities. The humor lies in the second of the double meanings. Not only do you not know some thing. But there are also things you don't know and you are unaware of what they are. These are the Level 2 in The Five Levels Of Ignorance.
There are two dynamics at work here on the one hand your Level 2 Ignorance is like a minefield of problems. On the other hand simply learning the name of things which you do not know transforms them into Level 1 Ignorance.
These dynamics illuminate why command and control systems, everything from communism to waterfall, fail. And methods which stress grassroots bottom up development, like Agile, have shown stunning results.
The command and control tries to plan everything beforehand while all the participants are in their highest states of Level 2 Ignorance. In fact because the organization is making no attempt to discover Level 2 Ignorance it is operating at Level 3 Ignorance.
In contrast, the bottom up methods stress experimenting and thus gaining knowledge of the problem space. This will result in ignorance being discovered. Which means these methods guard against Level 3 Ignorance and thus are eliminating Level 2 Ignorance as well.