An Issue with Cloud Computing

The world is heading toward cloud computing at a frantic pace. However, the question is whether cloud computing is ready for the world to rely on it. I keep hearing about major outages of line of business applications. For example, Visual Studio Online recently suffered a major outage. If you’re a developer, the last thing you want to hear is that you can’t access the application you use to create new applications. Just think about the implications about such a scenario for a while and all kinds of negative images come to mind.

What really gets to me is that Microsoft did manage to get Visual Studio Online fixed in about five hours and it identified a potential source for the problem, but it still doesn’t know the cause. Not knowing the cause means that the problem can easily happen again. The loss of income to companies that rely on Visual Studio Online could be huge.

However, the basic problems with cloud computing aren’t just limited to application availability. The biggest problem is saving data to the cloud in the first place. Application development is tricky at best. You absolutely don’t want to give your trade secrets away to other companies and losing data is too terrible to even consider. There is also the connection to consider—whether your users will be slowed down by inefficient communications. Cloud-based applications can also change at a moment’s notice and it’s even possible that a company could simply orphan the product, making it completely unavailable. Losing access to your application in the middle of a development cycle would mean starting from scratch—can your organization really afford it?

Don’t get me wrong. Online computing has a lot of advantages and there are times when using a cloud application works just fine. In fact, I use a cloud application to write my blog each week. However, I also save a copy of the posts to local storage because I simply don’t trust anyone else to make my backups for me. One of my non-business e-mails is also a cloud application. I don’t make a copy of the data in this case because losing it wouldn’t cause any hardship. The point is that I think through the ramifications of using cloud computing carefully and make informed choices—something every organization needs to do.

Will cloud computing ever be ready for prime time? I’ve had a number of readers ask that question. I’m sure that cloud computing will continue to improve. There may come a time when you can trust it enough to use for line of business applications. However, with the current state of things, I’d be sure that I have local backups of my essential data and that the cloud application isn’t the only resource at my disposal. Your business simply has too much riding on the applications you use to have to worry about whether the application will even be available then next time you need it.

I’m sure that some people will write to let me know that their cloud application has never failed them, to which I would add, “yet”. Desktop applications fail too, but with a desktop application, you’re in control. You have a copy of the software locally and you don’t have to worry about the software becoming unavailable or being changed at precisely the wrong time (adding code breaking functionality). Let me know your view of cloud computing at John@JohnMuellerBooks.com.

 

TVF Example in Chapter 10

At least one reader has encountered a problem with the Table-Valued Function (TVF) example in Chapter 10 of Microsoft ADO.NET Entity Framework Step by Step when working with Visual Studio 2013. Before you begin this example, make absolutely certain that you have setup and configured SQL Server for use with the book. You can find the required instructions in these posts:

In addition, you must start the SQL Server Browser. Otherwise, the example will never work.

First, the good news—the example does in fact run. If you use the downloadable source code, rather than trying to type the example in by hand, you can see it function and work through the example using any technique you like (such as the debugger). However, as I pointed out in Entity Framework Examples – Visual Studio 2013 Update, this book really is designed to work best with Visual Studio 2012, so it’s not unexpected that you may encounter problems if you don’t follow the guidelines in the System Requirements section of the Introduction (page xxii).

The bad news really isn’t that bad. You may see an error, “Error 3027: No mapping specified for the following EntitySet/AssociationSet – ObtainClientsEntities” when you compile the example.  The example will still work, but the error message is disconcerting. Unfortunately, I haven’t been able to reproduce it on my system using Visual Studio 2012. You may be able to rid yourself of this error message by erasing the .suo files in the example file and doing a complete rebuild of the example.

In addition, when you open the Rewards2Model.edmx file in the XML editor, you may see “Error 11007: Entity type ‘ObtainClientsEntity’ is not mapped.” Again, I haven’t been able to reproduce this error. There is some discussion that you really must create the table before creating the example application in order to avoid this error. However, taking that step would reduce the usefulness of the technique. Again, the example works just fine even with this error in place.

What is need to know is whether these two errors are common and what I need to do to reproduce them. It may be that there is a quick fix that has so far eluded notice. In the meantime, it’s safe to ignore the two errors because the example does run, even when you’re working with Visual Studio 2013. Please contact me with your findings at John@JohnMuellerBooks.com.

 

Designing with the Entity Framwork

