Disclaimer

The views expressed on this weblog are mine alone and do not necessarily reflect the views of my employer, Avanade.

Search
Recomends...
  • Code Complete, Second Edition
    Code Complete, Second Edition
    by Steve McConnell
Login

My Latest Project: Question Themed Social Pages

I just created these sites to help track information related to commonly asked questions:
Wednesday
Jan112012

Developing the idea

I've been consistently working on the site since my last post, though none of the changes have gone live yet and probably wont for a week or so.

I started with the best of intentions. Add caching to the site using Windows Azure Appfabric Caching. As I started to gut the pages to add in caching, I lamented that I didn't spend much of the initial flurry of activity on writing unit tests, which would have made me feel more comfortable about the changes I was making.

So I spent a few days writing unit tests and refactoring my controllers to be more testable, removing dependencies on the http context and refactoring for a bit more structured and elegant code.

Once that was in place I implemented the caching, which was pretty straightforward except for one thing. Since the configuration section used was a collection of datacacheclients, I thought it would be neat to get windows server appfabric caching and swap between them depending on whether I was doing a dev build or a release build. The cache client had the same name and were in an assembly of the same name, so I thought it would be straight forward. But it turns out the Azure assembly is version 101.0.0.0 and the Windows server is version 1.0.0.0 and are completely incompatible.

When I gave up, I had to deal a slew of errors, because apparently azure only likes it if you name your datacacheclient "default".

Anyway, once I got the configuration squared away, implementing caching was pretty straightforward.

At the same time, I starting looking for help with the design of the site. I pursued a couple of leads, but couldn't find anyone I was comfortable with, so I decided to try to do it myself. (famous last words...)

So I think I have a nicer layout, which I plan on rolling out, but as I thought about usability and my original vision of "once found" as a research tool, I started working on major changes to the site.

First decision I made was for no more polls. I'm ripping them out. Most topics they didn't make sense, and the few people I got to try the site were entering answers that should have been comments. Comments will be prominent, with links in the sidebar. 

I want to turn this into a research tool. When this is ready, I'll launch OnceFound, which will allow for research any topic, with each question site a more specific version of the site. With this in mind, here is how I picture people using it.

 

  • For each topic, users will be able to drag and drop the links and comments in any order they please. The relative rankings each users give will calculate a "score" which could then be used to guess where links appear in the shared rankings. As new links are ranked, they could appear where we think a user would rank that link if they vote like other users. They can also remove a link or comment from their personal view and switch to the shared view.
  • For each topic, users can maintain a personal log that is not shared with other users.
  • Pages will show usernames of other users "researching" the topic ordered by their activity level on the topic. Will implement a user messaging feature.

 

Basically I see each topic page as a research hub, which I want to enable multiple people to combine resources.

Here's a very preliminary screenshot to give you an idea of the basic future layout (content areas are not styled yet).

This will be a lot of work and not all of that may make it into the first iteration. Will provide updates as more work gets done.

Thursday
Jan052012

The Purpose

After writing the last post on my plan for developing the sites, I took a step back and began to think about what the point of this venture was. The value proposition, the business statement, the eventual business model. As a developer I was so enamored with building the site and leveraging these cool new technologies, I didn't stop and think what need I was solving.

 

Now that it's live, and I've had time to reflect, I think there is a real need, a pain point that can be solved. And luckily for me, I think there is an opportunity that can exploited by these sites.

 

When it comes to using search engines, I find myself search one of two ways. Entering keywords related to what I'm looking for, or just entering a question fully flushed into google and seeing what is returned. I suspect I am not alone in this approach.

 

The problem with existing search results, is that although there are some good results, some are geared toward a single opinion, and you have to spend time going from site to site to figure out what to trust. Question and answer sites like Yahoo answers are great for this sort of thing, but you find yourself finding many variations of the same questions with different answers. There is no real authoritative resource that is "the answer" or "set of answers."

 

My goal for the sites is to become that authoritative resource. Related links worth looking at can be organized and voted on. Comments specific to that question can be posted and discussed. Even the poll can be used to give people a general sense of what sentiment on the different answers are.

 

While I suspected that I wasn't alone in typing fully flushed out questions into google, I was surprised to how frequently other people did it. When I used google's keyword estimation tool to see how many people search for questions like this every month here is what I found:

 

  • How often should you: 673,000 (broad), 201,000 (phrase)
  • Where Could: 55,600,000 (broad), 40,500 (phrase)
  • How Can You Get: 277,000,000 (broad), 110,000 (phrase)

 

Well you might think those are broad terms, but the keyword tool allows you to drill down even further and see the most common queries that include those terms.

 

 

I know these are the broad matches, but if you add up all the global monthly searches for the top 200 keyword phrases that begin with the question in the three sites there are over 500 million global searches for those phrases. 

 

If I just focus on a subset of those to seed the topics with relevant data and work on SEO for questions I have a chance of ranking highly on, I could potential have a lot of traffic on my hands. Hopefully it will be enough traffic to be able to monetize some of that traffic with non intrusive advertising. 

 

I know it’s a long road to get there, but that's the road I see. On the way, I know I need to build a community of folks who are invested in the site and it's content, and finding that audience will be difficult, but hopefully with perseverance, I'll get there.

 

Wednesday
Jan042012

The Plan

So the sites have been up a few days and I seeded the site with the most frequently searched for terms according to google's keyword estimation tool (whose top 200 search phrases add up to over 500 searches per month), though none of the pages have much in terms of content.

