Quantcast
Channel: MSDN Blogs
Viewing all 12366 articles
Browse latest View live

SharePoint 2013 install error if the .NET 4.6.X framework is installed

$
0
0

When installing the pre-requisites for SharePoint 2013 you may receive an error during the configuration of the IIS role indicating a later version of the .NET framework is already installed.

iisconfigerror

This could mean a couple things:

  1. There is a known issue when the .NET 4.6.X version of the .NET framework is installed on Server 2012.
  2. The .NET 4.5 or above framework is installed however IIS requires the .NET 3.5 framework so it can be configured properly.

Resolution:

  1. If you determine that the .NET 4.6.X framework is installed, you can uninstall that version, install SharePoint and then re-install the .NET framework.
  2. If you determine that the .NET 3.5 framework is not installed, simply install that feature from Windows Features and Programs.  Make sure you specify where the Windows install media is so it can be installed properly.

iis35netframework

Once these changes have been made, you should be able to proceed with the install.


Registrations open for the January Quarterly API Call

$
0
0

When: January 26, 2017, 8:00 A.M. – 9:00 A.M. (PST)

Registration link: Click here.

 

Please join our PM team to learn more about several exciting new API features which are coming soon! We will explore many features currently available as well as a few that will be piloting and released in the near future.

We will cover:

  • API v11
  • Remarketing Ad Group Exclusions
  • Remarketing List Create/Update
  • Price Extensions
  • DSA
  • Sitelinks v2
  • In Market Audiences & Custom Audiences
  • Upgraded URLs
  • Vanity URLs
  • Labels
  • Multi-account access
  • Ad Extension Scheduling

This 60-minute webcast will provide you with a clear understanding of upcoming features and the value they can bring to your search advertising campaigns. Along with a view of the Bing Ads API roadmap, we’ll also provide an estimated timeline as to when features will become available, to provide you with the building blocks needed to develop the solution that works best for you.

Attestation Signing Submissions and Certification Verification Reports transitioning to the Windows Hardware Dev Center

$
0
0

In November 2016, the phased transition from SysDev (sysdev.microsoft.com) to the new Windows Hardware Dev Center began. The initial phase included the transition of HCK/HLK device submissions and has now been completed. The next phase of the transition will include Attestation signing and is detailed below. For further details on the overall transition to the new Windows Hardware Dev Center, please refer to the following Channel 9 article.

 

Attestation Signing Submissions

Attestation signing will be transitioning to the new Windows Hardware Dev Center in mid-January. Once transitioned, new attestation signing will be required to use the new Windows Hardware Dev Center, and existing attestation submissions will be migrated from the Hardware Dev Center (SysDev) over time.

 

Key points: 

  • New attestation submissions will be blocked on Hardware Dev Center (SysDev) once the transition has occurred
  • Existing attestation submissions will be migrated over time, beginning in February
    • Existing submissions will remain fully functional in the Hardware Dev Center (SysDev) until they are migrated
  • The packaging format of attested submissions will remain the same as they were in the Hardware Dev Center (SysDev)

 

Certification Verification Reports

In mid-January, certification verification reports will be made available in the new Windows Hardware Dev Center. Once available, users will be able to download the reports from for any new or migrated submission.

 

Going to Portland Power BI User Group Jan 25th

$
0
0

Just got off the phone with the User Group Leader in Portland, Ron Ellis Gaut, and he reminded me they changed their date to the 4th Wednesday of the month.  The reason for the change was avoid conflicts with the Seattle User Group so i could come down AND they were still looking for a presenter….

Of course with an opening like that how could i NOT volunteer to do a session for them?

4:15 PM News Flash!  Looks like either Bret or Christian from the Analysis Services team might be coming down and showing off their latest efforts: Analysis Services in Azure

Hope you can join me/us!

https://www.meetup.com/Portland-Power-BI-Meetup/

 

In either case i don’t know WHICH session to do and wanted to give the Portland Folks an option…or three!

 

Power BI for the Developer, getting your story on the web

What if your app could put the power of analytics everywhere decisions are made? You have the app. You have the data. Bring data to life in your app with Power BI. Learn how Microsoft Power BI enables application developers to embed stunning, fully interactive reports into customer facing apps without the time and expense of having to build your own controls from the ground-up. Choose from a broad range of modern data visualizations out of the box or easily build and use custom visualizations to meet your applications’ unique needs. Offer consistent data visualization experiences on any devices –desktop or mobile. Let’s make our applications intelligent and deliver contextual analytics with Power BI.  This session will be mostly demos showing the various ways to Embed Power BI into your web applications.

 

Dive into PowerApps: Building apps that mean business without writing code

Building business applications is never easy. There are always conflicting priorities between IT and business and most apps don’t merit the time and cost of traditional software development. PowerApps is an enterprise application platform for delivering line-of-business apps without writing code. It fundamentally transforms and accelerates how organizations provide employees seamless access to business apps and information. PowerApps now features built-in support for the common data model, enhanced connectivity, support for more devices and integrations with other Microsoft business offerings. Learn how you can leverage PowerApps today and get a sneak peek at what’s coming next.

 

What is new and exciting in Power BI

With weekly and monthly releases, there are a lot of fantastic new features to explore. In this session, we will cover an overview of what has been released in Power BI. We will be covering the new collaboration features in the cloud-based business analytics service the new authoring and modeling features of Power BI Desktop, extend your reach to mobile applications, new Power BI resources and finally what is new for developers leveraging the Power BI platform.

はじめての English Speech

$
0
0

こんにちは。こちらのブログではご挨拶もまだなまま、もう1月7日と七草がゆの時期ですが、ことしもよろしくお願いいたします。

いろいろ報告したほうがいいこともあるのですが、まずは近況としまして 1000 speakers conference in English という英語のイベントに参加して、はじめての英語でのスピーチをしてきました。

イベントに参加したきっかけ

