Tuesday, April 22, 2014

Want to be a Microsoft MVP? Here's a couple what, where and how's...

It happens every three months, Jan 1, April 1, July 1, Oct 1. There's a flood of tweets and posts about how someone is now, or isn't, a Microsoft MVP. So how you do, the enterprising MS Dev, become one? Are there any tips, tricks and information about becoming a MVP? Oh yeah... Here are two.

Charles Sterling has this one from 2008 that's still considered a must read.

Ozzie Rules Blogging - Recipe for making an MVP

One of the absolute best parts of my job is that I get to work with the VSTS MVP's on a regular basis.  Due to this interaction i have had a couple people ask: "How is a VSTS MVP chosen?"

Other variants of this question would include:

"What is the process for selecting an MVP?"

...

"What is the criteria for selecting an MVP?"

...

image ..."

Just yesterday, I saw this post from Mike McKeown;

Pluralsight blog - How can I become a Microsoft MVP?

Have you ever asked yourself that piercing question about the coveted Microsoft Most Valuable Partner (MVP) award? I certainly have, more times than I can count. Too often, though, that little doubtful voice inside said, “Those levels of accomplishments are for others who are better than you. Now, go on back to the production line like a good little elf and keep cranking out those widgets.”

And, for the most part, that’s how I dealt with it. Yet, I still had a passion to do more, to reach higher and to stretch further. The MVP traits lined up with my personality; an intense appetite for technology, a passion to evangelize, a burning desire to convey it, a love of writing and speaking about it. If you’re reading this, chances are you feel the same way. So, let’s kick that doubting internal voice to the curb and talk about some ways that you can become an MVP.

First, it takes passion....

...

In conclusion, realize this is a commitment that will consume large amounts of your personal time. It takes a while to accomplish this, due to the gradual building of your reputation, achievements and brand. Stick to it and understand that it will most likely take more time than you thought.

Also keep in mind that if you don’t enjoy interacting with others regarding the technology that you are passionate about, you probably won’t ever reach that MVP Award. In this case, it may be better to obtain an MCP certification and leave the soft skills to others. Above all, pursue the MVP award primarily because you love what you do, and you have fun doing it!

image ..."

In short, the Microsoft MVP's have to work their butts off to earn and keep this award. And best of all they do it for you too! It's you, the community, that help them keep their MVP'ness (um... don't say that out loud... ). If you have a question, the MVP's are much more than likely very happy to help. Head over to the MVP Award Homepage,

image

Also while you are there you can also nominate your favorite MS community guy or gal too.

image

Oh Unicorn Barf!

Instructables - Unicorn Barf

Ever since I found out that you can buy cereal marshmallows in bulk on the internet, I have been dreaming about making cereal marshmallow marshmallow treats. Similar to rice cereal treats, but with only the best part of any cereal- the cereal marshmallows! They have affectionately become known as "unicorn barf" around these parts, for obvious reasons, but what is a bad day for a unicorn is a delicious day for everyone else! They are super simple to make and look really pretty!

image

image..."

