In the past week, I have seen a couple of articles that discuss the lack of awareness of the Cloud in the general public. The following, from the Globe and Mail summarizes quite nicely.
“While cloud computing is growing increasingly pervasive, a new survey shows how many people are still cloudy in their thinking about the technology.” - http://www.theglobeandmail.com/report-on-business/small-business/sb-tools/small-business-briefing/cloudy-thinking-about-cloud-computing/article4504986/
The survey includes tidbits like 54% of people don’t think they use cloud computer (only 5% don’t), only 16% identify it correctly and (this one is my favorite) 51% believe that stormy weather can interfere with cloud computer.
(As an aside, I just got back from Punta Cana, where the Internet (and thus cloud computing) was turned off for two days while Tropical Storm Isaac passed through. Pretty certain that’s stormy weather interfering. :))
My comment about this state of affairs is: Who Cares?
What percentage of people have a working knowledge of the internal combustion engine? And yet a majority of people are quite able to drive without this knowledge. How many people have even the most basic understanding of how electricity is generated? And yet they don’t have a problem turning on a light.
Those of us in technology seem to think that it’s important to have others understand what we do. Perhaps it’s a need to appear smart. Perhaps we’re looking for acceptance after spending high school being given wedgies and swirlies. Doesn’t matter. I no more expect the average user of the technology I create to know how it works than I do my mother. And you shouldn’t either.
It should be completely transparent to the user where we put their information. The applications that we create should seamless transition between local storage, on-premise storage and the ‘cloud’. The user should only be aware of this when they use their phone to access the Word document they were writing before they left the office. Actually, I’m wrong. They shouldn’t care even then.
And that’s how you should be building your applications. Seamless integration between the various storage options. This isn’t necessarily the easiest choice for developer. Seamless == more work. But tools like the the Windows Azure Mobile Services can help. But don’t let the user know…they don’t care. They shouldn’t. All of their data should just be there. Like electricity
I love Lego.
To be fair, the number of people who don’t fall into that category is probably fairly small. There is nothing like the joy of taking the slightly differently shaped blocks and creating something bigger and better. And I’m not a big fan of all of the custom kits either.If a piece only has one purpose (like as the nose for an X-wing fighter), then it’s not for me.
I also love Star Trek. Well, not love, but greatly appreciate and enjoy the various forms over the years. And I have referenced Star Trek in various presentations, not to establish my geek cred (of which I have very little), but because of how software works ‘in the future’.
And yes, Lego and Star Trek are related in this way.
The key to Lego block is the simple and consistent interface. Doesn’t matter what the shape of the block is, the fact that every block has the same interface allows them to be connected. And it is through the various connections that a much bigger whole can be created.
Star Trek takes the Lego idea and applies it to software. Every wonder how Geordi and Data were so quickly able to create new and complex software? Because all of the different components had the same interface. Or at least similar enough interfaces so that the components could communicate with one another. And connected software allows you to create a much bigger whole.
Now let’s move back to the here and now. What’s missing from our current software environment that would prevent Geordi from creating the application that saves the Enterprise? Two things, really. The lack of a standard set of interfaces and the inability of most software functionality to be ‘connected’. And this is the next phase in software development.
If you’re a company that provides services to others, then you need to think about enabling access to your service from the cloud. Want to allow people to easily buy your services or products? Give them an interface on the Web that allows them to do so. Not a Web page, but an API. Have some information that others might find useful? Give them an interface to access it. Create the Lego blocks that I was talking about earlier. Find standard interfaces for the type of data/service you offer and expose them on top of your services. In other works, provide Lego blocks for others.
One of the benefits of doing so is that you let others build out functionality based on your services. If your service or data is compelling enough, others will build your front-end for you. You have already seen this happen with a number of the social sites that are out there. People combine information from Foursquare, Twitter, Facebook, Google+, etc. to create interesting apps for others to use. The engagement level of people with apps that run on their phones are high and likely to move higher. Finding ways to integrate your service/data with that ecosystem can only be beneficial.
So what’s the downside? Well, you have to implement and/or design the interface. Technical yes, but not beyond the scope of what most companies can do. And you need to provide the infrastructure for surfacing your API. This is where virtualization comes into play. I’m a fan of Azure and the new functionality it offers, but speaking generically, virtualize where it makes the most sense. If you’re a Microsoft shop, I believe you’ll find the biggest bang for your efforts with Azure.
But the technology is not the key here…it’s the concept. Look at the products you offer to your clients. Find ways to expose those products to the Internet. Be creative. The payoff for your efforts have the potential to be significant. But more importantly, you take the first step towards what will be the development and integration paradigm for the next decade…Lego.
Yesterday was another Microsoft announcement day. Only this time, it was the preview for the next version of Office (you’ll hear it called Office 15 or Office 2013). I was half surprised they didn’t include this in the Worldwide Partner Conference last week. It was certainly suggested that yesterday would be about the next version of Office. But then again they probably didn’t want it to appear to be focused just on partners, but to everyone.
Integration with Metro – This is the version of Office that has the Metro sensibility. I suspect it will be the example used for what Line of Business applications in Metro should be until there are other, better instances out there.
Integration with SkyDrive – One of the default locations to store a document is on SkyDrive. That is, in the cloud. The integration is nice. But one of the interesting features was the ability to pick up right where you left off. In other words, edit a document on your desktop at work and save it to the cloud. On your way home, open up the document on your laptop and it moves to the exact place in the document you were at on the desktop. Finally, the same thing happens when you open the document on your Windows Phone device (although I’m not imagining much editing going on through that form factor).
PDF integration – PDF files can be opened in Word, edited and then saved as either a Word or a PDF document. Enough said to know that’s sweet.
Flash Fill in Excel – This one is tough to explain quickly. It’s basically a tool to help your parse data from a separate cell. Figure it like the following: You have a column of data that is tilde delimited (‘1~15.3~kyle~hockey’ is the first cell, ‘3~17.8~curtis~soccer’ is the second and so on. In a separate column, but on the same row as the first cell, you type ‘kyle’. In the cell immediately below that you start to type ‘curtis’. Excel now makes the prediction that you are trying to extract the third value out of that column and fills in the rest of the values down the column. It’s an edge case, but if you need this functionality (and I have in the past), this is way cool.
Other Features – A rotator control to select font families, sizes and colors. Integration with Bing so that search results can be embedded into Word directly (and the embedded HTML is live). A slightly improved UI that is still a ribbon, but the spacing between icons is greater to allow for easier interactions with a touch interface. A new presenter view for PowerPoint, including built-in zooming.
If you want to try the preview, you can get it from here: http://www.microsoft.com/office/preview/en. One word of warning. The C++ runtime used by Word is not compatible with the one used by Visual Studio 2012. As a result, you might get a warning indicating this when you launch VS2012 after installing the preview. There is a patch to this problem, available here: http://www.microsoft.com/en-us/download/details.aspx?id=3017. You’ll see this problem called out in the KB (http://support.microsoft.com/kb/2703187).
This past Saturday December 11th, Microsoft and ObjectSharp hosted AzureFest, a community event to raise interest and learn a little bit about Microsoft’s cloud platform, Windows Azure.
My colleague Cory Fowler gave an introductory run down on the Azure platform and pricing, and then demonstrated for those in attendance how to go about Creating an Account and Deploying an Azure Application.
The best part, is that our good friends at Microsoft Canada offered $25 in User Group Funding for each person in attendance that followed along on their laptop to activate an azure account and deploy the sample application.
Now Held Over!
The even better part, is that MS Canada is extending the offer until December 31st online for anybody that goes through this process to activate and deploy a sample application online. We’ve got the instructions for you here and it will take you approximately 15 minutes to go through the videos and deploy the sample.
- Download the application package that you’ll need for the deployment here.
- Create an Azure Introductory Account (5 minutes). You’ll need
- a Windows Live id. (if you don’t have one, click here for instructions)
- a Valid Credit Card (don’t worry, in step 4 we’ll show you how to shut down your instance before you get charged).
- navigate to www.Azure.com and follow along with these instructions
Signing up for Windows Azure
- Deploy the Nerd Dinner Application (8 minutes)
- follow along with these instructions
Deploying the Nerd Dinner Package to Azure
- email a screenshot of your deployed application showing the URL and the name of your user group to firstname.lastname@example.org
- Specify TVBug, Metro Toronto .NET UG, CTTDNUG, Architecture UG, East of Toronto .NET UG, Markham .NET UG, etc.
- Tear down to the application to avoid any further charges (2 minutes)
Tearing down a Windows Azure Service
Here are the slides from Azure Fest
Stay tuned here for the next part of our video blogs where we will review:
- Deploying a SQL Database to Azure
- Installing the Azure Tools for Visual Studio and SDK
- Deploying ASP.NET Applications from within Visual Studio
I have an MSDN Ultimate Subscription to give away to the winner of this challenge! The winner will have successfully built a showcase TFS Client for Windows Phone 7. I will accept entries until November 30th.
There are boundless opportunities for features and functionality. Creativity counts here, but to get you started, here are some ideas:
- Build Server Status
Would love to see the status of a given build type, the latest build, success/fail, the offending people who checked in code on a broken build. Would be nice to kick off a QA or Production build (or any type for that matter) from my phone once I’ve got the all clear from QA.
- Iteration Dashboard
What’s the status of the current build? What exit items are still open? What’s our current velocity? What’s the burn down look like?
- Work Items
Would love to edit a work item, reassign it to somebody else, close it, reactivate it, etc. Log a bug perhaps?
- Opportunities with the Phone
Being able to look up a work item owner, or build breaker in my address book and phone or email them seems obvious.
Remember the highlights of this challenge:
- Entries due by Nov 30th. Email me some code including a link to video demonstration ideally. email@example.com
- Let me know if you are planning on entering. I’d be excited to provide some coaching and guidance along the way.
- On the line is 1 year MSDN Ultimate Subscription. I think that is worth like a million dollars or something
- I’m sure you will also win a free date with a MS Developer Evangelist and be featured on the CDN Dev Blog.
- I’m pretty sure you aren’t allowed to win if you live in Quebec or work for Microsoft or the Chinese government, but please don’t let that stop you from submitting an entry!
Gentlecoders, start your engines! Best of luck.
A couple of weeks ago I had the opportunity to speak at the Canadian Technology Triangle .NET Users Group.
We had a great crowd of over 60 people eager to learn more about ASP.NET MVC. I was able to do a mix of Visual Studio 2008 and 2010 demos, as well as showcase a production application, a crowd-sourced translation dictionary for First Nation Languages, currently supporting Maliseet and Mi’kmaw languages (www.sayitfirst.ca).
A question came up in the talk about content management systems and ASP.NET MVC. There was one in particular that intrigued me, but I couldn’t remember the name. After doing some digging it was www.n2cms.com. The interesting angle of N2 is that it is very lightweight, and not meant to be the shell of your entire site, but rather works within your application to serve up content where appropriate. I hope to use this on a future project.
Make sure to check out these other valuable resources as you learn ASP.NET MVC:
This past weekend I gave a talk on “Blendability”; The ability to maintain and leverage blend design time compatibility with your WPF and Silverlight projects. Thanks to everybody who came out to the talk, we had some good discussions despite the oppressive heat in the room. You’ll find my slides above. As some of you have requested, here you can find my demos including the MVVM template that was used in the Blend 4 previews that demonstrates the behavior technique for calling methods on your view models.
This is just a quick follow up post from my demo at the Toronto Code Camp last weekend. Thanks for everybody who came out.
In addition to my slides, here ere are a few resources that will help you learn more about the architecture tools in Visual Studio 2010 Ultimate Edition:
- The .NET Pet Shop that I used as a sample is available for download.
- Walkthrough: MSDN How-To’s on Modeling in 2010
- Blogs: Cameron Skinner, Peter Provost and last but not least Chris Lovett who has some most awesome video demos and tips for dealing with large diagrams. He also provides some samples for those that are interested in learning more about Directed Graph Markup Language for creating their own diagram generators.
- The Patterns and Practices Team has released a set of templated layered diagrams for various references architectures.
I just finished my two presentations at this year’s Toronto Code Camp. As is my standard, I have put my slides on Slideshare.net. They can be found at:
OData - http://bit.ly/akPCcH
Silverlight 4 Out of Browser - http://bit.ly/91xQwp
As well, the sample code for the Silverlight 4 talk can be downloaded here.
Yesterday was the third (or fourth) annual ObjectSharp At The Movies event., For this particular version, we were able to celebrate the launch of Visual Studio 2010 and .NET 4.0 with a plethora of sessions covering VS (naturally) to ASP.NET, Silverlight, Sharepoint and TFS. All in all, it was a successful day that seemed to give the attendees what they came for. The slides that I used for my portion of the talk (which was an overview of VS2010 and .NET 4) can be found here. As always, feel free to ask questions. And, for those that missed it, we plan on doing it again next year. Just don’t know (yet) what the theme will be.