忘年会の時に英語が思うように話せないことがことが今のコンプレックスのひとつだという話をしたので、イベント主催者の友人から 1000 speakers conference in English, 37th というイベントにお誘いいただきました。

どのようなイベントなのか

英語でスピーチし、英語で質問する「英語縛り」のゆるいコミュニケーションイベント。

飲み物や食べ物は各自持参で食べながら、飲みながら、英語を話す、気楽にできる雰囲気で、英語がネイティブではなく更に得意ではないけれど日常で使わなければいけないという立場の私にとってはとても参加しやすかったです。

このイベントは参加者をユニークカウントして、1000人になるまで実施するそうで、すでに開催37回目私はちょうど230人目のスピーカーでした。

なにを話したのか

ライトニングトークと初回は参加者が自己紹介するのを混ざって認識していたので、自己紹介をゆるく話させてもらいました。

色々間違ってるなーっていうのは後で気づきました(´・ω・`)

結論

今回、ほかの参加者の方のスピーチも特にテーマが決まっているわけではないため、お雑煮から松島から仏像からITイベントまで多岐に渡る内容でとても面白かったです。

スピーチが終わった後の質問をするのもワクワクしていてとてもよかったです。これからも、都合がつく限り参加していろいろなことを話して少しでも英会話に対する壁を取り除いてみたい、そんなイベントだと思いました。

ご興味がある方はぜひ、ご参加ください。

 

イベントのリンク:

https://1000-speakers.connpass.com/

イベント参加者向けコミュニティのリンク:

https://www.facebook.com/groups/244151382415170/

Issues with Visual Studio Team Services – South Central – 01/07 – Resolved

$
0
0

Update: Saturday, 7 January 2017 04:45 UTC

From Saturday, 7 January 2017  2:00 UTC to 2:09 UTC customers in South Central may have experienced errors while using VSTS including work items, version control, build and release.

Initial root cause points to an issue with SQL Azure that self mitigated.  We are following up with the SQL Azure team for root cause analysis.

We understand that customers rely on VS Team Services as a critical service and apologize for any impact this incident caused.

Sincerely,
Eric

Microsoft – Kids Can Code!!!

$
0
0

Did you know that Microsoft has had tools and programs for kids… for 8 years???

Well, consider yourself informed!

Microsoft K-12 CS Tools

1. Small Basichttp://smallbasic.com/

Small Basic started in 2008! https://en.wikipedia.org/wiki/Microsoft_Small_Basic

You’re on the blog for Small Basic now: https://blogs.msdn.microsoft.com/smallbasic/

Small Basic teaches actual text/syntax-based coding (the professional stuff), helping students take the next step after tile and block-based conceptual coding. Unlike Java, JavaScript, and Python (which were made for adults), Small Basic was made for kids and young students. The language has been simplified for that purpose, the UI teaches you as you type, and the interface is simple and easy! See The Unique Features of Small Basic.

2.4 Million Installations!

10+ Books, including my book (Learn to Program with Small Basic).

Here we used Small Basic to teach kids to code:

Full free curriculum: http://aka.ms/TeachSmallBasic

Download Microsoft Small Basic

SmallBasic_MascotVersion08

Here we used Small Basic to teach kids to code:

2. Koduhttp://www.kodugamelab.com/

screenshot-kodugamelab-2

Kodu first released in 2009! https://en.wikipedia.org/wiki/Kodu_Game_Lab

2.35 Million installations!

Last update was 3 days ago!

Try out the Kodu Makerspace tutorial!

kodu_avatar

3. Minecraft on Code.org https://code.org/minecraft

minecrafthourofcode9593692_lrg

2016 and 2015 versions!

Also, don’t miss out on Minecraft Education Edition!

4. Touch Develop – https://www.touchdevelop.com/

flatverse_ui

Launched in 2011: https://en.wikipedia.org/wiki/TouchDevelop

1 Million users!

Try out the Flatverse and Jetpack Jumper tutorials!

Free Curriculum – Creative Coding through Games and Apps: http://aka.ms/CCGA

flatverse

5. Code Hunthttps://www.codehunt.com/

codehunt

Started in 2014!

Meet the team at MSR: https://www.microsoft.com/en-us/research/project/code-hunt/

350K+ Users!

codehunt_ui2

Microsoft K-12 CS Programs

1. Are you a teacher?

Join the Microsoft Computer Science Teachers Network!!

  • Connect directly with Microsoft engineers! Get help and info!
  • Learn about everything Microsoft is doing in K-12 and College-level CS Education!
  • Collaborate with other CS teachers around the globe!

2. IGNITE Worldwide Girls Events

ignite_logo

IGNITE = Inspiring Girls Now in Technology Evolution

IGNITE Worldwide started in 1999! Check out IGNITE’s website.

Microsoft teams with Small Basic and IGNITE to teach girls how to code! See the videos here. (Workshops; Interviews)

There are opportunities to Support, Volunteer, Start a Chapter, Host an Event, and Subscribe! See the Take Action tabs. If you work at Microsoft, just email me (Ed Price) to get involved.

Here is a look at the Small Basic IGNITE workshops at Microsoft:

3. Microsoft Coding Camps at Microsoft Stores

YouthSpark Programs

Find a YouthSpark Program at a Microsoft Store near you!

We’ve been running workshops in Microsoft Stores to teach kids how to code since January 2011 (using Small Basic and Kodu)! We updated these classes in 2015 as the YouthSpark Hour of Code workshops! These have recently included Touch Develop’s Flatverse and Jetpack Jumper, Kodu’s Makerspace, and Code.org’s Minecraft code tutorials.

4. TEALS

teals_logo

TEALS = Technology Education and Literacy in Schools

Launched in 2009: https://en.wikipedia.org/wiki/Technology_Education_and_Literacy_in_Schools

Now high schools can get help from professional developers… directly in their classrooms! For more info, visit the TEALS website.

teals_teacher

5. DigiGirlz

digigirlz

DigiGirlz started in 2000!

Microsoft DigiGirlz gives middle and high school girls opportunities to learn about careers in technology, to connect with Microsoft employees, and to participate in hands-on computer and technology workshops. Learn more at the DigiGirlz website.

.

That’s Small and Basically it!

– Ninja Ed

Retail Discount Concurrency Control – Pricing Zone

$
0
0

We examined discount override option for discount override problem. Now we’re taking a different approach: pricing zone.

In short, we have a set of discounts defined in western Washington pricing zone. Then we have some more defined by store in store pricing zone. During the evaluation, we process store pricing zone, and then western Washington pricing zone for items not discounted in store pricing zone.

Functionally, we are talking about two groups (roles) of people: regional merchandizing manager and store manage. They may or may not talk to each other.

Again, let’s examine it in more details.

Simple discount. For now, let’s ignore simple discounts participating in competition case, which we will discuss shortly afterwards. It’s no different from direct override option: apply simple discount in higher pricing zone (store) first, and leftover for lower one (western Washington).

Multi-item discount. Again, ignore the discount completion for now. It’s similar to discount override case, which I won’t repeat here. In fact, the behavior of higher pricing zone first and leftover for lower is called out specifically with pricing zone, while not obvious with direct discount override.

Discount competing. If we’re to replace a discount that competes with other discounts, while preserving the competition, we have to replicate other competing discounts in the pricing zone. There is where direct discount override works better.

Compounding. It’s debatable whether you want to compound across pricing zone. In general, pricing zone is a hard boundary, so no.

Related: Retail Discount Concurrency Control – Examples

Related: Retail Discount Concurrency Control – Direct Override


Advanced PowerApps visualizations with dynamic SVG’s

$
0
0

PowerApps brings you lots of built-in controls and ways to visualize your data with just a few clicks. Sometimes, however, you might want to build custom visualizations that are not quite achievable with only those controls. This article shows one way in which you can create your own custom visualizations. In particular, we will create a radial gauge (circular progress bar) using only an Image control. This is not for the faint of heart, however. Proceed at your own risk 🙂

radialgaugeanim

Download sample app

NOTE: The technique explained in this article is not officially supported by the product, nor is it easy or friendly to use. You should prefer other supported alternatives when possible. That said, if nothing else suits your needs and this allows you to build the amazing PowerApp you want, then by all means go for it and have fun! I have tested it to ensure that it currently works in all our supported platforms as of this writing.

Some background

We use 2 key concepts to achieve our goals in this article:

  • Data-uris: this is a standardized way of expressing small data items in the form of a URL. The PowerApps Image control accepts URL’s to specify an image, and we will use this special type of URL to define an image inline.
  • SVG’s: Scalable Vector Graphics are becoming the de-facto way to represent vector graphics. It is very convenient in our case because SVG is an XML-based format, so it can be expressed in plain-text.

The idea: Write a PowerApps expression that results in some text which will be the data-uri representation of an SVG image. By setting this expression as the Image property of an Image control, we can dynamically render the SVG content, which can take any valid PowerApps constructs as input. The sample app shows a radial gauge representation that is controlled by a Slider control. Of course, you can create any other visualization with the same approach.

The magic expression

"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22100px%22%20height%3D%22100px%22%3E" &
    "%3Cpath%20fill%3D%22none%22%20style%3D%22stroke-width%3A18%3Bstroke%3Argb%28230%2C230%2C230%29%3Bstroke-linecap%3Around%3B%22%20d%3D%22" &
        "M%20" &
        Text(50-40*Sin(Pi()/4)) & "%20" & Text(50+40*Cos(Pi()/4)) &
        "%20A%20" &
        "40%2040%200%201%201%20" & Text(50-40*Sin(2*Pi()-Pi()/4)) & "%20" & Text(50+40*Cos(2*Pi()-Pi()/4)) &
        "%22%3E" &
    "%3C%2Fpath%3E" &
    "%3Cpath%20fill%3D%22none%22%20style%3D%22stroke-width%3A18%3Bstroke%3Argb%2869%2C204%2C206%29%3Bstroke-linecap%3Around%3B%22%20d%3D%22" &
        "M%20" &
        Text(50-40*Sin(Pi()/4)) & "%20" & Text(50+40*Cos(Pi()/4)) &
        "%20A%20" &
        "40%2040%200%20" & If(Slider1.Value/Slider1.Max>Pi()/(2*(Pi()-Pi()/4)),"1","0") & "%201%20" & Text(50-40*Sin(Pi()/4+2*(Pi()-Pi()/4)*Slider1.Value/Slider1.Max)) & "%20" & Text(50+40*Cos(Pi()/4+2*(Pi()-Pi()/4)*Slider1.Value/Slider1.Max)) &
        "%22%3E" &
    "%3C%2Fpath%3E" &
"%3C%2Fsvg%3E"

You can change the look and feel by looking for the following chunks in the given expression and changing the values of all occurrences to something else. If you change any one of these, make sure you find and replace all occurrences, otherwise things may not work.

  • stroke%3Argb%28230%2C230%2C230%29: URL-encoded value of the light-gray radial background color. In this example, the R, G and B components all have value 230
  • stroke%3Argb%2869%2C204%2C206%29: URL-encoded value of the blue radial indicator color. In this example, R=69, G=204, B=206.
  • stroke-width%3A18: Controls the thickness of the indicator background and foreground. For this example they are both the same, but you can change them independently if desired.
  • Slider1.Value/Slider1.Max: The PowerApps expression giving a value from 0 to 1 for the value you want to show in the visualization. In this case we use the position of Slider1 to control it.
  • Pi()/4: controls where the radial indicator starts at the bottom in radians. As you increase this, the spacing at the bottom increases too (see image below — make sure this is never greater than Pi [180 degrees]).
    radialgaugemath

 

A note on image resizing

Since we are using SVG, the image can be rendered at any resolution without looking blurry. You can resize the Image control to any size you want (just make sure the property ‘ImagePosition’ is set to ‘Fit’) and it will scale as appropriate.

Troubleshooting

A single character error could prevent this from working, in which case you would get a blank image and no indication of what might be wrong. Should that happen, a helpful tip is to add a TextBox to your app and set its Text property to Image1.Image. This will show you the result of evaluating your expression, and might help you find what’s wrong. For the sample app and when the slider is exactly in the center, this is what it should look like:

data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22100px%22%20height%3D%22100px%22%3E%3Cpath%20fill%3D%22none%22%20style%3D%22stroke-width%3A18%3Bstroke%3Argb%28230%2C230%2C230%29%3Bstroke-linecap%3Around%3B%22%20d%3D%22M%2021.71572875%2078.28427125%20A%2040%2040%200%201%201%2078.28427125%2078.28427125%22%3E%3C%2Fpath%3E%3Cpath%20fill%3D%22none%22%20style%3D%22stroke-width%3A18%3Bstroke%3Argb%2869%2C204%2C206%29%3Bstroke-linecap%3Around%3B%22%20d%3D%22M%2021.71572875%2078.28427125%20A%2040%2040%200%200%201%2050.0%2010%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E

When URL-decoded and formatted, you can see what the SVG content looks like:

<svg xmlns="http://www.w3.org/2000/svg" width="100px" height="100px">
  <path fill="none"
        style="stroke-width:18;stroke:rgb(230,230,230);stroke-linecap:round;"
        d="M 21.71572875 78.28427125 A 40 40 0 1 1 78.28427125 78.28427125"></path>
  <path fill="none"
        style="stroke-width:18;stroke:rgb(69,204,206);stroke-linecap:round;"
        d="M 21.71572875 78.28427125 A 40 40 0 0 1 50.0 10"></path>
</svg>

 

Wrapping up

And that’s it for now. I mentioned in the beginning that this was not for the faint of heart, and now you can probably see why.

In any case, this opens up many interesting scenarios if you are willing to have some not-very-pretty expressions in your app. What’s more, whoever is using your app (perhaps yourself!) won’t know about the expressions that are powering the visualization. All they will see is the beautiful UI that you were able to create thanks to PowerApps.

See you next time!

PS: This article was inspired by a question in the PowerApps forums. Thanks nagavital for the questions and keep them coming!

Small Basic Challenges of the Month – January 2017 (featuring Johannes Kepler, Isaac Newton, and golf putting)

$
0
0

These challenges are intended for people who are learning to program for the first time or for those returning to programming who want to start using Small Basic.  Some will be easy, some will be hard – but they will all make you think, and more importantly be GREAT FUN!

Please post your solutions / partial solutions / questions / feedback etc. into this thread that will remain ‘sticky’ for the month.  The only rule is that your solution must use standard Small Basic methods (no extensions).

Post your solutions here:

It would be good if people could post their problems with these challenges so that a discussion can start so that everyone can learn from each other.

We may extend these challenges over into a second month if solutions and questions are still coming in.

Keyboard Challenges

Suggested last month by mussamaina, some challenges using keyboard keys:

  • Write a program to move a sprite on the GraphicsWindow using arrow keys.  Try to make it as smooth and responsive as possible.
  • Extend the program to make the sprite jump when the space key is pressed.
  • Extend the program to drag and drop the sprite using the mouse when left mouse button is down.
  • Write a program to make the GraphicsWindow behave like the TextWindow so you can emulate as  many of the TextWindow commands as possible, like WriteLine, Read etc.
  • Write a program to work like a simple musical instrument using keyboard keys to play notes

Small Challenges

  • Write a Turtle program to draw a triangle, square, pentagon and circle.
  • Write a program to count down from 100 in 1 second intervals.
  • Write a program to add 10 numbers entered by a user.
  • Write a program to draw a hand.
  • Write a program to randomly position, color, size and rotate 100 squares in the GraphicsWindow.

Physics Challenge

  • Write a program to display the planets moving round the sun – try to get the orbit times roughly correct.
  • Add the moon orbiting the earth.
  • Add some comets with elliptical orbits around the sun – they move faster when near the sun.

Elliptical orbits were first described by Johannes Kepler and later explained by Isaac Newton.

TextWindow Game Challenge

  • Write a TextWindow based adventure game.  The important part will be to plan out the game first, like what the player needs to find along the way to progress.

GraphicsWindow Game Challenge

Community Suggestions

  • Meteor shower Quadrantids (by YLed) LINK

Do you have an idea for a future challenge? Please post it here!

 

Big thanks go out to LitDev for hosting these challenges, and to all those who participate!

Please go check out the programs people are building for this challenge!

 

Small and Basically tired,

  • Ninja Ed

Test Universal Windows Platform Apps using Windows Device Portal – Part II

$
0
0

In my previous blog, I talked about how to test your Windows Apps on various windows device types using Device Portal on your web browser. If you have not read it yet, check it out here.

Now let’s discuss how you can programmatically use the Device Portals’ REST APIs to test your apps. It is very common for developers to use the same set of devices during their testing. Using the Device Portal’s browser UX to deploy your app is a good ad-hoc solution.

If deploying the app to your devices is a regular occurrence, using the Device Portal REST APIs is a more efficient solution. For enthusiasts among you, you can build your own custom automation tools using these APIs directly. Below we will go through some sample code to show you how you can use REST APIs to write your own tool to manage your target devices.

To expedite the process of building custom tools, the Device Portal team have released an open source solution called the wrapper project. It is available on GitHub and as a NuGet package. The wrapper project is a C# layer atop the REST APIs to provide an easy, simple way to connect and manage your devices. The wrapper project takes care of all the complexities of building multipart REST API calls, error handling and retry logic.

Connect to Device

Before we can perform any actions on the device, we need to first connect to the target device. Below is the snippet that allows you to connect –

DevicePortal portal;
portal = new DevicePortal(
             new DefaultDevicePortalConnection(
                 this.address.Text, //Target Device IP Address
                 this.username.Text, //Authentication creds
                 this.password.Password //Authentication creds
              ));

Install an App

portal.InstallApplicationAsync( 
       myAppName, //App Name[required]
       packagePath.Text, //Package file name [required]
       null, //List of dependency file names [required]
       null, // Certificate file name 
       500, // Freq of install state check
       15, // Operation timeout 
       true // uninstall previous version 
       ));

Get Installed Apps

Task getInstalledAppsTask = new Task(
     async () =
           {
            try
               { 
                  AppPackages appPackages = await portal.GetInstalledAppPackagesAsync();
                  foreach (PackageInfo package in appPackages.Package)
                  {  
                     // List installed apps 
                  }; 
                }
            catch (Exception ex)
               {
                  Console.WriteLine("Failed to get installed app info.");
                  Console.WriteLine(ex.GetType().ToString() + " - " + ex.Message);
               } 
            });
getInstalledAppsTask.Start();

Uninstall an App

portal.UninstallApplicationAsync( 
                package.FamilyName //Package family name 
                ));

We have a sample UWP and win32 clients that use the Device Portal wrapper project and show to call the REST APIs using the wrapper functions. The full sample solutions are also available on GitHub. Please fork the project and create your own Device Portal tools.

If you have any questions regarding how the APIs should be used, post your questions or any comments below.

Thanks,

Chaitanya Donthini, Program Manager – Windows Developer Platform

Retail Discount Concurrency Control – Compete Within Priority and Compound Across

$
0
0

To enable retailer to control the ordering of how to apply compounded discounts, we can have the following,

  1. Define priority for all discounts
  2. Within the same priority, every discount competes against each other. In other words, 2 compounded discounts of the same priority would compete against each other.
  3. Compound across priority. For exclusive discounts, mark so and they won’t compound with any other ones.

For example,

Priority Discount Comment
99 10% off for product A Vendor sponsored
77 20% off for product A Retail corporate
77 $10 for product A if quantity > 2 Retail store specific

 

If we have 4xA in the checkout transaction, then we apply first vendor sponsored discount of highest priority 99. After that, we have a competition between 2 retailer sponsored discounts and apply the better one.

Now, if we throw another vendor discount of priority 99 and it’s exclusive, then it competes with the 10%-off vendor sponsored discount. If the new exclusive wins, we won’t compound on top of it any of retailer sponsored discount, even if compounding vendor sponsored and retail sponsored discounts would render the better deal.

In summary, if you focus primarily on how to compound and less on competition for best deal, this would work great. In fact, technically, it’s a much simpler model in that we don’t have to deal with multiple compounded discounts compounded together competing with non-compounded discounts.

Related: Retail Discount Concurrency Control – Examples

Related: Retail Discount Concurrency Control – Pricing Zone

The growth of a feature – Twelve years later

Why can’t I get a parallel plan when rebuilding my index?

$
0
0

In support, we frequently have customers who call us and want to find out why a particular query doesn’t use parallelism.  Recently, we had a user who wanted to know why his index rebuild didn’t use parallelism.  In some cases, NonParallelPlanReason in query plan tells you the reason. 

But in this case, the query plan just say “CouldNotGenerateValidParallelPlan” like <QueryPlan DegreeOfParallelism=”0″ NonParallelPlanReason=”CouldNotGenerateValidParallelPlan” CachedPlanSize=”184″ CompileTime=”2″ CompileCPU=”2″ CompileMemory=”512″>.

Upon closer look, it’s customer’s data distribution.  Thought the index is a unique clustered index (primary key) with multiple key columns, the leading column has just one value.

https://technet.microsoft.com/en-us/library/ms189329(v=sql.120).aspx and https://technet.microsoft.com/en-us/library/ms191292(v=sql.105).aspx have documentation on how parallelism works with index operations.  On a very high level, the leading key of the index of non-partitioned tables need to have multiple distinct values in order for parallelism to work.  Essentially, each parallel thread gets a set of value ranges and work on them and later ‘merge’ them together.  So if you just have one value for the leading key column, only one thread can work on it.  In other words, you won’t get a parallel plan.

This customer wanted parallelism regardless.  So we did some testing to see if a parallel plan actually helps.  Even if you force a parallel plan, it won’t make your index rebuild (create) faster.  In the testing scenario, I first populated the leading column with lots of unique values.  I was able to get a parallel plan and then change the leading column to just one distinct value. The result is that parallel plan didn’t make it faster. 

Here were the steps to do it

  1. script out the statistics which have good data distribution with leading column being fairly unique. See https://support.microsoft.com/en-us/kb/914288 for more details
  2. Update the leading column with same value for all rows.
  3. update statistics scripted out form step 1 using UPDATE STATISTICS WITH STATS_STREAM =<binary value).   This would make optimizer thinks the leading column has lots of distinct values. 
  4. run index rebuild. Note that I did get a parallel plan. But index rebuild didn’t run any shorter.

From the actual execution plan, you can see why.  Below was the scan operation from the plan.  Note that only thread 1 did all the work of 2416640 rows. All other threads were doing nothing.

 

                   <RunTimeInformation>

                        <RunTimeCountersPerThread Thread=”8″ ActualRows=”0″ Batches=”0″ ActualExecutionMode=”Row” ActualEndOfScans=”1″ ActualExecutions=”1″ />

                        <RunTimeCountersPerThread Thread=”2″ ActualRows=”0″ Batches=”0″ ActualExecutionMode=”Row” ActualEndOfScans=”1″ ActualExecutions=”1″ />

                        <RunTimeCountersPerThread Thread=”6″ ActualRows=”0″ Batches=”0″ ActualExecutionMode=”Row” ActualEndOfScans=”1″ ActualExecutions=”1″ />

                        <RunTimeCountersPerThread Thread=”5″ ActualRows=”0″ Batches=”0″ ActualExecutionMode=”Row” ActualEndOfScans=”1″ ActualExecutions=”1″ />

                        <RunTimeCountersPerThread Thread=”7″ ActualRows=”0″ Batches=”0″ ActualExecutionMode=”Row” ActualEndOfScans=”1″ ActualExecutions=”1″ />

                        <RunTimeCountersPerThread Thread=”1″ ActualRows=”2416640″ Batches=”0″ ActualExecutionMode=”Row” ActualRowsRead=”2416640″ ActualEndOfScans=”1″ ActualExecutions=”1″ />

                        <RunTimeCountersPerThread Thread=”4″ ActualRows=”0″ Batches=”0″ ActualExecutionMode=”Row” ActualEndOfScans=”1″ ActualExecutions=”1″ />

                        <RunTimeCountersPerThread Thread=”3″ ActualRows=”0″ Batches=”0″ ActualExecutionMode=”Row” ActualEndOfScans=”1″ ActualExecutions=”1″ />

                        <RunTimeCountersPerThread Thread=”0″ ActualRows=”0″ ActualEndOfScans=”0″ ActualExecutions=”0″ />

                      </RunTimeInformation>

 

Another question is what is the usefulness of an index if leading column has just one value?  So slow rebuilding index won’t be the only problem to solve.

Demo

use master
go
create database testdb2
go
use testdb2
go
create table t (c1 int, c2 int, c3 int)

set nocount on
begin tran

declare @i int = 0
while @i < 10000000
begin
    insert into t values (@i, @i, @i)
    set @i = @i + 1
end
commit tran

go

create unique clustered index ix on t(c1,c2,c3)

go
–this will use parallel plan
ALTER INDEX ix on [dbo].t rebuild WITH (maxdop=10, online=on)

go
–set leading column as dup
update t set c1 = 1

go
update statistics t with fullscan
go
–this will use serial plan
ALTER INDEX ix on [dbo].t rebuild WITH (maxdop=10, online=on)


go
–dbcc show_statistics (t, ix)

 

 

Jack Li |Senior Escalation Engineer | Microsoft SQL Server

twitter| pssdiag |Sql Nexus

Microsoft Surface Vs Apple iPad in high school classrooms

$
0
0

In my role as a high school teacher, I have three devices from which to work: a laptop, an Apple iPad Air 2 and a Microsoft Surface Pro. Whilst the first two are supplied by my school, the Surface is something I have personally purchased.

Yet people wonder why I only ever use the Surface whilst the other two gather dust on my staffroom desk.

screenshot-2016-12-07-12-23-45

Short answer: because the Surface does everything a laptop and iPad do, and more.

Now, such questions usually arise from students who are surprised that I don’t love iPads as much as they do. This initially caused me to ask them why they loved their iPad so much. (It turns out that their passion for iPads wasn’t for education reasons, but that’s a story for another time…). I thought it was worth sharing my answers to their questions with you.

Some of the main reasons why I prefer using Surfaces over iPads:

  • If I want to use an iPad in class to project into a screen, I need to also have a laptop in order to Airplay. Ultimately, it means that I must carry two devices in order to use the iPad. This is cumbersome and inefficient. Since I have to have the laptop anyway, it is just easier to project directly from the laptop. The iPad is redundant.
  • Since a Surface is a full computer, not only can I project directly from it without needing another device, I can also have two different screens operating at once. I can project something to the class, yet work on the device’s main screen. This allows me to work one-on-one with a student whilst having other information projected to the rest of the class: all on one device. As the Surface is portable, I can do this from anywhere in the classroom. Also, since it has pen input, I can annotate and draw instructions easily.
  • Over my years of working with students who choose to use their iPads as their only device, I have noticed that a majority of them choose not to bring keyboards with them. This means that they are stuck using the on-screen keyboard which is painful to observe. Students resort to ‘two finger’ typing which is slow and creates a high number of spelling and grammatical errors.
  • The greatest downside I found with iPads is that students who rely upon them become ignorant about basic computing skills. The number of times I have been frustrated to learn that students don’t know how to save documents to a desktop, or how to split-screen programs, or even how to touch-type, has been exasperating. Rather than students being ‘digital natives’, I find that much of my drafting time is teaching teenagers the basics of how to use a computer. This is a major cause for alarm for young people who are going to be in the workforce in a few years, workforces that won’t be using iPads for their work, and they are completely unprepared. The complete absent of touch-typing ability in these same students is going to hamper them severely when applying for technology-dependant jobs. The Surface has a keyboard, which is infinitely quicker and helps them develop their touch-typing.

Things that a Surface can do which an iPad cannot:

  • Using a mouse. The speed with which a student can get work done with a mouse is light-years ahead of the touch-dependant iPad.
  • Using multiple apps and programs at the same time. Students can quickly navigate between multiple programs in milliseconds rather than the slow and cumbersome swapping between apps on the iPad.
  • USBs. Whilst Apple thought that USBs were not worth supporting years ago, students are still using them in class today. USBs usually become important when iPads fail to connect to Google Drive or Airplay, or when students need to submit assessment tasks. I have had many frustrating occasions when a student’s work is on their iPad and they cannot give it to me, and I have just wanted to give them a USB to solve the problem.
  • Using full computer programs. To be able to run full computer programs for graphics and video editing saves hours of struggling to find app ‘work arounds’ on the app store.

Yeah, but…

Despite my comments above, I do get asked a series of follow-up questions.

Here are the most common:

“What about the lack of apps on Windows devices?”

To be honest, the lack of apps has never become an issue. When I have observed which apps students mainly used on their iPads, most of the time it is just Pages and an internet browser. This kind of use does not require dedicated apps that are limited to iPads. There are exact equivalents (and even far better options) on Windows. There has never been a time when an app has been necessary in class that did not exist on both platforms. Any apps that have been unique to the iPad have only been gimmicks at best and are rarely used beyond one or two lessons. Other than that, the apps that other teachers use in their classes exist on both iPad and Surface. Here is a short list:

Explain Everything

Campion Textbooks

OneNote

Google Drive

OneDrive

Word, Excel, PowerPoint

Khan Academy

Mathletics

Mathspace

Edmodo

Flipboard

“Doesn’t the iPad have better battery life?”

Yes, but this is not as big of an issue as it sounds. One of the big benefits of the iPad is that since it’s not a full computer, it doesn’t need huge amounts of battery life to drive it through the day. Most students find that they can get through two days of school with only one charge of the iPad. In comparison, you can get through a day and a half with a Surface. With that in mind, most students charge their iPads every night anyway, so the difference between the battery life of the devices is practically non-existent.

“What About the iPad Pro?”

The iPad Pro is Apple’s attempt to compete with the Surface but ultimately, it is exactly the same as a regular iPad. The only distinguishing feature is the larger screen. Otherwise, all of the concerns I listed above remain true for the iPad Pro.

“Why are you telling me this?”

As a teacher, I often have discussions with parents and other teachers about where to spend their hard-earned money. Since parents want to minimise their costs and invest in one device to help their children through school, they often ask what device to invest in. Without reservation, I recommend Surfaces every time. As a device for students, it does everything every other device does, and more. However, I find that there is a persistent myth that iPads are the ‘wonder device’ for students. This is just not true and I am not sure where that idea originated. Perhaps it is a holdover from the mid-2000s when the iPads first appeared. However, it has been a decade and a half since then. Technology has moved on and iPads are not keeping pace with other options.

In short, the reason I only ever use a Surface in my classroom is that it does everything a laptop and an iPad do, plus more.

Originally posted 5 December on Edtech: History Skills http://www.historyskills.com/2016/12/05/microsoft-surface-vs-apple-ipad-in-high-school-classrooms/


Accessing Azure SQL DB from Azure VM using a static Public IP adress

$
0
0

As it’s known Azure SQL DB relies on the FQDN of the server the database is on for resolution. So how can we access Azure SQL DB from an Azure VM using a Public IP and make sure that it remains the same?further how we can disallow arbitrary machines from within the Windows Azure environment to have access to your Azure SQL Database servers, while still allowing specific machines within the Azure environment to have access to Azure SQL Database servers? Let’s see!

  1.  when creating an Azure VM, you have the choice to use one of the two methods in which an IP address is allocated to public IP resource – dynamic or static, taking in consideration that the NONE option means that you will not be able to connect to Azure SQL DB, because there is no Public IP to connect to the Proxy.

Create VM

Note: Even when you set the allocation method to static, you cannot specify the actual IP address assigned to the public IP resource. Instead, it gets allocated from a pool of available IP addresses in the Azure location the resource is created in.

2. Now go to the azure SQL Database server you would like to restrict calls only to external IP addresses, so click on Show Firewall Setting then set the Allow access to azure services to OFF.

off

3.Test connection to AZURE SQL DB using SSMS 2016  you should receive the following message, to add the static public IP we got previous  to the Azure SQL DB firewall rules in the Portal,

firewall-erroror  you can add it manually by opening the Portal and go to your Server and follow the below figure

add-firewall

4. then you ‘ll be able to connect to your Azure SQL DB with a public static IP without causing an unexpected failure for your application connecting to Azure SQL DB.

ssms

Further, it’s better to define the ranges that Azure SQL DB IPs fall into (as well as other Azure services) which are published here: https://www.microsoft.com/en-us/download/confirmation.aspx?id=41653,but keep in mind that they are updated regularly to expand the data center ranges of IP’s.

Cannot publish to Soveriegn Cloud

$
0
0

I was reading this article where it discusses some of the different kinds of Clouds that Azure supports.  For example:

  • Public Cloud
  • China Cloud
  • German Cloud
  • US Government Cloud

There may be more, but I was working on publishing an Azure App Service to the German Cloud and I was not finding my subscription in the dropdown of the Publish wizard, as shown in Figure 1. #GermanCloud #AzureGermanCloud

image

Figure 1, cannot publish to the German Cloud

So I downloaded the German Cloud Azure App Service Publish Profile manually as shown in Figure 2, from the portal.

image

Figure 2, manual download of the German Cloud Azure App Services Web App publish profile

Then I Imported the downloaded *.PublishSettings file, as shown in Figure 3 and my App Service Web App published just fine.

image

Figure 3, manually import German Cloud Azure Web App publish profile

This is only a work around until the flow works the same for all instances of the cloud.

How to access KUDU using your Publishing Profile

$
0
0

If for some reason your Microsoft or Organizational credentials are not working when accessing KUDU, which I discuss here.  You can use your Publishing Profile userName and userPWD to connect.  You may get prompted with a page similar to that shown in Figure 1.

image

Figure 1, cannot access KUDU

Login to the Azure Portal here, navigate to the Azure App Service Web App which you would like to access the KUDU instance for and select the …More link then Get Publish profile, as shown in Figure 2.

image

Figure 2, download Publish Profile

Once downloaded, open the *.PublishSettings file and look for the attributes named userName and userPWD and use them for the challenge/response pop-up, Figure 3, after clicking on the PUBLISHING CREDENTIALS link as shown previously in Figure 1.

image

Figure 3, access KUDU using Publish Profile Credentials

Once entered you are logged into KUDU.

image

Using Cloud Explorer with a Sovereign Cloud

$
0
0

I was reading this article where it discusses some of the different kinds of Clouds that Azure supports.  For example:

  • Public Cloud
  • China Cloud
  • German Cloud
  • US Government Cloud

There may be more, but I was working on setting up my Cloud Explorer in Visual Studio 2015 with a subscription I have in the German Cloud and wasn’t able to make that work ‘out of the box’.  #GermanCloud #AzureGermanCloud This is how I made it work.

First install Cloud Explorer via the Extensions and Updates menu option inside the Tools menu, something similar to Figure 1.

image

Figure 1, install Cloud Explorer for German Cloud

Once installed open the Cloud Explorer panel from the View menu item and click on the ?Accounts? icon, as seen in Figure 2.

image

Figure 2, Add a German Cloud account to the Cloud Explorer

If you click on the ‘Add an account…’ link at the moment it will not work.  You need to configure some Registry settings before it will work.  NOTE:  making changes to the registry is dangerous, back it up before you make changes and even if you have a back up you can mess stuff up.  You need to add a the following to the registry for the computer you want to add the German Cloud account into.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USERSoftwareMicrosoftVSCommonConnectedUser]
"AadInstance"="https://login.microsoftonline.de"
"adaluri"="https://management.core.cloudapi.de"
"AzureRMEndpoint"="https://management.microsoftazure.de/"
"AzureRMAudienceEndpoint"="https://management.microsoftazure.de/"
"EnableAzureRMIdentity"="true"
"GraphUrl"="graph.cloudapi.de"

By default, at least this is how it was on my PC, there are no settings in that location, as seen in Figure 3.

image

Figure 3, registry settings for the German Cloud

Once the above registry settings are added (just cut and paste it into NOTEPAD and save it as *.reg) or add them manually, you will see the following, Figure 4.

image

Figure 4, Registry settings for the German Cloud and Cloud Explorer

NOTE: I had to remove current, pre-existing accounts, shown in Figure 2 in order to add my German Cloud subscription.

Restart Visual Studio 2015 and add the account, like shown in Figure 5.

image

Figure 5, German Cloud account in Visual Studio Cloud Explorer

Then I can use many of the features available from the Cloud Explorer.

If you need to get back to your Public Cloud accounts, you can update the registry with the following and restart Visual Studio 2015.  You will need to re-add the accounts.  You might consider using 2 PCs, once for Public and one for Sovereign…at least this is how it is now.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USERSoftwareMicrosoftVSCommonConnectedUser]
"AadInstance"=-
"adaluri"=-
"AzureRMEndpoint"=-
"AzureRMAudienceEndpoint"=-
"EnableAzureRMIdentity"=-
"GraphUrl"=-

I am sure improvements are being made, this is just in case you experience this before then.

BETT 2017 Guest Post: “2017 – the Year of Education Data Unification?”– Matthew Woodruff, Coscole Ltd

$
0
0

All throughout January as we move towards BETT 2017, we will be sharing a number of guest posts that feature contributions from Microsoft Partners who are exhibiting, Microsoft Showcase Schools, MIEEs, Teacher Ambassadors or Microsoft product specialists.

Today we are pleased to hear from Matthew Woodruff, who many of you will have seen presenting on the Microsoft Stand last year.

Matthew has helped education institutions leverage value form their investments in technology over the last 12 years. Through his work with Microsoft in the UK and internationally, Matthew understands that schooling systems are often data rich but information poor. Matthew has founded companies specifically addressing how technology can support more effective decision making at all levels to improve outcomes, but also importantly in today’s economic climate to be able to ‘do more, with less’.

Today, Matthew is Managing Director at Coscole Ltd, supporting Multi-Academy Trusts, Schools and Pupil Referral Units in the UK.

coscole


2017 – the Year of Education Data Unification?

I kick off most weeks by discussing new ways to bring together and deliver educational insight to those that need it, so why should the first week of 2017 be any different?!

I dislike the use of the word ‘transformation’, so often liberally applied to EdTech like an overdose of salt, but we certainly need to do things differently by taking advantage of new technology to overcome some of the present challenges I see:

Pace of change

The government agenda continues to evolve around curriculum and public accountability measures, and the speed of change, and sometimes their reversals, can cause your head to spin. From the Early Years Baseline, Life without/after Levels, primary SATs changes and normalised progress scores, and Progress 8 I’m not sure students, parents and staff have had such an opportunity to be confused in recent history.

Ever increasing demands of transparency and accountability

Performance tables have not quite been turned upside down by these changes, but many, for certain have seen a change in outlook. The blog sphere is alive with critical opinion on Primary, although P8 as it refines itself and beds down I believe to be a positive step.

Data silos

‘I’ve got an App for that’ mentality drives me nuts. It is so important to be able to understand what is happening across the systems we use to help us manage learning, and mostly the choices that are made put up walls. We need to be open and share data. Make it accessible. Share it easily with those that need it.

I was recently asked to do an eight-minute presentation to an audience at a DfE conference in the West Midlands. We produced this quick two-minute video snippet as part of the presentation where I chat through some of my perspectives on what ‘Big Data’ means to us in UK primary and secondary education and focus in on the fact that we don’t have a problem with the production of data but that our challenge is in turning that data into information to help us make better informed decisions.



All of the main MIS vendors are able to adequately produce reports across attendance and typically attainment. A number of other vendors specialise in attainment and progress reports, or behaviour systems. A school may well be running something else for finance, or perhaps staff CPD and performance. I know well the argument for best of breed applications, but to ignore the opportunity to access data for analytics is to severely miss a trick.

What we are typically lacking is any ability to combine this data and make sense of it as a whole. In my view, all of these aspects are inter-related. Each one impacts on the other, but I seldom see this type of analysis take place.

We should also be moving away from ‘reporting’, a flat representation of historical data towards ‘knowledge’ creation. In many cases we don’t need to see a whole school broken down into facts and figures for us as the human to do the work to understand what it is telling us. Information should be fed to us live, as we need it, focussed on the individuals or groups with whom we need to intervene.

At coscole we are working with selected schools and multi academy trusts to ensure that the right person has the right information at the right time to make better informed decisions, be they student, parent, staff, leadership, mentors, or governance and Trusts. We do this using the power of Office 365 and Power BI.

We’ll expand on how in subsequent posts – stay tuned!

o365-education-coscole

Viewing all 12366 articles
Browse latest View live