Archive for the ‘small business’ Category

Share Monitoring Like and Recommendations

Tuesday, May 25th, 2010

Now that you understand how to add the Facebook likes and shares to your site it’s time to start understanding how to leverage these to get cursory metrics and improve the user experience. Facebook provides two tools for you and your visitors to looking at what’s happening on your site right now.

Recommendations Widget

This uses Facebook’s news feed algorithm to help elevate the most interesting content for your visitors. The experience is personalized for each user. However, on smaller sites such as this one, the recommendations are going to be your most valuable content and you can use it to see what is resonating with your audience. The Facebook algorithm selects content based on the number of recent likes and shares and elevates that to the top.

You’ll notice while working with the Facebook configuration tool, that you only need to provide your domain name. There is however a gotcha, if you have multiple sub-domains, you’ll need to create a separate widget for each. Facebook isn’t currently enabling aggregation across domains. The line breaks were added for clarity.

<iframe src="http://www.facebook.com/plugins/recommendations.php?
     site=af-design.com&amp;width=300&amp;height=300&amp;header=true&amp;colorscheme=light&amp;font&amp;border_color" 
     scrolling="no" 
     frameborder="0" 
     style="border:none; overflow:hidden; width:300px; height:300px;" 
     allowTransparency="true"></iframe>

The code is very simple to add to your site and the Facebook configuration tool walks you through the assorted options. The end result should create something like the following tailored to your site.

Activity Feed

This will show your visitors what content their friends are liking and using, back filled with the most recommended content from your site. The main differentiator here is the addition of the like content. This is important because visitors will see what their friends are finding valuable on your site.

<iframe src="http://www.facebook.com/plugins/activity.php?
     site=af-design.com&amp;width=300&amp;height=300&amp;header=true&amp;colorscheme=light&amp;font&amp;border_color" 
     scrolling="no" 
     frameborder="0" 
     style="border:none; overflow:hidden; width:300px; height:300px;" 
     allowTransparency="true"></iframe>

Again, the Facebook configuration tool creates the code quickly and easily for you with a few simple options. The end result should create something like the following tailored to your site.

REAL Analytics

As of yet, Facebook is not providing any hard numbers on how many people like a piece of content unless you create a page or an application. We’ll get into that next time. However, right now, you can indirectly infer the number of shares if you choose to use a share widget with a counter and of course with the recommend widget highlighting your most shared content.

Share Negative Customer Feedback is a Learning Opportunity

Tuesday, March 16th, 2010

I just received a call from Adamson Motors, the local Jeep (Chrysler) dealer in Rochester, MN about a service I had completed on my Jeep Wrangler yesterday. I was generally unhappy with the service and overall attitude I received from the dealership while I was there. Last night, I was content just finding a new mechanic and putting the experience behind me. Furthermore, I had a lack of trust in the competence of the service department to correct a problem I feel was caused by them. I generally felt that the dealership believed it was doing me a favor by servicing my vehicle and that isn’t the sort of company I wish to do business with.

However, they called me to follow up on my experience. This is clearly part of their standard operations because they were unaware that I had called about the service after picking up my vehicle. I explained to the service manager what I had felt was the problem and he simply brushed me off. I figured this customer service call would be an excellent opportunity to explain my experience. The ensuing call illustrated for me how systemic the problem of poor customer service is at that specific dealership. Their general attitude towards their customers is unacceptable. It did, however, get me to thinking about how their customer service process can be improved and the lessons that any business can learn as a result.

1. You will not make all customers happy. Some customers will not be happy with your product or service. That’s okay if you learn from the experience and feedback they do provide. Warranted or not, if the customer has lost your trust, you need to earn it back.

2. Don’t make excuses. It’s insincere and clearly communicates to the customer you don’t really care about what they have to say.

3. Be respectful of your customer. The roll of customer service, especially when communicating with a dissatisfied customer, should be to solicit feedback. Do not patronize the customer or be dismissive about what they feel. They’re providing you valuable feedback about your business.

4. Use the feedback given to examine your processes. Take whatever feedback you get from your customer, good or bad, and objectively look at what happened. Decide from there what can be improved to prevent similar situations.

5. Take ownership of the problem. If a customer is willing to share feedback with you that’s not positive, own it – they’re helping you – not the other way around.

I sincerely hope that Adamson Motors benefits from the feedback I provided to the woman who called today. I hope they can reflect on the experience and improve their customer service.

Share Cloud Pricing Models

Monday, December 14th, 2009

