February 2, 2010 Spout

We need cloud apps to use cloud drives

Reading about Windows Azure Drive reminded me of a conversation I had when I was hanging out with my Microsoft brethren last week. We started by talking about how apps target a particular OS and how Microsoft’s bread-and-butter is making sure that apps continue to work forever on Windows so that our customers can upgrade their OS and still get their work done.

We then moved on to wondering whether Apple was gonna do the same thing when it came to letting iPhone/iPod Touch apps run on the new iPad. As it turns out, we heard from the iPad announcement that Apple is doing just that (although in a particularly strange single-tasking way).

From there we moved on to how it’s really not a big deal whether you ditch your current smart phone, e.g. Dash, iPhone, BlackBerry, Droid, etc., for another one because nobody really keeps data on their phones anymore anyway. It’s either synch’d to their PC, e.g. photos, music, etc., or it’s kept in the cloud. In fact, without realizing it, I already have a great deal of info in the cloud:

  • Exchange: email, contacts, appointments
  • TweetDeck: twitter search terms
  • Evernote: random notes
  • Amazon: Kindle books
  • TripIt: trip itineraries
  • Mint: account and budget information
  • Facebook: social contacts
  • LinkedIn: business contacts

Further, I could keep my pictures in Flickr, my documents on Live and I’m sure there are many, many more. This is fabulous, because I can move from platform to platform on my phone and it’s in a vendor’s interest to make sure that each major platform has their app on it and because it’s a smaller, more focused platform, it’s easier for them to do.

The problem here, of course, is that we’ve moved from mobile vendor lock-in to cloud data storage lock-in. What happens when Amazon decides to repossess another book or Mint decides to start charging or Flickr goes out of business? Unlike the physical storage business (you know, little garages where people keep stuff when their relatives die or they’re going through a divorce), the logical storage business doesn’t have any legal responsibility to keep the doors open for 30 days when they go out of business to let me move my stuff somewhere else.

And this has already happened. When GeoCities went out of business, all of those people’s web sites were gone. When live.com decided to clean out my set of RSS feeds, there wasn’t any notification or recourse. I’m sure there are more similar stories and there will be lots more in the future.

And because I know there will be more, I’m worried.

Right now, as we move our apps and storage in the cloud, we have a very different dynamic then apps and storage on the desktop. Because apps on the desktop use storage I own, I can back up that data, import it into other programs and, if I feel like it, write programs against it. It’s my data. The vendor doesn’t ever even see it, let alone gate my access to it.

On the other hand, cloud app vendors ARE gating access to my data; I have to use their apps to get to it. Unless there’s some pressure, you can be damned sure the Flickrs and Mints and Amazons aren’t going to be giving up the data they’ve got a wall around now so that I can take it to a competitor.

Which is why we need control over the storage for cloud apps just as much as we do for desktop apps. I want to go to a vendor I trust, e.g. Amazon, Microsoft, GE, i.e. someone big, someone you know is gonna be around for a while, and purchase cloud storage from them. I want to be able to use it as a HD for my desktop data (like Azure Drive and other products before it), including general-purpose backup, but I also want my cloud apps to store their data there, too. That way, if they start charging or they go out of business or I want to go somewhere else with my data, I can do so.

I expect to pay for this service, of course. That way, the cloud storage folks make money, the cloud apps folks make money for using my cloud storage and I get peace of mind knowing that I’ll always have access to my data, no matter what happens to the cloud app or the cloud app vendor, just like today.

We need cloud apps to use cloud drives. Call your congressman!

January 31, 2010 Oslo

What’s New in EF4.0

Soma has posted a lovely description of what’s new in the Entity Framework for .NET 4.0, including:

  • Foreign Key support so you can add a row without requiring you to download an object just to get the foreign key.
  • Lazy Loading support so as you traverse a property that is a collection, the data is pulled on demand.
  • Plain Old CLR Object support (POCO) so that you can build your own classes and have EF serialize those instead of generating new classes.
  • T4-based Code Generation in case you do want classes generated but want to control the code.
  • Data binding support for WPF and WinForms.
  • WCF support with serialization attribute generation.
  • Much better SQL generation so that you can read it better when you need what’s going on over the wire and so that it’s more efficient.
  • Much better support for complex return values from stored procedures.

That Soma really knows his stuff! Check it out.

January 24, 2010 Oslo

LINQPad updated to support .NET 4.0b2!

I'm such a fan of LINQPad you don't even know. Recently Joe updated it to support Data Services and as of today, if you scroll down to the bottom of the LINQPad download page, it's been updated to support .NET 4.0 beta 2, which means that you can point it at Data Services constructed with .NET 4.0. This makes my heart sing. Also, if you haven't spent the $29 to get the auto-completion, it's totally worth it. Highly recommended. Thanks, Joe!
January 20, 2010 Oslo

Comparing NHibernate and EF4

This is a nice piece comparing NHibernate and EF4. Personally, I'm an EF4 fan, but I'm hardly unbiased and there are definitely features I want to see added to EF v.Next. Either way, it's clear that EF4 is garnering much more appreciation from the community than previous versions and that's because you let us know what you wanted and we added it. Keep those cards and letters coming!
January 1, 2010 Books

Programming Data: .NET, SQL Server and You

Welcome to the home page for my new book.

