
Voice search to locate nearby kittens will also work on Android devices, and iOS devices with the Google Search App, so try meowing into your phone to find the kittens near you.
Posted by Yusuke Tabata, cat herder

When Google I/O sold out so fast, were kicking around ideas for how to get some of our ticket reserve into the hands of our favorite people: Dedicated developers. Someone floated the idea of a contest, so we had to pull one together double-quick. You can read the questions and first-round answers here.
We thought you would enjoy some statistics, mostly rounded-off:
2,800 people visited the contest page.
360 people tried answering the questions.
1 person got all six right.
200 people did well enough to get into Round 2.
70 people submitted apps.
38 of the apps worked well enough to be worth considering.
10 apps (exactly) got a “Nice” rating from the first-cut reviewer.
While we’re doing numbers, let’s investigate which of the Round-1 questions were hard. In decreasing order of difficulty, identified by correct answer, we find: Dalvik (97.5% correct), 160 (96%), Looper (58.5%), LLVM (57%), fyiWillBeAdvancedByHostKThx (43%), and PhoneNumberFormattingTextWatcher (19.5%).
So, our thanks to the people who put in the work, and a particular tip of the hat to the deranged hackers er I mean creative developers who built three particularly-outstanding apps:
First, to Kris Jurgowski, who pulled an all-nighter and wrote a nifty little app... on a Motorola CLIQ running Android 1.5! Next, to Heliodor Jalba, whose app had some gravity-warping extras and was less than 11K in size. And finally, to Charles Vaughn, whose app included a hilarious “Party Mode” that brought a smile to everyone’s face.
It’s wonderful to end the week with two of my favorite passions, SharePoint and Windows Phone 7. The last few months I’ve been working on a special project that you can install on your Windows Phone 7 starting today.
SharePoint Server 2010 running on Windows Phone 7.
That’s right. Now you no longer need an IT shop to use SharePoint. You can just deploy it on your own phone and decide how to run it.
Why would anyone deploy a server to your phone? Several reasons but mostly it’s because you can totally control your entire SharePoint environment even if you’re out of the office or offline.
Scott Haack, Senior Principle Program Manager in Bellevue, Oregon said this about why this project came about:
“It’s about choices. SharePoint Server 2010 on the mobile platform allows users to have choices about who runs their IT systems and decides how the system is configured without having to go through complicated business processes.”
It’s all about competition too. Here’s what Phil Haanselman, Principle Platform Program Manager in Portland, Washington says about the platform:
“With SharePoint Server 2010 on the Windows Phone 7 this pushes the platform to the edge and beyond. There is nothing like this on the iOS or WebOS and nobody is thinking in this space. It’s going to be game changing.”
Bringing the Pieces Together
I knew it was going to be a big job but I was up for it. There were so many pieces to get co-ordinated and I knew I would have a few challenges along the way. Here’s what it took to bring it all together.
IIS Express to the Rescue
Back in June when Scott Guthrie announced IIS Express I got thinking about SharePoint and the Mobile user. Wouldn’t it be great if they could run SharePoint on their phones! I knew Windows Phone 7 was coming up as I was currently in the beta and building Silverlight apps already. I knew SharePoint would run on Window 7 so why not combine the best of both worlds.
IIS Express is a lightweight component that weighs in at under 10mb. It also does not require administrative access to run applications and has a full feature set including SSL, URL Rewrite, and other IIS 7.x modules. All packaged together that can be run from a single location and does not require any registration/configuration steps.
It seemed like IIS Express was perfect to run on WP7.
NoDo Delays
Getting IIS Express onto the phone was going to be a bit of a challenge however with some work and co-ordination with high ranking figures at Microsoft I was able to get it to compile down into a single DLL file.
To get it onto the phone I worked with top people on the Windows Phone team and packaged IIS Express into the next update, the infamous NoDo release. So as of right now, anyone with NoDo installed actually has web server available to them. There were several other updates we packaged into NoDo that were put there for SharePoint Server to run (mostly around Kerberos ticket support and background processing).
So as a result this was the primary reason why NoDo was delayed. I do apologize to the community for the NoDo delays, but now you know the reason. It was so mobile users could run SharePoint.
Getting past the NoDo release the Windows Phone 7 was now ready and enabled for serving up .aspx pages and SharePoint.
Redesigning Central Administration
The biggest challenge was having to rebuild the Central Administration site to work with the Metro look and feel. It was a lot of work but we’ve built all the screens as new using the Windows Phone 7 controls. This was done so you have good touch targets to hit. In early betas, we were just using the out of the box Central Admin web pages but it was hard to click on things and I was always zooming in and out. So I built the Metro screens to make it easier for you to work with Central Admin.
Everything is all there and hopefully organized in a good way so you won’t be totally thrown back when using the WP7 version of SharePoint. Here’s Central Admin running on WP7.
The Metro Way
With the Metro overhaul of Central Admin we wired everything back up. Using MVVM was key in being able to have the UI respond to what you did so it was easy to show real-time information about the server.
Here’s how you can create a new Web Application with Central Admin on the Windows Phone 7
First select Web Applications from Application Management pivot. You’ll see this menu
Now click on Manage web applications. We couldn’t implement the Ribbon in Windows Phone 7 so from the list select Create New Web Application. You’ll be presented with a data entry screen to enter all the information for your new web app:
All of the options are there just like the current release of SharePoint. Unfortunately due to some last minute problems and trying to get this done by the end of the week we were not able to include Claims Based Authentication so only Classic Mode is available. Anyone would be a Fool to try to deliver something in April without testing it so this was why this decision was made.
Complete Feature Set, Almost
Not exactly. As I said we don’t support Claims Based Authentication and there are few other features in SharePoint 2010 we don’t support. Here’s a list of the current restrictions. These have been left out either due to time constraints or technical limitations on the phone platform. A few of these features will be available in the Mango release of Windows Phone 7 due out sometime in 2012.
Leveraging the Phone
This release doesn’t just allow you to run SharePoint Server on your phone but we’ve also leveraged specific features of the WP7 platform as well. For example you can now hook up SharePoint Picture Libraries to the Windows Phone 7 Media Library and any picture taken on the your phone can instantly be available to anyone browsing the site.
The other big integration point is Geolocation. Windows Phone 7 devices all have a built-in GPS. SharePoint Server 2010 leverages this by geotagging any content. A new feature in Document Libraries allows users to geotag documents with location information which can then be used to filter documents and lists based on locality and even plot document creation locations on a Bing Map using the built-in Bing Map Controls.
It’s really up to the SharePoint web part developer to figure out how best to leverage these new capabilities. Like it was said before, this is game changing.
Availability
Most importantly when can you get this?
Right now!
Download the .xap file here directly and you can instantly sideload it onto your Windows Phone 7 (developer unlock required). If you’re not a developer then you’ll have to wait for the app to make it through Marketplace Certification which should be any day now.
You do require the NoDo update to be able to run SharePoint Server 2010 on your phone so please make sure you have that installed first. The software will detect if IIS Express is installed or not and unfortunately fail if you don’t have the update yet.
The software will be released on CodePlex in the next while under the Apache License so anyone can contribute to it. Please contact me offline if you’re interested.
After MIX11 we’ll be making the server available as a NuGet package that can be deployed anywhere without the need to access the Windows Phone Marketplace. Stay tuned for news on this.
Many Thanks
Many thanks to all the wonderful people that made this project possible. Without their co-operation we wouldn’t be where we are today:
![]()
Class Description:
This Cloud Computing course at SQL University explains the Distributed Computing paradigms used by major vendors, and covers information useful to the data professional for implementing proper architecture designs.
Pre-Requisites:
General computer programming data development terminology, industry experience in at least one of those disciplines
Instructor and Bio:
Buck Woody – Bio available at: http://buckwoody.com
Class Detail:
In this class we’ll focus on:
· What cloud computing is
· Where it can be used
· How it applies to you and your organization
Each day there will be a lecture, along with homework for the next class session. There will be a comprehensive final exam – it’s contained primarily in your work environment!
Class 3 – Cloud Computing – Objections to Cloud Computing
Welcome to the third class in SQL University on “Cloud” computing. If you haven’t had a chance to take a look at class one yet, you may want to switch to that post and learn about the definition of cloud computing, since I’ll be using those terms today.
In computing’s short history, we’ve moved from a centralized model (mainframes and large datacenter systems) to a distributed set of computing (LANs and WANs). We’ve worked quite hard over the last couple of decades moving away from the mainframe, to owning the systems and infrastructure where we run our code.
The “cloud” however, is a kind of return to centralized computing, at least as far as control of the underlying systems applies. So it’s natural, especially at the non-architect level of IT, to question parts of the cloud paradigm. Most often there’s a misunderstanding that an organization should take all of the on-premise infrastructure and code and move it to “the cloud”. This would be a mistake. Distributed Computing systems like Windows and SQL Azure are well suited to certain situations (see class two) and not as well for others.
There are, however, some legitimate concerns about moving to a Distributed Computing environment. And there are some equally valid responses. In today’s class I’ll address the three primary objections I’ve heard most often.
Paradigm Shift
“I’ve spent 20+ years moving to direct-connected computing. When I hear “Cloud” I think I need to replace everything I have, a very daunting task mixed into my already busy day.”
The answer to this concern involves two areas – computing history and technical vision. As I mentioned earlier, we have moved from a centralized model once before – in fact, I hear the exact same concern there – to a distributed LAN environment. Now the industry is moving to a more centralized model using a Distributed Computing paradigm (some computing on-premise, some in an IaaS, some in PaaS, others in SaaS), and there is some inertia to get over for it to take hold.
It’s also important to think about the vision of computing, and its purpose. If the goal is to control hardware and install operating systems, then on-premise only is a good way to go. But that should be a means to an end – the goal should be to enable the organization with technology. After an honest, thorough investigation, perhaps one of the cloud paradigms makes sense for a certain application. In that case, implement that application and move on to the next investigation. Many shops have already done this with things like Payroll or web services. They simply use a SaaS for that.
Security
“I know my own security. I control the process from end-to-end, and my data is within my four walls. If I put my programs on the web I’m faced with the client, network, and vendor’s levels of security. That’s just too big a risk.”
Probably the most frequently asked question (at least directly) is about security in the cloud. And it’s a valid concern. When data leaves your organization, you need to be certain how it will be handled and who will have access to it.
There are several ways to think about this issue. The first is to understand your data, and which parts of it require high levels of security. If a particular datum requires a very high level of security, you can simply use a hybrid approach and not put the data in the cloud at all. You can make the result of the data (such as a “Yes, customer charge is approved”) or a result (101.12) back to the calling cloud application. This is possible in Windows Azure using the Application Fabric, and in fact is at use in many locations.
Another approach is to deeply encrypt the data prior to sending it to a Distributed Computing system. There are code factories that do this, appliances and other hardware devices that allow you to encrypt and decrypt data prior to transmission. Many ATM machines use this paradigm.
The final thought here is that security is in three parts in a Distributed Computing environment: The facilities and hardware, the operating system and environment where the cloud provider runs, and the code you write (in the case of a PaaS solution). I discuss these areas further in this learning plan: http://blogs.msdn.com/b/buckwoody/archive/2010/12/07/windows-azure-learning-plan-security.aspx
Performance
“We’ve worked really hard tuning everything from the hardware to the network to get our programs running this quickly. There’s no way the web can handle that kind of speed”
This concern is completely true – if the architecture of the application doesn’t change. The basic premise for a Distributed Computing system is that you should always try and co-locate the data payload close to the computing resources. In Windows Azure, you can choose where your data store is, and a wise choice is often to co-locate the code and the data.
Once again, making the selection for the proper application to move to the cloud is essential. If you plan to import and export terabytes of data each day to support a Business Intelligence system, then the latency question becomes a bigger issue. If, however, you can locate all that data in the cloud to begin with, process it there and deliver a much smaller report on a screen, the problem is mitigated. It all goes back to design and application candidates.
Even with large sets of data, caching, trickle-feeds and so on can also work in your favor. There is more on this topic specifically addressing SQL Azure here: http://blogs.msdn.com/b/cbiyikoglu/archive/2010/01/05/evaluating-application-performance-and-throughput-in-sql-azure.aspx
Reading Assignment:
Along with the references shown above, check out “The Case Against Cloud Computing” at CIO Magazine: http://www.cio.com/article/477473/The_Case_Against_Cloud_Computing_Part_One
Do you work with AJAX requests a lot and need to quickly check URLs for JSON results? Then you probably know that it’s a fairly big hassle to examine JSON results directly in the browser. Yes, you can use FireBug or Fiddler which work pretty well for actual AJAX requests, but if you just fire off a URL for quick testing in the browser you usually get hit by the Save As dialog and the download manager, followed by having to open the saved document in a text editor in FireFox.
Enter JSONView which allows you to simply display JSON results directly in the browser. For example, imagine I have a URL like this:
typed directly into the browser and that that returns a complex JSON object. With JSONView the result looks like this:
No fuss, no muss. It just works. Here the result is an array of Person objects that contain additional address child objects displayed right in the browser.
JSONView basically adds content type checking for application/json results and when it finds a JSON result takes over the rendering and formats the display in the browser. Note that it re-formats the raw JSON as well for a nicer display view along with collapsible regions for objects. You can still use View Source to see the raw JSON string returned.
For me this is a huge time-saver. As I work with AJAX result data using GET and REST style URLs quite a bit it’s a big timesaver. To quickly and easily display JSON is a key feature in my development day and JSONView for all its simplicity fits that bill for me. If you’re doing AJAX development and you often review URL based JSON results do yourself a favor and pick up a copy of JSONView.
JSONView works only with FireFox – what about other browsers?
Chrome
Chrome actually displays raw JSON responses as plain text without any plug-ins. There’s no plug-in or configuration needed, it just works, although you won’t get any fancy formatting.
[updated from comments]
There’s also a port of JSONView available for Chrome from here:
https://chrome.google.com/webstore/detail/chklaanhfefbnpoihckbnefhakgolnmc
It looks like it works just about the same as the JSONView plug-in for FireFox. Thanks for all that pointed this out…
Internet Explorer
Internet Explorer probably has the worst response to JSON encoded content: It displays an error page as it apparently tries to render JSON as XML:
Yeah that seems real smart – rendering JSON as an XML document. WTF? To get at the actual JSON output, you can use View Source.
To get IE to display JSON directly as text you can add a Mime type mapping in the registry:
Create a new application/json key in:
I can’t take credit for this tip – found it here first on Sky Sander’s Blog. Note that the CLSID can be used for just about any type of text data you want to display as plain text in the IE. It’s the in-place display mechanism and it should work for most text content. For example it might also be useful for looking at CSS and JS files inside of the browser instead of downloading those documents as well.