By ArcticNomad Yesterday Amazon announced their Spot pricing model. Effectively providing market driven pricing for instances on EC2. Depending on your product, this probably won’t impact you much, but it got me to thinking about pricing of the cloud. Amazon’s Web Services was a game changer when it launched. Buy the computing resources you need for only the time you needed them. However, your stuck with a very limited set of instances and therefore you need to architect your systems around their pre-defined instance sizes. While they expanded their instance offering to include high cpu and more recently high memory instances, you’re still stuck with a fairly rigid set of boxes from which to run your systems.

A specific weak spot I’m having with the pre-defined box sizes is Memcached. It turns out that Memcached is fairly light on the processor and requires essentially no disk I/O. Really the processor is just a go between for the memory and the network card. If you are looking at putting a 32Gb server online to manage the caching tier for your app, you’d need to buy the “High-Memory Double Extra Large Instance” for $1.20/hr (or $10,512/year) wait… what?! Okay, obviously we should pre-pay this, typical business model is to run the hardware over a 3 year cycle, so lets pay the $4,900 up front and then we enjoy a more comfortable $0.42/hr (or $3,679.20/year + $1,633.34/year for the pre-pay = $5,312.54 each year for 3 years). Obviously the $15,937.60 we pay over 3 years is easier to swallow than the $31,536 if we don’t pre-pay it.

Now, if your running your infrastructure in the cloud and considering using Memcached, you really can’t put a box in a rack somewhere else because the increased latency and unreliability means you may not be able to get data from your cache in a cost effective way so I’m not going to look at what buying a box with that kind of memory would cost, not to mention there is such variation in buying rack/ping/power that it would be too messy to calculate here.

This has me intruiged to see how other providers are doing their billing. I love the idea of a-la-carte servers paid by the hour. But really what would be great is allowing me to choose the CPU, memory, and I/O I need. This brings me to two smaller cloud providers who seem to have interesting offerings.

First up is 3Tera. 3Tera offers a completely different take on the cloud infrastructure model. The idea behind their offering is that you purchase hardware (or lease it) and then slice the box however you want. Basically, running your own virtual cloud! You can consider different hardware options, including stuffing a ton of RAM into weaker boxes and so on. Ultimately the product is a resource allocation tool. The dark side is that you have to pay for all that hardware, even if your not using it. Really this isn’t a cost savings over EC2. Although it’s an interesting idea if your system resource needs shift significantly over time, but are consistent enough to warrant buying or leasing hardware. I’m really interested in their technology and they have an impressive list of partners running the software that you can then lease the virtual images from.

The second provider is OpSource Cloud. OpSource charges a base fee for the VLAN service and then you build your infrastructure on top of that. The beauty is that it’s a-la-carte down to the cpu cycles and memory! Currently the memory footprint is limited to 8Gb and each machine needs between 1 and 4 CPU’s. However, this pricing model is interesting as you can provision a single CPU with 8Gb of RAM which comes out to roughly $0.24/hr (or $2,102.40/year). Starting 4 of these instances to hold the 32Gb of cache is only slightly cheaper than Amazon’s model coming in at a whopping $8,409.60/year. There are some cost savings available if you buy a silver, gold or platinum pricing tier for a monthly pre-pay. The pricing for those starts at $500/month and goes up; so you really need to have some significant hardware running to justify those costs. Another gotcha with this plan is that you need to provision a network which is $0.20/hr. I’m going to be keeping an eye on this provider. I think in the future they may have a winning solution.

Unfortunately, I don’t yet see a solution that fits my specific need. Perhaps I need to adjust my thinking and look at alternatives. It may be time to consider Amazon’s Simple DB, which provides simple key/value storage like Memcached, although as a service. Is it the answer for putting large amounts of data into a non-RDBMS? I’ll consider that in another post.


Creative Commons Photo by ArcticNomad

Share Subversion Hosting Part 2 of 2

Thursday, April 2nd, 2009

This is the second part of of an article looking at how to effectively host a small subversion based project that is no longer going through rapid development. The first part looked at using EC2 to run Subversion and S3 for persistent storage. While an intruiging solution, it raised some concerns.

The alternative solution is to look at outsourcing the hosting of Subversion and ticket management to another provider. The size of our repository is less than 1GB and so I’m using that as the price point. Additionally, there are 2-3 developers who’ll require access to the repository. There are many great “free” services including Google, but this is not an open sourced project so it’s out. In the hosted subversion realm, there are a number of providers with basic accounts to handle this size repository. The following table is a price comparison at the 1GB storage level. Many providers offer a free service for smaller projects with different limitations for bandwidth, tickets and so on so YMMV.

ProjectLocker $2.50
Wush $6.67
SVNRepository.com $6.95
CVSDude (2GB) $6.99
Hosted-Projects $7.00
Assembla1 $8.00
Code Spaces $9.99
Beanstalk (3GB)2 $15.00
Versionshelf (3GB)2

