WordPress – Azure – Remote Desktop, almost.

As I mentioned in my last post, I got WordPress up and running in Azure using the Windows Azure Companion. I used one of the prebuilt packages, it was drop dead simple. I then proceeded to play around with Azure Remote Desktop access following Maarten Balliauw instructions which was simple enough. It was kinda fun to see Azure from the inside 😉

Naturally, the next step was to remote desktop into my WordPress instance. I added the required certificate to my instance, but the “connect” button on the dashboard never lit up. I reach out to Maarten via Twitter and he got right back to me. Turns out that the packages were created against an older version (1.2) of the SDK and Remote Desktop requires 1.3. So, after building the Companion from source (I had to fix some broken references to the WindowsAzure.StorageClient assembly), I tried to deploy. I thought I was in business as the solution began to deploy to a brand new deployment, but then I got hit with the following error:

 

Error Creating New Deployment Error creating deployment for hosted service ‘MyProject’ Invalid number of endpoints for role WorkerRole; maximum number permitted is 5. Invalid number of endpoints for role WorkerRole; maximum number permitted is 5. Dr. Watson Diagnostic ID: 3cd580025a79480faa5eb07f8f53c9d4 Subscription ID: 6eed2056-87ae-481e-87dc-cc2856447040 Time started: 12/7/2010 9:33:06 PM UTC
Time completed: 12/7/2010 9:33:10 PM UTC Duration: 0:00:04.2258416

 

Meanwhile, my .csdef file looks like this

My .csdef file looks like this:

<Endpoints> <!– Make sure that this HttpIn is same as that of HttpIn InputEndpoint in ServiceConfiguration.cscfg –>
<InputEndpoint name=”HttpIn” protocol=”http” port=”80″ />
<InputEndpoint name=”WindowsAzureCompanionHttpIn” protocol=”http” port=”8080″ /> <InternalEndpoint name=”VMManagerServicePort” protocol=”http” /> <InternalEndpoint name=”MySQLBasedDBPort” protocol=”tcp” /> </Endpoints>

 

I posted my issue up here

http://code.msdn.microsoft.com/azurecompanion/Thread/View.aspx?ThreadId=4083

Satish got back to me and now I am in the process of contacting Azure Dev Support – who will hopefully be reading this post shortly.

I’ll get back to everyone – updating this post – once I hear more.

 

Looking forward to next steps.

 

UPDATE: 45 minutes later, this is the response I received from Frontline Azure Support

 

Issue Definition: We understand that you are facing issues while creating endpoints when deploying a solution and would like us to investigate on the issue. Scope Agreement: To provide you with the cause of the issue and to help you resolve the issue that you have.

We sincerely apologize for the inconvenience caused to you and would like to inform you that, we have a limitation on the number of endpoints per worker role and the web role. We can create only two endpoints for the web role (HTTP or HTTPS) and Worker role can have only a maximum of 5 endpoints/role(HTTP, HTTPS, or TCP). Please see below for more information on limitation on endpoints of azure web role or a worker role:

http://social.msdn.microsoft.com/Forums/en/windowsazuredevelopment/thread/fa85f770-aba9-40ac-a4ac-2367f7ac3495

Hope the above information is useful to you. Please accept our apologies for the inconvenience caused. Let us know if you need any further assistance and we shall be glad to assist you.

Looking forward to your response. Thanks  & Regards,

 

I now need to run an additional test – if I turn OFF RDP, then I believe the deployment will be successful and the explanation provided will be insufficient. More news as it develops.

 

Update # 2 – Allowing RDP seems to be using up my Endpoints!

By that  I mean that I created the package without enabling RDP and the deployment went fine and Windows Azure Companion works fine.

I them packaged the exact same built, this time enabling RDP and when I deployed I once again got the message about Maximum number of endpoints. So, what does this mean? Does enabling RDP use up your available endpoints??

More info when I get it.

Update #3 – I have been escalated

I got a quick reply from Frontline support informing me that my issue was being escalated – mostly because I couldn’t provide a Deployment ID because my package won’t deploy ;o Here was the response:

Thank you for the quick response. We would like to inform you that in your case, our cloud integration team will be able to work with you and resolve the issue at a quicker pace. We have escalated your issue to our cloud integration team and one of our engineers will contact you to work with you to resolve the issue.

Meanwhile, if you have any further questions or concerns, please feel free to contact us and we shall be glad to assist you.

I am looking forward to working with the cloud integration team! More news as I get it.

Hands Getting Dirty in Windows Phone Dev, Thanks to Baba

