Why Companies Use Social Media, a response.

Today, a friend I work with sent me a link to Rick Stilwell’s blog article entitled “What I Hate About Social Media.”  After reading, there were a few points that rang a bell with me, and I wanted to respond.  I commented on his blog, and realized after I posted the comment, that it was just short of novel length and I should probably post it on my blog.

One of the quotes that really jumped out at me here, is this one:

It’s not all about the marketing. It’s not all about the PR. And there’s more to “Social Media For Your Business” than ROI and how can I make money.

Another point that Rick makes, is that a brand needs to become more consistent and relevant before they can take part in “Social Media” and start marketing to their customers.  That seems like a contradicting argument to me, because if you’re “consistent” and “relevant” and one day you start talking about your products, doesn’t that break the consistently relevant presence that you’ve built?  A brand needs to build their presence with a consistent underlying strategy, a strategy to make money and realize a return on the investment to social media that they have made.  Talking about the weather and posting viral videos is not going to build brand recognition or trust, it feels contrived, and it’s not what I want, or anyone else wants, to hear about from a brand.

I’m not sure if Rick’s point is that he thinks companies should be less concerned with the ROI, or they should market their products less, or they should be more buddy-buddy with their customers in social media mediums.

The “social” part of social media is the people. Users don’t sign up for Twitter or Facebook because their favorite brand of jeans posts little quips about their product. People join those services because the people they are interested in and care about are there. Facebook and Twitter both had remarkable growth because they focused their product on people. These services were not sold to users as some grand new place to consume information about their favorite brands or companies; they were sold as a place to keep in touch with your friends, share pictures, stories, and opinions with the people you care about.

Businesses don’t care what color shirt you’re wearing today, they don’t care how bad the traffic was on the interstate on your commute to work this morning. Businesses have one underlying interest, and that’s money. Money comes from customers who buy their product or service (you obviously know this). Expecting a business to get “in the conversation” for no other reason than being “hip and cool” is short sighted, and naive. Businesses come to social media because that’s where the people are.

Business are not going to spend resources building a Twitter follower-base or Facebook presence without realizing some return on that investment. Heck, even the users of social networks are getting a return on their investment. A user’s investment is not monetary, it is time. In exchange for your time, Facebook tells you more about your friends that you don’t get to see every day, they keep you in touch with your family, and allow you to share information with groups of people that would otherwise be more difficult to reach. These social tools offer businesses a communication channel that has a huge audience, it allows them to communicate in a way they haven’t communicated before, and it allows them to directly track what kind of response their communication is really getting them.

Ultimately, it all comes back to money. How much does a business spend on building these social presences? Does that investment turn into happier customers and, by extension, more sales? If not, then they’re doing something wrong.

Everything in business is tracked back to how much does it cost, and how much does it return. You don’t hire someone because you’d like to spend 40 hours a week in the same building as them, you hire someone because you think they’re going to add more value to your business than the money that you’re paying them. You start a Facebook page, or a Twitter account because you believe it’s going to make you more money than you were making before you had it.

Now, none of this is to say that social media doesn’t require a different marketing strategy than any other medium. Social media requires a significantly different pitch, a different tone, and a different attitude. Business can certainly get their customers involved and make their customers feel like their opinion is valued, and heard. A lot of companies don’t get this, and they push the same kind of message they push on a television or print ad. Social media requires a different way of thinking, and it’s our job as social media marketers to educate them on how to do this. Telling them that they shouldn’t be concerned with ROI is not going to get us their business. We need to teach and show our clients that they have to interact with their customers differently and that the short-term goals are different, but they will be able to measure this with an increase in their ROI. We need to prove to them that it will work, and teach them how to do it.

10:48 am, by jimsc  Comments

This is why Google+ sucks.

Credit to Jimmy Sawczuk for the photo.

  09:27 am, by jimsc  Comments

are you senior programmer?


Yes, I am the Senior Engineer and CTO at my company.

09:12 pm, question from tarekhassan, answered by jimsc  Comments

Amazon AWS Elastic Load Balancing and MySQL

I’m writing this post in response to a problem I experienced recently while putting MySQL behind an Amazon Elastic Load Balancer (ELB). Basically, the MySQL server stopped accepting connections made through the ELB, and sent the client an error to the effect of:

ERROR 1129 (00000): Host ‘elb-hostname.compute-1.internal'
is blocked because of many connection errors; unblock with
'mysqladmin flush-hosts'

At first, it didn’t go off in my head – but the reason this error is being thrown, is because of the default ELB health-check configuration.

The Problem

By default, when you create a new ELB, it configures the health-checker to open a TCP connection to the instance-port (which you define upon creation of the ELB) for each instance you register on the ELB. In the case of MySQL, this is port 3306. At first thought, this should work perfectly. If MySQL dies, the health-check will fail, the ELB will take that server out of the server pool, and life will go on. Unfortunately, this is not the case.

The ELB does not know how to speak MySQL, nor does it know (or even care) that your instances are running MySQL and that it is forwarding MySQL traffic. When the ELB opens the TCP connection to port 3306, the request is successful (MySQL will always open a connection to the host – you just don’t get access to the server until you provide valid credentials), but because the ELB doesn’t speak MySQL it doesn’t know how to terminate that TCP connection correctly. MySQL recognizes this as a connection error, and after several of them it will stop accepting connections from this host. This in turn kills every application that tries to connect to the MySQL server pool via the ELB.

The Solution

Luckily, the solution to this problem is really easy.