$19.00
Unfuddle (2GB)2 $24.00
DevGuard (2GB)2 $29.95
  • 1 Pricing dependent on storage and developers
  • 2 Offers a cheaper or free plan with less than 1GB of storage.

The real benefit of a hosted solution is the addition of services such as Trac, user management, automated backups and more. If you are looking at building a project with multiple developers who are not in the same physical location, hosting your project with a service is definitely the way to go. It’s cheaper and the overhead of configuring and maintaining your own EC2 instance (or even a dedicated server) increases the costs significantly.

Share Subversion Hosting Part 1 of 2

Thursday, April 2nd, 2009

Over the last few weeks I’ve been considering some options for cutting development costs for myself and a few clients. One of the continuing questions is how to manage the code base. Keeping a development server on hand is great during periods of active development and work, but when the site reaches maturity and only bug fixed are required, development servers sit idle for weeks on end without use. This got me thinking about how to best manage the source in a persistent way. This first post looks at how this might be accomplished using EC2.

I’ve been thinking about moving a development environment to Amazon EC2 from a dedicated server. The problem is, at least for this project, development only occurs a few hours per day and may go entire weeks without anyone working on it. Obviously a small instance at $0.10/hour is sufficient for load. That would cost roughly $72/month. But, even if I’m working on the application 40 hours per week, I should be able to reduce that charge to $16/month to cover the time the server is actually on. Additionally, after being burned with an instance failure last weekend, I want to be sure the data is securely backed up as well. I thought about using EBS but, as readers have pointed out, even they can fail. Furthermore, I don’t want to create a drive sized in GB if I only need a few MB of storage. Lastly, but not least, if I need to scale the drive – I don’t want to re-create the AMI each time to reflect new drive ids.

My initial thought was to start with a public Fedora Core instance and install PersistentFS, automating all of the startup and shutdown process to ensure data integrity. Next, configure subversion to use that mount point for file storage. Last but not least, I’ll create a script I can run from my local machine (or a remote server) that starts and stops an instance and binds a known elastic IP to that instance at boot time. I think my overall costs will be greatly reduced.

Estimate of costs on EC2:

EC2 Small Instance Run Time (40hr week) $16.00
S3 Storage Cost (~10GB AMI) $1.50
S3 Storage Cost – Filesystem $0.15
S3 Bandwidth Cost (guess) $2.00
EC2 Bandwidth Cost (guess) $2.00
Total Cost (Monthly) $21.90

The bare minimum – if no development work was done at all would be the storage costs of $1.65 – certainly cheap enough! However, the time to build the initial environment, create the scripts and the time lost during the startup and shutdown of the server each time made me think there may be a better alternative. Read more on subversion hosting in the second part.

Share Niche Search Far From Solved

Friday, October 10th, 2008

Mahalo, A human powered search engine I’ve been doing some research over the last few days and have found that niche search is far from solved. Many market verticals are lacking an effective aggregator for timely content. The tools everyone needs are known, but they haven’t been implemented. Instead of true solutions, we find scraping sites that just suck in content and spit it out un-validated, unverified and unorganized. Because of the high costs of building robust tools, what results is a poor, incomplete collection of information, which quickly becomes stale.

That coupled with inaccurate supporting information, primarily due to high data-set costs, provides a less than desirable experience for users. Mahalo saw this in the generalized search market and put into place human editors who comb the internet looking for the best information and vetting user submissions. The result are guides of information that are informative and helpful.

How long will it be before we see Mahalo style sites targeting niche verticals? Who out there is working on a white label Mahalo which can be reused in these smaller markets?

Share PGP Is Evil, GPG Isn’t

Tuesday, October 7th, 2008

GnuPG > PGPSome five or six years ago, I implemented an email data transfer process using PGP to handle file encryption leveraging self signed keys that relied on the freely available tools to handle the encryption of the data. All was good (or good enough). The data was secure, everything worked and I was happy.

Fast forward to present day.

I need to update the code so I can deploy on a new environment so I turn back to the company who was so much help last time and what do I find? The “free” product has been replaced by a 30 day trial version that cripples some features (actually locking you out of your data BTW). Licensing is ridiculously hard to understand – suddenly I realized why so many individuals and small businesses don’t bother to encrypt their data. Hell, many organizations don’t even do it as often as they should.

Unfortunately I can’t alter this process to veer from PGP, I am no longer the owner of it, but I think for all future implementations I’ll use GnuPG. I highly recommend anyone dealing with sensitive files make a strong effort to stay away from the larger vendors until they make a serious effort to make encryption available to individuals freely (and easily).

Share Sharpening the Saw