OK, part of my goal for the holiday weekend was to start digging a little deeper into Windows Phone development (amongst other things). Right off the bat, I sidetracked myself and decided to play around with deploying WordPress in Windows Azure/SQL Azure. Both of you who read this blog know that I have been involved in the Orchard Project and that I am really excited about the progress there. However, I have been saying for a long time that it is all about interoperability – so for Azure – I needed to see what it was like deploying WordPress, using the Windows Azure Companion and this great writeup from Jim O’Neil. After a little head scratching – mostly about the where you find the WindowsAzureStorageAccountName – it is not the friendly name that shows up in the account  – see screen grab – it is the name in the URI. Anyhow, that all went amazingly well. At this point I could provision a WordPress site in about 15 minutes. There is one caveat, for the time being, as the Windows Azure Drives are read/write for one web instance and read only for any others – you can only scale up (go to a bigger instance), but not not scale out to multiple instances. This is not a major concern for the types of deployments I am looking at and I am certain that folks are working on the requisite enhancements to remove this constraint.

But, I digress. This post is about progress on the Windows Phone App I am working on. One of the key components is being able to have the phone “Speak” to the user. Bing Translator has that capability – exposed with a number of web services APIs. As this is Silverlight, you need to use the Async Methods – for simplicity – and to rail against the prevailing wisdom I am using the SOAP service (when the tooling is there it is so drop dead simple). But frankly, I was a little rusty on the async syntax and the hoops you have to go through for playing back the audio file that the service returns was a little arcane for a newbie. So, I set off to find a good example. There were a few blog posts with code snippets that were of no use to someone not already really proficient. What I needed was a sample project to “study”. After a total of two hours of searching – sadly even fellow New Yorker Charles Petzold’s 1,000 page free opus on Windows Phone Development was no help – I stumbled onto this post with a great reply from babaandthepigman his avatar may be a can of spam, but the sample code posted here was as fine as jamón ibérico de bellota. So thanks to Baba,  I have cleared the major technical hurdle. More to come!

Tagged as: , ,

#1 WordPress – Azure – Remote Desktop, almost. on 12.14.2010 at 5:02 PM
As I mentioned in my last post, I got WordPress up and running in Azure using the Windows Azure Companion . I used one of the prebuilt packages, it was drop dead simple. I then proceeded to play around with Azure Remote Desktop access following Maarten

Time to get seriously hands on–Windows Phone (Silverlight), Azure, C#4 & Futures, EF4/WCF Data Services & Futures

This past 2 months has brought a slew of new technologies into my life. The biggest surprise was the families new Epson Artisan 725 All-in-One  inkjet which replaces the retched Epson R800. ThatR80was crap from the moment I got it, but I suffered thinking that when it did print well, I was getting something that was superior to what the multi-function amateurs were getting. Was I ever wrong. The fact that I suffered – as did my entire family – under the R800’s reign of garbage is unacceptable. The last straw came when we needed in cartridges for an emergency project and B&H Photo is the only place the tocks them reliably, it was a Saturday, so no B&H that day – so my wife decided she just build a new machine – why not – costs just about as much as the cartridges.  At first I resisted the multifunction machines – I wanted image quality – prosumer stuff. But everything was gigantic and I had no faith in the high end – so we picked the Artisan for about $200 and picked it up at Staples. Within 5 minutes of unpacking it, it was on my wireless network, all 4 machines could print to it – and printing like never before. The scanner was also a huge surprise. So, if you haven’t bought a printer in 3-5 years, do your self a favor and something like this – it frees your mind and lowers your stress level and increases family harmony. Though you will be buying more plain and photo paper. But this was just that tip of the iceberg.

For quite some time I have been following and doing the occasional hello world spike on a bunch of technologies that have happened to catch my fancy. I like the Azure services and I like the way they integrate tightly to the standard dev experience, and yet are very open, friendly and interoperable – cost effective too. But, I haven’t personally, on my own, put any code into production – lotta whiteboards, but not nearly enough running code. This needed to change.

Three things – aside form having small kids and a day job – were getting in my way. The plethora of new core and ancillary features that I also want to get up to speed on. I have been a fan of Entity Frameworks (sneer if you like) and in particular I have always loves the simple elegant power of WCF Data Services 4.0 (nee Astoria) and oData – I am also very excited about some of the futures stuff they have cooking. Plus, any time I get to chat with Pablo Castro is time well spent. Then looking at some of the language & framework  changes and stuff from the community – MEF comes to mind – RIA Services. This list goes on and on. And we are not even touching on the Web Matrix stuff.

The other major piece was the release of Windows Phone. I held out. Put my Android desires on hold and waited. So far I am pleased. Let’s see what I say after this series is complete. I have a bit (read very limited) Silverlight experience. But, I have been itching to get out of the browser for some time now – and this was the perfect excuse. This is also perfect time for me to do some stuff that will run on the awesome set of services offered up by Fran, Hoi & Patrick in Azure and Bing). V2 of this endeavor will certainly find me talking identify and Live with Angus, which is always fantastic.

