Kickstarting your first Cloud Enabled App–Part 1

  In this blog post we will be covering Azure Mobile Services, one of the popular PaaS (Platform as a Service) workloads on Microsoft Azure. Mobile services is a cloud-based backend service to client applications, and contrary to belief, it is supports non-Microsoft platforms such as iOS, Android and cross platform tools such as Xamarin, PhoneGap and HTML/JavaScript. It is a super easy way to create your, out of the box cloud-enabled mobile application. You can host it as .NET or Node.js web API for the server logic side. It is an auto-scalable and high availability service that can use powerful authentication such as Active Directory or Facebook and can push notifications to individual users and dynamic audiences. Let’s get started with our first mobile service 1. Log into the Management Portal 2. Bottom left, click +NEW 3. Compute > Mobile Service > Create 4. Put in your desired URL in the textbox and wait for name verification. Select Create a free 20 MB SQL database pick the region as North Europe (this is the lowest latency option for now for the Gulf region). Select the backend as JavaScript. Good to know: Although you can create a free 20 MB SQL database in this tutorial, you can also configure the mobile service to connect to a database that you already have. 5. Last step is to fill in the desired name and the login credentials for the database. Good to know: If you choose to select Use an existing SQL database option, you will be prompted to enter the database credentials rather than creating the credentials. After you complete these steps, you’ll see that Azure will create the mobile service. Congratulations! You have your cloud backend up and running. Developing the Client Application Since we have the mobile service up and running now, find the mobile service you have under the mobile services tab from the left and click on it to enter its dashboard. Once you are in the dashboard of your mobile service, you will see a selection of platforms to start developing with. The good thing about mobile services is that it is platform agnostic. You can choose to develop the client side from technologies such as Windows, iOS, Android, HTML/JavaScript, Xamarin, PhoneGap. For this tutorial we will choose Windows platform. On the GET STARTED section, expand the “Create a New Windows or Windows Phone App”. Follow the steps for getting the tools- if you don’t already have them- and click on “Create TodoItem Table” to create the sample table for an example To do item application scenario. The tables you create using the portal will be created and stored in the database that the mobile service is configured to connect. Good to know: In the get started section you can create a new app from scratch or connect the mobile service to any existing code you have. This tutorial will cover creating an app from scratch. After a couple of seconds you will see a confirmation that the table is successfully created. Last step is to download the sample code that is preconfigured to be connected to your very own mobile service you’ve just created. After selecting the language click download and the sample code will be downloaded. Double click the .sln  file to launch Microsoft Visual Studio to start editing the client code. In the Solution Explorer on the left, you will notice something different. The sample you’ve downloaded is actually a Universal App and shares some of the code for both deployments (Windows 8.1 and Windows Phone). Client code will be covered in the next part but for now, let’s build the application and see if everything is on track. In the Solution Explorer on the left, right click the Windows 8.1 project and select “Set as StartUp project”. This will tell visual studio to Run the app as a Windows 8.1 app on the local machine after the build. Alternatively you can right click on the Windows Phone application and use it as the starting project. Application has a textbox that accepts and pushes the input to your mobile service where it is added to the table you’ve created-“ToDoItem”.  On the right side you’ll see the actual to do list and checkboxes. Try typing in a couple of example items and check some of them as completed. This will come handy when we go back to the data to observe the changes. Switch back to the azure portal and click the data tab of your mobile service. Click on the“TodoItem” table to see the content. You can observe the example entries you’ve created are here in the table with pre-created columns. If you tick the to do items from the app, it will disappear from the list and the corresponding complete column record here will be updated as “true”. Now with the sample project in place with the connection to the cloud backend, you can tweak different parts of the code and observe the changes to learn, or modify the project completely to come up with your own scenario. Enjoy! Data validation on the server side logic, authentication and the client side code will be covered in “Kickstarting your first Cloud Enabled App-Part 2“, so stay tuned. For more resources on Mobile Services, don’t forget to check http://azure.microsoft.com/en-us/documentation/services/mobile-services/

Posted by on 26 November 2014 | 5:39 am

Windows Games Ambassador & student Tim Stoddard nominated for a TIGA Games Industry Award

Guest blog by Tim Stoddard, Staffordshire University @Gamepopper Standing out above the crowd My discovery into games development came from an opportunity at A-Levels to make a project on anything, so I decided to make a game using GameMaker 8. I decided to pursue making computer games in University, when I transferred from Computer Science to Computer Games Programming. After making a few games for the Windows Store, I decided I wanted to make one fairly large indie game, and being a student is the best time to do it. So for the duration of a year, I was working on a game part time, during my degree and placement, and mostly on my own. So what is the Game? The game was Secret of Escape, a top-down stealth action game developed in Construct2. The game has since been released on Desura, Itch.io and IndieGameStand, as well as being shown at several game events such as Launch Conference, Norwich Games Expo, Insomnia52 and London Gaming & Anime Con. But out of all the moments I’ve had from making a game, the one that surprised me the most was Secret of Escape being nominated for the TIGA Games Industry Award for Best Student Game. I submitted my game to the awards because I figured it might be a good chance, and the process of entering was straightforward. All you needed to do was enter your details, choose which category you wanted to submitted to, and upload both a copy of your game and a video and give a reason why you should win the award. Then in mid-October I got an email which showed my game as shortlisted for Best Student Game, needless to say I was excited. What is your advice? If there is any word of advice I would give here, it would be this. If you are ever nominated for an award, go to the award ceremony. Not only is it a moment to be proud of an achievement in your career, and is common courtesy to accept an award in person if you win, but an awards ceremony is a big opportunity to network and speak to professionals from all parts of the industry. I had the opportunity of speaking with people from indie developers such as Futurlab (Velocity 2X), Evil Twin Artworks (Victory At Sea), Sumo Digital, all the way up to large studios such as Rebellion (Sniper Elite III) and Bullfrog Productions (Fable Anniversary). Not to mention people who work in Recruitment (Aardvark Swift and Amiqus), Accounting, and Quality Assurance. Of course there was the ceremony, with the nominees of each award being displayed on large monitors, some with footage of the games being shown. I got to see my game being shown during the Best Student Game, and cheer at excitement for seeing it there. I also cheered when Staffordshire University was shown during the Best Education Initiative award. I was also sitting with the developers at Bullfrog, so I gave my support for them too. Sadly I didn’t win, but being nominated and going to the award ceremony is definitely one of the highlights as a game developer. Hopefully one day I’ll return and take a trophy home with me, so I guess it’s time to start working now.. Tim excellent stuff and great to see you making the right steps! So if your a student and interested in standing out above the crowd go and build a game for the players and not for yourself!! Enter the www.Imaginecup.com gaming competition or individual competition like http://gradsingames.com/competitions/search-for-a-star/ and http://gradsingames.com/competitions/sumo-digital-rising-star/

Posted by on 26 November 2014 | 5:33 am

Get ready for the Hour of code - Sign up today

It’s that time of year, the nights are dark, the weather has turned colder, Xmas jingles are playing in the shops and the thoughts of everybody turns to one great celebration. That’s right it’s the time of year for the Hour of Code. Ok , I know we had one in March, but this year this great event has been brought into line with the Global Hour of Code event. Now I know what it is like at Xmas in schools, not only have you the pressures of ensuring that all the curriculum is delivered , but there are possibly the more important details of Xmas performances to consider. At times like those I found I need a low teacher input activity, with a maximum learning opportunity. There were only so many Xmas Cards my class could colour in!. So this brings me to the Hour of Code. So for the uninitiated the Hour of Code is a campaign run by Code.org, the non-profit dedicated to promoting computer science education. The initiative asks schools, teachers and parents across the country to code for an hour, and help introduce more than 10 million students of all ages to computer programming. Last year’s Hour of Code involved over 3 million people, all taking part in a hour of code activity. Take a look at last year’ event. The Hour of Code website is the place to start. The site is fun and visual for teachers and students so that when you sign up on http://hourofcode.com/uk you will see your school on the world map next to all the other schools participating. 20 classrooms from those signed up before December 8 will win a video chat with a very special guest ranging from founders of technology companies like Michael Smith of Moshi Monsters, engineers working on incredible projects and companies like Microsoft, to influencers in the digital world like Joanna Shields. Everyone completing an Hour of Code will also receive a signed certificate. Sign up today, Santa is Watching !

Posted by on 26 November 2014 | 5:10 am