A number of factors have contributed toward the evolution of the Entity Framework (a technology used to map database entities to objects used within .NET application programs). However, one of the major factors is the way in which developers work. Not all developers work in the same way and not every situation requires the same solution. With this in mind, Microsoft ADO.NET Entity Framework Step by Step helps you understand how the evolution of the Entity Framework has been affected by these factors. It points out how the alternatives provided by the Entity Framework make your job easier by increasing the flexibility of the development environment.

One of the more important evolutionary steps is the inclusion of three modeling techniques within the Entity Framework: Model First (where you create a database based on a model you define), Database First (where you generate a model based on an existing database), and Code First (where you generate a database based on the objects in an existing application without using a designer-based model). You can read about these three models and how they affect your application development in my recent article, “Choosing the Right Entity Framework Workflow.” The purpose of this article is to help you make the best choice in modeling technique for your next Entity Framework project. The article also points out the need to combine techniques at times to obtain a desired result and helps you understand some of the pros/cons of each approach. Of course, there is no wrong or right approach—simply the approach that works best for you.

The Entity Framework is a necessary technology when dealing with the complexities of a large scale development. Modeling tools make it possible to understand complex interactions with greater ease and to explain those interactions to others who might not have development experience. In addition, you use modeling tools to document how objects in an application relate to the tables and other features of a database. Knowledge like this is incredibly important when working in a team environment where team members must communicate well with each other or the project is doomed to failure. Most importantly for the developer, using a modeling technology like the Entity Framework greatly reduces the confusion that can occur when developer moves outside the comfort of a familiar development environment.

Of course, there is a lot more to be said about the Entity Framework and this article (and even my book) are really just a starting point. I always like to get the reader perspective about materials that I write. What are your experiences in using the Entity Framework? Let me know at John@JohnMuellerBooks.com.

 

Review of Visual Basic 2012 Programmer’s Reference

As you might expect, Visual Basic 2012 Programmer’s Reference is a heavy tome at 798 pages. Of course, those pages could be filled with fluff, but that isn’t the case with this book. Rod Stephens does a great job of covering a wide variety of topics that anyone who wants to know how to write Visual Basic applications will need to know. The book starts with the assumption that you have never worked with Visual Studio before. Actually, it’s a good start for some developers who have been coding a while because they are self-taught and really haven’t explored everything Visual Studio has to offer.

The first part of the book discusses using the tools of the trade—a topic that most books seem to miss for whatever reason. I’m not talking a quick overview either. Rod provides six full chapters, 77 pages, worth of material on how to use the Visual Studio IDE for various kinds of application development including both Windows Forms and Windows Presentation Foundation (WPF). This may not seem very important at first, but quite a few readers of my books have problems with the IDE they’re using and even more have no idea that the IDE supports certain functionality. In short, many developers don’t have a firm grasp of the tool that they’re using to write code, so they can’t perform their best work. However, if you’re already completely familiar with the IDE, it’s probably a good idea to skip this part of the book because it is quite detailed. Missing from this part of the book is material on working with Metro applications. In fact, that material doesn’t appear until Chapter 21, so this really isn’t a strong Windows 8 offering from a building Metro applications perspective.

The second part of the book is entitled, “Getting Started,” which I view as a misnomer. Yes, you’re getting started writing code, but anyone who skips the first part really hasn’t gotten a good start. This part of the book introduces the reader to controls, forms, and other objects used to create applications. There are six chapters of this sort of material. Again, you can’t expect to create great applications if you don’t know what objects are already available to you. Developers who don’t really know what objects are available will tend to reinvent the wheel or assume that the language isn’t capable of performing a specific task. Rod does an outstanding job of making the reader aware of what is available and how to use it effectively. There are 100 pages worth of extremely useful material of this sort.

Chapter 13 should have begun a new part. Rod leaves controls, forms, and other objects in this chapter to begin working with applications. It’s one of the few organizational errors in the book, but one that is easily forgiven. The next six chapters, 160 pages worth, discuss basic programming topics such as variable data types and the use of programming structures. Chapter 18 provides an excellent discourse on error handling and will be one of the chapters that even experienced developers will want to read.

Chapters 19 and 20 provide extremely basic, but thorough coverage of database topics. This is not a book about database development. Rather, it exposes you to the topic of database development and you’ll need to obtain another book on the topic to finish your education. This said, what this book is really doing is helping you understand database development at an extremely basic level so that the second book you get, the one specifically about database development, will make sense.

