Cloud Computing and Privacy Rights

A number of the science fiction books on my shelf view the earth as having a single government. Countries no longer exist. Of course, we have still have countries. In fact, if anything, we have more countries today than we did thirty years ago. However, the Internet has reduced the impact of borders. The presence of global trade and other globe girdling changes have reduce the impact of borders even more. Still, countries exist partly because tradition demands it and partly because different groups have their own ideas of what a country should look like.

Most of my book shy away from any sort of legal discussion, mostly because I’m not a lawyer, but also the discussion of technology doesn’t apply to any particular country or its laws. When readers write to me, it doesn’t matter what country the reader is from, I can usually answer the question in precisely the same way. Variables work the same in Germany as they do in Spain, Japan, and America. It doesn’t mean that I’m unaware of potential legal issues surrounding technology. For example, I’ve written about privacy (or the lack thereof) a number of times.

Legal requirements, privacy needs, and the problems with borders are about to become more and more important because of one current technology and likely a host of others at some point. Storing data in the cloud means that users could create a situation where even the smallest company is in for a nasty surprise should the user work with data in other countries. Actually, the mere storage of data in the cloud could cause problems. Let’s say that the user in America chooses a storage facility in Mexico because it provides the least expensive service. Theoretically, the user’s data is subject to the laws of both Mexico (because that’s where the data is located) and America (because that’s where the user is located). If the user then travels to another country, such as Iraq, the data becomes subject (at least in theory) to the laws of Iraq as well.

In reading the views of several industry pundits on the topic, I can see where the legal issues could become quite vexing indeed—taxing even the best lawyer’s ability to untie the Gordian knot of legal consequences. So far, I can’t find anyone really trying to apply these multiple jurisdictions to a single user’s data, but I imagine it’s only a matter of time. As more and more technologies become global, however, and we begin to explore the stars with a greater sense of urgency, I begin to wonder just how long countries will continue to exist. It makes me wonder whether there will be a point at which the legal burden alone will make it a lot easier to have a single set of laws worldwide.

A number of people I’ve approached on the topic have presented perfectly valid arguments against a one world government. The most reasonable argument is that administering a single country is hard—trying to administer the entire world from a single place might well prove impossible. Still, I see more and more arguments about this whole issue of legal requirements, porous borders, global economies, and the like and it does make me wonder.

How do you feel about the legal issues regarding cloud computing? Is this simply the beginning of a much larger trend where legal requirements start to eat away at the need for countries? Does our future really involve a single world government? Let me know your thoughts on the issue at


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


An Update on Microsoft’s New Casablanca Release

A little over a month ago I wrote a post entitled, “Microsoft’s New Casablanca Release” about Microsoft’s newest Casablanca product. Niklas Gustafsson, a member of the Microsoft Visual C++ Team was kind enough to contact me and answer a few questions about this release. I decided that you also need to know the answers to these questions so that you can make an intelligent decision about Casablanca. As a quick recap, Casablanca is a new product that lets C++ developers interact with the cloud using REST.

The first thing Niklas pointed out is that Casablanca isn’t precisely a product—it’s what is termed as an incubation effort, something to see what is possible and will work. Casablanca is early in its life cycle and doesn’t provide either the quality or maturity that a released product would provide. to me, this means that you need to be careful using Casablanca. For the time being, it’s probably an interesting technology to play with, but you probably shouldn’t employ it in your production application because it will change quite a lot.

Even though I use C++ for utilities and low level program (as described in C++ All-In-One Desk Reference For Dummies), Niklas pointed out that many organizations use C++ for larger, line of business applications. In many cases, the reason for using a language like C++ for this purpose is that the organization has already made an investment in C++, so the language is familiar and the organization already has the required resources. I still can’t imagine creating a large scale user application using C++, but I’m also not the one trying to forge ahead in a large organization. It seems to me that using other languages would be simpler and less error prone, but I’m well-versed in using a number of languages, so I have the option of using the best tool for a specific task. In fact, Niklas summarized C++ usage for larger applications in the following points:


  • Raw performance
  • Portability
  • It’s what they know