The final – and most daunting obstacle was simply getting my self back into a place where I could write code without if being pure hell. I has been more years that I would care to remember since I put any of my own code into production. Heck, I haven’t written any POC code for over a year – unacceptable! But getting back on the horse can be scary.

So I am arming myself with some new books (primarily Joseph Albahari’s “C# in a 1,000 page nutshell” and Petzold’s older Programming in the Key of C# and his latest Programing Windows Phone. The additional trick here is I am trying to use an iPad to be the reader for these books.

My experience with the iPad if the past two weeks has been no love affair, I find reading books – books that you are just reading – not working with, is fine. I prefer eInk to the light bulb, and al the swirls and swooshes, but it is serviceable reading a straight up book.  For a manual or instructional text, well this is what we will be testing out.

So with all that going against me, I have set a goal to have a Windows Phone app, in the Marketplace, by the new year. The app will be simple. It will focus around a particular task in lower school education, if will run on the windows phone, use Azure and Bing service as well as some that are quite familiar to the community. It will be the kind of app ScottGu will be searching for in a year or two  – I should be out of beta by then.

I will try to lay bare all of the pains I face as I re-enter the practice of building. When I find myself stuck, I will take little time of to show you my iPad unboxing experience – shot with my Windows Phone. I will also likely do a little monologuing on the iPad as a book replacement.

Folks, It’s late thanksgiving night. I have already beaten the l-Tryptophan, but now I am plain old sleepy. Time to sign off, fire up Albahari and see if I can get past Literals, Punctuators & Operators.

I sincerely hope that all of you can feel as thankful as I do tonight.

All the best,

Nick

Messenger Connect – Making your data more portable while retaining control over its use

Angus Logan has posted about Microsoft’s effort to allow for data portability over the net with Windows Live Messenger Connect. From what I remember from conversations with Angus, the point is not creating YASN (yet Another Social Network) but giving you some tools to thread the ones you belong to together.

Angus’ words are here, in his post he lays out a few of the core principles that guided their approach. They are:

1. Data Portability (you own your data) – I feel strongly about this one and am glad they have this listed as number one.

2. You have control over your data – this is tough in practice, but I am very glad they have this as a core principle. Time will tell on this point.

3. Right Data for the Right Scenario – This may already be part of points 1 & 2, but as we move forward into a world that is more location aware and thus better able to grasp the context you are in (in a car, with a client and 2 of your co-workers who are your ski buddies) – when you fire up a device that is using shared content, it should really only display the lowest common denominator of content.

The issues at play here, as well as the interaction models are pretty complex. It will be interesting to see how well Microsoft can engage the User Experience – Interaction Design community to help them understand how this can be designed into their experiences and the benefits it brings.

I am looking forward to digging into this and further discussions with Angus.

See me at Mix10 today – presenting at 1:30 – Breakers J

I will be delivering a presentation titled Peanut “Butter & Jelly: Putting Content Management Back into Context”.

The talk is not really about Content Management Systems themselves – but rather how the mere discussion of them can be a symptom of a larger problem. The talk will deal with the current economic and market conditions many of our clients currently face and how Digital Agencies such as the one I work for can really help, if you let us.

So if you are at MIX10 in Las Vegas today, please stop on by.

Graffiti CMS – now available on Codeplex

a couple of weeks ago, Rob and Scott, shared the news (via Twitter and email) that Telligent’s Graffiti CMS would be Open Sourced and that more news would be out on Dec 11. As promised, a few more tweets were made and the Graffiti CMS (presently powering this humble blog) is now on CodePlex.

It is worth calling out – for the folks who don’t RTFM – that, aside from downloading the source, you need to follow these two steps to get going:

It is worth noting a few things form the release notes:”

December 11, 2009 -jQuery: we should now fully support jQuery instead of prototype. -routing: routing is now used and writing files to disk has been made a control panel option. -control panel/web.config: The control panel has been cleaned up quite a bit and many configurations settings once made in the web.config now have a web UI. -vistadb: due to licensing constraints, we are unable to ship vistadb directly with the source. We will be working with them to make this a provider available for download from their site.

On my machine, I was able to build (bunch of warning are thrown) and display the site, after copying the Graffiti.mdb file out of trunk/data and putting the copy in Trunk\src\Graffiti.Web\App_Data. For those of you shrieking in horror – this is really just a quick and dirty test – the web.config is set for Access out of the box (see about VistaDB issue).

Time to start digging around.

Telligent, thanks for putting this out there for all of us.

Cheers,