Chapter 21 (which is only 12 pages), likewise, is an extremely basic view of Metro development. Again, this isn’t a Windows 8 book and it doesn’t appear that the author ever intended it to fulfill that role. What Chapter 21 does is introduce you to Metro in a basic way so that you can go on to work with a Windows 8-specific book and make sense of the material it contains. That said, I did notice that Chapter 21 does miss out on a few fundamentals, such as obtaining a license for developing apps. Rod doesn’t appear to mention that the target application will only work when running Windows 8 either (at least, I wasn’t able to get it to run on Windows 7).

Starting with Part III, you learn about Object-Oriented Programming (OOP) techniques in detail. Chapter 22 is a must read chapter because it provides the theory that many books on the market lack. It describes what OOP is all about. It’s tough to understand coding examples when you don’t understand the basis for those examples and Rod fills all of the gaps for you. In the chapters that follow, Rod leads the reader through basic class development, structures, and namespaces. The book then continues with some specifies on collection classes and generics. Again, all of this material is designed around a person who really doesn’t know anything about Visual Basic, so Rod takes time to explain the details not found in other books.

Part IV of the book fills out some basic information needed to create standard desktop applications, such as printing in Chapter 27 and the use of configuration information in Chapter 28. The use of streams and filesystem objects come next in Chapters 29 and 30 respectively. The book closes out with an enormous array of appendices (22 of them) that contain all sorts of useful reference information. After you’ve gone through the book, the example applications and this reference material continue to provide you with long term value.

Overall, this is the book that you want when learning Visual Basic. It provides the details needed to write robust applications quickly. However, getting this information is like getting any other sort of education—it takes time and you must work through the examples. This isn’t a quick reference book, nor is it going to provide you with details about specific technologies such as database development or writing Metro apps. Where the book does touch on specifics, it covers those specifics at a basic level with an emphasis on helping people understand the underlying technology. If you’re looking for a book that provides quick answers, a cookbook approach to solving problems, or detailed information about specific technologies, you really do need to look elsewhere. On the other hand, if you’re tired of being confused by online examples and tutorials that don’t really teach you anything, then this is the book you want.

 

Choosing the Right Express Edition Version

A lot of my readers rely on the Visual Studio Express Edition products to follow the examples in my book with good reason—the product is a free download. Books like Start Here! Learn Microsoft Visual C# 2010 Programming are actually designed from the ground up to use Visual Studio Express Edition. Even though I wrote Professional Windows 7 Development Guide with the purchased product in mind, most of the examples work just fine with the Express Edition as well. It makes sense to me that you’d want to try to learn as much as possible without making a huge commitment in software, so I welcome hearing about your Express Edition experiences.

The latest issue I’m encountering with readers is that Microsoft has changed how the Express Edition downloads work for Visual Studio 2012. There are now several versions of the Express Edition and you have to be sure you download the correct version to ensure that the IDE works with your operating system and my books. Make sure you download Express for Windows Desktop, not Express for Windows 8 (which doesn’t install on anything but Windows 8). The Express for Windows Desktop works with the following operating systems.

 

  • Windows 7 SP1 (x86 and x64)
  • Windows 8 (x86 and x64)
  • Windows Server 2008 R2 SP1 (x64)
  • Windows Server 2012 (x64)

 

This version of the Express Edition will let you create a number of application types. For example, you can create these sorts of applications:

 

  • Windows Presentation Foundation (WPF)
  • Windows Forms (WinForms)
  • Win32


Notice that there is no Metro support included with this version. None of my books currently support Metro either. However, if you decide you want to create a Metro application, then you need to download the Express for Windows 8 version and you must install it on a Windows 8 system to use it. Even though the downloads may look confusing, the differences between them are really straightforward.

Make sure you meet all of the requirements for install Visual Studio 2012 on your machine. The Express for Windows Desktop version has these requirements:

 

  • 1.6 GHz or faster processor
  • 1 GB of RAM (or 1.5 GB when running on a virtual machine)
  • 5 GB of available hard disk space
  • 100 MB of available hard disk space
  • 5400 RPM hard disk drive
  • DirectX 9-capable video card running at 1024 x 768 or higher display resolution