To make his point clearer, Niklas provided me with a link to a whitepaper entitled “C++ and Cloud Computing” that makes a number of points clear. I encourage you to download this whitepaper and give it a read before you make any decisions regarding C++ and the cloud. It certainly helped me envision how someone might use Casablanca a bit better. For example, even a low-level application could need access to an online storage provider in order to access the information it needs. I also hadn’t considered some special areas of program, such as gaming, when I wrote my original post—I was thinking more along the lines of what a business developer would need.

With regard to my question about using REST, rather than SOAP, Niklas pointed out that REST currently enjoys far wider support than SOAP and that it’s simpler to implement. If Casablanca becomes a success, SOAP support could follow. So, at least the team is thinking about SOAP as a future addition.

It’s also important to remember that many organizations are only starting to think about cloud computing, so technologies such as Casablanca are still well ahead of the curve. Sometimes in reading the technical articles online, you get the idea that cloud computing is already well entrenched in the enterprise. The truth is that many enterprises are only now experimenting with the cloud and some will never use the cloud due to regulatory or other concerns.

I was really happy that Niklas took time out to contact me regarding Casablanca. I’ll be taking another look at this technology as the Visual C++ Team works on it and will likely provide you with an update sometime in the future. In the meantime, let me know how your organization is working in the cloud today at


Pogoplug, Your Own Personal Cloud

Everyone is talking about the cloud it seems—the cloud being an Internet presence for offering services, storing data, or otherwise conducting business as if working on a network. However, one of the main concerns about using the cloud, especially for data storage, is the risks it poses. Of course, there are two kinds of clouds. There is the public sort that people use to communicate with just about anyone else, and then there is the private sort that companies used for internal communications or for data sharing with partners. The problem with the cloud is that it often requires a huge investment for anyone to get started. Well, that was true until Pogoplug.

There are actually three kinds of Pogoplug and each serves a specific need. All forms of Pogoplug provide a private cloud environment, but they vary in audience size.


  • Pogoplug PC: This option is for a single user who needs to access data on a PC from anywhere. The software is installed on your system and lets you do things like access any file on your system or stream data to any device. You’ll also be able to use this option to put data on public social media sites such as Facebook.
  • Pogoplug Devices: If you don’t want to expose your PC to possible damage from an online source, you can buy a Pogoplug device that provides everything needed to share data online. The Pogoplug Series 4 seems to be attracting the most attention. The point is that the device provides a safe way to create a personal, private cloud for accessing data through an Internet connection from anywhere. Essentially, using a Pogoplug device provides all of the advantages of personal cloud computing, with very few of the risks, and at a great price.
  • Pogoplug Team: Sometimes you need more than a personal private cloud solution. When you need to share data through a cloud connection with a number of people, you need Pogoplug Team. For a mere $45.00 per year service charge ($15.00 per person), three users can share data in a private cloud setup that relies on your equipment. All you really need is a cheap PC with lots of storage space to accomplish your goal. A number of media sources have discussed this form of Pogoplug, including ComputerWorld and IT World.

I find Pogoplug intriguing because it offers a low cost solution for cloud computing that gets rid of some of the more significant objections that I’ve heard about using the cloud. For me, the main risk factor that Pogoplug addresses is having your data controlled by someone else. You provide the equipment, so your data remains firmly in your possession. If Pogoplug is even moderately successful, you can expect to see others enter the field with similar solutions. What do you think about a solution like Pogoplug? Let me know at


Microsoft’s New Casablanca Release

When I wrote C++ All-In-One Desk Reference For Dummies, I provided the reader with a view of C++ as a low-level language. It’s true that most developers use C++ to create command line utilities, drivers, embedded systems, libraries, and even operating systems. While I might use C++ to create a database engine, I probably wouldn’t use it to create a database application. I’d probably lean toward some combination of a procedural language such as C# or Visual Basic and a declarative language such as SQL or LINQ for the purpose. I’ve written database applications using PHP, Java, and a host of other languages, but never in C++ because C++ isn’t the optimal tool for the job. Many developers have written about the strength of C++ being the flexibility it provides to perform amazing tasks. So, I was a bit surprised to learn that Microsoft has delivered a new product codenamed Casablanca that lets C++ developers interact with the cloud using REST.