Thursday, October 2nd, 2008

Cutting through wood with a hand saw is a hard job. Pushing the blade back and forth through the wood slowly but surely making the cut deeper and deeper until it’s completed is a time consuming, labor intensive task. Once completed, there’s almost always another piece that needs to be cut.

Often in our daily tasks, we find ourselves pushing and pulling the saw blade back and forth, moving a project along towards it’s expected completion date. As soon as that project is completed, often before it’s completed, another one presents itself and requires our attention. This is very similar to cutting through the log. We often feel taking even the shortest break will put us off our course, the work will pile up, and we’ll never get it all done.

You’re wrong. Sharp tools cut faster.

Franklin Covey has taught us this already. Taking a 10-20 minute break to sharpen the saw can make the cutting process go faster. Increasing productivity and of course resulting in completing the tasks quicker. Taking the time to obtain the needed skills is a hard discipline, but it must be done and done now!

Think about your current and future task list. Now, take 10 minutes to think about your most mundane task and research to see if there’s a book, course, webinar or other resource you can tap to learn more about it. Even the most cursory overview will teach you some nuance that improves your productivity – sometimes – you’ll learn your understanding of a topic is really far more basic than you realize. The added time spent on yourself will help you to complete that mundane task perhaps a little more efficiently, giving you more time to complete the task at hand.

What saw am I sharpening?

I’ve been writing simple, and some not so simple, CRUD (CReate Update Delete) SQL for most of my professional career. I find it boring and tedious, but a necessary evil in the Web 2.0 world. This week I started reading Refactoring SQL Applications by Stéphane Faroult and Joe Celko’s Thinking in Sets. What I found was that many applications I’ve seen (and written) hardly tap the power of SQL and that there are some major mistakes that the PHP/Perl/ColdFusion/ASP.NET/C# programming manuals proliferate in the over simplification of relational database design. I’m now realizing that the majority of code I’ve seen and worked on is actually using SQL as a giant persistent hashmap!

These books are causing me to think about not just the CRUD statements differently, but how my applications interact with the persistent storage engines web apps interact with every day.

Take a few minutes today to sharpen your saw.

Share Get Out!

Friday, August 29th, 2008

Mashable had a great piece by guest author Michael Cerda for employees of small companies to help know when to jump ship. I highly recommend reading this for anyone working at a small(ish) company. I’ve seen evidence of this at a number of the places I’ve been in or worked with (not just tech companies either) and would be wary if you see anything in your current situation that you can relate to.

Share Mobile Data Connectivity Options

Monday, May 19th, 2008

Computer World Mobile Wireless Logo Brian Nadel recently wrote a nice article comparing broadband service from the big three wireless carriers, AT&T, Verizon and Nextel. Normally I have good connectivity within my house through my local cable carrier and don’t mind paying for airport WiFi once in a while. I’ll be traveling to the Northern Virginia area in the next month and want to have a broadband connect card as an option for connecting wirelessly. The $300/night hotel I’m staying in doesn’t offer free WiFi, instead it’s a $10/day T-Mobile hotspot. Add that together with the fees from the airport (Boingo) it comes up to a hefty $80 for internet service while away from home for a single week!

AT&T Fail Logo In Brian’s article he mentioned that AT&T had an $80 option for those adverse to a 1 or 2 year commitment. Intrigued I stopped by my local AT&T store and was given a bunch of misinformation that differed even from the information I was able to read on the AT&T site. 2 calls to AT&T later I was still unable to get the $80/month plan mentioned. I asked my sales consultant if there was an option to add it onto an existing line of service which could be upgraded and downgraded as needed based on my travel patterns and still no luck. At least a 1 year commitment is required. I was able to get an offer of a month to month with no discount on the card plan (which is to be expected) for $29.95/month with a 10Mb data allowance. Unfortunately the overage charges are outrageous ($0.06/kb). A single webpage might end up costing $2 to $3 to view!

There are companies that are catering to my more specific needs – a short term “rental” but they’re making a hefty profit on the service. I found two services, one which I wouldn’t even think about giving my credit card information to. The other, Rovair, seems to have a nice product offering, comparable with purchasing WiFi cost wise – but of course with the added convenience of your own dedicated connection.

Carrier 7 days 14 days 21 days 28 days
Rovair $12.93 $10.33 $7.80 $6.27
Cellhire $14.99/day $12.50/day

Verizon and Nextel only offer plans with contracts as well. Verizon does have a 1 year options and Nextel locks you in for 2. So now I’m back to considering my options with pay as you go WiFi and spotty EDGE connectivity through my paired Blackberry and probably the most economical – going without <shudder />.

© 1998-2008 AF-Design, All rights reserved.