The Publishers

Addison Wesley
Morgan Kaufmann
O’Reilly
Pragmatic Press

Quick Edit Mode

Quick Edit Mode
Quick edit mode allows one to use the mouse to select text, cut, copy and paste in command shell. This mode is not enabled by default. To control the mode, apply the following Windows NT / Windows 2000 registry hack.

Hive: HKEY_CURRENT_USER
Key: Console
Name: QuickEdit
Type: REG_DWORD
Value: 1 enable quick edit
Value: 0 default - disable quick edit mode


Vista Control Freedom 2

Method #1 - Using MSCONFIG

  1. Launch MSCONFIG by from the Run menu.

  2. Click on the Tools tab. Scroll down till you find "Disable UAP" (this should probably change to UAC in next Vista beta builds and in the RTM version). Click on that line.

  1. Press the Launch button.

  2. A CMD window will open. When the command is done, you can close the window.

  3. Close MSCONFIG. You need to reboot the computer for changes to apply.

Note that you can re-enable UAC by selecting the "Enable UAP" line and then clicking on the Launch button.

Method #2 - Using Regedit

  1. Open Registry Editor.

  2. In Registry Editor, navigate to the following registry key:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System

  1. Locate the following value (DWORD):

EnableLUA

and give it a value of 0.

Note: As always, before making changes to your registry you should always make sure you have a valid backup. In cases where you're supposed to delete or modify keys or values from the registry it is possible to first export that key or value(s) to a .REG file before performing the changes.

  1. Close Registry Editor. You need to reboot the computer for changes to apply.

In order to re-enable UAC just change the above value to 1.

Method #3 - Using Group Policy

This can be done via Local Group Policy or via Active Directory-based GPO, which is much more suited for large networks where one would like to disable UAC for many computers at once.

If using Local Group Policy you'll need to open the Group Policy Editor (Start > Run > gpedit.msc) from your Vista computer.

If using in AD-based GPO, open Group Policy Management Console (Start > Run > gpmc.msc) from a Vista computer that is a member of the domain. In the GPMC window, browse to the required GPO that is linked to the OU or domain where the Vista computers are located, then edit it.

In the Group Policy Editor window, browse to Computer Configuration > Windows Settings > Security Settings > Local Policies > Security Options.

In the right pane scroll to find the User Access Control policies (they're down at the bottom of the window). You need to configure the following policies:

You'll need to reboot your computers.

Method #4 - Using Control Panel

  1. Open Control Panel.

  2. Under User Account and Family settings click on the "Add or remove user account".

  1. Click on one of the user accounts, for example you can use the Guest account.

  2. Under the user account click on the "Go to the main User Account page" link.

  1. Under "Make changes to your user account" click on the "Change security settings" link.

  1. In the "Turn on User Account Control (UAC) to make your computer more secure" click to unselect the "Use User Account Control (UAC) to help protect your computer". Click on the Ok button.

  1. You will be prompted to reboot your computer. Do so when ready.

In order to re-enable UAC just select the above checkbox and reboot.

(Source, http://www.petri.co.il/disable_uac_in_windows_vista.htm)

Vista Control Freedom

Run as Administrator
 
Step 1.) Launch GPedit.msc with administrative rights.

Step 2.) Browse to Windows Settings | Local Policies | Security Options

Step 3.) Scroll down to User Account Control: Behavior of the elevation prompt for administrators in Admin Approval Mode and double click