Building a Azure Backend for an Android App

  One of the great things about Windows Azure is its platform agnostic So if your building games for Android check out the following videos by Dave Douglas http://www.deadlyfingers.net/ a fellow Microsoft Technical Evangelist on building a Azure backend to your game. Part 1 Create android app with cloud backend (Part 1: Azure Mobile Service) http://youtu.be/EV6DPafCntA Part 2 Create android app with cloud backend (Part 2: Table Permissions and OAuth) http://youtu.be/ige5xpDsJuk Part 3 Create android app with cloud backend (Part 3: Push Notifications) http://youtu.be/Zx78vrELgXk If your interested in trying out Azure apply online at www.azure.com or register for our special game dev offer http://aka.ms/gamedevoffer

Posted by on 26 November 2014 | 5:06 am

Microsoft Innovation Center Lahore, Internship Program, batch 6

Microsoft Innovation Center - Lahore is about to start its 6th batch of five months Internship Program. MIC Lahore will offer them trainings, mentorship and support needed to learn, develop and publish their apps on Universalplatform of Windows Store and Windows Phone powered by Windows Azure. They'll also get opportunity to attend trainings for Unity for gaming, ASP .NET, SharePoint and Microsoft Dynamics. MIC Lahore team will help them convert their ideas into reality and take them to international arena.Only Final Year & Fresh Graduates should ApplyMandatory: Make sure you have successfully completed following three courses at Microsoft Virtual Academy to get maximum advantage at the internship, Security Fundamentals Create Web Apps with ASP .NET DevOps: An IT Pro Guide Attach the updated resume highlighting the development skills and brief about the idea you want to transform into reality. Don't forget to attach MVA profile link in your CV. Indicate your availability as full time or part time internship (if part time, please specify time). Send your resume to Hamza Anjum (b-haanju@microsoft.com), CC mic_lahore@outlook.com no later than 5th Dec, 2014. - For Further Details: Please visit MIC Lahore page at www.facebook.com/mic.lhr.pk  or contact 042-35972044-45. - You can always visit MIC Lahore at Office # 501, Level 05, Arfa Software Technology Park - Ferozepur Road Lahore.

Posted by on 26 November 2014 | 5:00 am

「あいちゃれ2014」ファイナルを観戦して感じたこと

皆さん、こんにちわ。日本マイクロソフトのエバンジェリストの渡辺です。 11/22に開催された立命館大学主催の全国高校・大学ソフトウエア創作コンテスト(ICT Challenge + R)「あいちゃれ 2014」のファイナルを観戦してきました。6月のキックオフイベント、Microsoft x あいちゃれ「世界に挑戦する開発講座/入門編」で登壇させていただき、今年は、ぜひファイナルを見学させていただこうと思っており、観戦を楽しみにしておりました。 コンテストの様子は、下記のリセマムさんの記事を参照ください。 ・「あいちゃれ 2014、都立高2年の佐藤怜さんが最優秀賞・・・多くの審査員が賞賛」  ・「あいちゃれ 2014、企業の視線も熱い大学生のソフトウエア作品」  今回の「あいちゃれ」では、マイクロソフトディベロップメント株式会社が協賛企業となり、立命館大学OGでもあるマイクロソフトディベロップメントの藤原淳子さんが、審査員を担当されました。近年、学生向けの様々なイベントは、首都圏での開催が多く、地方の学生さん(特に「あいちゃれ」は関西の学生さん)にとっては、貴重なチャンスであると思います。今回は、ファイナルを観戦しただけですので、コンテスト全体についてのコメントは、できませんが、ファイナルを見て感じたことを書いてみたいと思います。 良かった点、ポジティブに感じた点。 1.高校部門の作品レベルが高いと思いました。これは、AO入試特典(立命館大学情報理工学部AO選抜入学試験の「自作ソフトウエア提出」免除、満点扱い)の影響もあるのかもしれませんが、個人的には、大学部門の作品よりも、発想も柔軟で技術的な野心(チャレンジ)、可能性を高校部門の作品に感じました。特に、マイクロソフト賞を受賞した大阪電気通信大学高校 南艸優一郎さんの「Sound Divide」は、視覚障碍者と健常者が同等に遊べるゲームということで、マイクロソフトの学生向けコンテストであるImagine Cupにも通じる作品で、ぜひ、発展させてチャレンジしてほしいと思いました。 2.ファイナルに参加できる作品数が多いこと。ステージで発表できるチーム数は、高校と大学あわせて13チーム。その他に、ブースで作品を展示できるチーム数が、高校と大学あわせて16チーム。合計29チームの作品を見ることができました。審査側の視点にたてば、非常に大変なのですが、参加する学生さんにとっては、チャンスが広がっているということで、素晴らしいことだと思いました。 渋谷教育学園渋谷高校の齋藤主裕さんのブース展示作品「NineNine」は、Excelをインタフェースにしたゲーム作品です。ロジック部分はC#で記述して、Excelからモジュールを呼び出してゲームを実現しています。   St.Joseph High School of Hiloの廣田大地さんのブース展示作品「DVJsystem」は、スマホをペンライン(サイリウム)として使えるソリューション。登録したスマホの光る色をシステム側で制御できるので、ライブ会場の演出として使うと面白そう。個人的に気に入った作品でした。   ネガティブというか、少し残念に感じた点。 1.ステージで発表したチームには、全体的な印象として、もう少しプレゼンテーションを頑張ってほしいと思いました。非常に素晴らしい発表をしているチーム(人)もいましたが、かなりラフ(自由)に、ざっくりと発表されているチーム(人)もいて、少し残念に思いました。緊張せずに伸び伸びと発表することや自分のスタイルで発表することは否定しませんが、プレゼンテーションは、最終的に自身の作品の良さや内容を伝えることができるかどうかです。とても良い作品を作っているのに、プレゼンが勿体ないなと感じるチームがいくつかありました。 2.もっともっとダイバーシティと国際性を!以前、U22プログラミングコンテストの時も同じことを書きましたが、ファイナルの登壇者は、男子学生がほとんどでした。女子学生で、メインでプレゼンした人はいなかったと記憶しています。日本の男女比率は、ほぼ1対1で、世の中にあるソフトウエア、アプリは、老若男女すべての人が利用します。この分野への女性(女子学生)の進出を本当に願っています。今回、マイクロソフトディベロップメントから審査員として参加した藤原淳子さんは、学生時代からプログラミングが大好きだったそうです。そういう女性(女子学生)をもっと増やしていきたいです。そして、この国内のコンテストに満足することなく、自身の作品を世界に問う学生さんに出てきてほしいです。 キックオフイベントでも言いましたが、今回ファイナルに出場された学生の皆さんは、ぜひ、次は世界を目指してください。Imagine Cup へのチャレンジお待ちしています。            

Posted by on 26 November 2014 | 3:36 am

回顾VS Online八月十四日的故障

