January 29, 2010

Red-Gate’s SQL Compare – now with SQL Azure support!

For a few years I’ve been using SQL Compare from Red-Gate – an amazing product that allows you to do compare and synchronize SQL Server database schemas – and much more:

image
For more info see -
http://www.red-gate.com/products/SQL_Compare/index.htm 

Red Gate has announced they now have an early access build of SQL Compare 8 that works with SQL Azure!  If you're interested in trying this out please complete the form at:

   http://www.red-gate.com/Azure

Please note that I' do not work for Microsoft or Red Gate Software – I’m just a very happy customer.

Below I have more information on how this support for SQL Azure came about.  Just like Microsoft has the “Windows 7 was my idea!” ads – I’m proud to say “Support for SQL Azure in SQL Compare was my idea!” – and this time it might just be true!

Continue reading "Red-Gate’s SQL Compare – now with SQL Azure support!" »


January 28, 2010

How to speed up your Windows Azure Development – two screencasts available

Today I sat down with my co-worker Arif A. and we went over a couple of ways I found to speed up Windows Azure Development. 

image

Basically we discuss how you can host your web roles in IIS and how you can create a keyboard shortcut to quickly attach the Visual Studio debugger to an IIS process – giving you your RAD (Rapid Application Development) process back!  I created two separate screencasts which you can access below:

  How to speed up Windows Azure Development (Part 1 of 2, 18 minutes)
  http://screencasts.ehuna.org/2010/01/how_to_speed_up_windows_azure.html

  How to speed up Windows Azure Development (Part 2 of 2, 9 minutes)
  http://screencasts.ehuna.org/2010/01/how_to_speed_up_windows_azure_1.html

Each article contains the screencast, additional notes and a sample Visual Studio 2008 project you can download.  Good Times!


January 25, 2010

TechCrunch.com hacked… again

At 11:05 PM (PST) I checked out TechCrunch.com and saw:

image

Now at 11:15 PM (PST) it just says:

image

TechCrunch.com is hosted on Rackspace.com and some have reported this might be a security issue with Rackspace.com and that the attack could be server based (and not DNS related).  Inquisitr.com reports that TechCrunch.com was hacked around 10 PM as well.  These are interesting times we live in. 


January 24, 2010

How to stop getting exceptions when connecting to SQL Azure: “System.Data.SqlClient.SqlException: An established connection was aborted by the software in your host machine”

Note: this is a technical article for developers who work with SQL Server, SQL Azure, Windows Azure, ADO.NET, .netTiers and other geek technologies.  Skip this if you’re not a developer – this will be really boring otherwise.

We have deployed a few web roles to Windows Azure and every once in a while we get the following exception when connecting to SQL Azure:

System.Data.SqlClient.SqlException: A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 - An established connection was aborted by the software in your host machine.)