Don’t get the idea that my books require Visual Studio 2012. All of my existing books work just fine with the Visual Studio 2010 Express Edition. This version works on older versions of Windows and has smaller system requirements. Of course, Microsoft will remove this product from its site at some point, so if you want to use this older version, make sure you download it now.

Let me know if you encounter any additional difficulties using the Visual Studio 2012 Express for Windows Desktop with my books at John@JohnMuellerBooks.com. In the meantime, happy coding!

 

Working with NuGet to Obtain the Entity Framework

My newest book project, Entity Framework Development Step-by-Step, discusses Entity Framework 5, the latest version of the Entity Framework that Microsoft has released. However, most of the discussions you read about online discuss obtaining Entity Framework 5 using NuGet, a new method that Microsoft is using to help you download and install products for Visual Studio. The only problem is that the process for making all this work isn’t very clear for Visual Studio 2010 developers (NuGet comes installed for Visual Studio 2012 developers).

I want everyone to be able to work with my book at some point, so I’m providing you with some instructions for getting Entity Framework 5 using NuGet. Along with Entity Framework 5, you’ll also be able to obtain a number of other interesting packages using NuGet, so this isn’t a product you’ll use once and then forget about. With this in mind, let’s get started installing the Entity Framework 5 and then you can use a similar process to install other NuGet packages. (These instructions may change with time, so please contact me at John@JohnMuellerBooks.com if you experience any difficulties.)

  1. Open your copy of Visual Studio 2010.
  2. Choose Tools | Extension Manager. You’ll see the Extension Manager window open.
    NuGet01
  3. Verify that you haven’t already installed the NuGet Package Manager extension by selecting the All folder and reviewing its contents.
  4. Click the Online Gallery tab. You’ll see a Retrieving Information message for a few seconds as Visual Studio retrieves the required information. After Visual Studio finds all of the possible extensions, you see NuGet Package Manager displayed as shown here.
    NuGet02
  5. Click Download. You see a Download and Install dialog box that shows a progress indicator. After a few moments, you’ll see a UAC dialog box asking permission to run the VSIXInstaller. Click Yes and you’ll see the Visual Studio Extension Installer dialog box.
  6. Read the licensing terms and click Install. After a moment, the installation completes and you see a success dialog box.
  7. Click Close. Visual Studio will display the Extension Manager window again. Notice the Restart Now button at the bottom of the window.
  8. Click Restart Now. Visual Studio restarts and the NuGet Package Manager is ready for use.
  9. Create the new project where you want to use the Entity Framework 5.0. NuGet will absolutely refuse to install the Entity Framework unless you have a solution open. This is because installing the Entity Framework creates a new file named packages.config that contains the information about the package.
  10. Choose Tools | Library Package Manager | Package Manager Console. You see a new Package Manager Console window open.
    NuGet03
  11. At the PM> prompt, type Install-Package EntityFramework and press Enter. You see the NuGet Package Manager install Entity Framework 5.0 support for the solution you just created.
    NuGet04

 

The Package Manager Console lets you interact with NuGet and the Entity Framework. To object help with NuGet, type get-help NuGet and press Enter. Likewise, to obtain help with the Entity Framework, type get-help EntityFramework and press Enter. I’ll be providing some additional posts like this one as time permits. In the meantime, please let me know your thoughts and concerns about the Entity Framework at John@JohnMuellerBooks.com.

Silverlight and Visual Studio

You may be puzzled sometime by a dialog box that Visual Studio displays about Silverlight. The dialog box comes in a number of forms, but basically it tells you that you need an updated version of Silverlight on your system. The dialog box also provides an URL where you can go to download the latest version. Because you can’t open your Silverlight project until you get the latest version of Silverlight (despite the fact that you opened it just yesterday without any trouble), you dutifully click the link and download the latest version of Silverlight. The file is likely named Silverlight_Developer.exe or something similar.

After the download is complete, you double click the file and begin the installation. However, the installation program tells you that you do indeed have the most recent version of Silverlight installed on your machine. Closing your project and reopening it produces the same error message. Of course, this is just the sort of frustrating problem that drives everyone (including developers) crazy.

The problem is that you do indeed have the latest version of Silverlight installed, but it’s the standard version, not the developer version. At some point, you likely performed an update of your Silverlight installation through your browser. The browser will always download the standard version because that’s all it needs. Visual Studio, on the other hand, requires the developer version.