[原文发表地址] Retrospective on the Aug 14th VS Online outage [原文发表时间] 8-22-2014 11:10 AM 上周四我们有一个很严重的故障持续了5个多小时。故障表现为性能极其的糟糕,以至于这个服务对于大多数人来说基本是不可用的(尽管采取了各种各样的缓解措施也只能断断续续的访问)。故障开始于UTC时间14:00,结束于UTC时间19:30前。从故障的持续时间和严重程度上来说,这是VS Online有史以来最严重的一次事故。 为此我们感到非常糟糕,我们也将继续致力于做好每一件我们能做的事以防止故障。我很抱歉此次故障所造成的问题。整个团队从周四到周日不知疲倦地工作来解决眼前的健康问题并且修复潜在的可能导致复发的缺陷。 正如你可能想到的,在过去的一周,我们非常努力的工作试图了解发生了什么以及我们做什么更改才能防止这样的事情再次发生。要想找到触发故障的确切证据往往是十分难的,但是你可以通过仔细的研究来学习更多的东西。 关于这一类的故障,我经常问一些问题,包括: 发生了什么? 实际情况是,一个核心SPS(共享平台服务)数据库不堪数据库更新的重负,并且开始严重排队所以阻止了调用者。由于SPS是身份认证和授权过程的一部分,所以我们不能只是完全忽视它 - 虽然我建议当它变得非常缓慢的时候可以那样做,即使我们绕过一些授权检查以保证服务的及时响应,这也并不意味着就是世界末日。 触发器是什么?什么使它在今天发生了而不是昨天也不是其他任何一天? 虽然我们已经很努力的在解决这个问题了,但是仍然没有任何明确的答案(不过我们仍在���续)。我们知道,事发前,一些配置的更改导致“TFS”服务和“SPS”(共享平台服务)之间的通信量显著增加。这些通信量包括对已禁用的附加许可证的检测。我们也知道,大约在同一时间,我们看到了延迟的和未能交付的服务总线消息。我们相信其中一个或者两个就是关键触发因素,但是我们丢失了一些SPS数据库访问的日志,因此没办法100%确定。希望在接下来的几天里,我们会知道更多。 “根源”是什么? 在某种意义上讲它不同于触发器,触发器通常是一个导致一些连锁效应的条件。而根本原因更多的是理解为什么会级联以及为什么会把系统搞垮。我相信事实会证明,根本原因就是我们已经累积了一系列错误,才导致SPS数据库有很多额外的工作要做,同时系统也不稳定 – 从性能的角度来看。仅仅在系统上做几个操作 – 以额外的身份认证和许可证发放形式导致这些错误的连锁反应。其中大多数是在最近几次的Sprints引进的。下面是到目前为止我们发现并修复的核心错误列表: 大量从TFS到SPS的请求引起对“TFS服务”身份特性的不当更新。这将引起SQL写争论,同时无效的身份通过服务总线消息从SPS发送到TFS。此消息引起应用层缓存无效,随后的TFS请求就会发送一个请求到SPS,造成进一步的属性更新和一个恶性循环。 401中的错误处理代码将会对身份进行更新,这将导致身份的缓存无效-没有恶性的循环但是有许多额外的缓存刷新。 Azure门户扩展服务里的一个错误每5秒就会触发一个401错误。 一个旧的行为从每个SPS AT引起同样的无效“事件”(用户1在AT1无效,用户2在AT2无效,那么用户1将收到两次失效)。我们有四个AT,所以这将有一个很严重的乘法效应。 我们还找到/修复了几个“加重的”错误,它们使得形势更加恶化,但不会坏到对它们自身引起严重的问题: 许多易变的属性也被存储在身份的扩展属性中,这会造成重复的缓存失效,大量的“更改推送通知”将被发送给不在乎属性更改的监听器。 有几个地方即使没有更改也会更新属性,如此便会造成没必要的失效和SQL旅程。 所有的这些,在某种形式下都随着对系统身份的更改而改变,这将会导致广播更改推送通知(有些情况下会过分传播),同时引起额外的进程/更新/缓存失效。这是不稳定的,因为这些身份更新中任何导致不期望的负载增长的东西,都会由于乘法效应和循环而无法控制。 从此次事件中我们学到了什么? 我一直想超越并理解底层模式。有时候也被称为“5个为什么”。事实上这也是列表中最重要的问题。为什么会发生这件事,我们能做些什么?而不是我们遇到了什么错误。为什么会出现这些错误?我们应该怎么做,以确保进入生产环境前,在设计/开发过程中就抓到这些问题? 先给大家讲个故事吧。这得从2008年说起,那时候我们首次将TFS横跨Microsoft的非常大的团队进行试运行,我们曾遇到一个灾难性事件。我们极度低估了成千上万的用户和大规模构建实验室将被放到TFS上这一负载。有将近九个月的时间我们如同活在地狱中一样,在严重的性能问题下,系统每天都在痛苦地减速,许多人给我发送厌恶的邮件。 从中我最大的收获就是,你绝对不能相信抽象概念里说的何时会遇到性能问题。在那种情况下,我们将SQL Server作为了一个关系数据库。最后我才知道真的不是这样的。它只是一个在磁盘I/O之上的软件抽象层。如果你不知道在磁盘I/O层发生了什么,你就什么也不会知道。你的无知也许是幸福的-但是当你遇到10x或者100x规模/性能需求的时候,你将完全精疲力尽。我们开始深深研究SQL磁盘布局,主要寻求,数据密度,查询计划等等。我们由上到下流动优化,确保我们能够了解所有CPU和 I/O的走向等。当我们做到这些时,TFS将扩到无比大的团队和代码库。 之后我们会做回归测试,这样会衡量更改,不仅仅及时而且是围绕着SQL旅程等等。 回到上周四…是我们草率了。这次马虎可能太严重了。对所有的团队来说,我们陷入了是自食苦果还是按客户需求增加功能的两难境地。在推动快节奏的过程中,估价每个Sprint等,我们允许了一些工程回归然后衰退-或者更确切地说,就是不把它带到我们正在写的新的代码中。我相信这是根本原因 - 开发者不能完全理解他们所做的一个更改的开销/影响,因为我们在跨软件/抽象层没有充分的可见性,而且当代码更改触发操作在整个资源耗费操作中显著增加时,我们也没有自动化的回归测试来标记。当然,你也可以在人工的测试环境中做这个,例如单元测试,也可以在生产环境中做,因为在你的测试中你抓不到任何东西。 所以,我们已经修了一些错误,在TFS和SPS交互方面还有不少的债务要进行处理,更重要的是我们需要加入一些基础建设,以便更好的在端到端开销上衡量和标记更改 – 在测试和生产中都可以。 讽刺(不是喜剧而是悲剧)的是最近团队才在这一点上有一些重新关注。几周之前,我们刚为小范围的团队人员准备了“编程马拉松”来试验新的想法。其中一个团队构建了一个解决方案的原型,用来捕获一个端到端请求的重要性能跟踪信息。在接下来的两周,我会试着写一篇博客来展示其中的一些想法。在此次事件前的那一周Buck(我们的开发总监)和我关于这个特殊的场景是否需要更多的投入曾进行过一次谈话。不幸的是我们还没有解决这个差距呢就发生了这个严重的事件。 我们将要做什么? 好的,我们学到了很多,但是关于此事我们到底要做什么呢。显然第一步是平息突发事件,让系统快速的回到可持续的健康状态。我想现在我们可以做到了。但是我们还没有解决根本原因。所以,下面是我们所做的计划,包括: 我们将分析所有SPS内部的,SPS和SQL之间的请求模式,构建正确的遥测技术和警报,以尽早捕获各种情况。添加基线到单元和功能测试,如此当开发人员check in代码的时候将不会更改基线。 划分测量SPS配置数据库将会成为高优先级的任务。启用了租户级别的主机后,我们就能够为每个租户划分身份相关的信息。这样我们就可以跨数据库分割SPS数据,在一个事件中启用更高的“上限”和更强的独立性,那么事情再也不会如此糟糕了。 我们正在研究为一个服务构建一个从慢速或者失败的依赖中节流和恢复自身的功能。我们应该为TFS和SPS交互使用同样的技术,让TFS 优雅的利用缓存状态或者失败。(这实际上也是我们几个月前或者更早的故障中遗留的一个行动项。) 我们应该测试我们关于服务总线提交滞后的设计,以便确保我们的功能继续工作或者缓慢降低。 看一看服务总线的API和分割主题,这将帮助我们更好的划分以便处理像身份认证这样的更“热门”的主题。 和之前一样,希望您能从我们犯的错误中获得一些有价值的详细信息。感谢您的支持。 Brian

Posted by on 26 November 2014 | 3:31 am

My Study Life - a planner for students, teachers and lecturers

The following is a guest post from Gerald Haigh. In November 2013, Jade Mulders blogged here about developer Jamie Clarke and his ‘My Study Life’ app.  A little later, at BETT 2014, I met Jamie for myself. We had a brief conversation while I was perched on something that I was uncomfortably aware was not a chair, and I attempted to tune my vintage hearing into our conversation against the background roar of that huge Excel Centre main exhibition hall. It was something of a relief, then, to talk to him on the phone the other day, several months after that meeting, and let him update me. Many people who talk and write about Jamie mention how young he is. I’m not sure that’s the main thing about him. For one thing, to me everybody else is young, so it’s no big deal, and in any case, since the arrival of apps, and tools such as Microsoft’s ‘TouchDevelop’, coders are getting younger all the time. Earlier this year in fact, Tim Bush blogged here about thirteen year old developer Ross Lowe. No, the remarkable thing about Jamie is the way he saw a problem, converted it into an opportunity, and then set about developing a solution, using not only the skills he already had, but new ones that he gathered along the way. Jade’s blog describes how Jamie saw through the complexities of school life – departments using their own software solutions, paper planners used to plug gaps in functionality. Most students and teachers, I guess, go along with the inadequacies of whatever structure they’re working within, taking it for granted, devising their own way of dealing with it, performing mental shifts and small feats of memory along the way. Jamie wasn’t having any of that. He saw that he could provide, for students, on their phones, a single-access-point tool which would enable them to navigate their study life – at school and at home. Jade’s blog describes, with basic technical detail, how Jamie created ‘My Study Life’ so that it can answer those basic questions such as, ‘What classes do I have today? Is it week A or B? When is that essay due? What should I be revising for that exam?’ You could actually go on at length describing the particular features of ‘My Study Life’, but the best thing is to take the online tour on the website or, better still, download the free My Study Life app and ask a student to live with it for a while. They’ll soon realise that it’s put together by someone who’s been in the real world of the classroom and understands the quirks and tricks of timetables, and the particular priorities of students, in a way that a general adult-world developer probably won’t. As Jamie says, “’My Study Life’ is completely aimed at the students. There are companies which try to deliver something similar, but they are targeted at the schools or the teachers. Nobody else is targeting the students and they are the ultimate customer.” All that means, of course, that Jamie’s youth, which I glossed over at the start, probably does matter after all, but in the sense that it gives him an insider’s view of the problem. It’s the same principle as finding a nurse to develop software for running a hospital ward (have they tried that?). In the end, the proof of the pudding is in the eating as they say, and ‘My Study Life’ has been consumed with gusto across the whole world. By early 2013, the app had 60,000 users at which point, says Jamie, ‘That’s when I knew it could be more than a hobby’. By the time of our Bett 2014 meeting ‘My Study Life’ was updated on the web, Windows 8 and Windows Phone with a new design and new features. An Android app was also released. Growth has continued. An iOS app came in August 2014, and a version of ‘My Study Life’ for teachers is in private beta testing at the moment. At the time of our call those 60,000 users of early 2013 had grown tenfold to 600,000. The geographical spread is global – Europe, Africa, America, Australasia, India and the Middle East which is astonishing given the variety of school systems and cultures involved, all of which Jamie’s team have worked hard to accommodate. ‘My Study Life’ will be at BETT 2015 in January as part of BETT Futures. You can find Jamie and his team on stand BFG9. Whether you’re a student, a teacher, a parent or just someone interested in a great story of development, enthusiasm and sheer entrepreneurial nous, you’ll find something there to enjoy.  