This does not happen on every call, but it happened over 70 times a few weeks ago as our QA team was testing our web role.  Both the web roles and the SQL Azure database were in the same Windows Azure Data Center.  We did set the maxconnection to 96 for connection pooling.  We use .netTiers (http://nettiers.com/) for our ORM, it's similar to nHibernate.

image
I asked this question on the Windows Azure Forums
We finally figured out how to solve the issue when using .netTiers

Below I show you how you can avoid these exceptions – with a specific fix if you are using .netTiers (http://nettiers.com/) as your ORM.  See below for the exciting details.

Continue reading "How to stop getting exceptions when connecting to SQL Azure: “System.Data.SqlClient.SqlException: An established connection was aborted by the software in your host machine”" »


December 13, 2009

A day in a restaurant

Here’s another video from our Thanksgiving trip to Bend, Oregon.  Actually, this is a a stitched picture I made from a bunch of smaller pictures while watching the Raiders lose again earlier today.  There’s an iPhone app for that – it’s called “Autostitch” ($1.99) – see the details at cloudburstresearch.com/.

Here’s our family enjoying burgers and shakes in a relaxing environment at a restaurant called the Pilot Butte (www.pilotbutte.com), in Bend, OR:

Turn up your sound and enjoy the relaxing Bossa Nova, Brazilian jazz from Antonio Carlos Jobim.  Below I copy the original stitched picture used in the video and a few other stitched pictures from the same trip.

Continue reading "A day in a restaurant" »


Bingo’s first time in the snow

Last month for Thanksgiving, Janelle and I went up to Bend, OR – where her Dad Joe lives.  We brought along, Bingo, our pup and he had the chance to play in the snow for the first time:

Our niece Emma is shown in the second part of the video throwing the ball to Bingo.  The background music is “Winter Wonderland” by Harry Connick Jr. and his daughter Kate. 


December 10, 2009

Visualizing Windows Azure diagnostic data

At the Microsoft Professional Developers conference as couple of weeks ago, I attended an excellent session on Windows Azure diagnostics.  Microsoft has made the video of this session available and you can check it out here:

  Windows Azure Monitoring, Logging, and Management APIs 
  http://microsoftpdc.com/Sessions/SVC15 (I also embed the video below)

We followed some of the principles defined in the above session and turned on monitoring on our currently cloud deployed web and worker roles.   Lanh, my co-worker, just finished the first version of our “Windows Azure Monitoring” application and we can now visualize this data – check out an example of our graphs:

 windows-azure-diagnostics-graphs Visualizing Windows Azure web and worker roles performance counters
Click on image to zoom in

We can see CPU and RAM usage by hour, by day and for the last week.  Our system collects the data automatically from Azure storage or on demand.  We keep one week of raw data, but the aggregate data (e.g. the graph data) we don’t delete.  I think the graphs above are awesome – it’s like art! 

I believe Microsoft will eventually have some cool tools for us in the Windows Azure portal , but having this custom Windows Azure diagnostics application will be useful regardless.  For example, right now we will manually increase or decrease the number of web and worker role instances based on the performance counters above.  But eventually we may use the Windows Azure Management APIs and allow this application to do it for us. 

See below for more information on how we designed and implemented the above graphs.

Continue reading "Visualizing Windows Azure diagnostic data" »


October 28, 2009

An easier way to access the Windows Azure local development fabric from another computer

In development, when your Windows Azure web role is running in the local development fabric, you can normally only access it on http://127.0.0.1 on the local machine. 

clip_image015
Using rinetd and ServiceEx to access local Azure web roles

A couple of days ago I published an article with instructions to bypass this localhost restriction:

  Accessing the Windows Azure local development fabric from another computer
  http://blog.ehuna.org/2009/10/accessing_the_windows_azure_lo.html

The solution above uses SSH tunnels and involves two computers, a server and client and an authentication model. 

I found a new way to bypass this localhost restriction, which is a bit simpler.  See the details below.

Continue reading "An easier way to access the Windows Azure local development fabric from another computer" »


October 27, 2009

Accessing the Windows Azure local development fabric from another computer

A couple of months ago when I started working with Windows Azure, I quickly realized that a web role running on the local development fabric could only bind to localhost (127.0.0.1).  I opened a thread in the Microsoft forums:

  Can the development fabric bind to the real IP address? (not 127.0.0.1)
  http://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/9b8957e6-7983-47a7-9d75-954dee70dbf0

One developer, JuanSueroNYC, found a way to make this work for WCF services.  But I want to access ASP.NET Sites as well as WCF Services running on my Azure web roles – and I’d like to make it as simple as possible (one time configuration).

image 
We create SSH tunnels using freeSSHd and PuTTY

Whenever I’m working on a project I like to use CruiseControl.NET (http://ccnet.thoughtworks.com/) and create a continuous integration system.  Every night at 2:00 AM , this system is responsible for getting the latest code from source control, compiling, running unit tests, deploying and more.  This allows our business folks to get an earlier look at our product and makes sure no single developer or designer has broken the build.

We also work on WPF smart clients and I didn’t want to force the client teams to run the Azure web roles on their machines just because Microsoft only allows the local development fabric to bind to 127.0.0.1.

I was bummed out when I realized that Microsoft has placed this dumb restriction on Windows Azure web roles.  I’ve seen a response from Microsoft where they mumble something about the local development fabric running with admin rights and that not being secure – but I could always run IIS with admin rights – should we only allow IIS to bind to 127.0.0.1? 

My guess is that this dumb decision was made by some pointy head guy who doesn’t understand technology and was afraid that from a business perspective developers would use the local development fabric as a cheap Production load balancer.  Ridiculous – but don’t underestimate the stupidity of business folks.

Ok, enough ranting – see below for a full tutorial on how to access web roles running on a Windows Azure local development fabric from any other computer and not only on http://127.0.0.1 on the local host.  Thanks to my co-worker Lanh for coming up with this solution – great work!

Continue reading "Accessing the Windows Azure local development fabric from another computer" »


Slide-show: from ‘Storage room’ to ‘Endless Pool room’

During the weekend I created a slide-show that shows how we transformed an old storage room into a room that now hosts our Endless Pool (click here to check out ‘First swim in our Endless Pool’).

image 
The slide-show: http://slideshow.ehuna.org/home/200908-endlesspool/

The slideshow gives you an idea of how houses are built in northern California.  With the insulation and the double pane windows this is the best room in the house!

The song is “New Soul” by the French/Israeli singer Yael Naim.  This song was featured in one of Apple’s recent ads for the MacBook Air.  The slideshow runs for about 10 minutes and the song is about 3 minutes long – so it will repeat.