Unfortunately, short of inspecting the files closely, nothing tells you about these two versions. When you look at the entry in the Programs and Features window, all you see is Microsoft Silverlight. There is nothing to tell you which version you have installed.

To fix this problem, uninstall the standard version of Microsoft Silverlight. Don’t uninstall the Microsoft Silverlight SDK entries. Now, double click the Silverlight_Developer.exe file again and the installation will run just fine. Close and reopen your project and you’ll find that it too works just as it should. If you have a browser open, make sure you close and reopen the browser as well or you’ll experience problems debugging your application.

It would be nice if Microsoft had provided a better entry in the Programs and Features window. Better yet, it could have provided a better error message when you opened your project. Lacking these helps means that you must discover just how to fix the problem on your own. Let me know if you encounter any other odd Visual Studio behaviors of this sort at John@JohnMuellerBooks.com.

 

Entity Framework Programmer Beta Readers Needed

Next week I’ll begin work on my 91st book, “Entity Framework Development Step-by-Step.” This technology is really exciting. Microsoft keeps improving the Entity Framework support and Entity Framework 5 is no exception. Just in case you haven’t seen it, Microsoft recently released the Entity Framework 5 release candidate through NuGet. You can read about the updated technology on the ADO.NET blog.

 

The Entity Framework is an ADO.NET technology that maps a database and its underlying structures to objects that a developer can easily access within application code. Before the Entity Framework, a developer needed to write code that directly accessed to the database, which caused considerable problems every time the database received an update. The Entity Framework helps shield applications from underlying changes in a database. You can read about the Entity Framework in more detail in the Entity Framework Overview provided by Microsoft. Microsoft also provides a support center that offers some basic Entity Framework learning tools.


The Entity Framework is amazing technology because it greatly reduces the work you need to do and even automates many of the processes used to interact with databases. My book will make performing tasks even easier. As you go through the book, you’ll see how to perform many Entity Framework-related tasks using step-by-step procedures. There won’t be any guesswork on your part. As a beta reader, you’ll be able to provide me input on when these procedures work, and when I need to work on them some more to help prevent Errors in Writing.

You may have an Entity Framework book on your bookshelf already. However, if that book is on an older version of the Entity Framework, you really do need to know about the new features that the Entity Framework provides. In addition, my book will highlight these five essential topics:

 


  • Choosing the right workflow: The main reason this topic is important is that the Entity Framework actually supports several different workflows and they’re all useful in different ways and for different projects.

  • Using LINQ to interact with the Entity Framework: LINQ presents the fastest, most efficient, and least troublesome way to perform basic tasks with the Entity Framework. Of course, this book also discusses more complex methods, but making things simple is essential for the overburdened developer today.

  • Working with Table-Valued Functions: This is a new major feature in the Entity Framework 5 that developers have been requesting for years.

  • Complete application health checking: Because you likely work in an enterprise environment, simply discussing exception handling isn’t enough. You also need to know how to deal with other application health issues, such as what to do when an application has concurrency issues or how to address speed problems. An entire part of the book is devoted to the topic of application health because more organizations than ever are paying close attention to this topic now (as evidenced by the large number of books and articles being created on the topic of Application Performance Monitoring, or APM).

  • Entity customization: Yes, Entity Framework automation is quite good and gets better with every release, but as with any other form of automation, it has limits. Automation can only address those issues that the creator of the automation originally envisioned for it. Developers have a habit of coming up with situations that the automation can’t handle, so that’s why the last part of the book discusses this issue to some degree. I’m not going to delve into this topic so deeply that you feel overwhelmed, so my treatment of the topic is unique in that it gives you a useful set of skills without burdening you with topics so complex that the information becomes buried in jargon.

As I said, I’m really excited about this book and would love to have you read it as I write it. Your input is essential to me. Let me know if you’d like to be a beta reader for this book at John@JohnMuellerBooks.com.

 

Visual Studio 11 Updates

Microsoft plans to release the next update for Windows 8 during the first week in June. Most developers are also looking forward to an update of Visual Studio 11 about the same time. Visual Studio 11 contains a number of modest, but important, feature updates. As a result, I’ve been reading everything I can find on these new features and doing a little testing myself. So far, I haven’t seen much mention of the new debugging features or the new/updated tools provided with the new release. These changes are important nonetheless.

