How come I can't find a Text pattern for Notepad, when Inspect tells me it's there?

An interesting question arose recently from a dev building a C++ UIA client app which accesses text from Notepad. The Inspect SDK tools reports that Notepad supports the Text pattern, (as shown in the screenshot below,) but when the dev tries to access the Text pattern from Notepad, he's told that Notepad doesn't support it. So what's going on?   Figure 1: The Inspect SDK tool reporting that a document-related element in the Notepad UI supports the TextPattern and TextPattern2 interfaces.   The most likely reason for this apparent discrepancy relates to the object created when the client code accesses a IUIAutomation interface. It's natural to want to do this in your code...     pUIAutomation;    hr = CoCreateInstance(CLSID_CUIAutomation, NULL,         CLSCTX_INPROC_SERVER,  IID_PPV_ARGS(&pUIAutomation));    if (SUCCEEDED(hr))    {        ...   While that works, it's really important to note that having done that, some of the work that UIA will now do for you is done by a CLSID_CUIAutomation object. The CLSID_CUIAutomation object was added in Windows 7 when the native Windows UIA API first shipped. In Windows 8, a CLSID_CUIAutomation8 object was added to the Windows UIA API. By using a CLSID_CUIAutomation8 object, calls to UIA became more robust because the CLSID_CUIAutomation8 object takes a lot of action to avoid delays when UIA providers become unresponsive. And in addition to making UIA more robust, support for a few more things came along in Windows 8. One of those things was support for the Text pattern in Edit controls. In Windows 7, Edit controls didn't support the Text pattern. So in order to be able to access the Text pattern from an Edit control, you need to instantiate a CLSID_CUIAutomation8 object. Given that Notepad hosts a big Edit control, that's what you'll need to do in order to access Notepad's Text pattern. I've just written the code below, and I can get the text from Notepad fine through the Text pattern.   Figure 2: Test app accessing the text shown in Notepad through the Text pattern.   I always use CLSID_CUIAutomation8 these days when starting up UIA. Thanks, Guy   void DoUIAStuff(){    HRESULT hr = S_OK;          hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);    if (SUCCEEDED(hr))    {        // Be sure to get an interface to a CLSID_CUIAutomation8 object rather than to a CLSID_CUIAutomation         // object here. When using the CLSID_CUIAutomation8 object, Notepad is represented through UIA as a         // Document control. If a CLSID_CUIAutomation object is used, the Notepad is represented as an Edit         // control. (Note that for this test, I'm not interested in IUIAutomation2 or IUIAutomation3.)              IUIAutomation* pUIAutomation;        hr = CoCreateInstance(CLSID_CUIAutomation8, NULL,             CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pUIAutomation));        if (SUCCEEDED(hr))        {            IUIAutomationTextPattern* pTextPattern = NULL;                  // For this test, assume we're intestered in the first Notepad window we find.                  HWND hWndNotepad = FindWindow(L"Notepad", NULL);            if (hWndNotepad != NULL)            {                // Get the UIA element associated with the top-level Notepad window.                      IUIAutomationElement* pElementNotepad;                hr = pUIAutomation->ElementFromHandle(hWndNotepad, &pElementNotepad);                if (SUCCEEDED(hr) && (pElementNotepad != NULL))                {                    // Now that we have the Notepad window element, find the child element that supports the                    // Text pattern. We can check exactly what to look for by pointing the Inspect SDK tool                     // to the Notepad window, and looking at the various properties of the element. For this                    // test, we'll look for the first child whose control type is Document.                          IUIAutomationCondition* pConditionDocument = NULL;                          VARIANT varProp;                    varProp.vt = VT_I4;                    varProp.lVal = UIA_DocumentControlTypeId;                          // When we find the element we're interested in, get as much data as we can cached with the                     // element beneath the call that finds it. This means we can avoid some cross-process calls                    // later when we need to examine some properties on the element.                          IUIAutomationCacheRequest* pCacheRequest = NULL;                          // Note that if we didn't know exactly which element supported the Text pattern, we could                     // update the condition to say that only elements which do support the Text pattern should                     // be returned. But in the case of this test, we know exactly which element we're after.                     // (In fact we could just use a IUIAutomationTreeWalker to get the first child of the hwnd                     // element if we wanted to.)                          hr = pUIAutomation->CreatePropertyCondition(UIA_ControlTypePropertyId,                         varProp, &pConditionDocument);                    if (SUCCEEDED(hr))                    {                        hr = pUIAutomation->CreateCacheRequest(&pCacheRequest);                        if (SUCCEEDED(hr))                        {                            hr = pCacheRequest->AddProperty(UIA_IsTextPatternAvailablePropertyId);                            if (SUCCEEDED(hr))                            {                                hr = pCacheRequest->AddPattern(UIA_TextPatternId);                            }                        }                    }                          if (SUCCEEDED(hr))                    {                        // Ok, let's try to find the element that supports the Text pattern.                              IUIAutomationElement* pElementDocument;                        hr = pElementNotepad->FindFirstBuildCache(TreeScope_Children,                             pConditionDocument, pCacheRequest, &pElementDocument);                        if (SUCCEEDED(hr) && (pElementDocument != NULL))                        {                            // Make a check that the element claims to support the Text pattern.                                  VARIANT varBool;                            hr = pElementDocument->GetCachedPropertyValue(UIA_IsTextPatternAvailablePropertyId,                                 &varBool);                            if (SUCCEEDED(hr) && (varBool.vt == VT_BOOL) && (varBool.boolVal))                            {                                 // Now get an interface to the Text pattern.                                      hr = pElementDocument->GetCachedPatternAs(UIA_TextPatternId,                                     IID_PPV_ARGS(&pTextPattern));                            }                                  pElementDocument->Release();                        }                    }                          if (pConditionDocument != NULL)                    {                        pConditionDocument->Release();                        pConditionDocument = NULL;                    }                          if (pCacheRequest != NULL)                    {                        pCacheRequest->Release();                        pCacheRequest = NULL;                    }                          pElementNotepad->Release();                    pElementNotepad = NULL;                }            }                  // Having done all that, do we now have a Text pattern with which to access Notepad's text?                  if (SUCCEEDED(hr) && (pTextPattern != NULL))            {                // In this test, get a TextRange for the entire text.                      IUIAutomationTextRange* pTextRange;                hr = pTextPattern->get_DocumentRange(&pTextRange);                if (SUCCEEDED(hr) && (pTextRange != NULL))                {                    BSTR bstrNotepadText;                    hr = pTextRange->GetText(-1, &bstrNotepadText);                    if (SUCCEEDED(hr)&& (bstrNotepadText != NULL))                    {                        MessageBox(NULL, bstrNotepadText, L"Text from Notepad", MB_OK);                              SysFreeString(bstrNotepadText);                    }                          pTextRange->Release();                    pTextRange = NULL;                }                      pTextPattern->Release();                pTextPattern = NULL;            }                  pUIAutomation->Release();            pUIAutomation = NULL;        }              CoUninitialize();    }}     

Posted by on 6 October 2015 | 10:16 pm

Consejos para recibir un servicio más rápido de soporte en Microsoft Dynamics utilizando LCS

  * Dado que el servicio está centrado en el producto de Microsoft, quedan excluidos del servicio, cualquier análisis de datos y de desarrollos a la medida, incluyendo productos de terceros (por ejemplo: verticales de AX).   Una vez que se reporta un incidente de soporte, éste es analizado por un equipo de ingenieros, conocidos como ‘Frontline’, quienes tienen un amplio conocimiento del producto. En caso de requerir un análisis más especializado, el incidente de soporte es escalado con un equipo de ingenieros, conocidos como ‘Backline’, quienes tienen conocimiento más específico y profundo para cada una de las funcionalidades del producto. Si después de este análisis existe la creencia que el comportamiento pudiera tratarse de una falla del producto, el incidente se escala con el equipo de ‘Escalation engineers’, quienes analizan a través del código, el segmento que ocasiona el asunto reportado. Por último, se escala con el equipo de ‘Program Managers’, quienes una vez que comparan el comportamiento reportado contra la especificación funcional y técnica del producto, determinan si se trata del diseño planeado para el producto o de una falla.   El flujo de proceso anterior se puede resumir en el gráfico que se muestra a continuación, considerando que la solución del incidente de soporte, puede obtenerse por cualquiera de los equipos involucrados:   De manera que, para poder recibir un servicio más rápido y eficiente en la resolución de los incidentes de soporte, se recomienda realizar lo siguiente:   1. Proporcionar información precisa y completa Es de utilidad contar con datos precisos y completos, tales como: versión del producto, versión de la aplicación, versión de la base de datos y versión del sistema operativo.     Así como con la información adjunta al caso. Considerando que, no siempre mientras más información es mejor, sino incluyendo la información necesaria que ayude a reproducir el caso con la finalidad de poder analizarlo.   Nota. Es posible adjuntar hasta 3 archivos de 5 MB cada uno. Considere que el ingeniero que analizará el incidente de soporte, está fuera del contexto del proyecto en donde se generó. Por lo tanto, se aprecia tener información detallada que ayude a reproducir el comportamiento reportado en un ambiente diferente al del cliente, tal como: + La configuración que se tiene en el ambiente donde se presenta el comportamiento no esperado, y que esté relacionada con el mismo. + El paso a paso del procedimiento que se ha seguido hasta llegar al resultado que se tiene actualmente, pero que no se espera, tan detallado como le sea posible, mencionando: el nombre de las formas o reportes utilizados, la ruta para llegar a ellos, los valores utilizados. + El resultado que se espera del sistema Dado que el ingeniero realizará el análisis en un ambiente estándar, es decir, sin desarrollos a la medida, se incrementa la posibilidad de recibir un servicio más rápido y eficiente, si previo al reporte, se realiza una prueba en un ambiente sin las personalizaciones desarrolladas. Recordando que el servicio está centrado en el producto de Microsoft.   Nota. Es posible adjuntar imágenes de las formas utilizadas, o incluso un video demostrativo. Considere el uso del ’Grabador de tareas’ (en inglés ‘Task recorder’) para documentar el procedimiento, el cual se mostró durante la presentación ‘LCS Business process modeler Presentation’, la cual puede encontrarla en la siguiente liga .     2. Redactar una Descripción clara y completa para el incidente de soporte (Issue Description) En este punto, se aprecia contar con una explicación del escenario de negocio en el que ocurre el comportamiento no esperado por el producto, o bien, un resumen de los pasos de reproducción.   3. Explicar el resultado que se tiene actualmente y el resultado que se espera (Actual Vs. Expected Result) En este punto, se espera que mencione cuál es el resultado actual que observa en el producto, y cuál es el resultado que se esperaría del producto. De ser posible, y de considerarlo necesario, incluir la razón del resultado que está esperando.   4. Detallar los síntomas que llevaron a reportar el caso (Symptoms that led to submission of this issue) En este punto, responda a la pregunta: ¿Qué hace el usuario final actualmente sin tener el resultado que se espera del producto?, o bien, ¿Qué pasaría si el usuario final, por alguna razón, no llegara a tener el resultado esperado en AX? Y detalle, en la medida de lo posible, lo siguiente: + Cuándo y con qué frecuencia ocurre el comportamiento reportado. + La última vez que el sistema funcionó como se esperaba. + Actualizaciones recientes o cambios en el ambiente donde se presenta el comportamiento actual (configuración, hotfix, desarrollos a la medida). + El comportamiento actual se puede reproducir en un ambiente estándar (sin desarrollos a la medida), únicamente en el del cliente, o en ningún ambiente se puede reproducir.   Nota. La redacción puede hacerla en español o castellano.   A continuación, se muestran unos ejemplos, que permitirán contrastar una incidencia de soporte que tiene mayor posibilidad de recibir un servicio más rápido de soporte y una que podría no ser así.     Ejemplo 1. Descripción: Error al emitir el reporte de conciliación de bancos. Resultado actual vs Resultado esperado: Se espera que el reporte muestre datos correctos. Síntomas: Vacío.   Al reportar ese incidente de soporte, se podría mejorar la posibilidad de recibir un servicio más rápido de soporte, proporcionando información precisa de lo siguiente: a.      Nombre del reporte y de la ruta para llegar al mismo. b.      Ejemplo del procedimiento y los valores registrados previamente a generar el reporte. c.      Valores utilizados para generar el reporte. d.      Resultado que obtiene actualmente del reporte. e.      Resultado que esperaría tener del reporte. Con esa información, el ingeniero de soporte, podrá analizar el comportamiento del producto. De lo contrario, sería necesario coordinar una sesión remota o solicitar información más detallada para iniciar el análisis.   Ejemplo 1.a Descripción (Issue Description): El reporte de “Conciliación bancaria/contable” (Ruta. Contabilidad general > Reportes > Conciliación > Banco) muestra diferencias, las cuales son generadas posterior a ejecutar el proceso periódico de “Revalorización de moneda extranjera” en el módulo de Contabilidad General, cuando se tiene el siguiente escenario de negocio: 1. Se realiza un registro contable a un banco mediante un Diario contable en determinada fecha en moneda extranjera. 2. Se realiza el ajuste por tipo de cambio, desde el módulo de contabilidad a determinada fecha, diferente de la fecha del registro del diario contable y con un tipo de cambio diferente. 3. Se muestra el reporte “Conciliación bancaria/contable” y se observa una diferencia en el reporte.      Nota. En el documento adjunto se describe mayor detalle de valores, tales como: tipos de cambio históricos, configuración de las cuentas de banco y de contabilidad general, montos en el diario de contabilidad registrado, parámetros para realizar el proceso periódico de ajuste por tipo de cambio, así como, rutas de las transacciones utilizadas e imágenes del sistema.   Resultado actual vs Resultado esperado (Actual Vs. Expected Result): La columna “Diferencia” debería mostrarse en cero. Esto es porque después de un análisis de las cuentas contables, se demuestra que todas las transacciones del banco se han reflejado en el módulo de la Contabilidad General. Nota. En el documento adjunto se describe mayor detalle de los valores obtenidos en el resultado actual, los valores del resultado esperado, así como imágenes del sistema.   Síntomas que llevaron a reportar el caso (Symptoms that led to submission of this issue): Al encontrar diferencias en el reporte, el usuario final debe analizar el detalle del saldo en las cuentas contables que presentan diferencias. Este análisis se realiza cada semana al realizar un análisis semanal de bancos. El reporte siempre se ha comportado de esta forma. Se puede reproducir en un ambiente estándar (sin desarrollos a la medida).     Ejemplo 2. Descripción: El sistema presenta problemas de performance generalizados Resultado actual vs Resultado esperado: Que el sistema no sea tan lento. Síntomas: Vacío.   Al reportar ese incidente de soporte, se podría mejorar la posibilidad de recibir un servicio más rápido de soporte, proporcionando información precisa de lo siguiente: a.      Una única funcionalidad, característica o reporte del producto en el cual se deba enfocar el esfuerzo a realizar, en el análisis y resolución de la incidencia de soporte. b.      Ejemplo del procedimiento y los valores que se utilizan en la funcionalidad, característica o reporte en cuestión. c.      La última ocasión en que el sistema funcionó como se esperaba, así como los cambios que se realizaron posteriormente. d.      El tiempo actual de respuesta del producto. e.      El tiempo esperado de respuesta del producto y la razón de este tiempo, o bien, el tiempo de respuesta antes de los cambios en el producto.   Ejemplo 2.a Descripción (Issue Description): Al facturar una orden de compra con más de 2,000 líneas, dentro de las cuales existen datos adicionales, tal como: impuestos, descuentos por acuerdos comerciales y cargos misceláneos, el sistema registra la factura en un tiempo de 8 horas. La orden de compra se ingresa mediante un desarrollo a la medida de carga en la siguiente ruta: Cuentas por pagar > Común > Órdenes de compra > Todas las órdenes de compra Después de ingresar los datos de la orden de compra, con el desarrollo de carga, se realiza la Confirmación de la misma en el Menú Compra (Botón ‘Confirmar’), posteriormente se Recibe en el Menú Recibir (Botón ‘Recepción de producto’) y finalmente se factura en el Menú Factura (Botón ‘Factura’).   Resultado actual vs Resultado esperado (Actual Vs. Expected Result): Al presionar el botón Factura, el registro toma hasta 8 horas. En una orden de 500 líneas, se utiliza un tiempo de 5 minutos, por lo que se esperaría que el sistema tomara alrededor de 20 minutos en registrarla.   Síntomas que llevaron a reportar el caso (Symptoms that led to submission of this issue): Nunca se había realizado el registro de una orden de compra con esas características en ningún otro ambiente. Se espera ingresar 5 órdenes de compra con estas características durante los primeros tres días del mes. Actualmente se ingresan durante el fin de semana, pero se esperaría poder ingresarlas entre semana.   *** Nota. Las situaciones y valores descritos arriba son ficticios para fines de documentación del blog.   Estos son únicamente algunos consejos. Sabemos que no en todos los casos se tiene toda la información que les gustaría tener, pero se aprecia contar con la mayor información posible que ayude al ingeniero de soporte a realizar el análisis, con la finalidad de poder ofrecerle un servicio más rápido y eficiente en la resolución de los incidentes de soporte de Microsoft Dynamics.   Muchas gracias por trabajar con nosotros. Y muchas gracias por su preferencia.   Para PP

Posted by on 6 October 2015 | 8:26 pm

Missing default 200% logos and Appx3210

Last week, I got this error when building my app that I ported from Windows 8.1 Universal app to UWP.  error APPX3210: App manifest references the image 'Assets\Logo.png' which does not have a candidate in main app package.  The manifest referenced Logo.png indeed. But the file in the package was logo.scale-100.png. When I renamed logo.scale-100.png to logo.png (what the manifest asked for), the manifest errored out with a red cross. When I then used the manifest editor to point to logo.png, Visual Studio renamed it to logo.scale-100.png. So back to square 1: build the store package and error happens. Sooo. It appears that the default scale has changed to 200%. OK. Fine. And? Why does that matter? It matters because the main app package contains resources for whatever the default scale is. And for UWP, the default is 200. Since I use app bundles, my Logo-100.png ended up in a satellite app package, and the main package does not have any logo (since I didn't provide the default 200). Hence, my app would not be installable on a system that requires scale-200. When I renamed the file to Logo.png, the editor complained because it assumed that images without qualifiers were in the default scale (200), and my logo didn't have the correct dimensions for that scale. There is an explanation for this in the porting doc, but it is a little buried: "The default asset scale for Universal Windows apps is 200. If your project includes assets not scaled at 200, you will need to add a <UapDefaultAssetScale> element with the value of the scale of your assets to this PropertyGroup. Learn more about assets and scales." [Thanks to Srdjan Jovcic for his explanation.]

Posted by on 6 October 2015 | 8:08 pm

Power BI Weekly Service Update

We are excited to announce the following set of features that are available in this week’s Power BI service update: Suggested questions for Power BI Q&A Support for inserting shapes in the Report canvas Option to share dashboards without invite email   Suggested questions for Power BI Q&A With Power BI Q&A, you can explore your data using simple, intuitive questions and receive answers in the form of interactive charts and graphs. To get started with these questions, it helps to know the terms that appear in the data such as column names or row values. There are instances where you may not know the specific terms in your data (e.g. when using a dashboard created by someone else). With this release, we have added a feature to help you get started with Power BI Q&A, even when you do not know anything about the data. To get started with this, navigate to any dashboard and click the “How to ask” link near the Q&A question box.Power BI presents you with a number of suggestions based on your data.  You can click on any of the suggestions to get started with Q&A. I clicked on the “New stores vs new stores target as a bar” and immediately got the answer in the form of an interactive bar chart. Questions that have been pinned to the dashboard as well as all tables are automatically populated to help you get started. Look for more improvements in this space over the coming months! Support for inserting shapes in the Report canvas Two weeks ago, we introduced support for inserting shapes into the report canvas in Power BI Desktop. This week, we are happy to announce that you can now add shapes to your report canvas when you are authoring and/or editing reports in the Power BI web app. You can insert shapes by clicking on the “Shapes” menu when in “Edit Report” mode. Supported shapes are rectangle, oval, line, triangle and arrow. Several formatting options are available for each shape, such as line/fill colors, rotation, title, background, etc. These options can be found under the formatting pane. Below, I have used shapes to call attention to certain parts of my report and to make some of my text prominent. Option to share dashboards without invite emailUntil now, Power BI sent an email invitation when you share a dashboard with someone else. The recipients needed to click the invite in their email to get access to the dashboard. This works fine when sharing to a small set of people. But in cases where you have to share the dashboard with a larger audience, sending an email invite to everyone might not ideal. To help with these scenarios, we have added the option to turn off email notification when you share a dashboard. Simply uncheck the “Send email notification to recipients” check box in the Power BI share dialog. You will be presented with a URL – copy and share this URL to your colleagues to give them access to the dashboard. This feature is very useful if you have internal corporate portals where you would like to link to different dashboards. Accomplishing this is very simple: Share the dashboard to all visitors of your internal portal with email notification turned off Copy the link that you get from the Power BI share dialog and add it to your portal Anyone who visits your portal and clicks the link will now be able to access to the dashboard. One important note – the dashboard will not be added to the recipients’ Power BI workspace until they navigate to the URL through their browser. Try out the features and let us know what you think!   Try Power BI Follow @MSPowerBI on Twitter Join the conversation at the Power BI Community

Posted by on 6 October 2015 | 8:00 pm

Partner Training - Building a Learning Analytics business

One of the key things that I’ve been focusing on over the last few months has been helping Microsoft’s partners to develop solutions that help education customers use data better - whether that’s for learning analytics, or looking at their management data in new ways. There are two key focus areas - one is making it more accessible to more people using better and simpler visualisation with Power BI; and the other is the power of the cloud to perform advanced analytics easily - for example, to deal with high volumes of data and provide easily interpreted answers to critical questions. If you’re a Microsoft Education Partner, and you’re on this journey, or just about to start it, then there are two key training opportunities coming up in November that I’d recommend. Both of these Boot Camps are coming to Sydney and Melbourne, and are designed for teams needing to move from traditional business intelligence to advanced analytics. Microsoft Power BI Practice Enablement Boot Camp In this one-day boot camp you will learn about the potential and power of Microsoft Power BI and how it is a new generation cloud service that can transform data into rich visuals. The training course is designed to introduce Power BI, and to specifically empower partners with the technical knowledge required to transform their businesses to sell and implement Power BI solutions. The training course provides hands-on lab opportunities designed to reinforce key capabilities. Additionally, the training course provides partners with ideas to identify opportunities, and also with resources to help them take the next steps on their path to mastering Power BI. Topics Covered Microsoft Power BI Overview Working with the Power BI Service Connecting to Power BI Data Sources Creating Power BI Desktop Solutions Power BI for the Developer Summary Where and When Sydney 2nd November 2015 Melbourne 16th November 2015 Azure Machine Learning & Azure Stream Analytics Practice Enablement Boot Camp For the first ¾ of the day you will spend learning how to use Azure Machine Learning, a fully managed cloud service that enables data scientists and developers to efficiently embed predictive analytics into their applications. With this capability, organisations can better benefit from massive data sets. The last quarter of the day will be spent on Azure Stream Analytics were you will learn how to analyse data as it streams in real time from applications and devices. You'll also work with data streams to analyse patterns, compare current conditions to historical information, or transform incoming streams before storing events. Topics Covered Introduction to Machine Learning and Azure Machine Learning Studio Designing a Predictive Analytics Solution with Azure Machine Learning Monetizing your Machine Learning application with Azure Marketplace Azure Machine Learning API services and extensibility Scenarios Where and When Sydney 3rd November 2015 Melbourne 6th November 2015

Posted by on 6 October 2015 | 7:26 pm

New graph API consent permissions

Today we're glad to announce a few updates to our Azure AD Graph API permission scopes.  Some of these new permission scopes can be consented by non-admin users, enabling greater reach for your applications.  This is something the team is really excited about.  The new permission scopes In addition to the four existing permission scopes (the four listed at the bottom in the Azure Management Portal screenshot below), we've now added four new delegated scopes (and an additional app-only permission scope which is not shown). In order to enable a number of key scenarios, developers previously needed to request privileged permissions that required an administrator to consent.  By introducing a new set of more granular permissions, we've allowed some key scenarios to be enabled for your app that can be consented by a non-admin user.  While introducing this additional flexibility for you, we still ensure that privileged operations can only be consented by an administrator. This allows you to create applications that can reach a larger audience, while protecting privileged operations. Some examples of these scenarios are provided below. Scenario Permission scopes required People picker - core to many applications is the ability to pick users or groups to control access to resources in your application. Read all users' basic profiles Read all groups Org chart navigator -  see a user's reports and their management chain. Read all users' basic profiles Groups and memberships viewer Read all users' basic profiles Read all groups Group management service that allows users to create, manage and delete groups.  (NOTE the user of the app would need to be in a role that allows for group creation and management). Read all users' basic profiles Read and write all groups   So you might ask - how can we allow an end user to consent to release  information to an application about other users in their organization?  The new permission "Read all users' basic profiles" (which has the scope claim value "user.readbasic.all") releases only limited information about other users. When querying the user entity, it exposes only enough information to make a people picker useful, without releasing information like phone numbers or location.  To be specific, it allows the calling application to get the first name, last name, display name, photo and email address of other users in the organization of the signed-in user. We've also updated a few of the existing permission scopes: We've restricted the "Read and write directory data" permission so that it no longer allows the application to reset other user passwords. We've extended the "Sign in and read user profile" permission to also allow the application to read some basic information about the company (company display name and verified domains) through the tenantDetails entity.  NOTE: For any users who have already consented to this permission (prior to this update), the application will not have access to the tenantDetails entity. Great new permissions topic To go with this release, we've updated our Azure AD Graph API permissions topic.  This topic goes into greater detail on all our permission scopes, describing: Concepts such as delegated vs app-only permissions, and full vs basic profiles for users and groups. Permission scope details highlighting what each scope is capable of, if it's app-only or delegated, and whether it requires an admin to consent. What's next? This change not only introduced new permission scopes, but also an update to our underlying platform that will allow our team to introduce additional permission scopes more quickly.  New scopes will be driven by developer and application scenarios and by our principles to align permission scopes along the entities in our API and to explicitly split out new permission scopes for privileged operations (such as changing or resetting passwords). What do you think? As always, we'd love to hear more from you all.  Are these new permission scopes useful?  Are there any permission scopes you'd like to see and why those are important for your scenarios?

Posted by on 6 October 2015 | 6:37 pm

Exchange Server 2016 hands-on demo videos

We’ve got some great Exchange Server 2016 resources that I wanted to share, including some hands-on demo videos that I think you’ll enjoy. Collaboration updates – Outlook, Exchange, SharePoint, Onedrive : Exchange Server 2016 Smarter inbox – Search and customization updates : Exchange Server 2016 & Outlook on the go – Mobile, browser and productivity updates : Exchange Server 2016 – Performance, architecture and Compliance updates :...(read more)

Posted by on 6 October 2015 | 6:09 pm

Exchange 統合に関する技術資料まとめ

Japan Lync/Skype Support の久保です。   Skype for Business Online (Lync Online) の EWS 連携についてです。 以下の現象が発生している場合、クライアントと Exchange の連携について確認をする必要があります。   ・高解像度写真が表示されない。 ・予定表の会議時間となっても、プレゼンスが自動更新されない。 ・会話履歴が保存されない。 ・OOF の設定とメモが反映されない。 ・Exchange の連絡先が同期・検索されない。   クライアントが Exchange と連携することで提供されるサービスについては、以下の技術資料をご確認ください。  Lync 2010 の統合 オンライン環境の Skype for Business クライアント (Lync クライアント) が Exchange サーバーと連携する動作について、基本的な考え方はサーバー側の設定よりはクライアントの挙動による影響が大きくオンプレと変更はありません。言い換えると、ほとんどの場合は、クラウド側の問題ではなく、ネットワーク インフラストラクチャの準備が不十分である事に起因して問題が発生します。  Skype for Business クライアント (Lync クライアント) とExchange の統合に関する技術資料は、以下の技術情報が公開されています。   KB 2436962 (2015/07/15) Skype forBusiness Online へのサインイン時 “Microsoft Office Outlook に接続する際に問題が発生しました。"というエラー メッセージが表示される KB 2787614 (2015/07/15) Lync が Exchange に接続できず、会話履歴、連絡先カード、空き時間情報、不在情報が表示されない  KB 2614614 (2015/05/22) Exchange Online の Skype for Business Online、Lync Server 2013、または Lync Server 2013 ハイブリッド展開との統合 KB 2811654 (2015/05/04) ユーザーの Exchange メールボックスを無効化、ライセンス削除、または移動した後に Lync連絡先一覧が表示されない、または読み取り専用となる KB 2298541 (2015/05/01) Lync でサインイン後に繰り返し資格情報を要求される  KB 2916650 (2015/04/30) Lync が重複された連絡先を表示し、不正確な連絡先の情報が含まれる、もしくは連絡先を削除出来ない KB 2519342 (2014/03/20) You arerepeatedly prompted for credentials when you try to access Lync Online  KB 3028900 Office 365 専用/ITAR で EWS プロトコルを無効にすると、outlook または Lync の接続が失敗します   また、クライアントと Exchange の間のトラブル シュートについては、以下の Blog を参照ください。 オンプレミスを前提として記載されていますが、クライアント観点では、基本的な動作に変わりはありません。   Lync と Exchange の統合 EWS part1 Lync と Exchange の統合 EWS part2 Lync と Exchange の統合 EWS part3 Lync と Exchange の統合 EWS part4 Lync と Exchange の統合 EWS part5 Lync と Exchange の統合 EWS part6 Lync と Exchange の統合 EWS part7 Lync と Exchange の統合 EWS part8 TrustModelData 編 Lync と Exchange の統合 EWS part9   なお、O365 ポータル(Web) でプレゼンスを表示したり、OWA 上で IM を実現する機能は、全く違うテクノロジーとなりますので、ご注意ください。  

Posted by on 6 October 2015 | 5:32 pm

TechNet Wiki @ Microsoft Exchange Server 2016

Recently I published Wiki @ TechNet for Microsoft Exchange Server 2016 with related links(download, prerequisites, system requirements, Install, Prepare, Whats discontinued etc)… So please have a look at it which will help you to get started. If you are a fellow expert on Microsoft products, please visit to our TechNet Wiki and contribute @ ( Also if you find related articles/pages/links for Exchange Server 2016 you can contribute at this wiki as well. So lets contribute...(read more)

Posted by on 6 October 2015 | 4:33 pm

Introducing Surface Pro 4 and what is means for Education!

Today we announced the new Surface Pro 4! Find out why it ticks all the boxes for Australian students, teachers and educators....(read more)

Posted by on 6 October 2015 | 4:13 pm

MPUG–Seattle Chapter Project Support session

MPUG are making the recording of my session last month at the Seattle Chapter meeting available for a limited time – just click here to register and view it.  And you can still earn PDU’s!  The session was held at the Bellevue Microsoft store – great to meet up with some local MPUG members and had some very interesting discussions!  

Posted by on 6 October 2015 | 4:07 pm

Handling system and app back button

This question came up a few times recently. How can a UWP app handle navigation with continuum for tablets. This is the setting at the bottom of Action Center that allows you to switch between tablet (touch) and PC mode (mouse). When the system is in tablet mode, a back button appears on the left in the task bar. However, if the app is in PC mode, the app might need to have its own back button. You might not want both. This means that your app: 1.      Needs to detect whether it is in tablet or pc-mode 2.      If in tablet mode, don't show a back button since the system already has one in the taskbar 3.      If in PC mode, show the back button (if there is something on the back stack.) In order to detect 1) you should use this: UIViewSettings.GetForCurrentView().UserInteractionMode == UserInteractionMode.Mouse;//or Touch Mouse indicates PC mode; Touch indicates tablet mode. Depending on the outcome, you can hide or show your app's back button in the title bar by setting AppViewBackButtonVisibility to Visible or Collapsed. You then need to handle one event for both SystemNavigationManager.GetForCurrentView().BackRequested And don't forget to set BackRequestedEventArgs.Handled to true if you're handling the back navigation. Otherwise the system will also navigate away from your app. Complete code: protected override void OnNavigatedTo(NavigationEventArgs e) {     SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility =         (UIViewSettings.GetForCurrentView().UserInteractionMode == UserInteractionMode.Mouse) ?         AppViewBackButtonVisibility.Visible : AppViewBackButtonVisibility.Collapsed;       SystemNavigationManager.GetForCurrentView().BackRequested += SettingsPage_BackRequested; }   protected override void OnNavigatingFrom(NavigatingCancelEventArgs e) {     SystemNavigationManager.GetForCurrentView().BackRequested -= SettingsPage_BackRequested; }   private void SettingsPage_BackRequested(object sender, BackRequestedEventArgs e) {     App.RootFrame.Navigate(typeof(MainPage));     e.Handled = true; }

Posted by on 6 October 2015 | 3:59 pm

Getting started with Emscripten

Writing code for multiple platforms can be a lot of work. It can be even more work to have to completely rewrite it for each one, too. What if you wrote an application in C++, but wanted it to be displayed in the browser somehow? Well now, with a tool called Emscripten, that’s possible. I… The post Getting started with Emscripten appeared first on Dave Voyles | Tech Evangelist at Microsoft ....(read more)

Posted by on 6 October 2015 | 3:55 pm

Microsoft New Devices !

  #wpjp #win10jp #wpdev_jp #Surfacejp 昨日ニューヨークで開催されたイベントでたくさんのデバイスの発表がありました。 Hololens についての最新情報 Microsoft Band Lumia 950/ 950XL / 550 Surface Pro 4 Surface Book こちらの動画にまとまっています。 Hololens についての最新情報 Hololens は 2016年の第1四半期に最初のデバイスをリリースする予定ですが、まずは北米とカナダになりそうです。価格は$3000くらいだとか。イベントの中ではゲームのデモが行われていました。 Microsoft Band 新しくなった Microsoft Band。GPS内蔵、UVモニタ、ダイエットプログラムのガイド、睡眠情報の取集、カロリーチェック、その他ユーザーへのアナウンスなどいろいろできることが増えそうです。VO2 Max と呼ばれる最大酸素摂取量の計測もできるとか。 まずは 10月30日に発売予定 $249 Lumia 950 / 950 XL + 550 Windows 10 Mobile を搭載した新しいスマートフォン。ハイスペックデバイスです。 Lumia 950XL  $649 : 5.7インチ液晶を搭載した最高スペックの Windows 10 Mobile デバイス。 解像度は 2560x1440。 8コアの Snapdragon 810 を搭載したハイパワーマシン。 メモリも3GB 内蔵ストレージは32GB搭載し、さらに MicroSDXCは最大2TBまで対応する。 ブラウザで9時間、ビデオ再生で11時間可能な 3340mAhのバッテリーを搭載。 カメラは評価の高い F1.9 20MPx の PureView カメラに3LED Flash内蔵し、4K動画も撮影可能。 フロントは5MPxのワイドカメラ。 ポートはUSB-Cで30分の充電で50%まで高速充電可能 勿論ワイアレス充電も内蔵。 アダプタでモニターにつないでPC的に使える Continuum for Phone  を利用可能 Microsoft Display Dock: Windows Phone をモニターにつなぎ Continuum for Phone を実現するための超小型のアダプタ。   Lumia 950  $549 : 5.2インチ液晶を搭載した Windows 10 Mobile デバイス。 解像度は同じく 2560x1440。 6コアの Snapdragon 808 を搭載 Memory  3GB 内蔵ストレージは32GB搭載し、さらに MicroSDXCは最大2TBまで対応する。 ブラウザで9時間、ビデオ再生で11時間可能な 3000mAhのバッテリーを搭載。 カメラは評価の高い F1.9 20MPx の PureView カメラに3LED Flash内蔵し、4K動画も撮影可能。 フロントは5MPxのワイドカメラ。 勿論ワイアレス充電も内蔵。 ポートはUSB-Cで30分の充電で50%まで高速充電可能 アダプタでモニターにつないでPC的に使える Continuum for Phone  を利用可能 Lumia 550 $139:低コスト機 Surface Pro 4 $899~   $1499(256GB/Corei5/16GB)10/26 12.3インチピクセルセンスタッチモニター(2763x1824) インテル第6世代 Skylake Core CPU Windows 10 Pro 重さはわずか 786g 新しい Surface ペンがついてます。消しゴム付き、本体横にマグネットでつきます 新しく Isolate タイプになった Type Cover。指紋認証機能付も ガラスのタッチパッドになりました   Surface Book $1499~ 10/26 $2699(512GB / Core i7 / 16GB / GPU) 初の Surface シリーズのラップトップながら液晶が外れるデタッチャブル タイプ 13.5インチ解像度は3000x2000 第6世代 Core CPU + 本体には NVIDIA GeForce GPU 搭載 ペンとタッチももちろん使える 液晶部が外れてタブレットとして使える、裏にして差し込むことも可能 タブレット時は本体内の内蔵GPUを使える。 液晶部で728g、本体と合わせると 1579g (GPUなし 1515g) 12時間のビデオ再生が可能 ワクワクです。

Posted by on 6 October 2015 | 3:34 pm

Now available: Visual Studio Tools for Apache Cordova Update 3

Three weeks ago, we released Visual Studio Tools for Apache Cordova Update 2. Last week, we introduced you to a new TACO CLI. Now we’re back with Update 3, which is automatically included when you install Visual Studio 2015. If you’re an existing user of Visual Studio 2015, you’ll receive a notification to download and install today. This release significantly improves the tools’ stability by fixing 13 of the top issues reported on Stack Overflow. Here are three of the most notable changes reported by developers: Addresses blocking issue when trying to use the Tools for Apache Cordova along with the ASP.NET 5 Beta 7 release. (First reported by “Pablo Martinez”) Previously, after installing ASP.NET 5 Beta 7, Cordova projects would fail when opening with an error message that says “An equivalent project (a project with the same global properties and tools version) is already present in the project collection…” Deploying to Windows Phone 8 devices now works when emulators are not installed. (First reported by “ando”) Before this fix, Visual Studio showed an error saying that “no emulators are installed” and stopped deploying to the device. When working on an app for Android devices, an issue was fixed that caused a “could not reserve enough space for object heap” error. (First reported by “SpaMobile”) Without this fix, an “Error occurred during initialization of VM; Could not reserve enough space for object heap” message appeared when using the Visual Studio Tools for Apache Cordova, targeting Android devices. What’s next? We’re hard at work already on the next update to the tools and we’ll see you back here on the blog soon. Thanks to everyone who’s been asking and answering questions on Stack Overflow (using the visual-studio-cordova tag) and we look forward to continuing to work with you there! To stay up to date on these updates, news in the Cordova world, and more, follow us on Twitter (@VSCordovaTools). And as always, feel free to email us with your feedback (vscordovatools –at-, we enjoy hearing from you.   Jordan Matthiesen (@JMatthiesen) Program Manager, Visual Studio Tools for Apache Cordova Jordan works at Microsoft on JavaScript tooling for web and mobile application developers. He’s been a developer for over 17 years, and currently focuses on talking to as many awesome mobile developers as possible. When not working on dev tools, you’ll find him enjoying quality time with his wife, 4 kids, 2 dogs, 1 cat, and a cup of coffee.

Posted by on 6 October 2015 | 3:30 pm

Desired State Configuration + Puppet

Our goal with PowerShell Desired State Configuration is to make Windows easy to manage, regardless of what tool you’re using. We view DSC as a platform technology to manage Windows, and this technology can be extended with the creation of new resources as well as the reuse of PowerShell DSC functionality in different solutions. As Microsoft partners make their components configurable via DSC, their customers will be able to choose from a wide range of configuration management tools that support DSC. To that end, we are pleased to share that Puppet Labs has launched their support for PowerShell Desired State Configuration. Now, administrators who are familiar with Puppet can leverage the hundreds of DSC resources used to manage Windows. As more Microsoft partners make their components configurable via DSC, Puppet users will have access to the increased manageability of Windows components. You can find more information about Puppet and DSC at the Puppet Forge. For more information on PowerShell DSC, check out To grab new DSC resources, take a look at      

Posted by on 6 October 2015 | 3:20 pm

Mark Leigh appointed as Small Mid-market Solutions & Partner Lead, Microsoft Australia

This is a guest post by Pip Marlow, Managing Director, Microsoft Australia After two great years with the company, David Gage has made the decision to move on from his role as our SMS&P Lead and will be leaving Microsoft at the end of October. David has led the SMS&P team through a critical time in our transformation and I know he has supported many of you in delivering some extraordinary things for our customers. I’d like to thank David for all that he has done and wish him the very best in the next phase of his career. While we will farewell David, I am very pleased to announce that Mark Leigh, currently our Marketing & Operations Lead, will be appointed as our new SMS&P lead for Microsoft Australia, effective immediately. In his 12 years with Microsoft, Mark has been an instrumental member of the Australian team, having held a range of senior Operational, Sales and Industry Management roles, as well as leading our Marketing & Operations business over the last 3 years. Prior to joining Microsoft, Mark worked with startups in the US, South Africa and the UK and I am confident he will be an outstanding leader to the SMS&P team and a valued partner to you. Commenting on his new appointment, Mark says “I am thrilled to be given the opportunity to lead the SMS&P team. I’ve watched this business grow rapidly over several years and I am proud of the work that you do to help our customers achieve more. I look forward to connecting with all of you in the coming weeks.” I know Mark is familiar to many of you, and I hope you’ll join me in congratulating him on his new role and welcoming him to SMS&P.

Posted by on 6 October 2015 | 2:06 pm

testing blogs

testing blogs

Posted by on 6 October 2015 | 1:17 pm

SPS DC Event Follow Up

For those who attended the SPS DC Event in Reston last weekend, as promised, here is the follow up post that has my slides from the event. My session was an overview of SharePoint 2016 and the major investment areas. I slanted the presentation a bit towards the IT Pro given that was the track I was in and delivered a hybrid search demo that included previews of search results delivered from the Office Online Server preview. Thanks again for spending your time listening -Ed  

Posted by on 6 October 2015 | 12:51 pm

Moving to Skype for Business: Know Your In-Place Upgrade Options

Editor’s note: The following post was written by Skype for Business MVP Dino Caputo as part of our Technical Tuesday series. Skype for Business Server 2015 represents the first time Microsoft has allowed for an “in-place” upgrade of previous versions of its Universal Communications platform.  Since the Live Communication Server 2005 days, moving to the next release required building out a new set of infrastructure, planning, testing and finally moving users over to it.  This latest release introduces the option to do what is referred to as an in-place upgrade, allowing organizations to upgrade existing Lync 2013 Servers to Skype for Business 2015.  This can be especially relevant and appropriate if • You have recently migrated to Lync Server 2013 and have new hardware that is capable of running SfB (the hardware specs have not changed from Lync Server 2013) The In-place upgrade seeks to preserve existing hardware investments, reducing the overall cost to deploy Skype for Business Server 2015.• You have a smaller deployment perhaps running a single Lync Server 2013 Standard Edition• You are able to tolerate a small amount of downtime (1-2 hours).  Depending on your configuration you may be able to avoid this however.  A limitation:• This isn’t possible for organizations still running Lync Server 2010.  Even if you have both Lync 2010 and 2013 Server in your environment you must fully decommission Lync 2010 before you can introduce Skype for business Server. In Place Upgrade OptionsThe Offline method (Some Downtime required)You must use the offline method if you only have a single Lync 2013 Standard or Enterprise Edition Pool.  The offline method as the name implies requires you to take the entire pool down for maintenance while the upgrade is occurring.  During this time all functionality is unavailable until the upgrade process has completed.  I would budget 60-90 minutes per front end server so plan accordingly. The Move User method (No Downtime)If you have deployed two pools in your environment then this opens up another option whereby you may move all the users over to another pool prior to commencing the upgrade.  The second pool should have enough capacity to handle the load of any users currently homed on it as well as the ones you are moving over.  Before moving the users over, ensure you have enough capacity to handle the load of these users on the other pool.  If these pools were part of a “Paired” configuration you do not need to break the pair prior to the upgrade process.   The following diagram illustrates this process in detail.   Expert Note: As part of Move Users you also will need to migrate the global conference directories associated with the primary pool. PSTN dial-in conferencing will still resolve ConferenceID to the pool being upgraded, instead of the paired pool. So you need to move Conference Directories, if you still want PSTN conferences scheduled in the pool to be accessible during upgrade. Upgrading other Lync Server 2013 RolesThe upgrade to Skype for Business applies to other Lync Server 2013 roles as well.  Upgrade your topology from the inside to the outside. Upgrade all your pools first, then the edge servers, and lastly the pool that owns the Lync Central Management Store (CMS)Upgrading other roles like the Edge Server role takes less time.  Budget up to 60 minutes per Edge Server.  Communicate with Users!Despite minimizing or even avoiding downtime depending on the option you choose, you should always plan and properly communicate with users letting them know what will be happening.  In the best case scenario, they shouldn’t notice anything occurring, however if you don’t plan or communicate properly and you encounter issues there may be user disruption which diminishes their experience.Take advantage of new featuresOnce you have fully upgraded your environment you can now take advantage of the some of the new features in Skype for Business 2015, namely: Enhanced commercial Skype Federation View commercial Skype contacts and add them to your Contact List so you may see presence, IM, and call them including video! Call Monitor I especially like the addition of the signature feature from the consumer version of the Skype Call Monitor which is automatically instantiated when you click on other windows making it easier to collaborate by focusing on working content when in a call. Mid-Call controls are also more easily accessible and redesigned to include the PSTN dialing Pad by default now (hooray!) Rate the Call Quality After your call is done you may be asked to rate your call and provide feedback to your administrators.  This may be especially valuable during a new deployment.  You may control the cadence to which this is presented to users. Call Via Work Another important addition is “Call via Work” feature which will allow interoperability to existing PBX phones. While this requires a Direct SIP integration between Skype for Business Server and the PBX it will allow SfB users to establish a call between their PBX Deskphone and the called PSTN user. This also has the important benefit of updating users’ presence status, which is something lacking in the Lync Direct SIP interoperability scenario. There are also basic mid-call control capabilities which are preserved on the PBX phone.  New reporting and Admin featuresCall quality dashboard – an OLAP cube that allows more customized reports of historical Call Quality and other MetricsManageability improvements (Pool shutdown/start up cmdlets - better patching process: Invoke-CsComputerFailOver, Invoke-CsComputerFailback, Start-CsPool) Make a Plan!While the addition of an in-place upgrade option is certainly an appealing and welcome one it may not be the appropriate course of action for all deployments so please take the time to properly plan which path you need to take to get to Skype for Business Server 2015. About the authorAs a Senior Architect and Skype for Business MVP, Dino gets to do what he does best – help clients achieve their business goals by providing advanced technical solutions. It’s his ability to develop technical strategies, understand client needs and deliver performance outcomes that have earned him a reputation as a seasoned IT professional and true team player. Dino holds many certifications including an MCSE, and is a Microsoft Certified Technology Specialist in Live Communications Server (LCS) 2005, Office Communications Server (OCS) 2007 and a MCTS in Lync Server 2010 and 2013.   He works primarily with Skype for Business and Exchange. Dino has worked with many large enterprise customers providing UC design, strategy and technical “Coaching” helping them derive the most out of their investment in Microsoft Universal Communications. Follow him on Twitter @dinocaputo. .    

Posted by on 6 October 2015 | 12:16 pm

Update News: Tools for Universal Windows Apps 1.1.1, Visual Studio Emulator for Android, Tools for Apache Cordova Update 3

Tools for Universal Windows Apps 1.1.1: This  update, which is what you’ll get with a new installation, fixes a bug in Tools for Universal Windows Apps 1.1 where Visual Studio failed to create a package for a UWP app that uses a WinRT component. You can find additional information and installation instructions in Generating Store associated package fails for a UWP application with a WinRT component (.winmd). Visual Studio Emulator for Android: By now, hopefully you’ve heard about the new Visual Studio Emulator for Android, which is available as a standalone download for Eclipse and Android Studio users. We recently issued an update that addresses some of your top requests, including network simulation and improved screenshot functionality. You can find all the details in Network simulation and more in the VS Emulator for Android on the Visual Studio ALM blog. Visual Studio Tools for Apache Cordova Update 3: In this release, we improved launching the iOS debugger and made some changes to address out of memory issues with the Java Development Kit. There are also a number of bug fixes, including one that prevented Cordova projects from opening when 5 beta 7 is installed. Lastly, we made some fixes to Windows 10 store packaging.   Kraig Brockschmidt (@kraigbro), Senior Content Developer, Visual Studio Kraig has been around Microsoft since 1988, working in roles that always have to do with helping developers write great software. Currently he’s focused on developing content for cross-platform mobile app development with both Xamarin and Cordova. He writes for MSDN Magazine, is the author of Programming Windows Store Apps with HTML, CSS and JavaScript (two editions) and Inside OLE (two editions, if you remember those) from Microsoft Press, occasionally blogs on, and can be found lurking around a variety of developer conferences.

Posted by on 6 October 2015 | 12:00 pm

From Data Analyst to Data Rockstar

The data are in. Demand for data analytics expertise has skyrocketed. The reason? A convergence of trends—the expanding universe of data, business dependence on faster, data-driven decision-making, the viral spread of social media, and huge strides in technologies that support business intelligence. Technology advancements have made new sources of information accessible, consumable, and meaningful to organizations of all sizes, including those that do not have advanced analytics capabilities. And Power BI is leading this technology revolution. What does this mean for data analysts? Grow your career In this data-driven world, business leaders are confronting a new reality. There are valuable insights to be had and profits to be earned from the unimaginable amounts of data out there, but only if more data analysts have the tools to quickly and intelligently unlock them. Industry experts now predict that within two years, most business users in organizations will have access to self-service BI solutions. Tools like Power BI can help empower data analysts, reducing the time and complexity of data gathering and preparation, enabling businesses to make faster, better decisions. Learn ten ways in which your data analysis skills can help improve your career in our free e-zine It’s a Data-Driven World. Unleash new possibilities More companies are realizing the strategic advantage in making modern business intelligence tools, such as Power BI, available to greater numbers of data consumers in their organizations. With more variety of data being collected at ever increasing volumes, there are more insights waiting to be unearthed by more people. Modern BI tools are helping organizations in diverse industries mine and generate value through real-time data gathering, interactive visualizations, and efficient collaboration. For data analysts, this translates into new possibilities to be had and new contributions to make. Like improving water conservation, reducing school dropout rate, anticipating market trends, and growing the next great startup. Imagine what you could accomplish with the powerful, easy-to-use data analysis and visualization capabilities of Power BI. Find out how you can tell a compelling data story. Read our free e-zine, Your Data Knows More than It’s Telling You. Bring Data to Life It’s one thing to amass data. It’s another to bring it to life in compelling ways that lead to fresh insights and faster decisions. That’s what Power BI lets you accomplish. Using this single tool, you can: Build personalized dashboards in minutes and share them with colleagues. Combine data from multiple sources, on-premises and in the cloud, and display them in a single report. Gather data from popular online services, such as Google Analytics, Salesforce, and QuickBooks. Ask questions using natural language. Create stunning, interactive data visualizations using drag-and-drop gestures. Stay on top of your data from your mobile device. And there’s a growing Power BI community dedicated to bringing the power of business analytics to nontechnical business users everywhere. They’re waiting for you to join. Learn more from our free e-zine Bring Your Data to Life with Power BI.

Posted by on 6 October 2015 | 11:15 am

Achievement for All to develop Microsoft CPD courses and Enchanted Kingdom learning resources

Over the past year Microsoft in Education has been working in partnership with Achievement for All, a movement focussed on educational change, and this week we are thrilled to be taking part in the AfA national conference in Birmingham. Joining us at the NEC will be students and staff from Microsoft Showcase School Simon de Senlis Primary, who have been at the centre of an ambitious project based learning initiative....(read more)

Posted by on 6 October 2015 | 11:15 am

Imagine Cup team nabs $5M in seed funding & Best Buy partnership

Imagine Cup Alumni, Hon Weng Chong and Andrew Lin, are the Co-founders of CliniCloud – a company developing modern home health technology. Dr. Hon Weng Chong was doing his rounds as a pediatric resident when he stumbled across a surprising statistic. Something close to one-third of childhood deaths in developed Western countries are caused by pneumonia. Dr. Hon knew this shouldn’t be the case because “pneumonia is easy to prevent and detect, and the treatment for it is cheap and available!” So why the high death rate? Dr. Hon spent months trying to figure this out. As he stood on the other side of the examination table, he began to deeply empathize with distraught parents and sick children. Dr. Hon concluded that parents have no tangible way of determining exactly when their child’s breathing qualifies as rapid or not (increased breathing is an early warning sign of fluid in the lungs).  It was the empathy Dr. Hon developed for parents that inspired him to bridge the gap between medicine and technology and make a diagnostic, use-at-home medical technology to help moms and dads know when to take their children to the doctor. But the health care system is often overrun with old technologies. Dr. Hon confesses, “Throughout my medical education, I noted how broken the system was. The duplications! The tech! We still use beepers, like it’s the 1980s. I always wondered why medicine wasn’t moving forward technologically as quickly as other industries.” On a mission to reconnect medicine and technology, Dr. Hon collaborated with his friend, Dr. Andrew Lin (a fellow medical student,) to build StethoCloud. StethoCloud is an app and a stethoscope embedded with a microphone that connects to a cell phone, allowing users to record breath sounds and upload them to a cloud service for remote diagnosis.  Andrew and Dr. Hon competed with StethoCloud at Imagine Cup 2012, held that year in their home country of Australia. They took second place in the Imagine Cup Grant challenge and won $75,000!     Mahsa Salehi, Hon Weng Chong, Andrew Lin, and Kim Ramchen celebrate winning the Imagine Cup 2012 Grant with their mobile medical app and stethoscope, StethoCloud Hungry to create more technology to disrupt and improve health care, Dr. Hon and Andrew founded the company CliniCloud. Inspired by StethoCloud, CliniCloud’s first product is a connected medical kit containing a digital stethoscope, a noncontact thermometer and a mobile app. The kit allows users to record basic vital signs including temperature, heart and lung sounds, and then send the readings to their physician of choice or consult a network of on-demand medical professionals. Having gone through Imagine Cup and the founding of a startup, Dr. Hon knows well the process of finding funding to get an idea off the ground. After initially visiting Silicon Valley close to Christmas last year, they decided that the timing wasn’t right (everyone was on holiday) and that it was actually better to focus solely on the launch of the first commercial product. It was that campaign that attracted the attention of Best Buy, who will sell the product this holiday season. As it happened, two investors also noticed CliniCloud: The Silicon Valley arm of Chinese firm Tencent, and Ping An Ventures from Singapore. They just funded CliniCloud with $5 million in seed money to help CliniCloud’s mission to “bring healthcare home.” Dr. Hon credits a large part of CliniCloud’s success to participating in Imagine Cup. “Because Imagine Cup doesn’t want to be just a cool science fair,” he says, “we learned to focus on the business viability of our project.” Pitching a fully developed business model to judges helped them think about StethoCloud in a new light, in the commercial sense. We asked Dr. Hon if he had any advice for students on getting their idea to market. The answer may surprise you. “It’s empathy!” he says, going on to explain that many engineers focus on creating cool tech, but not on creating tech that will actually meet a real human need. The key to a successful technology is getting to know customers’ pain, learning both their daily frustrations and their larger life problems, he says, adding, “This is the main challenge for young engineers without a lot of life experience. But once you identify a group of people who would love to use your product, you've got your first users! Tech isn't an invention until someone wants it!” Without the compassion he gained from listening to the fears of parents of sick kids, Dr. Hon would never have been able to create a technology, much less create a product for which there is true market demand. Backed by their Imagine Cup experience, CliniCloud also used Microsoft Azure to run the backend for all of their research pilots. “Azure has been a really powerful platform for us to get started on. I highly recommend it to students just starting out,” says Dr. Hon. If you’d like to follow in Dr. Hon’s and Dr. Andrew’s footsteps, consider registering for this year’s Imagine Cup. And while you’re at it, give yourself a few practice rounds and enter our newest coding competitions. The Hello Cloud competition, the Big Ideas challenges and even Imagine Cup Earth (for younger coders) can really help sharpen the skills you’ll need to compete in Imagine Cup! And don’t forget to sign up for Microsoft Azure (at no cost, no credit card required) and start coding for the cloud today, just like Dr. Hon!

Posted by on 6 October 2015 | 11:00 am

First, try reading the error message, episode 4: Even programmers see error messages without reading them

Same story, different details. It's the same internal programmer's tool which I have been calling Program Q. Many people have written scripts that help to manage your q tables. I'm trying to fribble my q table, but the fribble script gives me the following error: fribble: Error: Could not refresh counterbalances. Please manually run q refresh frib1 frib2 -r library What does this mean, and what should I do? Apparently, this programmer just froze up and stopped reading at the word "error". The error message is two sentences long. The first sentence answers the first question. The second sentence answers the second question. I can't even explain this away as a TL;DR. How can two sentences, each of which answers a question you asked, count as TL?

Posted by on 6 October 2015 | 9:00 am