Sunday, January 15, 2012

Print to Kindle

It is an odd announcement that causes me to hijack my daughters Kindle Fire and Laptop. But I really wanted a sense of how this felt. After downloading the Send to Kindle desktop application onto the laptop and configuring it to use her Amazon account a print option 'Send to Kindle" appears in most applications. The most interesting place is in Word.

In many ways this functions in a manner similar to 'Save as PDF'. The format of what is printed is converted to a format that Kindle can display. The next step is the file is forwarded to Amazons cloud and then forwarded on to the kindle. But this all happens without the user comprehending or needing to comprehending how it occurs.

The result is the document appears on her Kindle. Which means she is now in a position to develop content for the Kindle with minimal effort. Furthermore, this will expand. The end goal is her Kindle becomes the most import device. And it has taken on the role of presenter of her cloud based Amazon account which starts to position itself as the ITunes of information stores.

Friday, January 13, 2012

Winform Background Thread


The easiest way to implement a background worker thread for a form in a Winform application is to use the BackgroundWorker from the System.ComponentModel namespace.




To summarize the changes imagine you have a form were you dropped a button with the default name 'button1'.


  1. From the toolbox open the component section.

     
  2. Select BackgroundWorker and drag it onto the form.
    1. The default name will be 'backgroundWorker1'.
       
  3. Select the backgroundWorker object and inspect its properties.
    1. Select the Events (it looks like a lightning bolt)
    2. Doubleclick in the space next to 'DoWork'
      1. Keep default name: backgroundWorker1_DoWork
    3. Doubleclick in the space next to 'ProgressChanged'
      1. Keep default name: backgroundWorker1_ProgressChanged
    4. Doubleclick in the space next to 'RunWorkerCompleted'
      1. backgroundWorker1_RunWorkerCompleted

         
  4. Button Click Code Handler
     
    private void button1_Click(object sender, EventArgs e)
    {
    this.backgroundWorker1.RunWorkerAsync("From Form");
    button1.Enabled = false;
    }
     
  5. Background DoWork Handler
     
    private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {
    Thread.Sleep(1000);
    string comment = (string) e.Argument;
    backgroundWorker1.ReportProgress(12, comment + " From Background");
    Thread.Sleep(10000);
    }

     
  6. ProgressChanged Handler


    private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
    string report = (string)e.UserState;
    listBox1.Items.Add("From Progress Change Hander");
    listBox1.Items.Add(report);
    }
     
  7. RunWorkerCompleted Handler

     
    private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
    button1.Enabled = true;
    }

     




Implementation Versions: This code was developed and tested with Visual Studio 2010, C# 4.0 and the .Net Framework 4 Client Profile.

Tuesday, April 27, 2010

Is Boho a Windows Phone 7?

The short answer is no. If for no other reason than Silverlight is absent.
But it is also lacking in the minimal feature set which specifies minimum screen, camera and memory.

Saturday, April 24, 2010

Race Condition as Illustrated with Racer X and Speed Racer

Sometimes nothing works better than a simple example.

Below is a short program that demonstrates a race condition that occurs when two threads share some bit of state. It is written in C# and if you run it several times you should see inconsistent behaviors.

Sometimes Speed Racers thread finishes first and resets the SharedState to true and sometimes Racer X wins. This is the heart of threading problems, shared state and inconsistent results.

Now lets looks at a proposed fix. In RacerX there is a commented line
//System.Threading.Thread.Sleep(100);

By uncommenting it,  the inconsistent behaviour changes. Sometimes the program finishes because RacerX finished first and waited long enough for Speed Racer to finish. (You know he was the older brother and always looking out for Speed Racer)

But sometimes Speed Racer finishes first and he doesn't wait for RacerX. So Racer X keeps circling around. (Keep in mind Speed did not know that Racer X was his older brother)

So in this case it appears that the code has gotten better because the bug is now showing only half the time. But in reality it is just as flaky. The bug has now become intermittant and harder to reproduce.


class Program
{
static bool SharedState = true;

static void Main(string[] args)
{
Thread racerX = new Thread(RacerX);
racerX.Start();
Thread speedRacer = new Thread(SpeedRacer);
speedRacer.Start();
System.Threading.Thread.Sleep(2000);
SharedState = false;
}


static void RacerX()
{
while (SharedState)
{
Console.WriteLine("RacerX");
}
//System.Threading.Thread.Sleep(100);
SharedState = true;
}


static void SpeedRacer()
{
while (SharedState)
{
Console.WriteLine("SpeedRacer");
}
SharedState = true;
}
}

Friday, April 23, 2010

Notes: Sharepoint Exam 70-631

Just found these old notes from prepping for Sharepoint exam.
Might as well throw them on the blog in case I want them later.

Back to back firewall configuration Two firewall devices back to back
Internet Edge firewall configuration
Multi-homed firewall configuration
Multi-Edge firewall configuration
Not supported


Mobility Redirect
stsadm -o activatefeature -name MobilityRedirect -URL http://url/


Performance Counters for Processor Issues
System\Processor Queue Length
System\Context Switches/sec
Processor\% Processor Time


Two Stage Recycle Bin
First Stage retains document on user's computer for 30 days
Second Stage can be used by site administrator