Of course, the most important of these updates is the ability to create Metro applications. Visual Studio 11 provides a complete set of templates you can use to create Metro applications using a combination of HTML5 and JavaScript. From the confusing assortment of posts that I’ve read, I’m not really clear as to whether the main download site provides you with a copy of Visual Studio 11 that includes full support for developing Metro applications. It turns out that you need the SDK in order to build these applications. In order to play with Metro applications, I downloaded the Visual Studio 11 beta from the Metro-style applications site, which definitely includes the SDK. This download only installs on a Windows 8 system. The Metro-style applications site also includes a number of other helpful downloads.

The feature that seems to be garnering the most attention though is the appearance of the new IDE. Many developers find the new IDE incredibly depressing to use. According to a number of sources, the beta team has heard the pleas of testers and decided to do something about it. Essentially, the changes are limited to a difference in colors. The updated IDE will be lighter gray and use some brighter colors in the icons. Of course, having a tool that’s fun, or at least interesting, to use is a requirement. No one wants to work with a depressingly dark gray tool all day. Still, I have to wonder why this particular feature is receiving so much press.

Of the features I’ve tried so far, I’m finding the C++ language additions the most tempting. For example, the IDE now makes it a lot easier to see various C++ elements through the use of color coding. A feature called Reference Highlighting is also interesting because it makes it easy to move between instances of a keyword within a source code file with greater ease. There is also built-in support now for the C++ 11 specification version of the Standard Template Library (STL). If you want, you can even build Metro-style applications using C++. The IDE also makes it a whole lot easier to work with code snippets. These new additions do make the IDE faster and more efficient, but also add complexity. Readers of C++ All-In-One Desk Reference For Dummies will be happy to know that I’ll continue using the GNU C++ compiler for the reasons stated in my Choosing the GNU C++ Compiler post.

Because I know I’ll eventually need to provide some level of Metro application support, I have been playing around with the Metro functionality. As part of my reading, I checked out the information on the Metro-Style Design Applications site. From a developer perspective, there are some pros and cons about these new requirements. For example, some developers see them as actually limiting application functionality and making applications less useful. I’m sure that what will happen is that developers will find new ways of adding functionality to applications that fit within the Microsoft guidelines and still offer a great application experience. Undoubtedly, Microsoft will also be tweaking those Metro design documents.

Have you done anything with Visual Studio 11? If so, let me know about the features you like best and which features you wish Microsoft would change. One of the most important questions for me is whether you see yourself using Visual Studio 11 for serious application development anytime soon. Knowing these answers will help me create better blog posts for you in the future. Contact me at John@JohnMuellerBooks.com.

 

Configuring Visual Studio for IronPython Use

Last week I discussed a small bit of information I left out of my book in the procedure that begins on page 26 (see Professional IronPython Chapter 2 Step-by-Step Procedure Update for details). It turns out that the small bit of information isn’t the only thing you need to worry about with that procedure. A reader wrote in to mention that the basic settings you choose can also make a difference. If you have Visual Studio configured for Web Development, the procedure won’t work. That’s because of the way Visual Studio treats Web development. The problem is that you won’t have a solution (.SLN file) to save. I encountered this problem once before, but forgot about the issue until the reader wrote to me. Use the following procedure to check your settings:

  1. Choose Tools→Import and Export Settings. You’ll see the Import and Export Settings Wizard dialog box shown here.
    VisualStudioSetup01
  2. Choose Reset All Settings and click Next. The wizard will ask you to save your current settings as shown here. It’s always a good idea to save your settings before even looking at the configuration.
    VisualStudioSetup02
  3. Click Next. You’ll see the Choose a Default Collection of Settings page shown here. This is where the problem lies. I normally choose General Development Settings because I work in a lot of different languages. If your dialog box shows that Web Development is selected, then the procedure won’t work.
    VisualStudioSetup03
  4. Choose a setting other than Web Development (I highly recommend the General Development Settings as being the most versatile) and click Finish. Visual Studio will reconfigure itself for whatever settings you chose. This change will make it possible to save the project solution file for the examples in Professional IronPython.

 

If anyone encounters any other problems with this procedure, please be sure to let me know at John@JohnMuellerBooks.com. I’m always happy to hear from readers about issues regarding my books and want to make things as easy as possible for you.