In reading the blog post announcing Casablanca, I detect a lack of direction. I understand that C++ currently lacks library support for any sort of Web service access without buying a separate third party product. However, that’s all that the blog post tells me. It doesn’t provide me with any ideas of how Microsoft sees the developer using this library. Given that some people do write C++ applications, I imagine that Microsoft envisions developers creating full-fledged applications with their product, but the intent is a mystery (and will remain so until someone at Microsoft speaks up). The last paragraph of the blog post says it all, ‘We would love to know whether you’re interested in using C++ to consume and implement cloud services, and if so, what kind of support you want in order to do so, whether “Casablanca” is on the right track, and how you’d like to see it evolve.’ Apparently, Microsoft is hoping that the development community will come up with some ideas on using this product.

Casablanca also comes with some significant restrictions. The most important of these restrictions is the platforms that support it:


  • Windows Vista
  • Windows 7
  • Windows 8

This means you can’t use Casablanca to create a library for all of those Windows XP users on your network. It doesn’t surprise me that Microsoft would place these platform limits on the product, but I’m wondering just how many developers will be able to use Casablanca in today’s enterprise environment for a product application. The fact that Microsoft’s Casablanca site heavily promotes its use with Azure leaves no doubt that this product is designed for the enterprise (or at least, a larger business).

Another strange limitation is that the product only supports REST. At one time, Microsoft was promoting SOAP and many Web services still rely on this protocol. In fact, it’s actually easier to create a connection to a SOAP Web service in Visual Studio than it is to create a REST connection. I’m sure that Microsoft will address this limitation at some point, but for now, this remains a problem for developers.

Casablanca does come with the usual Microsoft bells and whistles. If you buy the latest version of Visual Studio, you’ll obtain a complete set of templates that will make coding access to a REST Web service easier. I’m sure that there are developers who are working with just the supported platforms, work with Azure, and have the most recent version of Visual Studio who will absolutely love this product, but I have to wonder how many developers outside this small core group will be able to use Casablanca to do something productive.

Normally, I try to find something positive to say about new product releases, but this one has me scratching my head. I’ve downloaded Casablanca and plan to play with it some more. If there are some truly dazzling features, I’ll post an updated blog entry later. In the meantime, I’d like to hear your input. Is Casablanca an amazing new product that C++ developers must have? If so, how do you plan to use it? Let me know at


Saving Data to the Cloud

Cloud computing is here—no doubt about it. In fact, cloud computing offers the only viable way to perform certain tasks. Certainly, large organization can’t get by without using cloud computing to keep the disparate parts of their organization in communication. However, I’ve been unimpressed with saving data to the cloud for a number of reasons:

  • Someone could easily obtain access to confidential information.
  • The data is inaccessible if my Internet connection is down.
  • A cloud vendor can just as easily lose the data as I can.
  • The vendor doesn’t have a vested interest in protecting my data.
  • Just about anyone with the right connections could seize my data for just about any reason.

As a consequence, I’ve continued to back by system up to DVDs and store some of these DVDs off-site. It’s an imperfect solution and I’ve often considered using the cloud as a potential secondary backup. However, when I saw the news today about Megaupload and the fact that the data people have stored there is safe for possibly two more weeks, I started reconsidering any use of cloud backup.

Just look at what has happened. The federal government has seized data from the site and then shut it down, making the user’s data inaccessible to them. If someone who uses that service for backup is having a bad day with a downed system, it just got worse. Now their data has become inaccessible to them. There isn’t any means of recovering it until someone decides to make it accessible again.

If the data does become accessible again, the users have two weeks in which to download everything and find another place to store it. Losing the personal mementos is bad enough, but to lose confidential information on top of that (think accounting data) makes the loss terrifying indeed. There is also that federal possession of everyone’s data for use in court no less. Now everyone will potentially know everything that people have stored on Megauploadthe good, the bad, and the ugly.

Of course, everyone is talking about what this means, but personally, I go along with John Dvorak in thinking that this incident gives cloud storage the huge black that it rightfully deserves. These services promise much, but I can’t see how they can possibly deliver it all. Yes, there are advantages to using cloud backup, such as the benefits of off-site storage that is outside of your location so that if an extreme disaster strikes, you should theoretically have your data stored in a safe location. Of course, there is also the convenience factor, assuming that you have an Internet connection that’s fast enough to make such backup of an entire system practical.

Cloud computing is going to remain a part of the computing environment from now on, but I think cloud backup has a lot further to go before anyone should trust it as a primary means of data storage. What are your thoughts about cloud backup? Let me know at

Is the Virtual Office Doable?