Stsadm listing options
stsadm -o adduser
add a user account to a WSS site
stsadm -o enumroles
display all site groups for a WSS site
stsadm -o enumsites
display all sites under a virtual server
stsadm -o userole
set group membership for a user


Prescan.exe
used to identify readiness to upgrade to WSS 3.0


Content Migration Tool
Used to migrate content, example Content Management Server 2002


Information Rights Management
Provide more restrictive access controls on documents in SharePoint libraries and lists


Sharepoint Products and Technologies Configuration Wizard
Automates installation and configuration tasks


stsadm feature and custom application deployment
stsadm -o activatefeature
Enables features already deployed on a server
stsadm -o addsolution
Adds solution files to the configuration database store
stsadm -o deploysolution
Deploys solution files form configuration database to web servers
stsadm -o installfeature
Installs a WSS feature


DNS Record types
host (A)
Host record, provides address of a host
CNAME
Canonical name record, used to create alias for a host name
MX
Mail exchanger record, provides address of mail exchange server
SRV
Service record, provides address of servers providing specified services


MOM 2005
Centrally monitor status and performance of many products


ISA, Internet Security and Acceleration


SSO, Single Sign On


Included Permission Levels
Full Control
Not customizable
Design
Customizable
Contribute
Customizable
Read
Customizable
Limited Access
Not customizable


Upgrade Methods
Content database migration
-To move from one server to another
Gradual
-Allows 3.0 while retaining 2.0
In-place
-Best for single server, where all sites are to be upgraded

Thursday, April 22, 2010

Powershell Script to Read and Write a File


Powershell Script to Read and Write a File


function Copy-File ($infile, $outfile)
{
    $file = gc $infile
    Clear-Content $outfile
    foreach( $line in $file)
    {
        $line | Out-File -filepath $outfile -encoding utf8 -append
    }
}
Copy-File infile.txt outfile.txt

The bug that never happened.

I was demonstrating some F# code in Visual Studio 2010. It is shown below and it defines and then computes the discriminant function for quadratics.

let quadratic = fun a b c -> (b * b) - (4 * a *c)
let discriminant = quadratic 4 5 6
printfn "discriminant = %d" discriminant

Everything works, no surprise. But then as I modified the code. In particular as I changed the last line to:

printfn "discriminant = %d %d" discriminant

A compile warning occurred! So the compiler parsed the formatting string as well and checked that there where enough parameters provided. No doubt there is a nuance to functional programming that is requiring this level of checking.

But compare this to a line of C#

string wrongNumberOfArgs = string.Format("{0} {1}", 12);

The c# compiler is perfectly okay with this and it is only at runtime that you get the crash. In the simple case that I have shown this does not matter. But simple cases are not where this occurs. It is when it is complex that it occurs. So in the C# case you will find this out when you execute the code, when your mind has switched contexts.

In the F# case, the compiler warning is immediate because of the incremental compiles. You are best positioned to fix the code because you just keyed it in. In fact this is a bug that never happened.

Thursday, December 3, 2009

Listing of PDC sessions on Windows Azure copied from:

http://blogs.msdn.com/jnak/archive/2009/11/19/videos-of-the-windows-azure-sessions-at-pdc09.aspx

Introductory
Learn to Develop for Windows Azure
Windows Azure Storage
Windows Azure as an Open Platform
SQL Azure Sessions
Showcases

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

http://www.codeplex.com/PoshDebugVisualizer

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

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
  • 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
        • Three refs
      • 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)
        • Three refs
      • 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
        • Three refs
      • 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
        • Three refs
  • 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
      • Three refs


         

    • Performance Management
      • Two MCP

      • 70-556: TS: Microsoft Office PerformancePoint Server 2007, Applications.

      • Three refs
  • Custom Development Solutions
    • Two MCPD, MCSD, MCAD
    • Three refs
  • 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
    • Three refs
  • Hosting Solutions
    • Two MCT, MCSA, MCAD, MCSD, MCSE, MCDBA
    • Sales: 75 processor or 3000 subscriber
    • Three refs
  • Information Worker Solutions


 

  • ISV/Software Solutions
    • Tested Software
    • Three refs
  • 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
      • Three refs
    • Software Asset Management
      • Two MCP
      • Exam 70-123: Planning, Implementing, and Maintaining a Software Asset Management (SAM) Program.
      • Three refs
  • 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
  • Mobility Solutions
    • Two MCP
    • Both exams (after Feb 15 2009)
      • 70-500: TS: Microsoft Windows Mobile Designing, Implementing, and Managing
      • 70-540: TS: Microsoft Windows Mobile 5.0 - Application Development
    • Three refs
  • 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
    • Three refs
  • OEM Solutions
    • Sell OS: 150 client OR 15 server
    • 2 MCP (or 1 and a Designed for Windows Server)
    • One test of 13


       

  • 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
      • 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)
      • 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
      • 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)
      • 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
      • 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
      • 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
    • Three refs
  • Unified Communications Solutions


 


 

Resources

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
  • 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

Brief: Microsoft Certified Partner

Certified Partner

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.

  1. Get specific version
  2. Right click the root of the Source Control tree and select compare
  3. Select all and then select reconcile from context menu
  4. Reconcil Folder Differences"
  5. On drop down menu "Files that do not have pending changes select "check out"
  6. 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)])]]