Step 4.) Change this value from Prompt for "Elevate without prompting"
 
 
Disable User Account Control
 
 
(I used method #3)
 

Burning ISO images to DVD on Microsoft Windows Vista

If you are running Microsoft Windows Vista and need to burn an .ISO image to a DVD, here is a handy tip:

- Use the Windows Server 2003 Resource Kit Tools. The installer will complain when running on Vista, but just accept it and go ahead. It will install a few programs in \Program Files\Windows Resource Kits\Tools. Open a command prompt there and run "dvdburn [drive] [.ISO file]" to burn that DVD.

Vista Dev Install Order

1.- Visual Studio 2005 with Service Pack 1
2.- VS2005 Update for Vista
3.- Visual Studio 2005 Extensions for WF 
4.- Visual Studio 2005 Extensions for WCF, WP
     (Install the documentation from .NET 3.0 SDK First)

Vista Dev

Vista http://msdn.microsoft.com/windowsvista/ Dev Downloads http://msdn2.microsoft.com/en-us/windowsvista/aa904949

WPF Workstation

[via Tim Sneath]

Base Environment

Tools and Utilities

  • XamlPadX, Kaxaml and XamlCruncher: three enhanced alternatives to the XamlPad tool that ships in the SDK. Each have their strengths: XamlPadX has some nice add-ons and is based on the XamlPad codebase, Kaxaml is great for demos and has good tab / indent support and XamlCruncher has high-quality source code available.
  • Lutz Roeder's .NET Reflector: handy for browsing through class hierarchies;
  • Snoop: Peter Blois' tool for visually debugging WPF applications;
  • WPF Performance Tools: buried in the SDK but an essential part of the toolset for an application in the stabilization stages. Youll find it as %SdkTools%\WpfPerf.exe (make sure you run it as an administrator if you're using Windows Vista);
  • Flexible Application Template: this replacement project template from one of the app services PMs allows you to create a single application project that can flip between an XBAP (web browser project) or rich client application just with an adjustment to the project type;
  • ZAM 3D: Electric Rain's utility for quickly creating and animating 3D meshes.
  • XAML Converters: Utilities for converting 3DS, DXF, Blender, Fireworks, Lightwave, SWF, Maya and Illustrator files to XAML format.

Building a Code Toolbox

  • 3D Tools for WPF: interactive 2D on 3D surfaces, wireframe lines, 3D mouse navigation;
  • Kevin's Bag-o-Tricks: a collection of controls that extend and enhance the intrinsic types ColorPicker, FolderPicker, NumericUpDown, RadioButtonList, date controls, animating tile panel and graph controls;
  • UI Automation Stress: stress testing for your application environment. (Add this code into a debug menu to make sure that you can't crash your application with spurious input.)

Sample Applications

I'm the kind of developer who likes lots of sample code available to me for copying concepts, ideas and techniques. Copy these to a \samples directory for quick access:

Also unpack %SdkTools%\..\Samples\WPFSamples.zip to a \samples\sdk directory so you can easily browse through all the samples without needing to go through the SDK documentation interface.

Now enable Windows Desktop Search (install WDS 3.0 here if you're running Windows XP) and configure it to index file contents of .xaml, .cs, .vb files as a bare minimum. Make sure it's set to index the entire \samples directory that you put the above samples into. Now you can quickly pull up every sample that shows the usage of (say) BitmapSource and ColorConvertedBitmap just by hitting Win+F and searching for those keywords.

Support

  • The WPF MSDN Forum is frequented by both the product team and many other knowledgeable community members, and contains a great archive of questions previously asked (and answered);
  • The WPF MSDN Newsgroup provides a very similar service to the web forum but in the form of a USENET newsgroup. At the time of writing, the forum seems to have significantly more traffic, however.

Tips and Tricks

  • Make sure that you integrate the Windows SDK documentation with the rest of the MSDN documentation on your system: run Start -> Windows SDK -> Visual Studio Registration -> Integrate Windows SDK with Visual Studio 2005 as an administrator for easy F1 integration from the code view.
  • I make liberal use of pinned shortcuts on my Start menu to make it easier to access some of these tools, particularly XamlPad, WpfPerf and other tools that are really hidden by default. If you're running Windows Vista, this tip will give you a quick shortcut to each of these items also.
  • Set the Windows Presentation Foundation Font Cache system service to Automatic (Delayed Start) if you are running Windows Vista, to reduce initial start-up time for WPF applications.
  • In Visual Studio, set the default font to Consolas - it's easier on the eyes than Courier New and was designed with code development in mind. Consolas is included with Windows Vista or Office 2007, or you can download it here.
  • From the Windows SDK documentation, the "New in Windows Vista" index filter is a great way to ensure that you don't get the WPF and Windows Forms APIs accidentally mixed up: I've come across a few developers who had accidentally started using types from both libraries together simply because they hadn't spotted the very subtle clues in the documentation that differentiate them.

There are two types of languages

"There are just two kinds of languages: the ones everybody complains about and the ones nobody uses." (Bjarne Stroustrup)

Windows Vista Nirvana : Turn Off User Account Control

Admittedly I am not a typical user. I run so much experimental code and generally tinker with my machines so much that every six months I have to rebuild my boxes at the reformat level.

I installed vista on my machines as soon as it went RTM. The first days were rough. Although, I imagine the defaults will make IT departments happy, I found vista paralyzing. The amount of confirmations and warnings on every configuration/installation/edit was just way, way, way too much.

So, I tried running as administrator. No change. I tried, "Elevate without prompting". No change. Finally, today, I found, "Turn Off User Account Control". Looks like this is doing the trick, I really hope so :)

Windows Vista Tip: Run as administrator

Step 1.) Launch GPedit.msc with administrative rights.

Step 2.) Browse to Windows Settings | Local Policies | Security Options

Step 3.) Scroll down to User Account Control: Behavior of the elevation prompt for administrators in Admin Approval Mode and double click