I’ve been talking with a long time friend and an ardent reader about the future of the physical officethe place where people go to work with computers managed by an organization using an IT staff and connected to a centralized server setupthe sort of place that nearly everyone works at today. The physical office costs tons of money to run, is incredibly inefficient, uses a lot of resources, and has a huge carbon footprint. After talking about this topic for a while, I’m becoming convinced that the physical office served a purpose at one time, but now it has become the domain of the control freak boss who has to know precisely what everyone is doing at precisely every minute. (There are no economic or technical reasons to maintain the physical office that I’ve been able to come up with.) Given all of the events that are going on in the world today, I think the virtual officean office where you report to work by logging into your computer at homewill eventually become the norm.


There are many scenarios where a virtual office won’t work and this post doesn’t include them. For example, I can’t imagine a virtual hospital working with today’s technologyyou’ll still need to visit the doctor in his office. Services which require personal contact will still require some sort of centralized facility for the time being. However, even with government offices, it’s becoming quite possible to do everything needed online without actually visiting a physical office, so the virtual office is possible even in this environment.

Physical offices require infrastructure that is duplicated by the home. You have the physical building, the resources required for human needs, and so on. In short, you’re using two buildings to meet requirements that could be addressed by one. Because physical offices are built to meet industrial requirements, they also cost more to build and maintain than the home. In short, physical offices are a money pit that drag down the bottom line of any company using them.

Now, consider for a moment that everyone has to drive to a physical office. They face energy zapping traffic for some amount of time each day. According to an ABC report, Americans spend 100 minutes on average behind the wheel commuting to work. That’s 100 minutes that the employee could be working instead of driving. At least half of this commuting time comes off the top of the employee’s energy reserve, so organizations are wasting an employee’s best energy on traffic. In addition, in order to accommodate the formal office environment, the employee must conform to the business’ schedule, rather than working when it’s easiest to work, making it quite likely that the business isn’t even receiving the employee’s best effort when they’re on the job. The virtual office promotes efficiency by making it possible for an employee to perform work when energy reserves are the highest and it’s possible to devote dedicated time to the needs of the business. Sick days are also less common because the employee can work at least part of a day in most cases.

Resource usage is higher per person in a physical office than at a home for a number of reasonsthe most important of which is the perception is that someone else is paying for all of the waste that occurs in this environment. For example, all the lights are left on all of the time in most cases. In a virtual office environment, where each employee is responsible for paying the cost of things like electricity, you can be certain that less is wasted. In addition, consider the waste of unnecessary print jobs (or the need to print anything at all in this digital age). There is also all of the duplication that occurs between home and officeplacing the office in the home negates this duplication.

Global warming has become a topic of much discussion. Whether you believe in global warming or not, there is one thing that you must realizethe energy sources used by most people on the planet today are finite, so using fewer of them is better. However, consider the carbon footprint of a physical office for a moment. There is the carbon footprint of the office itself, which probably won’t be reduced much by the virtual office, but it will be reduced at least a little through increased efficiencies and reduced waste. In addition, there is a carbon footprint of all of those drivers going to work. The physical office also consumes land space that could be used for trees or other natural elements that would work to reduce the planet’s carbon footprint. Physical offices are an ecological disaster.

Virtual offices are actually possible today. I know of at least a few companies that have no physical presence at all. They rely on electronic communications, use the cloud or a hosting service for data storage, data backup, and services, and outsource their IT needs in many cases (or have their IT person remote into the systems as needed for updates and repairs). A properly configured virtual office makes it possible for companies to hire the best employees, even if that employee is in some other location than the boss. Software makes it possible to monitor employee activity (so the control freak can ensure the employee is delivering value for the money paid).

All of this makes me wonder just how long the physical office will remain. If nothing else, I see companies adopting the virtual office to remain competitive. The physical office is an artifact of the industrial revolution, where workers had to be in a central location to make widgets of various types. Today, changes in how widgets are made, may eventually make it possible for people to control factories completely from a remote location, which means that going to the factory won’t even be necessary in many casesrobots will do the actual work and maintain the systems. Humans will monitor the robots (something that is already increasingly happening today). What is your take on the virtual office? Will the need to conserve resources and reduce the planet’s carbon footprint win out in the end? Can the need to reduce costs drive control freak bosses to embrace the virtual office? Let me know what you think at