Posted by on 26 November 2014 | 2:30 am

My Study Life - a planner for students, teachers and lecturers

The following is a guest post from Gerald Haigh. In November 2013, Jade Mulders blogged here about developer Jamie Clarke and his ‘My Study Life’ app.  A little later, at BETT 2014, I met Jamie for myself. We had a brief conversation while I was perched on something that I was uncomfortably aware was not a chair, and I attempted to tune my vintage hearing into our conversation against the background roar of that huge Excel Centre main exhibition hall. It was something of a relief, then, to talk to him on the phone the other day, several months after that meeting, and let him update me. Many people who talk and write about Jamie mention how young he is. I’m not sure that’s the main thing about him. For one thing, to me everybody else is young, so it’s no big deal, and in any case, since the arrival of apps, and tools such as Microsoft’s ‘TouchDevelop’, coders are getting younger all the time. Earlier this year in fact, Tim Bush blogged here about thirteen year old developer Ross Lowe. No, the remarkable thing about Jamie is the way he saw a problem, converted it into an opportunity, and then set about developing a solution, using not only the skills he already had, but new ones that he gathered along the way. Jade’s blog describes how Jamie saw through the complexities of school life – departments using their own software solutions, paper planners used to plug gaps in functionality. Most students and teachers, I guess, go along with the inadequacies of whatever structure they’re working within, taking it for granted, devising their own way of dealing with it, performing mental shifts and small feats of memory along the way. Jamie wasn’t having any of that. He saw that he could provide, for students, on their phones, a single-access-point tool which would enable them to navigate their study life – at school and at home. Jade’s blog describes, with basic technical detail, how Jamie created ‘My Study Life’ so that it can answer those basic questions such as, ‘What classes do I have today? Is it week A or B? When is that essay due? What should I be revising for that exam?’ You could actually go on at length describing the particular features of ‘My Study Life’, but the best thing is to take the online tour on the website or, better still, download the free My Study Life app and ask a student to live with it for a while. They’ll soon realise that it’s put together by someone who’s been in the real world of the classroom and understands the quirks and tricks of timetables, and the particular priorities of students, in a way that a general adult-world developer probably won’t. As Jamie says, “’My Study Life’ is completely aimed at the students. There are companies which try to deliver something similar, but they are targeted at the schools or the teachers. Nobody else is targeting the students and they are the ultimate customer.” All that means, of course, that Jamie’s youth, which I glossed over at the start, probably does matter after all, but in the sense that it gives him an insider’s view of the problem. It’s the same principle as finding a nurse to develop software for running a hospital ward (have they tried that?). In the end, the proof of the pudding is in the eating as they say, and ‘My Study Life’ has been consumed with gusto across the whole world. By early 2013, the app had 60,000 users at which point, says Jamie, ‘That’s when I knew it could be more than a hobby’. By the time of our Bett 2014 meeting ‘My Study Life’ was updated on the web, Windows 8 and Windows Phone with a new design and new features. An Android app was also released. Growth has continued. An iOS app came in August 2014, and a version of ‘My Study Life’ for teachers is in private beta testing at the moment. At the time of our call those 60,000 users of early 2013 had grown tenfold to 600,000. The geographical spread is global – Europe, Africa, America, Australasia, India and the Middle East which is astonishing given the variety of school systems and cultures involved, all of which Jamie’s team have worked hard to accommodate. ‘My Study Life’ will be at BETT 2015 in January as part of BETT Futures. You can find Jamie and his team on stand BFG9. Whether you’re a student, a teacher, a parent or just someone interested in a great story of development, enthusiasm and sheer entrepreneurial nous, you’ll find something there to enjoy.  

Posted by on 26 November 2014 | 2:30 am

My Study Life - a planner for students, teachers and lecturers

The following is a guest post from Gerald Haigh. In November 2013, Jade Mulders blogged here about developer Jamie Clarke and his ‘My Study Life’ app.  A little later, at BETT 2014, I met Jamie for myself. We had a brief conversation while I was perched on something that I was uncomfortably aware was not a chair, and I attempted to tune my vintage hearing into our conversation against the background roar of that huge Excel Centre main exhibition hall. It was something of a relief, then, to talk to him on the phone the other day, several months after that meeting, and let him update me. Many people who talk and write about Jamie mention how young he is. I’m not sure that’s the main thing about him. For one thing, to me everybody else is young, so it’s no big deal, and in any case, since the arrival of apps, and tools such as Microsoft’s ‘TouchDevelop’, coders are getting younger all the time. Earlier this year in fact, Tim Bush blogged here about thirteen year old developer Ross Lowe. No, the remarkable thing about Jamie is the way he saw a problem, converted it into an opportunity, and then set about developing a solution, using not only the skills he already had, but new ones that he gathered along the way. Jade’s blog describes how Jamie saw through the complexities of school life – departments using their own software solutions, paper planners used to plug gaps in functionality. Most students and teachers, I guess, go along with the inadequacies of whatever structure they’re working within, taking it for granted, devising their own way of dealing with it, performing mental shifts and small feats of memory along the way. Jamie wasn’t having any of that. He saw that he could provide, for students, on their phones, a single-access-point tool which would enable them to navigate their study life – at school and at home. Jade’s blog describes, with basic technical detail, how Jamie created ‘My Study Life’ so that it can answer those basic questions such as, ‘What classes do I have today? Is it week A or B? When is that essay due? What should I be revising for that exam?’ You could actually go on at length describing the particular features of ‘My Study Life’, but the best thing is to take the online tour on the website or, better still, download the free My Study Life app and ask a student to live with it for a while. They’ll soon realise that it’s put together by someone who’s been in the real world of the classroom and understands the quirks and tricks of timetables, and the particular priorities of students, in a way that a general adult-world developer probably won’t. As Jamie says, “’My Study Life’ is completely aimed at the students. There are companies which try to deliver something similar, but they are targeted at the schools or the teachers. Nobody else is targeting the students and they are the ultimate customer.” All that means, of course, that Jamie’s youth, which I glossed over at the start, probably does matter after all, but in the sense that it gives him an insider’s view of the problem. It’s the same principle as finding a nurse to develop software for running a hospital ward (have they tried that?). In the end, the proof of the pudding is in the eating as they say, and ‘My Study Life’ has been consumed with gusto across the whole world. By early 2013, the app had 60,000 users at which point, says Jamie, ‘That’s when I knew it could be more than a hobby’. By the time of our Bett 2014 meeting ‘My Study Life’ was updated on the web, Windows 8 and Windows Phone with a new design and new features. An Android app was also released. Growth has continued. An iOS app came in August 2014, and a version of ‘My Study Life’ for teachers is in private beta testing at the moment. At the time of our call those 60,000 users of early 2013 had grown tenfold to 600,000. The geographical spread is global – Europe, Africa, America, Australasia, India and the Middle East which is astonishing given the variety of school systems and cultures involved, all of which Jamie’s team have worked hard to accommodate. ‘My Study Life’ will be at BETT 2015 in January as part of BETT Futures. You can find Jamie and his team on stand BFG9. Whether you’re a student, a teacher, a parent or just someone interested in a great story of development, enthusiasm and sheer entrepreneurial nous, you’ll find something there to enjoy.  

Posted by on 26 November 2014 | 2:30 am

Data-Driven Quality explained – part 1: questions? what questions?

  To learn more, visit my new blog at http://www.setheliot.com/blog/2014/11/24/ddq1/  

Posted by on 25 November 2014 | 10:39 pm