Here's my tentative plan for the sites: (in no particular order)

  • Find a graphic designer to help come up with a better UI/User Experience. I think people can tell the site was designed by a developer. The current layout came from a free MVC template from the MVC 1.0 Gallery of templates on codeplex. If you know anyone who can help with this, let me know, otherwise I might have to outsource to oDesk, 99Designs or Crowdspring.
  • Implement a more robust caching strategy leveraging Azure's Caching.
  • Add a related Twitter Tweets widget to the topics pages. (Started looking at their API's and they looked interesting), and may give some default content to new pages.
  • Use Windows Azure Access Control Services (ACS) to enable login through Google and Facebook. Part of broader strategy to integrate the sites with Facebook via their API's. Plus already viewed the Pluralsight training on this, and looks pretty easy to implement.
  • Change the Voting strategy of the site. In the interest of reducing friction for using the site, currently anonymous users can vote and submit. JavaScript cookies are all that prevent users from voting over and over again. Eventually I'd like to build a more robust solution, storing user votes in Azure table storage. Right now all the data is in SQL Azure, but depending on how this goes, maybe its worth moving other items into Table or Blob Storage.
  • Create a "curator" role either for topics or tags, to allow notifications when content changes. Hoping to give users the ability to monitor the site. Also allow these users to modify content (answers, comments, etc)
  • Add a set of FAQ pages
  • Add RSS Feed Support for tags or topics.
  • Figure out how to implement a robust search function and implement it.
  • Leverage above mentioned search functionality to automatically identify and handle duplicate topics like google does with "Did you mean?". Maybe depending on the confidence level, display a page with similar sounding question instead of creating a new topic, like we do today, which I think is a cool feature for now.
  • Figure out how to monetize the site. I was rejected from Adsense due to a lack of content. 
  • Come up with a better content strategy. I might end up finding a virtual assistant or someone to help seed the site with content. 
  • Build out a better deployment strategy. I've grown tired of waiting for all the servers to be updated whenever I deploy a new package. I've heard of quick web deployments using the Windows Azure accelerator for web roles, and it's something I'm thinking of looking once the pain has become too much. And as far as automated builds go, I'm looking of forward to seeing how it will fit together with git. Right now, I'm pushing all my code to bit bucket before every deployment as a practice and it's worked out nice so far.
  • Create a catch all site, "OnceFound" to describe the purpose of all of this. Eventually the plan could be to acquire more domains and leverage the same technology, or perhaps allow others to use this technology to park question oriented domains (become a host).

Sounds like enough to keep me busy for a while.

If anyone else has any other ideas, let me know.

 

Sunday
Jan012012

Introducing WhereCould.com, HowCanYouGet.com

As of now, the OnceFound network has grown by two additional sites. Both WhereCould.com and HowCanYouGet.com are now live.

To accomplish this, I didn't haven't to deploy anything additionally, and the domains are actually redirected to a single Windows Azure application instance.

The architecture of the codebase, allows the host names to drive the content of the site (title, branding, etc, thought not much is customized for now). 

I also cleaned up some of the code and layout, added images for upvotes/downvotes, added google adsense (which appears blank until google approves) and made a few other minor tweaks.

Feel free to check them out.

http://www.wherecould.com/

http://www.howcanyouget.com/

Saturday
Dec312011

Introducing HowOftenShouldYou.com (HOSY)

In the past month, I started coming up to speed on Windows Azure, having attended a developer camp in Microsoft's NYC offices in early December. 

I then signed up for a Pluralsight membership and had been viewing a ton of their training materials on my new Kindle Fire using their app, and spent a good amount of time looking at their stuff for ASP.Net MVC, jquery and Windows Azure, all of which I have not had much experience with.

Wanting to work with all these technologies, and build something new, I spent the last 8 days developing a new site: "How Often Should You," a site which allows users to discuss, share information and vote related to questions users typically ask that start "How Often Should You."

Any question searched for automatically gets a topic specific page. In the interest of getting things live as quickly as possible, I've only implemented bare bones functionality for topics including:

  • Submit and Vote on answers to the question, Poll Style.
  • Submit and Vote on Links related to the question
  • Submit, Reply and Vote on comments related to the question.
  • Tag each topic with keywords that will relate the question to other questions.

There's also a basic account/login model, which isn't really used for much now, as for now anonymous users can vote and submit content. 

There is plenty of room for feature improvements, and I already have a large backlog including rolling out sister sites for a few domain names I already registered (WhereCould, HowCanYouGet). I will actually be able to leverage the same servers and db as this is architected into the approach. It's part of my plan to create these sites under an umbrella site called "OnceFound," which right now is just another domain name I own.

Ultimately, I'm planning on running ads on the sites, and is this my first venture of this kind, I'm curious to see how successful this could be. 

Under the hood, I'm using a bunch of technologies I haven't gotten a chance to work with before including: ASP.Net MVC3, Entity Framework 4.1 (code first), JQuery (JQuery UI and a few other plugins), SQL Azure (Plan on using table storage down the road) and of course Windows Azure. I'm also using GIT for the first time, and saving my code in a private repository on bitbucket, which has been a nice experience so far.

Luckily my MSDN subscription gives me a number of Azure computing hours for free, which I'm hoping will eliminate most of my costs for running this experiment. Right now the site is powered by 3 extra small instances.

I plan on posting more details about the technical implementation and planned features so stay tuned.

There is not a lot of content now, but I'll be adding generic pages based on search estimates from google's keyword estimator tool.

Check out the site here: http://www.howoftenshouldyou.com/