First, I’ll cover the easy-yet-not “ideal”-or-“suggested” way. You can simply configure a new health-check for the server pool that, instead of checking port 3306 (MySQL), checks port 22 (SSH). The command to do this looks similar to:

elb-configure-healthcheck --healthy-threshold 5 \
--interval 15 \
--target TCP:22 \
--timeout 2 \
--unhealthy-threshold 3

This will configure the ELB to check each instance registered to it every 15 seconds by opening a TCP connection to port 22. If the connection is not successful within two seconds, it counts that as a failed connection. After three failed connections, the host is considered “OutOfService,” and is removed from the distribution rotation. Even while the host is not being selected to receive traffic, the ELB continues to check the host every 15 seconds. If it should receive five consecutive successful connections, the host is considered “InService” and is re-added to the distribution rotation.

The reason this is not “ideal” or “suggested” is because, if your MySQL daemon crashes or becomes unavailable for any reason other than your server going down; the ELB will not recognize the service as unavailable – and will continue to try and use the server in it’s pool. This will obviously result in application failures whenever this server gets selected to host the DB connection for a specific request.

A more dependable solution would involve some sort of script which responds via HTTP or TCP connection to the health-checker with the appropriate responses based on the actual status of your MySQL service. There are literally hundreds of ways to implement this, all with their own advantages and disadvantages. One, simple-ish way, would be to install apache + php. You can set up a single host on apache, which loads a php script that tries to connect to MySQL. If the connection fails return a 500 error, and if it’s successful return a 200 error (200 OK means we’re all good – to the ELB, anything else is considered a failure). This isn’t the most elegant solution – but it’s quick, and easy.

I hope this helps someone, I know I spent a few hours googling around trying to understand what was actually happening only to find two posts which were relevant to my search. Those two links are:

09:55 pm, by jimsc  Comments

Privacy. Real Life, the Internet, and Facebook.

Since Facebook’s big developer conference, F8, in April the Internet has been swarmed with people talking about how Facebook is completely ignoring users’ right to privacy, and automatically “opting-in” users to insecure privacy settings.  These allegations have some truth to them; and depending on what your stance on privacy is, they may not be completely unfounded concerns.

Here’s the deal.  Yes, Facebook is opting users in to less restrictive privacy settings for new features (Instant Personalization, for example).  However, is the information that Facebook is making available really “sensitive” information?  The answer is, absolutely not.

Lets step back a minute, and think about what Facebook is; a social network.  It’s core feature is sharing information!  You put personal information in to Facebook willingly.  You tell them what you like, and who your friends are, you upload photos of yourself, and friends.  You update your status, and tell all 130 of your friends that you are so glad it’s finally Friday and that you’re going to the beach this weekend!

Why is this perceived to be so private?  Lets take that same status update to the pub around the corner during happy hour.  Suddenly, you’re in a public crowded place, surrounded by people you don’t know.  You tell your best friend that you’re going to the beach, awesome!  Do you think it is at all possible that people could have overheard your awesome news?  Probably.  Who cares, though?  So, some random stranger knows you’re going to the beach this weekend.  Who cares?  Maybe they have a sweet mansion on the beach, and they are having a house party this weekend…double score.  You’d never have known that, if they didn’t happen to come across your beach trip.

These scenarios are pretty much exactly alike, aside from the “real life” factor.  You don’t have a privacy filter, or a cone of silence (ala “Get Smart”) that you can put up any time you want to have a conversation that you’d rather other people not hear.  What do you do in real life?  You go to a more private place, or more generally: take the conversation to a more appropriate forum.

This brings me to my next point.  The Internet is a public place by nature, and Facebook is a tool for sharing information by design.  In what world could these two tools possibly be put together and produce a product with an expectation of complete privacy?  So, why is it that one would expect increased privacy from an application that is designed to share information, which is leveraging technology that was designed to distribute information freely and easily to billions of people?

Privacy on the Internet is non-existent.  Sure there are sites where you expect information to be safe, and never shared (Online banking comes to mind).  But even then, there is (or, at least, there should be) an accepted level of risk associated with using these tools, however small it may be.  Anything you put on the Internet is public information, and sites like your bank take extreme precautions and set up lots of security that would make it really difficult for someone to gain access to your public, but private, information.

Conclusion

Facebook is ultimately not required to provide you with a warm fuzzy feeling of privacy regarding the information you willingly share with them.  They willingly provide tools that allow you to put up some fences around things you’d rather certain groups of people not have access to.  Is their system perfect? Of course not, but they offer more than they have to.  Keeping this in mind, I’ll provide a very simple piece of advice to you about how to make sure all your information on Facebook is private.  You actually have a choice, believe it or not.  The first choice is to delete your account.  If you find this unacceptable, and you wish to continue to use Facebook; then allow me to provide an alternative course of action.  If there is anything you do not want to be public knowledge, don’t post it on the Internet.

09:17 pm, by jimsc  Comments

I Suck.

Seriously.  I suck at a lot of things.  Some of those things I’ve tried, or am trying to get better at.  One of the things I suck at, is maintaining some kind of presence that I have ownership of, on the internet.  This is my attempt to get better at it.  Mind you, this is not my first attempt; but hopefully it will be my last one.

Every time I’ve tried to create some sort of site, or blog, or whatever - I’ve lost interest, and the content got stale.  I’d always make “a first post,” and I’d let it sit, and sit, and sit some more - and finally when I think about making a new one, I realize how stupid it looks to have two posts, one from August 2003 and another from January 2005.

So, here’s to trying again.  I’m not a quitter, but hopefully I won’t even have to think about quitting this time.

11:27 am, by jimsc  Comments