What can you say about a name like that? (Well, you can say it's much better than "Unicorn Poo"... LOL )

Hungry... yum...

If change is good, then changelogs are even better! Windows Phone 8.1 Store now has a "New in this version"

WP Central - Dear developers: Please start using changelogs for Windows Phone 8.1 apps

Changelogs. They’re the list of reasons why we want to update an app or game. It’s the simplest thing that some app creators often ignore. It’s baffling. Version 1.2 of your app is out? Great, umm, why do I care unless you tell me?

Granted, in Windows Phone 8.0, and earlier there was no real region for a proper list of changes, resulting in some developers creating pop-up screens detailing the fixes upon first launch, or a separate area under ‘About’ where they can detail their continuing hard work, or even jamming it under the app description in the Store. It wasn’t ideal, but people definitely appreciated the effort.

But developers, you no longer have such an excuse with Windows Phone 8.1. And we hope you notice.

For our audience, if you head to the Store in the 8.1 Preview, you can tap on an app to see the new layout. There are four sections, including Overview, Reviews, Details and Related. You’ll want to start paying attention to the Details page, because developers now have an optional ‘New in this version’ subheading. That’s where you’ll find those app changes (assuming the developer filled it out).

...

Please please WP Dev's use this. As a consumer I hate getting an app update and not knowing what was updated, refreshed, fixed or new. And now you don't have to invent your own wheel...

"Windows Phone 8.1 for Developers" series with 19 posts so far...

Jayway - Windows Phone 8.1 for Developers

We will during the next few weeks together with Microsoft evangelist Peter Bryntesson post a series of blog post regarding the new windows phone 8.1 platform.

We will publish our posts on the Jayway blog and also on Peters blog here. Peters posts will be linked to down below so they are easy to find.

After the release of windows phone 8.1 during Build there are many news for us windows phone developers. Hopefully you are as exciting about this as we are and will follow this series of blogs as they are published.

Links to all post in the series:

image

If you're interesting in developing for Windows Phone 8.1 this is a must read series...

QEMU lives on, v2.0.0 now available.

I Programmer - QEMU 2.0.0 Released

Version 2.0.0 of the open source machine emulator and virtualizer QEMU has been released introducing support for the KVM emulator on ARM systems..

QEMU (short for "Quick EMUlator") is a free and open-source hosted hypervisor that performs hardware virtualization.

...

In announcing the new version Michael Roth of the IBM-Linux Technology centre commented:
This is one of our most extensive releases ever, with 2,500+ commmits from 179 authors.

The new features he lists includes:

  • Initial support for KVM on AArch64 systems (some features such as migration are not yet implemented)
  • Support for all 64-bit mode ARMV8 user-accessible instructions except for the optional CRC and crypto extensions
  • ...
  • Support for the Hyper-V reference time counter via the "hv-time" suboption of "-cpu". This can improve performance of Windows guests substantially for applications that do many floating-point or SIMD operations. (Requires KVM and Linux 3.14).

...

QEMU

image

Main Page

From QEMU

QEMU is a generic and open source machine emulator and virtualizer.

When used as a machine emulator, QEMU can run OSes and programs made for one machine (e.g. an ARM board) on a different machine (e.g. your own PC). By using dynamic translation, it achieves very good performance.

When used as a virtualizer, QEMU achieves near native performances by executing the guest code directly on the host CPU. QEMU supports virtualization when executing under the Xen hypervisor or using the KVM kernel module in Linux. When using KVM, QEMU can virtualize x86, server and embedded PowerPC, and S390 guests.

...

I find it interesting that the first time I blogged about  QEMU was in 2004. Funny how far virtual machines have come since then!

 

Related Past Post XRef:
Booting Minecraft (or maybe Assembling Minecraft) - MineAssemble is a bootable Minecraft clone, written in mostly x86 assembly
QEMU & FreeOSZoo

Monday, April 21, 2014

Microsoft Posters Curah!

Curah! - Microsoft Posters

There are some great Microsoft posters around to provide visual representations of MS products, features, processes and solutions. This page captures those so that you can access them from a single location.

SNAGHTMLe94529

image

(via Kurt Shintaku's Blog - DOWNLOAD: Microsoft Posters collection)

I might be sorry I'm highlighting this. Not because the content isn't great, but I've just got bad feeling about Curah!. I have to wonder at its lifespan. Personally, I'm thinking about doing something like this, but using a public OneNote Notebook instead. Kind of, sort of the same thing, aren't they? Heck, I wonder if OneNote couldn't replace my blog! :P

In the mean time, this is still a cool resource and nice to have all these in one spot.

Prism continues its Windows Desktop/WPF/MVVM Love with v5

Francis K. Cheung - Prism 5.0 for WPF just shipped.

Prism version 5.0 for WPF is now available. This version of Prism includes updates to existing and several new NuGet packages:

  1. Prism
  2. Prism.Composition (New)
  3. Prism.Interactivity (New)
  4. Prism.Mvvm (New)
  5. Prism.MefExtensions
  6. Prism.UnityExtensions

We’ve updated Prism 4.1 with bug fixes and a few new features. ...

Developer's Guide to Microsoft Prism Library 5.0 for WPF

April 2014

Prism provides guidance in the form of samples and documentation that help you easily design and build rich, flexible, and easily maintained Windows Presentation Foundation (WPF) desktop applications. Using design patterns that embody important architectural design principles, such as separation of concerns and loose coupling, Prism helps you to design and build applications using loosely coupled components that can evolve independently but which can be easily and seamlessly integrated into the overall application. In short, these applications are "built to last" and "built for change." These types of applications are known as composite applications.

This topic provides a brief overview of the Prism concepts with links to associated source code and documentation. If you are considering upgrading from Prism 4.1 to Prism 5.0 we include a "What’s New" and "Upgrading from Prism 4.1" topic that you should read.

...

...

image

What's New in Prism Library 5.0 for WPF

Prism 5.0 includes guidance in several new areas, resulting in new code in the Prism Library for WPF, new and updated QuickStarts, and updated documentation. Parts of the Prism Library changed between Prism 4.1 and Prism 5.0 to support the new guidance, fix existing issues, and respond to community requests.

...

New Guidance

Prism 5.0 contains several areas of new guidance as follows:

  • Prism.Mvvm is a portable class library that encapsulates Prism’s MVVM support. This library includes ViewModelLocationProvider. Views and view models can be wired up together using the new ViewModelLocationProvider’s convention-based approach as explained in Implementing the MVVM Pattern. View model construction can be accomplished using a dependency injection container. The ViewModel Locator’s extensibility points are discussed in Extending the Prism Library. DelegateCommands are now extendable and provide Async support. A new implementation of the INotifyPropertyChanged interface, the BindabaleBase class, was added.
  • The PopupWindowAction class was added to the Prism.Interactivity assembly to open a custom window in response to an interaction request being raised.
    The InvokeCommandAction action provided by Prism now passes trigger parameters to the associated command.
    For more information see Advanced MVVM Scenarios.
  • The EventAggregator classes have been moved to the Prism.PubSubEvents portable class library.
  • The NavigationParameters class can now be used to pass object parameters during navigation, using the overloads of the RequestNavigate method of a Region or RegionManager instance.

Changes in the Prism Library

Prism Library 5.0 includes changes related to new functionality, code organization, and APIs.

Code Organization

...

API Changes

...

Additions to the Prism Library Core API

The following namespaces were added to the Prism Library to support the new areas of guidance added in Prism 5.0:

  • Microsoft.Practices.Prism.PubSubEvents was added to help you send loosely coupled message using a portable class library.
  • Microsoft.Practices.Prism.Mvvm was added to assist you in implementing MVVM using a portable class library and several platform specific libraries.
  • Microsoft.Practices.Prism.SharedInterfaces has been added to share the IActiveAware interface between Prism and Prism.Mvvm assemblies, therefore the IActiveAware interface has been moved to this assembly. It is also intended for future use.

CodePlex Issues Resolved

  • ...

Example Code Changes

Prism 5.0 contains eleven separate code samples that demonstrate portions of the provided guidance. Several samples from Prism 4.1 were removed or replaced, and new samples added.

The following samples were added for Prism 5.0:

  • Basic MVVM QuickStart. This QuickStart shows a very simple MVVM application that uses the ViewModel Locator and show a parent and child ViewModels. For more information, see the MVVM QuickStart.
  • MVVM QuickStart. This QuickStart was removed for this version.
  • MVVM Reference Implementation. This reference implementation was removed for this version.
  • View-Switching Navigation QuickStart. This QuickStart now supports WPF. It demonstrates how to use the Prism region navigation API. For more information, see View-Switching Navigation QuickStart.
  • State-Based Navigation QuickStart. This QuickStart now supports WPF. It shows an approach that uses the Visual State Manager to define the views (states) and the allowed transitions. For more information, see State-Based Navigation QuickStart.
  • UI Composition QuickStart. This QuickStart now supports WPF. It replaced the View Injection QuickStart and the View Discovery QuickStart from Prism 2.0. In the current versions, both concepts are shown in one example application. For more information, see UI Composition QuickStart.
  • Interactivity QuickStart. This new QuickStart demonstrates how to exposes an interaction request to the view through the view model. The interactions can be a popup, confirmation, custom popup, and a more complex case where the popup needs a custom view model. It also shows Prism’s InvokeCommandAction action that passes the EventArgs from the trigger, as a command parameter. For more infromation, see Interactivity QuickStart.

NuGet Packages Now Available

In your application, you can now use NuGet to add references to the Prism assemblies. These packages include:

..."

Microsoft Downloads - Prism 5.0 for WPF – April 2014

Prism provides guidance designed to help you more easily design and build rich, flexible, and easy to maintain Windows Presentation Foundation (WPF) desktop applications.

...

MSDN Code Gallery - Getting Started Code Sample Using the Prism Library 5.0 for WPF

In this lab and associated sample, you will learn the basic concepts of modular application development using the Prism Library, and apply them to create a solution that you can use as the starting point for building a composite Windows Presentation Foundation (WPF) application. After completing this lab, you will be able to do the following:

  • You will create a new solution based on the Prism Library.
  • You will create and load a module.
  • You will create a view and show it in the shell window. 

This lab includes the following tasks:

...

MSDN Code Gallery - MVVM Code Sample using the Prism Library 5.0 for WPF

The Model-View-ViewModel (MVVM) QuickStart provides sample code that demonstrates how to separate the state and logic that support a view into a separate class named ViewModel using the Prism Library. The view model sits on top of the application data model to provide the state or data needed to support the view, insulating the view from needing to know about the full complexity of the application. The view model also encapsulates the interaction logic for the view that does not directly depend on the view elements themselves. This QuickStart provides a tutorial on implementing the MVVM pattern.

A common approach to designing the views and view models in an MVVM application is the first sketch out or storyboard for what a view looks like on the screen. Then you analyze that screen to identify what properties the view model needs to expose to support the view, without worrying about how that data will get into the view model. After you define what the view model needs to expose to the view and implement that, you can then dive into how to get the data into the view model. Often, this involves the view model calling to a service to retrieve the data, and sometimes data can be pushed into a view model from some other code such as an application controller.

This QuickStart leads you through the following steps:

  • Analyzing the view to decide what state is needed from a view model to support it
  • Defining the view model class with the minimum implementation to support the view
  • Defining the bindings in the view that point to view model properties
  • Attaching the view to the view model

..."

Finally:

That should be enough Prism for WPF to get you started at least...

Mirror, Mirror on my PC, who's the coolest Windows Phone projector of all? (Windows Phone 8.1.. ;)

Monkey Slaps - Projecting your Windows Phone screen to a PC

One of the common questions I’ve been getting over the past week from folks has been how to take advantage of this semi-obscure ‘Project my Screen’ entry that was added to the settings collection with Windows Phone 8.1.

This entry is enabled in one of two ways: by using Miracast capabilities delivered in 8.1, and by using the Project my Screen app on a PC and connecting your phone to your PC using a USB cable (sorry – no WiFi yet).

I believe the ‘Project my Screen’ app has been one of the more eagerly awaited features by developers and technical enthusiasts alike. Since we launched Windows Phone 7.0, I’ve received at least a 2-3 mails/questions a month on how they can do demos like Microsoft presenters. With this enabled, anyone can fire up their phone and project a demo of their app or their phone. So, let me lay out how you can demo your app and phone.

To make use of the Project my Screen app, you need to do the following:

...

image

…if your screen won’t project…

..."

I had seen this in my WP8.1 settings screen, but I thought it was something like adding a second monitor or something. I didn't know it was like what you see in just about ever Microsoft WP8.x demo, where your phone screen is mirrored to your PC. And it's two way too! Now that's cool... ;)

Mixing up your PowerPoint training with Office Mix, your PowerPoint - > Interactive Training Tool

Kurt Shintaku's Blog - BETA: “Office Mix” – Turn PowerPoints into Interactive Training\

What does MIX do?
The short answer? It makes your life a lot easier. ...

NOTE: Registration requires an invitation.  If you do not have one, you can request an invitation at http://aka.ms/mixconnect.

What does Office Mix do?

...

The “I-need-a-little-more-detail” answer? Office Mix allows you to turn your PowerPoints into interactive online lessons or presentations. We install an add-in that gives you the ability to record audio, video, and handwriting, and insert interactive elements like quizzes and CK12 exercises. There’s even a screen capture tool so you can record anything on your PC.

Once your presentation is ready just click “Create Mix.” We work our magic to mix it into an interactive document complete with analytics, and place it in the cloud. From there, just share the link, and your students can watch it on just about any device with a web browser. You can then check student progress online and see who watched the presentation, and how they did on your quizzes. 

How much does Office Mix cost?

Are you ready for this? It’s free! The website, data analytics, and add-in are all free. Office Mix does, however, require Office 2013. You can try Office for free if you don’t have the latest version.

mix.office.com

image

This is a new Microsoft.. A "Sign-in with Google?" This is first time I think I've seen that on a Microsoft product/service like this (I think ;)

Anyway... With all the interactive features in PowerPoint, and the fact that how many more can you really add, this looks like a smart way to extend it and give it more life.

Friday, April 18, 2014

//build/ –> //learn/-> //publish/ -> //your free new training sessions/

Building Apps for Windows - //build/ –> //learn/-> //publish/: new resources to help you publish your universal Windows apps

You’ve heard announcements at //build/ around the launch of Windows Phone 8.1 and the converged development platform; now get the details and support from community experts to bring your universal Windows apps to life. We’d like to invite you to join us over the next month for a series of educational and hands-on events.

First up is //learn/, a unique opportunity for you to get an introduction to building your own universal Windows apps for phone, tablet and pc. Ask questions and learn what’s new from Microsoft MVPs and get insights from your peers.

Jumpstart, a 3-day training course from Microsoft’s Virtual Academy follows, giving you an in-depth overview of the most important new features and platform capabilities.

Once you’ve started your app, be sure and register for one of our in-person //publish/ regional events, where Microsoft MVPs and local experts will be on hand to help you bring your apps over the finish line and into the Windows Store.

...

//learn/ - coming soon, April 24

Microsoft MVPs will present live webinars introducing the latest features and technologies for phones, tablets and PCs. ...

Date: April 24, 2014

Click here to register

Jumpstart

In this live training webinar by Microsoft Technical Evangelists Andy Wigley and Matthias Shapiro, you will learn how to design and build Windows Phone 8.1 apps using XAML and C# to share a high percentage of code. You will also learn...

Dates: April 29 – May 1, 2014

Click here to register. If you are unable to attend live, you can watch this course on-demand on Channel 9 after May 9, 2014.

//publish/

//publish/ is a global event series where you will bring your project to polish and complete, and receive support, incentives, prizes and just have a lot of fun along the way.

//publish/ events occur in more than 60 different locations worldwide - simultaneously, all connected by a big online digital dashboard (“The Board”) You will receive expert guidance and support for app design, performance, testing, publishing, and Unity porting in a cool and inspiring environment.

Attend in-person at one of the 35 Microsoft-led events or 30 MVP-led satellite events at locations worldwide. No matter which event you attend, you’ll find it an extraordinary opportunity to learn, share and code; connected to the others via a unique online experience. Register early as space is limited.

Dates: May 16 - May 17, 2014

Click here to register

...

//learn/

Whether you are a New Windows App Developer or an Experienced one- we have something for you!

Join us and take a deep dive into the latest features and technologies for Windows Phones, PCs and Tablets.//learn/ from our community in this “to the community, for the community and by the community” event where our MVPs and Expert Developers will help you better understand all that’s new with Windows.

Want to learn how to easily share code between store apps of different form factors? or Want to build your own universal App? You are at the right place. These sessions will cover all the basic concepts to develop Universal Windows apps –One App for all form factors (PC, Table and Phone), Windows Phone 8.1 apps: the new application lifecycle, the new XAML etc.-with live chat and Q&A with our speakers

No need to dress up or step out you can watch and learn from the comforts of your home/office in this online webcast of informative sessions delivered by our community experts. That’s not all, our local experts will deliver these sessions in not 1 but 8 languages from across the globe(each accommodating the local time zone) to help you learn and leverage the new features and technologies.

So get started and Register Now!

image

...

Building Apps for Windows Phone 8.1 Jump Start

If you're an app developer who wants to design and build Windows Phone 8.1 apps using XAML and C#, don't miss this exciting event. The two-and-a-half day, demo-rich course, taught by experts who have years of experience developing (and writing about the process), focuses on how to create apps for Windows Phone 8.1 in Visual Studio and how to create universal app projects that share a high percentage of code and that target both Windows and Windows Phone.

Course Outline:

  • Day 1: Introduction to Windows Phone 8.1 & Building Windows Store Apps
  • Day 2: Programming Windows Phone 8.1 Platform Features
  • Day 3: Store, Universal Apps, and Silverlight

image

publishwindows.com

SNAGHTML1fe3651

Now, get your learn on!

Cool Blast from The Past Page of the Day: Revisit the Restarts of the past, experience Windows, Mac, Amiga and more "restarts" live in your browser

404 Tech Support - The Restart Page lets you experience reboots in your browser

The Restart Page allows you to interact with shutdown prompts from different operating systems. You can click on the buttons and watch the page turn off or restart with an accurate depiction. There are different versions of Microsoft Windows, Apple Mac OS, and others with sounds, icons, and progress bars.

...

www.therestartpage.com

image

Awesome... Relive reboots without rebooting.

imageimageimage

Data Editing in SQL Server Data Tools just got a little cooler (you can filter and sort now...)

Deborah's Developer MindScape - SSDT Data Editor Now Has Sorting and Filtering!

The SQL Server Data Tools (SSDT) provide access to many SQL Server features from within Visual Studio. One of those features, available from the SQL Server Object Explorer, is the visual Data Editor.

While the Data Editor has always been great for inserting, updating, and viewing data, it did not support any sorting or filtering … until now!

image

NOTE:

  • For an introduction to SSDT and the SQL Server Object Explorer, see this post.
  • For an introduction to the SSDT Data Editor, see this post.

The March 2014 release of SSDT added support for SQL Server 2014 databases. But it ALSO provided new features in VS 2012 and VS 2013 for sorting and filtering the data in the Data Editor!

If you are using VS 2012, you can use the update option to get this update (SQL | Check for Updates).

If you are using VS 2013, the update should appear in the Notification window when you click the notification flag:

...

image

While I don't suggest this as a main stream means to edit your data, but some times it's just so much easier to fire this up and edit knock out your quick updates. This also helps you avoid the "oh crap, I used the wrong WHERE in my Query Window update" game (not that I've ever done that, updating every row in a table, without a BEGIN TRAN... nope, not me! :/  )

Thursday, April 17, 2014

PowerShell gets Chocolatey NuGet with OneGet

Stefan Stranger's Weblog - Manage your IT Infrastructure - Viewing NuGet Packages with the NuGet Explorer

You may have seen that we released the the Windows Management Framework V5 Preview and that one of the new features  is Windows PowerShell OneGet. OneGet is designed to dramatically simplify how you discover and install software packages.

Windows PowerShell OneGet

OneGet is a new way to discover and install software packages from around the web. With OneGet, you can:

  • · Manage a list of software repositories in which packages can be searched, acquired, and installed
  • · Search and filter your repositories to find the packages you need
  • · Seamlessly install and uninstall packages from one or more repositories with a single PowerShell command

This first version of OneGet installs and searches software from Chocolatey repositories.  Support of additional repositories will come in subsequent versions.

...

One of the things that comes getting up in discussions about using Chocolatey Packages with or without OneGet is the question how can I trust the Packages from a resource like Chocolatey? The Chocolatey Nuget Packages are build by the community so you need to be careful what you are downloading and installing like all other software from sources you don’t own yourself.

But what if there is a easy way to view the content of NuGet Package before installing the Chocolatey NuGet packages? And that is possible using the NuGet Package Explorer.

...

References:

http://mikefrobbins.com/tag/oneget/

image

While I had seen the WMF v5 news, I hadn't seen, or at least registered, the OneGet news. That really does look awesome and something I'm going to have to take a much closer look at...

 

Related Past Post XRef:
Spelunking NuGet Packages with the NuGet Package Explorer (and creating, editing and publishing nupkg's with it too)
NuGet, Open Wrap, NPanday, Chocolatey, Chewie, Ninite, top Package/Dependency Management for .Net tools
NuGet your Enterprise?
North by Northwest [Cadence] - Up coming casts from Northwest Cadence

SQL Server 2014 Secret Killer New Feature, Cardinality Estimator (okay, it's not Secret, but it seems pretty killer...)

Jimmy May's Blog - MSDN Whitepaper: More Cowbell—Optimizing Your Query Plans with the SQL Server 2014 Cardinality Estimator

Hot off the presses is this new MSDN white paper:

Optimizing Your Query Plans with the SQL Server 2014 Cardinality Estimator

One of the gems introduced in SQL Server 2014 is the Cardinality Estimator (CE)—new! improved! & now with more cowbell.  I'm thrilled to be a Technical Reviewer for a superb MSDN white paper authored by my friend, buddy, & pal Joe Sack (b|t). It's exciting & humbling to see my name among such an array of Contributors & Reviewers—including several former colleagues from Azure CAT (formerly SQL CAT b|t).

What’s a CE?

As described on the Cardinality Estimation (SQL Server) page:

Cardinality estimates are a prediction of the number of rows in the query result. The query optimizer uses these estimates to choose a plan for executing the query. The quality of the query plan has a direct impact on improving query performance.

Why a New CE?

The pre-existing CE is more than a decade old.  Both OLTP & DW workloads have changed—& databases are bigger by far than they used to be.  Often, cardinality changes spawned disparate plans (in one prototype, over 78 different plans were generated by the former CE).  Plainly & simply—the CE needed more cowbell.

What’s New?

During SQL14 TAP, SQL Engineer Kate Smith provided a heads up.  Highlights included:

image

Optimizing Your Query Plans with the SQL Server 2014 Cardinality Estimator

Summary: SQL Server 2014 introduces the first major redesign of the SQL Server Query Optimizer cardinality estimation process since version 7.0.  The goal for the redesign was to improve accuracy, consistency and supportability of key areas within the cardinality estimation process, ultimately affecting average query execution plan quality and associated workload performance.  This paper provides an overview of the primary changes made to the cardinality estimator functionality by the Microsoft query processor team, covering how to enable and disable the new cardinality estimator behavior, and showing how to troubleshoot plan-quality regressions if and when they occur.

Authors: Joseph Sack (SQLskills.com)

Contributers: Yi Fang (Microsoft), Vassilis Papadimos (Microsoft)

Technical Reviewers: Barbara Kess (Microsoft), Jack Li (Microsoft), Jimmy May (Microsoft), Sanjay Mishra (Microsoft), Shep Sheppard (Microsoft), Mike Weiner (Microsoft), Paul White (SQL Kiwi Limited)

image

Introduction

The SQL Server Query Optimizer’s purpose is to find an efficient physical execution plan that fulfills a query request. It attempts this by assigning estimated costs to various query execution plan alternatives and then choosing the plan alternative with the lowest estimated cost. One key factor for determining operator cost is the estimation of rows that will be processed for each operator within a query execution plan. This row estimation process is commonly referred to as cardinality estimation. SQL Server 2014 marks the first, significant redesign of the SQL Server Query Optimizer cardinality estimation component since version SQL Server 7.0.

The SQL Server query optimization process seeks the most efficient processing strategy for executing queries across a wide variety of workloads. Achieving predictable query performance across online transaction processing (OLTP), relational data warehousing, and hybrid database schemas is inherently difficult. While many workloads will benefit from the new cardinality estimator changes, in some cases, workload performance may degrade without a specific tuning effort.

In this paper, we will discuss the fundamentals of the SQL Server 2014 cardinality estimator changes. We will provide details on activating and deactivating the new cardinality estimator. We will also provide troubleshooting guidance for scenarios where query performance degrades as a direct result of cardinality estimate issues.

...

Summary

SQL Server 2014 marks the first significant redesign of the SQL Server Query Optimizer cardinality estimation process since version 7.0. Use of the new CE can result in an overall improvement in average query performance for a wide range of application workloads. The new CE also provides diagnostic output for use in troubleshooting cardinality estimate issues. As described in this paper, some workloads may encounter degraded performance with the new CE. We recommend that you thoroughly test existing applications before migrating. When using the new CE, users can leverage trace flags to use the legacy model for queries that regress. This allows you to still benefit from queries that improved under the new model.

I've been hearing a number of good things about SQL Server 2014's new Cardinality Estimator, for example, The SQL 2014 Cardinality Estimator Eats Bad TSQL for Breakfast. If you've been hearing the same thing, or are just interested, you should check out this 43 page doc.

Visual Studio 2013 gets Installer Projects support back!

The Visual Studio Blog - Visual Studio Installer Projects Extension

We have heard many customers express the desire that we bring back support for Visual Studio Installer projects. In fact this was one of the topmost voted on suggestions on User Voice for Visual Studio and with this extension release we hope to address your feedback both here on the blog and on UserVoice.

We’re happy today to announce the preview availability of the Visual Studio Installer Projects Extension. This preview release provides support for Visual Studio Installer projects in Visual Studio 2013. You can download the extension from the Visual Studio Gallery.

image

To use this extension you can either open the Extensions and Updates dialog, select the online node and search for “Visual Studio Installer Projects Extension” or you can click here to go directly to the Visual Studio Gallery page that hosts the control.

Once you have finished installing the extension and restarted Visual Studio you will be able to open existing Visual Studio Installer Projects or create new ones.

Our intention with this extension is to give those of you with Visual Studio Installer projects the same functionality that you currently have in Visual Studio 2010. This extension enables those customer who aren’t using Visual Studio Installer projects to have ISLE as their preferred installer project solution and those who are to have support for both ISLE and their existing Visual Studio Installer projects. While the extension is not localized it is fully supported on both localized and English versions of Visual Studio.

..."

THANK YOU... This was one of my big VS 2012/2013 whines. I'm more than happy to delete that whine from my list... :)

Wednesday, April 16, 2014

Step-by-Step into your own private cloud, with the Windows Azure Pack and System Center

KeithMayer.com - Step-by-Step: Getting Started with On-demand Private Clouds using Windows Azure Pack

As I’ve been traveling and speaking to IT Pros about the great scalability, resiliency and offerings in our Microsoft Azure public cloud platform, there’s also been lots of interest around deploying our free Windows Azure Pack (WAP) to bring the power and consistency of the same self-service Azure portal user interface to on-demand Private Clouds provisioned in an on-premises datacenter.

image

In this article, we’ll step through the process of setting up Windows Azure Pack in a lab environment for provisioning and delegating VM private clouds. Along the way, I’ll call out the specific details that I found helpful to successfully build my own lab environment.

What is Windows Azure Pack?

For a technical overview of the Windows Azure Pack, check out this great Microsoft TechEd session:

In addition, Thomas Maurer, MVP for Cloud and Virtualization, has written a great article that describes the overall architecture of Windows Azure Pack:

What are we building?

Windows Azure Pack certainly has the ability to scale to support very large Private Cloud environments consisting of multiple datacenters.  However, in this article, we’ll get started by building a basic lab environment that consists of the following four (4) VMs:

  • System Center 2012 R2 Virtual Machine Manager (VMM) management server VM
  • SQL Server 2012 database server VM
  • Service Provider Foundation (SPF) server VM
  • Windows Azure Pack (WAP) server VM

To configure all four (4) VMs in your lab environment, you’ll need a virtualization host with at least 16GB RAM and 300GB available disk space.

...

image ..."

You guys know how much I dig this idea, of having all that's good about Azure, inside my firewall, avoiding all the "security" and "OMG, the cloud? AAAHHHHhhhhhhh..." angst.

 

Related Past Post XRef:
Deploying your own little cloud... "Deploying Windows Azure Pack" series
Windows Azure Pack (#WAPack), Related Blogs, Videos and TechNet Articles wiki round-up
Taking the Bus to the next stop... Why you, Dev and IT, should be looking at the Windows Azure Pack.
TechEd NA 2013 Day 1 Announcement Round-up - VS 2013, TFS 2013, InRelease, SQL 2014, Server 2012 R2, BizTalk Services, Azure-in-a-box and even more Azure...

"Graphically Challenged?" Want to see how even you can create your own game character in Inkscape?

The Sociable Geek - Creating a Character for your Game Using Inkscape

In todays video session we will be showing you the basics of how to Create a Game Character using Inkscape.  If you have never used Inkscape or think you can't draw, then this session is for you.

image

"...think you can't draw..." He hit that nail RIGHT on the head. :)

 

Related Past Post XRef:
How to make dirt [clipart]
Inkscape 0.46 Released

On SQL Server 2005, 2008, 2008 R2, 2012? Here's what you get when you jump to SQL Server 2014

A Story of BI, BIG Data and SQL Server in Canada - SQL Server 2014. Benefits of upgrading from SQL Server 2005, 2008, 2008R2 and 2012.

image

Are you running a previous version of SQL Server and want to know what new SQL Server capabilities you will be able to use by upgrading to the latest version?

Please find below the list of new features introduced since SQL Server 2005, 2008, 2008R2 and SQL Server 2012 (it will be a very long blog post!).

SNAGHTML1706301

SNAGHTML170155e

I thought this a great roll-up of features added to SQL Server in the last decade. Prefect if you're a version or two (or three) behind.

Jon's Five['ish] Tips for catching up with Build (or any other Channel 9 event)

Jon Galloway - 5 Tricks for catching up on the Channel 9 event videos for Build 2014

Okay, you've had a week to digest all the video content from Build 2014? Done yet? Me, neither. Well, how about some tricks to make this easier?

I'd written up a few tips and tricks for catching up on Channel 9 event videos back in 2011, this is an update circa 2014.

Trick 1: Subscribe and watch at high speed in VLC

There are a lot of sessions, and watching even at 10% faster makes a difference. I think you'll be surprised at how, with a little practice, you can keep cranking the speed up and absorb the content at 2x or even faster. Note: Every time I tell people about high speed playback, people assume it's going to make the speakers sound like chipmunks. All of the high speed playback options I'm going to show are pitch corrected, so they don't raise the speakers' voices.

If you don't have VLC installed, I highly recommend it. It's lightweight and has a minimal interface, but is packed with codecs and advanced features when you need them. You can install via Chocolatey (cinst vlc), directly from http://www.videolan.org/, or from http://ninite.com.

Run VLC and pop into Playlist mode. You can do that from the View menu, hit Ctrl+L, or click on the Playlist icon at the bottom to do that.

SNAGHTML1635063

Trick 2: Use high speed playback in the Channel 9 player

HTML5 video players in all the new browsers support high speed playback. Here's an example showing the Day 1 Keynote on the Channel 9 site; I've right clicked the video to bring up the context menu and I'm about to kick it up to 2x.

...

Trick 3: Subscribe to the MP3 feed on Windows Phone 8.1

One of my favorite sleeper features in Windows Phone 8.1 is support for high speed playback in the new Podcasts app. For this one, I wanted to add the MP3 URL for just the Build 2014 event: http://channel9.msdn.com/Events/Build/2014/RSS/mp3

But that's a bit long to type on the phone, so I made a special short URL: http://aka.ms/b14mp3

...

[GD: There's no 4... doh!]

Trick 5: Downloading videos using a script

In the past, I've published some Powershell scripts for bulk downloading Channel 9 videos. Here' s one, updated for Build 2014. But don't run it just yet, because I think I've found a better options, which I'll show you next.

..."

These will work for just about any Channel 9 Event too.

Another great tip (which we'll call #4 ;) is to use the Channel 9 Queue feature. Once you sign-in with a Channel 9 profile, you can add any Channel 9 video to your private queue. Your queue is also available via a RSS feed, so Jon's tips should work fine for it too. What's nice is that you can reorder your queue, which reorders your RSS feed...

MonoGame gets its Samples Game On (One sample, nine platforms)

Dark Genesis - A new breed of samples for MonoGame

MonoGame has always been the quality of the samples currently maintained in the various branches of the project.

Being an opensource project this has always been a challenge to manage and maintain, sure there are a lot of samples provided by many hard working developers but they were very sporadic and not always kept up to date (some it was noted, don’t even run any more)

Seeing this, the core MonoGame team set out with a purpose to being a new samples repository for the project. Its goals were simple:

  • The samples had to be of high quality
  • They had to work on ALL platforms not just one
  • Best practice had to be used where possible
  • They had to be testable and re-usable to test the latest builds (builds may not pass if samples tests failed)

It has been an ambitious journey, with a lot of in depth discussions and debates, but now the first of the samples has just been accepted in to the new Samples Repo.

...

The first sample is just a taste of what is to come and is born of the already tried and tested Platformer 2D sample from the age old XNA library.

The sample itself isn’t too much to should about as it only implements basic rendering, input and audio capabilities. However it is laid out in such a format and is working on ALL supported platforms, including:

  • Android
  • Linux
  • MacOS
  • Ouya
  • PSM
  • Windows Phone
  • Windows 8
  • WindowsGL

The sample serves as a guide for how to build and manage your game project in a fully multi-platform way with all the code in one place and shared across all projects

...

Mono-Game/Samples

image

Now that's cross-platform!

Droning on with Tasks, Rx and some TPL

The Brain Dump - Tasks and awaits and Rx! (And Drones!) Oh My!

A few people I work with are tinkering with an off-the-shelf drone in our spare time and so we are writing a C# library to control it.

The way it works is you send UDP commands to the drone and you receive a stream of status & navigation UDP packets from it. So everything is asynchronous by default. You don’t send a command and get back an “I got it!” response. You have to send a command and then monitor the status for a change reflecting your desired state,

For example, to start flying, you must repeatedly send the “take off” packet every few milliseconds until you see the “is flying” flag set in the status packets. Lets see what that would look like.

We want the SendCommand method to be asynchronous and totally decoupled from the UI. So the send process looks like this.

image

...

Broken down, each function is simple enough to understand and debug. This simplicity only comes from the power of Rx, the TPL and the async/await functionality. Imagine what the code would look like before when all the timers and .NET events and state would have to be managed directly.

Mostly I just liked his title... :P

Well that and there are some tips in this post that will come in handy, right about, well, now...

Sunday, April 13, 2014

Microsoft Store is coming to a Mall near me, The Oaks in Thousand Oaks gets Microsoft'd

Kurt Shintaku's Blog - NEWS: Microsoft Store coming to Thousand Oaks, “The Oaks Mall”–May 13th, 2014

A Microsoft specialty store is opening on May 13th, 2014 at The Oaks Mall in Thousand Oaks, CA. – one of 15 new locations coming.

Date:

  • May 13th, 2014

Location:

  • The Oaks Mall – Lower Level, near Center Court
  • 350 W. Hillcrest Dr. Thousand Oaks, CA, 91360
  • Phone: (855) 270-6581

Web Page:

[GD: Post Leached in Full]

image

The closest store to me right now is Century City, which is a 405 required drive and I really hate that freeway. This new store is pretty darn close and in a Mall we go to fairly often (okay it's been many months, but still it's a heck of allot closer... :)

Saturday, April 12, 2014

[Book Review] Visual Studio 2013 Cookbook

The team at Packt have given me another opportunity to review one of their just released titles, Visual Studio 2013 Cookbook. As I usually do, I'm not going to give you a chapter-by-chapter review or rundown. Instead I'm going to give you my overall feelings and impressions about the book, what I liked and didn't and why you might want to check it out yourself.

Visual Studio 2013 Cookbook

image

  • Provides you with coverage of all the new Visual Studio 2013 features regardless of your programming language preference
  • Recipes describe how to apply Visual Studio to all areas of development: writing, debugging, and application lifecycle maintenance
  • Straightforward examples of building apps for Windows 8.1

Preface
Chapter 1: Discovering Visual Studio 2013
Chapter 2: Getting Started with Windows Store Applications
Chapter 3: Web Development – ASP.NET, HTML5, CSS, and JavaScript
Chapter 4: .NET Framework 4.5.1 Development
Chapter 5: Debugging Your .NET Application
Chapter 6: Asynchrony in .NET
Chapter 7: Unwrapping C++ Development
Chapter 8: Working with Team Foundation Server 2013
Chapter 9: Languages
Appendix: Visual Studio Medley

Let's start with the bad...

I usually don't write "bad" reviews ("If you can say something nice..." and all that) and I'm not this time either. BUT you have to understand the intent of the book before you get it. Based on the title and chapter headers, I got something different than I expected and that colored my initial feelings.

Frist off, I think the book is good and has a great information, but the description and information on its page might led to confusion about its actual content.

I thought I was going to be reading a book about Visual Studio 2013, the IDE. Recipes on using it, tips and tricks for getting the most out of VS itself.

It's not that.

It's more a book about learning to cook with the new technologies available in VS 2013 than about VS 2013 itself. Does that make sense? It's more about what you can make with a stove, not really about the stove itself.

For example, here's a snip from the book's description page;

What you will learn from this book

  • Customize the editor’s new abilities to fit your development style
  • Create apps for Windows 8.1
  • Use Visual Studio to debug parallel and concurrent programs
  • Integrate .NET Framework 4.5.1 effectively
  • Learn about both the Express and premium editions of Visual Studio
  • Maximize Visual Studio's C++ tools to make development easier
  • Put TypeScript to work in your web applications
  • Protect and manage your source code with Team Foundation Server
  • Learn about Visual Studio Online

This might lead you to believe that the book is indeed about VS itself. I know I thought so. But then see the lines, "Create apps for Windows 8.1 " and "Put TypeScript to work in your web applications." THAT is what I talking about as being what you can make with VS 2013, not being about VS 2013 itself. And a many of the chapters are like this. Using VS 2013 to build WinStore App's from a template, creating a WCF Service, Adding a Ribbon to a WPF App, etc, etc.

Don't get me wrong, there are many parts that help you learn to use VS 2013, but my impression is it's 50/50, VS verses Cooking with VS...

My suggestion to you is too really read the FULL chapter descriptions and check out the preview before purchase, so you understand what you are jumping into. DON'T be like me and stop at the chapter headers, but continue on down the page and look at the chapter contents.

Enough whining, now the Good...

If taken as a "What can I Cook with VS 2013," this book provides a great survey of many of the new capabilities and features now available. The cookbook format is used well and provides nice bite sized chunks of digestible information.

The book is also very current and up to date. For example, the name change of SkyDrive to OneDrive is noted in the book. Also VS 2013 Update 2 Beta is  mentioned (not VS 2013 Update RC of course, as that was just announced last week)

The breadth of covered technology is also nice. WPF, WCF, WinStore, TFS, etc is all covered. It's a great survey of what you can do with VS 2013.

Should you get it?

If you have VS 2012 and are wondering what you can do once you VS 2013, looking for reasons why to upgrade, this looks like a great book. Again, make sure you look at the chapter details, but if you are using VS 2012 and are trying to convince someone, yourself, co-workers, boss, etc on why you might want to upgrade, what you'll be able to build and do once you get it, yeah, you should look a long close look at picking this book up.

 

Disclosure of Material Connection: I received one or more of the products or services mentioned above for free in the hope that I would mention it on my blog. Regardless, I only recommend products or services I use personally and believe my readers will enjoy. I am disclosing this in accordance with the Federal Trade Commission’s 16 CFR, Part 255: “Guides Concerning the Use of Endorsements and Testimonials in Advertising.

Related Past Post XRef:
[Book Review Preview] Visual Studio 2013 Cookbook

Wednesday, April 09, 2014

Roslyn gets Mono

http://tirania.org/blog/ - Mono and Roslyn

Last week, Microsoft open sourced Roslyn, the .NET Compiler Platform for C# and VB.

Roslyn is an effort to create a new generation of compilers written in managed code. In addition to the standard batch compiler, it contains a compiler API that can be used by all kinds of tools that want to understand and manipulate C# source code.

...

Roslyn on Mono

At BUILD, we showed Roslyn running on Mono. If you want to run your own copy of Roslyn today, you need to use both a fresh version of Mono, and apply a handful of patches to Roslyn [2].

...

Adopting Roslyn: Mono SDK

Our goal is to keep track of Roslyn as it is being developed, and when it is officially released, to bundle Roslyn's compilers with Mono [6].

But in addition, this will provide an up-to-date and compliant Visual Basic.NET compiler to Unix platforms.

Our plans currently are to keep both compilers around, and we will implement the various C# 6.0 features into Mono's C# compiler.

...

Mono Project and Roslyn

Our goal is to contribute fixes to the Roslyn team to make sure that Roslyn works great on Unix systems, and hopefully to provide bug reports and bug fixes as time goes by.

We are very excited about the release of Roslyn, it is an amazing piece of technology and one of the most sophisticated compiler designs available. A great place to learn great C# idioms and best practices [5], and a great foundation for great tooling for C# and VB.

Thanks to everyone at Microsoft that made this possible, and thanks to everyone on the Roslyn team for starting, contributing and delivering such an ambitious project.

image

VB.Net on Linux? Awesome. Xamarin really is exciting to watch. I love those guys (and it's not just the free booze from their Build talking either... well.. much... ;)

First Moon meal was? [Drum roll...] Bacon!

Gizmodo - Bacon Was the First Thing Ever Eaten on the Moon

image

Setting foot on the moon for the first time was perhaps one of the biggest technological, scientific and political achievements of our age. So what better way to celebrate, after exploring that new lunar landscape, than with bacon?

...

Image by Orin under Creative Commons license

Popular Science - When Bacon Flew to the Moon; or, #spacebacon

...

The first manned Apollo mission, Apollo 7, had the least variety in its meals. But bacon was a key food in three out of four breakfasts. The astronauts’ first meal on days 1, 5, and 9 of the flight consisted of peaches, eight bacon squares, cinnamon toasted bread cubes, and breakfast drink. Breakfast on days 4 and 8 were with Canadian Bacon and applesauce, strawberry cereal cubes, cinnamon toasted bread cubes, and more breakfast drink. Only days 3, 7, and 11 were bacon free.

And, it seems, the crew liked the bacon squares. Towards the end of the eleven-day mission, Walt Cunningham commented to Capcom Bill Pogue during breakfast that “Happiness is a package of bacon squares on day 10.” Bacon squares may have been a hit, but on the whole the crew came home feeling like they’d brought too much food that was too sweet.

...

The bacon squares that were a staple on Apollo missions actually predate the lunar program; they debuted during Gemini mission where they were a breakfast staple. And bacon squares lived on after Apollo. In the 1990s, NASA astronauts also had bacon squares as part of their meal options. A meal plan from 2002, however, had a distinct lack of bacon. Today on the ISS, the closest thing astronauts have is a freeze-dried sausage pattie they rehydrate with hot water.

Sources: NASA; All Apollo mission press kits (Apollos 7-17); All Apollo spacecraft and air-to-ground transcripts (Apollos 7-17). Thanks to William Jeffs for the update on sausage patties in space. And for those interested, here's a list of common foods eaten on Apollo missions.

Bacon, the astronaut approved meal... ummm.... bacon...

19 Tips and Thoughts Toward Developer Productivity

Jon Gallant - My Thoughts on Developer Productivity

The best developers optimize every aspect of their lives. Optimization is built into their DNA. We are always looking for ways to not repeat ourselves and strive to make everything we do faster. Everything from doing the dishes to serialization. If it’s not as fast as it possibly could be, then we spend countless hours making it so. Now as a manager I get to code a bit, but a big part of what I’m responsible for is optimizing developer productivity. I have a long way to go, but I have definitely improved as a manager over the last 10 years, so I thought I would share what I have learned. Hopefully this will help the newbie and seasoned managers alike.

SNAGHTML628d9b4

Hours

The first thing you want to do is set the expectation that your developers will be working very long hours. They should be working from the moment they wake up to the moment they fall asleep. If not coding that whole time, they should at least be thinking about code. I find it best to set mandatory in-office core hours from 8am to 8pm. That way they get in a solid 12 hours a day in the office and then they can make up the remaining 4 hours of their 16 hour day on their own time. It’s fine if they chose to come in earlier or stay later, but everyone must be in their office for core hours. Try roaming the halls at the start and end of each day and take notes on who is and isn’t in their office. That way you know who the really productive people are. You could also go the punch card route or you could require them to install a service that monitors their activity and alerts you when they aren’t meeting their numbers.

Meetings

....

Do not do “No meeting Fridays” or “No meeting afternoons” and put a 30-60 minute gap in between meetings so they can get a good 20 minutes of coding time in between them. At the end of the day they should spend 80% of their time in meetings and 20% of their time developing.

WFH

Working from home?….it should be…..“Xboxing from home” because you know that’s what they are doing all day. It’s a trick. Don’t fall for it. You can let them have every other Sunday to themselves if they are hitting their “lines of code” count and code coverage percentage for the month. But, never on a regular basis.

When someone says they need to work from home immediately schedule an early morning meeting and require them to be there in person.

Software

Cloud

DevOps

Hardware

Process

Quality

TIP (Testing In Production) is cool, but TIP-WAU (Testing In Production With Actual Users) is even cooler. If you want to know where the bugs are in your software then just ship it. Users will report any bugs. That way you don’t need to distract developers from what they do best...creating new features. Those new features may break other features, but as long as the new feature somewhat works it’s all good.

Rewards

Fun

Furniture

Food

Personal

Reviews

Training

Credit

Vision

Visions are overrated. You want to keep them guessing about what you are thinking. ...

Attrition?

...

The above was fun to write, but it is obviously very bad advice. Keep reading to see my honest take on developer productivity.

SNAGHTML6292e1e

Hours

On my team the expectation is that you’ll work roughly 8 hours a day, but it is very self-managed. Some days you’ll work 10, some days you’ll work 6. I never track developer hours. The code you produce speaks for itself. I work an hour or so in the morning, get in around 9:30, leave at 4:30, then I’m back at it for a bit before I go to sleep. That allows me to eat breakfast and dinner with my family on a regular basis.

...

The funny part, in a sad way, is I'm not sure which is more valid in the real world, the first set or the last... :/