Perth and Melbourne Education Partner Training - places still available for 3/11 December

Invitation to Microsoft Education Authorised Education Resellers This event is for Microsoft Partner Network members and Microsoft Authorised Education Resellers We’ve had consistent feedback from our partners that our education-focused training for you has been hitting the mark, and you’d like to ensure that it reaches all of the people in your teams, as well as keeping you completely up-to-date with changes in the market and our education portfolio and strategies. This month we've been running interactive workshops in Sydney and Brisbane, and the final two are just around the corner in the next two weeks. We’re heading to Perth on 4th December, and Melbourne on the 11th, alongside the Office 365 Ignite summits. The format that we've been using is a roundtable discussion, and with the help of slides, whiteboards and customer stories, have been able to cover each attendees individual agenda.   Growing your reach in a changing marketplace. Education is in the midst of historic transformation and the rise of technology in the classroom is creating tremendous opportunity for our partners. Just about every government and school system in the world is considering digital access programs and, starting in 2015, new global standards will assess how well schools are helping students develop 21st Century Learning Skills, including critical thinking, technical aptitude and collaboration, driving education institutions globally to look for solutions that will help them effectively integrate technology. Microsoft and its partners are uniquely positioned to enable this transformation by providing creative and robust solutions across enterprise management, security, support services, and learning solutions. In this training, focused primarily on sales readiness, participants will deep dive into the Education opportunity, learn the Microsoft vision, as well as how partners can grow their business by selling and deploying solutions across Windows, Office, and Azure to accelerate common education scenarios. A single day covering cloud solutions for education built on Office 365 and Microsoft Azure. Keynote The day will start with an overview of the global and Australian education marketplace, and how you can respond to the hot topics that are currently top of mind for education decision makers within the schools, TAFE and universities market. Morning During the morning, we will take a deep dive into Office 365 Education, and how you can help customers tap the communication, authoring and collaboration capabilities, as well as exploring the integration opportunities that will help you sell and deploy solutions in the education market. Afternoon During the afternoon session, we will review customer-specific scenarios, to help you to quickly identify appropriate solutions for different segments of the education market, and meet the customers’ requirements. This will include a look at third-party solutions for specific scenarios. The afternoon will close with a look at how the Microsoft Azure cloud helps you to deliver customer solutions.   There's still a few places available around the table. Use the links below to sign up: Microsoft Perth – Wednesday 3 December Microsoft Melbourne – Thursday 11 December This event is for Microsoft Partner Network members and Microsoft Authorised Education Resellers

Posted by on 25 November 2014 | 10:32 pm

Which Windows device do I buy for students (or recommend for BYOD)?

After writing about the $90 7” Windows tablet two days ago (called the Pendo Pad) being sold by Coles, I thought I should spend a little more time on the range of options available for students/schools this summer, because there’s such a range of different devices, and I really don’t think that there’s a single option that will suit everybody. As there’s such a wide range of devices, its key to have a list of criteria to allow you (or to help parents) to cancel out some of the options quickly. When I think about different computer options for education, I think about a few key things: What screen size do you need? I don’t believe that ‘bigger kids need bigger screens, and smaller kids…’, so I think you should start with the kind of tasks students will be doing, and where they are likely to be using their device. Do you want a keyboard integrated (like a laptop) or convertible (where the screen swivels) or 2 in 1 (a tablet with a detachable keyboard)? I believe that almost all students are going to need a keyboard for their work, and that in many cases having a keyboard as part of the device design, rather than a separate option, makes sense Do you need a stylus? There are lots of scenarios (like note taking and graphic work) where what they do with a stylus will ensure that a student retains more knowledge, and extends their learning in new directions. All the devices below have touch screens. How powerful does it need to be? There used to be a time when I would always buy a new laptop with the most powerful processor I could, and the biggest storage option. But now I’d choose the processor speed according to the main job I’m going to use a laptop for, and I’ll use OneDrive cloud storage to avoid having everything on my hard drive anyway. What does it weigh? Although it’s the textbooks in my daughters backpack that weigh it down, a 2 kg laptop is going to make things worse, so I do ask myself “What will this feel like in a backpack?” What price do I want to pay? I’ve always believed you get what you pay for in most cases, and where a computer is twice the price than another, there will be a clear reason. So here’s a look at a range of devices that are well suited for Australian education customers, and are available through Australian suppliers. I’ve grouped them by approximate price band based on what they sell for in Australia, and today I’m going to deal with the sub-$600 category. Ideal devices for schools up to $600 Device Screen Size Type Pen? Processor Weight Price Asus Eeebook X205TA 11.6” Laptop No Atom <1kg $349 Acer Travelmate B115 11.6” Laptop No Pentium 1.3kg $359 Acer Aspire Switch 10 Pro 10.1” 2 in 1 Yes Atom <600g $549 Intel Classmate 10” Laptop Yes Atom <700g $549 Asus Transformer T100TA 10.1” 2 in 1 No Atom <700g $599 Dell Inspiron 11 3000 Series 11.6” Convertible No Celeron 1.4kg $599 HP Pavilion x 360 13.3” Convertible No Celeron or Pentium 1.4kg $599 Take a look at the full recommendations for all devices across all price ranges

Posted by on 25 November 2014 | 10:28 pm

[Corona SDK] 用 CoronaCards 來開發 Windows Phone程式教學 Part 3

作者: 魏蘶(感謝台灣 Microsoft 資深平台架構經理 Herman Wu 的大力協助)(感謝 Corona SDK 台灣區大使 Bob Yeh 大力協助)   1.如果還沒有admob帳號的話,要到admob的網站申請帳號。之後幫自己的程式申請的一個廣告ID。上面步驟都做完後,到Google Mobile Ads SDK網站,下載給Windows Phone8的SDK。 2.下載後的壓縮檔解壓縮後,找到其中一個名為「GoogleAds.dll」的檔。把這個檔存在容易找到的路徑。比方我在C槽下面陸續開了很多個資料夾,把「GoogleAds.dll」存在 C:\dev\mobile\libraries\windows-phone\admob中。 3.回到Visual Studio,按下右邊欄Properties後,左邊應用程式選項中,確認「目標Windows Phone OS版本」選的是Windows Phone 8.0。因為Google Admob廣告目前只有支援Windows Phone 8.0。 4.在右邊欄選取WMAppManifest.xml之後,在左邊視窗上方選取 [功能]。把這個頁面中,下列的選項打勾 ID_CAP_MEDIALIB_AUDIO ID_CAP_MEDIALIB_PLAYBACK ID_CAP_NETWORKING ID_CAP_SENSORS ID_CAP_WEBBROWSERCOMPONENT 5.在右邊欄的 [參考] 上面按下右鍵。選擇 [加入參考]。 6.選擇在step2下載存檔的「GoogleAds.dll」檔案。 7.在右邊欄選擇 [MainPage.xaml] > [MainPage.xaml.cs]。雙擊打開檔案,就可以在左邊的視窗看到MainPage.xaml.cs的程式碼。如上圖,請先在上面一大串using的程式碼下面,新增下面三行 using CoronaLabs.Corona.WinRT; using System.Diagnostics; using GoogleAds; 8.在同一檔案 [MainPage.xaml.cs] 的下面,找到MainPage這個Class。在MainPage()函式之前,如上圖寫上下面的程式碼: (*注意 >> “把你的廣告ID寫在這邊”這行要換成你的廣告ID ) AdView bannerAd = new AdView {   Format = AdFormats.Banner,   AdUnitId = “把你的廣告ID寫在這邊”, }; 9.如上圖,在MainPage()函式結束之前,在MainPage()函式中加入下面的程式碼: fCoronaPanel.Runtime.Loaded += OnCoronaRuntimeLoaded; bannerAd.ReceivedAd += OnAdReceived; bannerAd.FailedToReceiveAd += OnFailedToReceiveAd; bannerAd.VerticalAlignment = VerticalAlignment.Bottom; bannerAd.Visibility = Visibility.Collapsed; //Visible or Collapsed fCoronaPanel.Children.Add(bannerAd); AdRequest adRequest = new AdRequest(); //adRequest.ForceTesting = true; bannerAd.LoadAd(adRequest); 10.在MainPage()函式結束之後,MainPage這個Class結束之前,[也就是說在MainPage()函式的外面,MainPage類別的裡面,]如圖寫下下面的函式: private void OnCoronaRuntimeLoaded(object sender, CoronaLabs.Corona.WinRT.CoronaRuntimeEventArgs e) { // Register bridges with corona. e.CoronaRuntimeEnvironment.AddEventListener(“ShowAd”, Native_ShowAd); e.CoronaRuntimeEnvironment.AddEventListener(“HideAd”, Native_HideAd); } public ICoronaBoxedData Native_ShowAd(CoronaRuntimeEnvironment sender, CoronaLuaEventArgs e) { Debug.WriteLine(“Loading google interstitial ad…”); bannerAd.Visibility = Visibility.Visible; return CoronaBoxedBoolean.True; } public ICoronaBoxedData Native_HideAd(CoronaRuntimeEnvironment sender, CoronaLuaEventArgs e) { bannerAd.Visibility = Visibility.Collapsed; return CoronaBoxedBoolean.True; } private void OnAdReceived(object sender, AdEventArgs e) { Debug.WriteLine(“Received ad successfully”); } private void OnFailedToReceiveAd(object sender, AdErrorEventArgs errorCode) { Debug.WriteLine(“Failed to receive ad with error ” + errorCode.ErrorCode); } 11.寫完上面的程式碼就OK了,在程式裡要秀出廣告的時候,(請在main.lua或是任何一個場景的程式碼中,)用下面的程式碼秀出廣告: Runtime:dispatchEvent({name = “ShowAd”}) 12.程式裡要隱藏廣告的時候,(請在main.lua或是任何一個場景的程式碼中,)用下面的程式碼隱藏廣告: Runtime:dispatchEvent({name = “HideAd”}) ( [這邊] 是我的MainPage.xaml.cs提供給大家參考。請不要直接拷貝。全部拷貝複製會錯。) 以上就是今天分享的內容。在這篇文章中,我們學到怎麼樣在手機程式中放入 Admob的廣告。這應該是寫App最重要的事情吧?用上面的方法,我已經把很多我的 App 放到 Windows Phone市集了 ,歡迎大家加入我的行列,一起來開發吧! ﹝相關文章﹞ [Corona SDK] 用 CoronaCards 來開發 Windows Phone程式教學 Part 1 [Corona SDK] 用 CoronaCards 來開發 Windows Phone程式教學 Part 2