Step 4.) Change this value from Prompt for "Elevate without prompting"

Software Humor

"XML is like violence: if it doesn't solve your problem, you aren't using enough of it." Chris Maden

"ORM is the Vietnam of our industry" Ted Neward

"SOAP feels more like the doorknob to the gates of hell. In itself, a doorknob is hardly evil. But once you turn..." DHH

Learning to learn

I came across the following graphic on retention:

 

Many programs focus on teaching students a mastery of the fundamentals. However, in many technical fields education is short lived and continuous learning is the norm. Does learning to learn then trump a mastery of the fundamentals?

If we become autodidactic masters, would we not then be able to overcome any learning gaps?

Much graduate work at MIT, by its nature, is independent learning. At the undergraduate level I see good efforts in this direction but the promise is still unrealized. In either case, I think MIT does better than most colleges at creating self teachers.

My personal learning cycle is:

1) Build a knowledge base
    - read, read, read

2) Test your knowledge
     - test, experiment, and challenge

3) Summarize and structure your findings
    - write, write, write

4) Teach what you have learned
    - explain it to others

The process is often iterative in steps and in cycle.

Something that was not obvious to me was "self feedback". On a traditional teaching structure, the feedback comes from the instructor. In self teaching, you give feedback to your self.

Java Days

I have been working with Java for the last two weeks.

The plain vanilla Java is pretty poor when it comes to web services. Unless you are using a development platform, the road is rough.

The tools story is not that straight forward either. For code construction, there are the "n" eclipse projects, then there are about 6 different versions of IBM Websphere, the JBoss tools, the BEA, the open source camp, and so on.

Once you get your IDE, you will need an application server. Finding and choosing an application server in yet another adventure.

The space reminds me of the UNIX days. Even though Sun, HP, IBM, etc were all UNIX the variations made for unnecessary complexity and interop problems.

After doing the massive installations of the leading commercial Java platforms I came back to open source tools. Though it may not seem like it, I found this solution to be the lightest and simplest development environment.

I placed the installs at
http://autoid.mit.edu/pickup/Java/

1) Install
  
   jdk-1_5_0_07-windows-i586-p.exe


2) Download and unzip (do not install)

   apache-tomcat-5.5.17.zip

3)  Download and unzip (do not install)

    wtp-all-in-one-sdk-R-1.5.0-200606281455-win32.zip

4) Open WTP and run eclipse – no need to install

5) In eclipse create a new project, add a server, use the tomcat libraries – no need to install

6) When you run your samples, use the server you added through eclipse
 
Once I had everything in place, creating and firing my proxies was pretty smooth :) There are Java-to-.NET issues but I had taken care of those at the interop party.

HTTP GET and HTTP POST Are Disabled by Default

An old one, entered here for reference

<configuration>
    <system.web>
    <webServices>
        <protocols>
            <add name="HttpGet"/>
            <add name="HttpPost"/>
        </protocols>
    </webServices>
    </system.web>
</configuration>