Aug 19, 2010

VS 2010 Tip: Do not automatically save projects

I believe this feature has been around for a while – I enabled it a couple of months ago after hearing about it when viewing a presentation from TechEd North America 2010 (DEV315: Microsoft Visual Studio 2010 Tips and Tricks)PDC09 talk (or maybe it was a MiX talk, I don’t remember right now – I’ll update the post later with the details).

I found a problem with this tonight – so I thought I’d post it.

First to configure VS 2010 to not automatically save projects when created, and thus not fill your drive with junk projects do the following:

Go to Tools Options…

Select “Projects and Solutions” in the left portion of the dialog and uncheck the option “Save new projects when created” on the right side (shown here):

image

It’s just that simple!

Now for the problem I found tonight. I’m playing around with the Azure Management API and created a simple project to do some testing. I needed to set a reference to some of the Windows Azure libraries, so I went to Solution Explorer, right clicked on ‘References’, selected ‘Add Reference…’ and got the following:

image

It didn’t take too much to figure out that I just needed to save the project – but it would have been nice to be able to add references without needing to save, or to at least be prompted to save the project so that I could add a reference. I’ll know next time!

Aug 16, 2010

Book Review: Programming Windows Azure

I recently read Programming Windows Azure by Sriram Krishnan (O’Reilly 2010).  The author works on the Windows Azure Program Management team and has great insight into Windows Azure.

The Good: The book starts with some interesting and important information about the Windows Azure infrastructure and operations.  While none of this information is too deep (technically), it is very useful for understanding the environment.  I believe this will be beneficial as the reader begins the architecture and creation of cloud applications.  The information is very easy to read, and while there is much more to learn and know, it will be a great help to get you started with Azure development.

After the environment discussion the author moves on to focus on the application configuration.  This feels like a very natural flow to setting up the configuration of your own applications.  There is also discussion about the local development environment (Development Fabric and Development Storage) which provides information about how to do cloud development without needing to deploy to the cloud and incur the related costs.  There are ample warnings, which really must be taken seriously, to not have this local development be the end all but to be sure that you actually deploy to the staging environment in the cloud for further testing and validation.

Next comes the meat of the book – the actual details on writing Windows Azure code!  There are samples of the creation of Web and Worker roles.  The purpose and typically usage scenarios for each of these is covered.  There is brief coverage of developing non managed applications (i.e. native and non .NET code).

The book includes a chapter with some details on the Management API – I wish that more was included here, but it is a pretty good introduction to the management capabilities.

A good portion of the book is focused on Windows Azure storage, with 5 chapters dedicated to the topic.  In this part of the book you will learn plenty about Table, Queue and Blob storage.

The final chapter gives a brief introduction to SQL Azure.  Not too much here and there is plenty more to learn and experiment with.

The Bad: There really is not much bad in this book (at least in my opinion)!  But there is one chapter I would have presented differently:

Chapter 12 – Building a Secure Backup System: I believe this chapter was intended to show some ‘real world’ work with Azure.  I found this to be an interesting chapter, but felt that it did not flow well with the rest of the book.  The first “issue” I have with it is that while it has a lot of code samples, the code samples are in Python.  It is very interesting to see an actual Azure application implemented in a non .NET language – but I doubt that the majority of the readers of this book will find that as useful as sticking to a managed language.  For myself, not being very familiar with Python, I found this much harder to read than the rest of the book.  I would have rather seen a the chapter written using C# (or VB.NET) and then included an appendix with other language implementations.  This would have been very interesting.  The second “issue” I have with the chapter is that it really takes the focus off of “the cloud”/Azure and instead the main theme is cryptography/security.  I find this a very interesting topic – and I have played around/implemented several of the concepts that are covered here.  I understand the authors desire to ensure that we don’t forget how important this is – but I feel it would have been better to list resources for further study on the subject and stay focused on the ‘nuts and bolts’ of Azure development.

Summary: Overall I was very happy with this book and highly recommend it.  It feels fairly ‘introductory’ to me, but I have been playing/working with Azure since it was initially announced at PDC in 2008, so I may not be the best to judge this.  I think it is a great place for someone wanting to get started with Windows Azure to spend some time.  Even with the time I have spent working with Azure I found several gems of information in the book and found it well worth my time to read it!

Aug 8, 2010

Book Review: Cloud Application Architectures

Cloud Application Architectures by George Reese (O’Reilly 2009) was the first book that I read on my new Nook – I had read a few hundred pages of PDFs prior to purchasing and reading this book and I was looking for a good technical book in ePub format to try.  This seemed like it would be an interesting book, and the price was right (I was able to purchase it directly from O’Reilly for $11.99 USD using a coupon code).