Table of Contents

  • Part 1: Data Access

    • Chapter 1: Hello, Data
    • Chapter 2: Entity Framework: Entities
    • Chapter 3: The Entity Data Model: Entities
    • Chapter 4: The Entity Data Model: Associations, Functions and Views
    • Chapter 5: The Open Data Protocol
    • Chapter 6: Deployment
  • Part 2: Business Intelligence

    • Chapter 7: Hello, Business Intelligence
    • Chapter 8: Integration Services
    • Chapter 9: Reporting Services
    • Chapter 10: Analysis Services
  • Appendices

    • Appendix A: Security
    • Appendix B: Synchronization
    • Appendix C: Streaming (with Stream Insight)
December 20, 2009 Spout

Stead Defines ‘Customer’

And here’s one more from the paper file I’m putting into electronic format to reduce the pile of papers in my life:

During the all-associate broadcast, Jerre Stead shared with the team a memo another associate had sent about defining a customer. Here are the highlights:

  • Customers are individual companies with unique needs.
  • Customers are struggling with their competitors for success.
  • Customers are people with feelings and opinions, therefore relationships and experiences matter.
  • Customers will judge us by our performance, not by our words.
  • Customers are influenced by every contact with us, each and every day.

Customer “Must Not’s”

  • We must not import our products or ideas on customers.
  • We must not ask customers to deal with people who cannot make decisions.
  • We must not make customers wrestle with our bureaucracy.
  • We must not allow any question, issue or awkwardness go unattended or unresolved.
  • We must never unpleasantly surprise our customer.
  • We must never, never take a customer for granted.

Customer “Can’s”

  • We can help the customer succeed - make our customers winners.
  • We can provide greater value to our customers than our competitors can.
  • We can measure ourselves from the viewpoint of our customers.
  • We can put decision-making close to our customers.
  • We can continuously improve to better serve our customers.
December 20, 2009

The Most Effective Words To Use With Customers

Fred Gleeck had this to say about what not to say to customers and what to say instead:

There’s a right way and a wrong way to talk to callers. Even about the simplest matters. And make no mistake: Talking the wrong way can turn a loyal customer into an annoyed ex-customer. I have a name for talking the right way: PosiTalk (tm).

PosiTalk is an attitude. It shows you’re concerned. Professional. Helpful. And, while it sometimes requires a few extra words, it can make a big difference. below you’ll find some common negative phrases, and the PosiTalk alternatives. Post them. Use them. And speak the language that keeps customers calling. After all… they pay the bills!

Negative: She/He is out to lunch…
PosiTalk: She/He isn’t available at the moment. May I take a message.

Negative: I can’t do that…
PosiTalk: Here’s what we can do.

Negative: Hold on a minute…
PosiTalk: Could you hold a moment, please?

Negative: That’s company policy…
PosiTalk: The way we’d normally handle that is…

Negative: I don’t know…
PosiTalk: I don’t have the answer to that. If you’ll hold a moment, I’d be happy to find out.

Negative: Huh? (or: What?)
PosiTalk: Pardon me?

Negative: He/She is no longer with us…
PosiTalk: He/She has accepted another position, but his/her calls are now being taken by…

Negative: She/He is busy bow…
PosiTalk: She/He’s not available at the moment. How can I help you?

December 20, 2009 Spout

How To Handle Angry Callers in 7 Not-So-Easy Steps

When I was first in technical phone support for the software I was building, I found out that I wasn’t exactly a… um… “natural” at putting customers at ease. I used the following information from an AT&T magazine (I was working for a AT&T VAR at the time) in the fall of 1992 to start my education:

  1. Don’t react. Stay calm. When confronted with an irate caller, everyone has the urge to return fire. But don’t fight back. And don’t take it personally, or you’ll become an emotional basket case. Keep relaxed by breathing deeply. And remind yourself that this discussion will not change the destiny of mankind.
  2. Let them vent. Remember, you simply cannot get customers to deal with the logic of a situation until you’ve dealt with their emotions. Trying to attack the problem before people have fully vented their anger or disappointment just won’t work.
  3. Defusing the anger. When a tirade is winding down, try asking - sincerely - “Is there anything else?” By this point, they’re usually exhausted and willing to talk. If you hear profanity, try saying: “I know the words you’re using right now aren’t directed at me personally.” If the caller replies, “Oh yes they are!” you’re no worse off than you were. But generally they’ll apologize, realizing it’s not your fault. At which point, a real dialogue can begin.
  4. What do they want? Once they’ve calmed down, that’s the time to find out what they want: Money back? A defective part replaced? Find out quickly to determine whether you can solve the problem on the spot.
  5. What can they have. Once you’ve figured out what they want, what can you do? This will be set by bounds of your company’s policies - such as warranties or guarantees - as well as any flexibility that management may give you (which should be clearly spelled out).
  6. Customer solutions. Sometimes, the best solution you can deliver is one the customer suggests. And, surprisingly, it can end up being less than what you yourself were willing to offer. Recently, at a major department store, a customer wanted a discounting an imperfect blouse. The cashier was willing to take 35% off the marked price, but first asked the woman what discount she wanted. The answer: 20% off. Of course, some customers will make outrageous demands. In that case, ask them what they’d consider to be a “fair solution.” Instead of confronting the customer, this reply opens up the discussion to a more equitable resolution.
  7. Follow up. Don’t make an angry customer even angrier by not doing what you said you’d do. When a promise is made, keep following up internally to be certain that what was promised has been implemented. Even if that means making a minor pest of yourself!

Fred Gleek


← Newer Entries Older Entries →