Posted by on 25 November 2014 | 9:50 pm

[Corona SDK] 用 CoronaCards 來開發 Windows Phone程式教學 Part 2

 作者:魏蘶 (感謝台灣 Microsoft 資深平台架構經理 Herman Wu 的大力協助) (感謝 Corona SDK 台灣區大使 Bob Yeh 大力協助) 本篇文章是Part 2,第一部請看: [Corona SDK] 用 CoronaCards 來開發 Windows Phone程式教學  A.實機測試 1.實機測試時把手機接上電腦,把上面的模擬器換成Device,按下綠色按鈕,就可以在手機上做實機測試了。 B. 支援返回鍵 上架之前,還要注意自己的程式要支援 Windows Phone 上實體的返回鍵。請參考下面的程式碼: 如果在 Composer API 多場景的遊戲中,沒有正確地回到上一個場景。你的遊戲可能會被退件。所以支援返回鍵非常的重要,請大家務必支援歐! C. 上架 1.準備好要上架前,先把上面的選項選成 Release與ARM。 2.要上架之前請先準備下面大小的圖檔。 3.Windows Phone上架不需要下面的檔案,請把相關檔案刪掉: 3.1不用把各種 iOS 或 Android 的 Icon放進專案資料夾中。 3.2不用build.settings檔案 3.3不用啟動畫面 (Default檔案) 4.在右邊欄選擇 [Properies] > [WMAppManifest.xml],在右邊應用程式UI表單中,填入各種資料。應用程式圖示選擇準備好的100*100的Icon圖。 5.同樣在 [WMAppManifest.xml] 的檔案下面,選擇三個準備好的Icon圖。小圖放70*70px的圖,中圖放150*150px的圖,大圖放310*150px的圖。 6.在[WMAppManifest.xml] 的檔案上面,選擇 [封裝]。如果要程式上架時要支援中文的話,要在下面 [支援的語言] 把中文選起來。 7.一切準備好了,就要開始編譯檔案了。如果要編譯寫好的程式碼,變為可以上架的檔案的話,就要在 Visual Studio 選擇 [建置] > [建置方案]。 8.編譯完成後,會在專案資料夾中的 [Bin] > [ARM] > [Release]中,產生一個附檔名為 .xap的檔案。這��就是之後要上傳的App檔。 9.接下來付錢成為Microsoft的開發人員,就可以上架了。請在 [儀表版] 按下 [提交應用程式] ,就可以走送審的流程了。 (如果沒變的話,要付的費用是582台幣 > 終身) *請注意,送審時,上架的商店應該是windows phone的商店。 *送審的網站前面是dev.windowsphone.com 10.這邊有兩個程序要走。第一個是提供應用程式資訊,接下來是上傳及說明套件。 11.如果是遊戲的話,點進第一個提供資訊的地方,除了填入相關資訊以外,最重要的是要提供遊戲分級的文件。如果沒有提供的話,在很多國家的市集沒法上架。如沒有提供CSRR的話,沒法在台灣上架。 (如何提供請參考開發官網說明。) (如果不是遊戲的話,則審略這一步) 12.在上傳及說明套件的步驟中,選擇Step 9產生的.xap檔案。 13.接下來在同一個頁面,上傳準備好的圖片。全部OK後就送審吧。 14.祝大家順利上架! 以上就是這次的分享。在這篇文章中,我們學到怎麼樣做實機測試與如何上架。下次也是最後一次的文章中,將繼續介紹如何把 Admob 的廣告加到我們程式的畫面上。 ﹝相關文章﹞ [Corona SDK] 用 CoronaCards 來開發 Windows Phone程式教學 Part 1 [Corona SDK] 用 CoronaCards 來開發 Windows Phone程式教學 Part 3

Posted by on 25 November 2014 | 9:12 pm

sed in PowerShell