The Good: This was a very quick and easy book to read.  It brings out many good points that are important to consider as you architect and build applications for ‘the cloud’.  The book does not only focus on technical issues, but also reminds readers to consider licensing, legal and business issues as well.  The book has a very strong focus on the Amazon cloud and only briefly mentions other providers (with the exception of 2 appendixes; 1 focused on GoGrid, another talking about Rackspace).  Even with the focus on the Amazon, overall the information and recommendations in the book are important to keep in mind no matter what platform you are architecting a system for.

The Bad: While a quick review of the table of contents for the book lets you know that it has a strong focus on the Amazon cloud offering, I do not believe that it was explicitly stated in the description.  With a general title like ‘Cloud Application Architectures’ I did expect to have a little more well rounded discussion with more information related to other vendors cloud offerings.

Overall I would recommend this book largely for the following reasons: 1) It is a good source to create a checklist of items to to help validate your cloud architecture and to help evaluate possible providers; 2) It provides an introduction to the Amazon cloud offerings (especially S3 and EC2)

Aug 5, 2010

Continuous Learning

About a week ago I purchased a Nook from Barnes and Noble and it got me reflecting some on how I learn – which prompted this post!

I am a big fan of learning – I have always enjoyed reading and ‘playing’ with new tools and technologies.  As I have matured (read gotten older) there have been many more areas of focus in my life that have made it difficult to devote as much time and energy to learning new technical skills.  I try to leverage the time that I have in the best ways possible.  I constantly try to watch for tools and techniques that will help me leverage my time better.

Several years ago I bought my first iPod.  Unlike many people my intent was not to have a device to carry more music with me, but rather to use it for listening to audio books.  I signed up for an account at Audible (www.audible.com) with the purchase of my first iPod and have maintained an account there since that time.  It was a few years later that I learned about Podcasts and have since subscribed to several of those as well.

Two years ago I changed jobs.  I left a position in which I traveled full time and took a new position which had me contracted to a local company.  This changed my listening habits quite a bit.  When I was traveling I would turn on my iPod as soon as electronic devices were allowed on my flights and listen until we had to shut them off (I did not always do this, but quite often).  In my last 7 months in my old position I earned about 170,000 frequent flier miles – that was a lot of time to listen!

With the change of jobs I went from flying several hours each week to driving about 35-40 minutes daily each way to my new local client.  I found that about 2/3 of the time I would listen to my Podcasts and/or audio books, but I was not listening as much as when I traveled full time.  In December of last year I began working from my home office, now my commute is just the time it takes to walk a flight of stairs and my listening time has dropped to near zero.  I still like to listen and find it a great way to follow trends in technology and to learn soft skills and business skills (through audio books) but I don’t like to use my headphones when I’m with my family – so I needed something new.

One note about the use of the iPod – I decided on the iPod and have stayed with it largely because of it’s ability to play audio books/Podcasts back at a faster speed.  If anyone knows of other devices that have similar capabilities, and that do this well, please let me know!

I’ve been watching the eBook reader market closely for the past 8-10 months.  I’ve not done too much deep research, but I’ve watched new devices get released and tried to see the merits of the various options.  I came to the conclusion that the real players in the eBook reader market right now are the Amazon Kindle, the Barnes and Nobel Nook and the Apple iPad.  I did not want to drop the money for an iPad, and at this time did not feel that the reading experience was as good as the eInk screens of the Kindle and Nook.  I also did not feel the need for the ‘extras’ that would come with the iPad.  This left me looking at the Kindle and the Nook.  I settled on the Nook largely for two reasons: 1) the ability to lend books (although I’m not sure how much I might do this); 2) I felt that it supported more book/content formats than the Kindle.

I fully admit that I am in a ‘honeymoon’ period with my new Nook right now, but so far I am very happy with my purchase.  In the week that I have had it I have read two books (both technical/career focused) and about 400 pages of PDF documents – quite a bit more reading than I have done in a week in quite some time!

I have found it very easy to carry the Nook with me, and to have several choices of reading material when I have a couple of minutes to grab it an read.  I have not yet purchased a book from BN for the Nook, but I have purchased some ePub formatted books from O’Reilly and found them to work quite well.  As for the PDFs, there are more issues with formatting, but so far nothing too bad.  I also like the easy with which I can copy content onto the Nook from my computer.

I have found it to be more acceptable to me to read from my Nook when I’m around the family (depending on what is going on) than putting the earphones in and listening to my audio programs.  I expect that there might be more opportunities to do this as the kids get back into school later this month.  I expect that I can read while they are doing homework and feel less detached and more available to help them if I’m reading instead of ‘tuned in to’ some audio program.

I’ll plan on posting some thoughts about the books I’ve read, and those that I hope to soon read in the near future!

What tools do you use to help you ‘continuously learn’?  Let me know what you think and give me some ideas for other tools to try!