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

Code Snippets makes developers more productive

I created this tool to make reusing common functions, queries or other pieces of code easy as pie.
Tuesday
May152012

Web Development Grew Up Without Me

As I get deeper and deeper into developing wedding crowd, I feel more and more like I've been asleep for the last 5 years when it comes to web app development.

I grew up on classic asp and HTML 4.0 in the good old days of Netscape Navigator 4.0 and IE 4.0. I remember how bad cross browser "everything" was. I recall irritating layout bugs with vanilla HTML tables that occurred if you didn't put your line breaks where browsers wanted them. I remember playing with AJAX before it was called AJAX (with the ie Active X object) and when Netscape's Layers were depreciated for DHTML.

Early on in my career, I moved on to .Net and got deep into Web Forms development. There was a time I could confidently say I've done most everything with Web Forms and had a firm understanding of the entire platform. I remember picking up a book on rails when it first became hot, way before ASP.Net MVC came out and thinking it was interesting, but not something that was worth breaking out of my web form shell for. 

Since then I worked deeply with Windows Forms and Desktop Development, BizTalk development and even SharePoint development among other technologies. I hadn't really kept up with all the advancement in the web development craft these past few years. When I started working on HOSY (my failed attempt at a social qa site), I was really impressed with the speed I could build applications with MVC and only scratched the surface with what could be done with jQuery.

A few weeks into development of Wedding Crowd, I really need to reflect on how much things have changed and how much better and cleaner development feels. I'm using knockout js with jquery and jquery ui to create an extremely rich UI and it doesn't feel overly complex. Templating is dirt simple and the tight binding between DOM and JavaScript model using observables really makes everything feel like the way it was meant to be done.

I've found excellent jQuery plug ins for skinning file upload controls, creating scrollable divs and creating light boxes, all open source with great documentation.

I'm also starting to dig into SignalR, a client server messaging framework which also seems to abstract most of the complexities needed for creating extremely rich messaging in web applications.

I really feel like I building on top of the shoulders of giants.

I remember several years ago remarking that I hated JavaScript. I feel like I've come full circle and my opinion has completely reversed. I not only don't hate it, I really enjoy it.

 

 

Tuesday
Mar062012

Coming Soon: WeddingCrowd.com

Thought it was time that I announce my next project, currently under development. Wedding Crowd is a social wedding planning site that is going to change the way brides choose their vendors.

I originally approached the development of this idea from the social side. I didn't think facebook was a good platform for sharing details about your wedding as you were planning it.  I talked to a number of past and future brides who confirmed my assumption. A lot of brides get help from their bridesmaid, but most of that is coordinated via text message and email. So I set out to build a site where brides can communicate with their bridal parties and anyone else they wanted to include in the discussion.

As I began to research the market, I kept reading about pinterest and how many women were using it to organize ideas for their weddings. And the more I thought about it, the more I thought that would be a perfect way to let vendors know exactly what you want for your wedding. 

So my basic concept is to build a site where the bride and anyone else she wants to invite can privately discuss, rate and share ideas and pictures. The bride could then organize different boards that the images were classified into. For example she could have one board with all the pictures of flowers, one for dresses, another for hair and makeup, for each of the aspects of her wedding she would need to a vendor for.

Once she organized the board how she wants, she could then publish the board which makes the details of what she wants viewable by local wedding vendors that also subscribe to the site.  These vendors could respond with a proposal that includes comments that describe how they could help her bring her ideas to fruition and even include pictures from their gallery that demonstrate this.

She could even share a public url for the board with local vendors of her choosing who would be able to respond as well without having to subscribe to the site.

That's the 1000 foot view of the concept we're building. I'm working with my sister on this one, who is getting married in the fall. She's already blogging and tweeting. And I put up a landing page at WeddingCrowd.com where you can see our shiny new logo and sign up to be notified when we launch.

I'll post more on the technical details later, but implementation wise, we'll be building it using MVC 3, Azure, SQL Azure, Table and Queue Storage, Facebook API among other technologies.

If you're recently married, planning your wedding or a wedding vendor, I'd love to hear from you

Saturday
Mar032012

SnipItPro.com down

The server Snip-It Pro was on crashed and my host is having issues. They say they're restoring sites from backups, and since I haven't really changed anything on the site in a long while, I'm hopefull there will be no data loss.

Will update everyone once its back up.

Wednesday
Feb152012

Moving on to the next idea

I've decided to not pursue the question themed social sites. I'll eventually take them down, as I don't really see the long term viability of the idea compared to some of the other ideas I've been incubating.

It was a nice exercise of building something using Azure using MVC, jquery and some of the cloud storage options, so it wasn't completely worthless.

Anyway, I am working on something and hope to post details in the weeks to come.

In the mean while, check out Snip-It Pro, a product I built to make managing and using snippets easy as pie. 

 

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.