One of the things that had been annoying me in PowerShell is the lack of sed, the Streaming text EDitor. So I've made my own. Like other things in PowerShell, it's not the same, it's much more verbose in usage than the original sed, so that it can't really be used as an one-liner. On the other hand, it allows a lot more flexible scripting. My immediate need was to extract the fragments of the bcdedit output, so let me give you an example of this usage.The output of "bcdedit /v" looks like this: Windows Boot Manager--------------------identifier              {9dea862c-5cdd-4e70-acc1-f32b344d4795}device                  partition=R:description             Windows Boot Managerlocale                  en-USinherit                 {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}... more stuff ...Windows Boot Loader-------------------identifier              {ea740bc9-53ac-11e3-8c04-7446a0a13fa8}device                  partition=C:path                    \windows\system32\winload.exedescription             Windows 8.1locale                  en-USinherit                 {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}... more stuff ... I wanted to get the identifier of the Windows Boot Loader section (there can be multiple of them but more on that later). So I want to find the lines between "Windows Boot Loader" and the empty line, and in them find the line "identifier" and get the value out of it. It can be done like this: bcdedit /v | xsed -Select {    if ($_ -match "^Windows Boot Loader") { Skip-TextSelect }},{    if ($_ -match "^identifier ") {Enable-OneLine; Skip-TextSelect}    elseif ($_ -match "^$") {Skip-TextSelect}} | % { $_ -replace "^.*({[^ ]+}).*",'$1' } Even though it's long and ugly, it's an approximate analog of two real seds combined: sed -n '/^Windows Boot Loader/,/^$/p' | sed -n '/^identifier/s/^.*({[^ ]+}).*/$1/p' Only it's a bit better than that because the particular classic sed example would not handle the bcdedit output above right, because when the "WindowsBootLoader" section goes last, it doesn't have an empty line after it, so that pattern won't work, and good luck making up a pattern that can handle both an empty line and end of text at  the end. The kind-of-sed-like program for xsed is represented as an array of script blocks in the parameter -Select. Each line is fed to the first script block which decides what to do with it. The current line is passed to it as $_, and the actions are expressed as the small helper commands. The command Skip-TextSelect says to switch over to the next script block for processing the following lines. If there are no more script blocks, the rest of the lines are processed according to the last setting, either passing them through or throwing them away (the default initial mode is throwing away, like sed -n, and can be changed with the switch -Enabled). The command Enable-OneLine is like "p" in sed, passing the current line through. Or here is another way to do the same, using the buffers, which are an extension of xsed: bcdedit /v  | xsed -Select {    if ($_ -match "^Windows Boot Loader") { Clear-TextBuffer -Enable }    elseif ($_ -match "^$") { Paste-TextBuffer; Disable-TextBuffer }    elseif ($_ -match "^identifier ") { Add-TextBuffer ($_ -replace "^identifier *{(.*)}",'$1') }} The idea of buffers is the generalization of the logic above: when a number of lines need to be selected from the input and then either sent to the output or not depending on some values in the middle of the buffer. Thus at least the first lines of the buffer need to be collected before the decision can be made whether they are to be printed or not. That's what the buffers do: they collect the lines and remember if the buffer is enabled or disabled. When a buffer is pasted, it gets actually sent only if it has been enabled. Here the lines with identifiers have the values extracted and placed into the buffer. At the end of each section the buffer gets pasted (it's also automatically pasted at the end of input) and disabled. When the Boot Loader section is met, it enables the buffer, so at its end the paste will actually work. This version can select the identifiers of all the Boot Loader sections, even if there are multiple of them. The first example can be adapted to select identifiers from multiple sections too: bcdedit /v | xsed -Select "START",{    if ($_ -match "^Windows Boot Loader") { Skip-TextSelect }},{    if ($_ -match "^identifier ") {Enable-OneLine}    elseif ($_ -match "^$") {Skip-TextSelect "START"}} | % { $_ -replace "^.*({[^ ]+}).*",'$1' } This is done by adding a label "START" (-Select is actually a mix of the script blocks and test labels) and going back to it at the end of the section, thus looping the logic. Of course, you can combine both approaches. For example, if you want to find the identifiers of the Boot Loader sections whose description matches a pattern, you can do it like this: $pattern ="My Windows"bcdedit /v | Edit-Text -Select "START",{    if ($_ -match "^Windows Boot Loader") {Clear-TextBuffer;Skip-TextSelect}},{    if ($_ -match "^identifier ") {Add-TextBuffer $_}    elseif ($_ -match "^description ") {        $v = $_ -replace "^description *",""        if ($v -match $pattern) {Enable-TextBuffer}    } elseif ($_ -match "^$") {Paste-TextBuffer;Skip-TextSelect "START" }} | % { $_ -replace "^.*({[^ ]+}).*",'$1' } The sections of the Windows Boot Loader type are selected by building a state machine, the identifiers from them are buffered, and then the correct description enables the output of the current buffer. Note that the description may go before or after the identifier, the order doesn't matter, the identifier is added to the buffer in any case, and then the command Paste-TextBuffer is executed at the end of the section and actually pastes the buffer only if it has been enabled by seeing a matching description. This example also shows that the script blocks can see the variables, $pattern here, from the caller's context. However the script blocks can't change the values of these variables, and that's what I've meant by saying that they're not quite closures (or maybe they can be called closures in the Haskell sense but not in the Lisp sense). If you need to change them, the only way I know of is to use the script-level variables. Which might be inconvenient. So xsed helps by providing an implicit hashtable variable $_v that can be used to keep the values throughout the running of one edit. Here is an example of how it can be used if the script needs to find the identifier of a section that has both the matching description and the matching device: $desc_pattern ="My Windows"$dev_pattern ="^vhd="bcdedit /v | Edit-Text -Select "START",{    if ($_ -match "^Windows Boot Loader") {$_v.Clear();Clear-TextBuffer;Skip-TextSelect}},{    if ($_ -match "^identifier ") {Add-TextBuffer $_}    elseif ($_ -match "^description ") {        $v = $_ -replace "^description *",""        if ($v -match $desc_pattern) {$_v.desc = $true}    } elseif ($_ -match "^device ") {        $v = $_ -replace "^device *",""        if ($v -match $dev_pattern) {$_v.dev = $true}    } elseif ($_ -match "^$") {        if ($_v["dev"] -and $_v["desc"]) { Enable-TextBuffer }        Paste-TextBuffer        Skip-TextSelect "START"     }} -SelectEnd {    if ($_v.dev -and $_v.desc) { Enable-TextBuffer }} | % { $_ -replace "^.*({[^ ]+}).*",'$1' } This example also shows the parameter -SelectEnd that executes a script block at the end of the text. It's needed here to decide whether the last buffer needs to be enabled before it gets implicitly pasted at the end of editing. There is one more variable passed to the script blocks, $_lineno, that contains the number of the current line and can be used to simulate the sed patterns like "5,$d". And here is the list of all the helper functions, copy-pasted from the xsed help: ##   Enable-FromThisLine - start passing the lines from this one,##     and switch to the next script block for the following lines##   Enable-FromNextLine - start passing the lines from next one,##     and switch to the next script block for the following lines##   Disable-FromThisLine - stop passing the lines from this one,##     and switch to the next script block for the following lines##   Disable-FromNextLine - stop passing the lines from next one,##     and switch to the next script block for the following lines##   Skip-TextSelect [label] - keep whatever choice for the current line##     and switch to the next script block for the following lines;##     if the label argument is used, then the script block at that##     label is used instead of the next one##   Reparse-TextSelect [label] - switch to the next script block immediately##     and re-test the current line with it; when combined with##     En/Disable-* commandlets, it forces the immediate reparsing##     with the next block, without waiting for the next line;##     if the label argument is used, then the script block at that##     label is used instead of the next one##   Enable-OneLine - pass the current line without changing the general mode##   Disable-OneLine - skip the current line without changing the general mode##   Set-OneLine <value> - replace the contents of the current line and enable it##   Add-BeforeThisLine lines - insert lines before the current one##   Add-AfterThisLine lines - insert lines after the current one##     (they won't participate in the Reparse)##   Set-MultiLine lines - replace the current line with multiple lines##     (this translates to inserting the argument lines before the##     current one and disabling the current one line)##   Add-TextBuffer [switches] - add the current line (or an explicit text)##     to the holding buffer. The buffer is a convenient concept if a bunch##     of lines need to be enabled or disabled together based on the value##     of one of them.##   Clear-TextBuffer [switches] - clear the current contents of the##     holding buffer and revert its enablement state##   Enable-TextBuffer - mark the buffer as enabled, thus allowing to paste it##   Disable-TextBuffer - mark the buffer as disabled, thus disallowing to paste it##   Paste-TextBuffer [switches] - insert the contents of the holding buffer##     after the current line if it was enabled and clear the buffer##   Get-TextBuffer - get the current contents of the holding buffer##   Get-TextBufferEnabled - check the current enablement of the holding buffer And the module itself is attached. I kind of wanted to show how its logic is so small and simple but then it got bloated with the added features, and this post also got bloated with all the examples. So I'll just attach it and say that I've found out about the InvokeWithContext when working on xsed.

Posted by on 25 November 2014 | 9:03 pm

Top 10 Microsoft Developer Links for the Week of November 17, 2014

TechCrunch: The Rise And Fall Of The Full Stack Developer Frederic Lardinois: Microsoft Launches Free, Unrestricted Version Of Visual Studio For Small Teams Lee Stott: Are you a Mac user who wants to use Visual Studio and build .Net applications VBTeam: Short Videos Demonstrating What’s New in Visual Studio 2015 Preview for C#, VB, and F# Scott Hanselman: Announcing .NET 2015 - .NET as Open Source, .NET on Mac and Linux, and Visual Studio Community Brad Sams: Microsoft makes Android development easier with new emulator for Visual Studio I Programmer News: Microsoft Open Sources .NET ? Immo Landwerth: .NET Core is Open Source All-In-One Code Framework: Differences between Visual Studio Community Edition and Express Editions Connect Replay: Introducing Visual Studio Community 2013 | Connect(); Microsoft Visual Studio vNext & Azure This is my final Top 10 of the Week post. I've enjoyed sharing links with you over the past 10+ years, but this is also my final week at Microsoft. Going forward, you can find a Top 10 lists here (link will be updated soon): http://aka.ms/vsweeklytopten. Cheers! 2135

Posted by on 25 November 2014 | 8:00 pm

Connect ("On what's next") - Live webinar with Brian Harry - The future of Visual Studio

Visual Studio 2015 and .NET 2015 – Wow! The announcements made at Connect() are revolutionary! Join us for a recap of the exciting announcements made around Visual Studio 2015 and .NET 2015 during a 1 hour live web event hosted by Brian Harry, Microsoft Corporate Vice President, Developer Services. Brian will discuss recent announcements for Visual Studio and Visual Studio Online, to ensure continuous application development innovation. He will share insights about new technologies and features coming to .NET, ASP.NET, Azure, Visual Studio and Visual Studio Online for developers creating applications across a variety of platforms. Hear strategies for evolving software practices and DevOps, as well as see how the upcoming releases of Visual Studio, the .NET Framework and Microsoft Azure can help you to drive innovation and solve business challenges in your organisation. Tuesday 9th December, 1:00pm-2:00pm (GMT +11) (Check when it's happening in your time zone here - http://www.timeanddate.com/countdown/generic?p0=240&iso=20141209T13 ) Live Webinar Presenter: Brian Harry, Corporate Vice President, Developer Services, Microsoft Register Now This is your chance to ask the big questions and understand the future of development. Don’t miss this opportunity to learn about the future of Visual Studio.   Want to know more about Brian? Check out his blog here Why wait? Download Visual Studio 2015 Preview now.  Hobbyist or Student Developer? Visual Studio Community 2013 is a free powerful, personal IDE for developers to create applications for any platform, while working smarter than ever before. Download now

Posted by on 25 November 2014 | 6:43 pm

Azure Stream Analytics used in Healthcare

Interested in seeing how our customers use Azure Stream Analytics to derive real time insights into their data in the Health care sector?   News article:  http://www.cio.com/article/2852000/healthcare/internet-of-things-helps-asthma-patients-breathe-easily.html You can find the complete case study here:  https://customers.microsoft.com/Pages/CustomerStory.aspx?recid=12216   Do you have a scenario you would like to collaborate with the product team to light up?  Contact the Azure Stream Analytics team via email at nrtpmteam@microsoft.com        

Posted by on 25 November 2014 | 6:37 pm

Australian start-up launches new smartlock at German tradeshow

Source: http://thedigitalkeys.blogspot.com.au/ Gold Coast, Australia, 24th November 2014 – Steve Dunn and his team from LEAPIN Digital Keys have returned from the Essen Security Tradeshow in Germany, the biggest trade show on the planet for security products, with a new smartlock, new apps and new partnerships. The team has also just graduated from their 2nd USA Accelerator Program, Wearable Worlds San Francisco. Wearable Worlds organised meetings for LEAPIN with telco and tourism chiefs throughout Silicon Valley.LEAPIN Digital Keys is a smartphone enabled access control system, otherwise referred to as a ‘smartock’ or a ‘connected lock’.Next week at the Internet of Things Connect 14 Conference at Park Royal Darling Harbour, Mr Dunn will be a keynote speaker talking about his international experiences in the smartlock and digital keys space.“It’s a very exciting space at the moment”, said Steve Dunn, CEO and Co-Founder of LEAPIN Digital Keys, “in the last couple of months, three of the top ten global hotel chains, Hilton, Accor and Starwood, with around 2 million rooms between them, announced over a billion dollars in investment to start rolling out smartphone self check-in and new digital key smartlocks in all of their rooms by the end of 2016”.At the IoTConnect 14 Conference, Mr Dunn will be joining other key innovators, such as Kevin Bloch the CTO of Cisco, and Martin Creighan, Managing Director AT&T Australia and New Zealand to examine multi-modal synergies between IoT ecosystems such as smart cities, smarthomes, health, wearables and cars.“The smarthome/smartlock market is massive in the USA at the moment, but it is only just breaking – and it’s like we've been swimming in front of the wave for the last 4 years now”, said LEAPIN CEO Mr Dunn who launched trials of their first smartphone self check-in system in a Gold Coast Resort in mid 2011, “there were many lock manufacturers and hotel groups interested in our technology at the Essen Security Tradeshow, and now we’re paddling as fast as we can now to keep up with thousands of pre-orders coming in from around the globe”.About the Internet of Things Connect Conference: The IoT Connect Conference, organized by the Informa Australia Pty Limited will take place from 2nd December to the 3rd December 2014 at the Parkroyal Darling Harbour in Sydney, Australia. The conference will cover areas like how to add new networks and communities to your product, smart cities, home, health, wearables, car & agriculture, the key drivers for Internet of Things and much more on that related topics. For more information visit http://www.iotconnect.com.au/ and contact Jonny Peters, Conference Producer +61 2 9080 4496 About LEAPIN Digital Keys An award winning company based on the Gold Coast, Australia LEAPIN is a security and mobile applications company that builds and sells smartlocks, smartphone self check-in and web check-in for accommodation. LEAPIN’s puts your keys in your phone so you can leap in!  LEAPIN Digital Keys is a graduate of the Australian ANZ Innovyz START Accelerator Program, the 10xelerator Program (Columbus, Ohio, USA) and the Wearable Worlds Accelerator Program (San Francisco) For more information (video’s and images) about LEAPIN’s new smartlock and products please visit http://www.smartphonecheckin.com/  Contact Steve Dunn CEO/Co-Founder steve@digitalkeys.co  0406 970 213

Posted by on 25 November 2014 | 6:36 pm

Lync Basic の制限について

こんばんは、 Lync サポートの吉野です。今回は Lync Basic の機能制限についてご説明させていただきます。 Lync Basic は Office 2013 (Office 365 Pro Plus) に同梱されている Lync とは異なり、ダウンロード可能なアプリケーションです。http://www.microsoft.com/ja-jp/download/details.aspx?id=35451 修正モジュールも Lync と同じものが適用可能です。しかしながら、いくつか機能制限があります。 以下のサイトに記載があります。 http://office.microsoft.com/ja-jp/lync-help/HA103437092.aspx 高度な通話機能: チーム呼び出し、着信の転送、同時呼び出し、ボイス メール、コール パーク、代理呼び出し、応答グループ、リモート通話コントロール (すべての Office 365 サブスクリプションで利用不可) 予定表の委任 ギャラリー ビデオ ビュー OneNote の共有 レコーディング スキル検索 (Office 365 では利用不可) 仮想デスクトップ インフラストラクチャ (VDI) (Office 365 では利用不可) また、記載はありませんが、「質疑応答マネージャー」は利用できません。http://office.microsoft.com/ja-jp/lync-help/HA104070128.aspx ※「投票」は利用できます。http://office.microsoft.com/ja-jp/lync-help/HA104023751.aspx (右の適用対象の項目を見ると、質疑応答は Lync Basic が含まれていないのがわかります) さらに、注意していただきたい点として、「ライセンス認証が完了していないでしばらく経過した Lync 2013 は Lync Basic として動作」します。つまり、上記のような機能制限を受けます。 検証の際はご注意ください。それでは引き続き快適な Lync basic ライフを満喫ください。

Posted by on 25 November 2014 | 6:35 pm

NETMF Applications: Remote Cooling Tower monitoring systems with cellular connectivity

A question that I am frequently asked is where has NETMF is used commercially. This would be an easy question to answer if we charged for the platform because we would know who our customers are. But as an Open Source project, we only hear anecdotally what people are doing. I’m starting a series of blogs (NETMF Applications) to share some of these creative implementations with you. ----------------------------------------------------------------------------------------------------------...(read more)

Posted by on 25 November 2014 | 6:26 pm

Create managed Tests for native code

In the old days of code development, the developer would do several steps repeatedly: 1. edit the code 2. Save 3. Compile 4. Link 5. Deploy (if necessary) 6. Start (or switch to) the debugger 7. Start the app under the debugger. 8. Examine the code behavior changes with breakpoints and other debugger windows. This is quite tedious. Visual Studio does a lot to reduce these steps: Hit F5 and VS will automatically save, compile, link, deploy (usually), and start the debugger. But still, often it takes...(read more)

Posted by on 25 November 2014 | 6:15 pm

The IObjectControl::Activate() method failed - Error Code = 0x800a01a8

  My customer was migrating from Windows 2003 to Windows 2012 R2. Part of the application still ran classic ASP and VB6 COM+ components in IIS. Their COM+ component requires ASP sessions state so IISIntrinsics was enabled for the component. However, in the new Windows 2012 R2 environment, when the VB6 component requested a value from Session the COM application would fail and the COM+ runtime threw this error: Server Application ID: {G846F1C5-9A3F-4A78-B513-CDEA1048DB9C} Server Application Instance ID: {10232175-0BC5-404A-8440-A8EE01644BAD} Server Application Name: myCOMPlusServer Error Code = 0x800a01a8 : COM+ Services Internals Information: File: com\complus\src\comsvcs\jit\jit.cpp, Line: 538 Comsvcs.dll file version: ENU 2001.12.10530.16384 shp So why is the Session not available for the COM+ application even though IISIntrinsics was enabled for the COM+ component? Debugging Notes The thread handling the ASP call was marked as MULTITHREADED but the VB6 component was compiled with APARTMENTTHREADED. The effect of this combination forces the thread handling the incoming ASP call to switch threads and allow COM marshalling to call into a different COM apartment. The call to the APARTMENTTHREADED context though, does not pass the IISIntrinsics along which is why it’s unavailable to our COM object despite having IISIntrinsics enabled. So was this the default behavior? And can we control the apartment type IIS uses to launch ASP applications? The answers are No and Yes. Inside the IIS Service manager, the executeInMta was set to ‘true’ for my customer and by default it should be false.

Posted by on 25 November 2014 | 3:38 pm

iOS / Linux Cross-Platform C++ Survey

We want you to take another survey . Many of you continue to participate in our surveys and opt-in for one-on-one conversations about your development habits. Your feedback helps us better understand the peculiarities of cross-platform development and the challenges of specific platforms when it comes to C++. Again we return to you for help understanding the developer experience. This time, we want to learn more about your experiences developing for iOS and Linux platforms as part of a cross...(read more)

Posted by on 25 November 2014 | 3:17 pm