Spontaneous Publicity
blogs are the new phone book

I Was Given the Gift of Smugmug Customer Service

December 31, 2007 03:58 by Luke

In my previous post, I outlined a little trouble I ran into trying to purchase a friend a Smugmug account as a gift. Well, I am happy to report that the folks at Smugmug responded amazingly and have managed to show how much they care about their customers (as well as potential customers)...I guess there is a reason why they refer to their support personal as "Support Heroes".

The Man Himself

If you look at the comments for my previous post, you will notice the first comment is from none other than the founder, CEO and Chief Geek at SmugMug - Don MacAskill. I love it when leaders of companies care enough about their company that they are willing to step up and participate in the conversation about their company on the Internet. There are a couple of things Don said in his comment that I think explain exactly why I even wrote the first post in the first place:

I’m so glad you spoke up about it rather than just shrugging and going somewhere else

It is usually way easier to just shrug something off. In fact, I was ready to do that and just buy my friend a Flickr account as a gift. But, my wife was persistent about at least seeing the Smugmug thing through and I figured I wasn't the only one who had experienced this problem. This is a key point for users of any software: If you are confused about something or are experiencing any type of difficulty, chances are you are not alone. It is too easy for users to blame themselves.

without feedback like this, we’d never improve, so I’m glad to hear it.

Smugmug is obviously a company that wants to improve their product any way they can. One reason why I love Don's stance on this issue so much, is that I now how hard it is to accept feedback on something you feel so passionate about. Smugmug is a family owned business that Don MacAskill started with his father and he could have just have easily been defensive or taken feedback personally. You'd be surprised how many CEOs react like that. And don't get me started on developers being defensive about their code. Feedback is good. Wouldn't your rather hear what your actual users think rather than just guessing what they must think?

Above and Beyond

Well, in the end I was able to give the gift of Smugmug as well as receive a gift because the folks at Smugmug decided to give me and my friend free accounts as a way to show how much they care about any difficulty I have experienced. That is more then I would have ever wanted to come out of this situation. They didn't have to do that. But they did. And that is why they have renewed my faith in how much they care about their customers.


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:
Categories: Personal
Actions: E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed

Why Won't You Let Me Give the Gift of Smugmug?

December 28, 2007 19:11 by Luke

Ok, so here is the story. I have some friends that are having a baby soon so I thought a good Christmas gift to give them would be a subscription to a photo sharing web site so they could share all their photos of them and their new child. Since I have a Flickr pro account and love it, I figured I would get them a Flickr account. But then I read about Robert Scoble raving about how much he loves Smugmug and that he is possibly moving from Flickr to Smugmug. So I decided to give Smugmug a try.

On Trial

So I signed up for a trial account with Smugmug and just browsed around to get a general feel for the site. I really like the site and they have a done a wonderful job of making it easy to perform most of the common tasks that a photo sharing site should enable you to do.

I talked it over with my wife and we both agreed that Flickr is more techy while Smugmug is more family friendly. Since we wanted a site which would allow our friends to share baby photos with their family, Smugmug seemed like a really good choice.

A Snafu

So I searched around the Smugmug site and finally found a page where you can "give the gift of Smugmug" so I decided I would go ahead with that. One problem though, when I reached the gifting page, I was greeted with a blank page. Hmmm. That's strange. Maybe it is my browser. So I tried it in Firefox. Same thing. Try it for yourself, here is the Url:

https://www.smugmug.com/gift.mg

Then, I remembered that Smugmug is a family owned business and they boast that they have really personal and friendly support. So I wrote those wonderful humans at help@smugmug.com.

Warm, but not very helpful

I wrote support and explained that I was getting a blank page in both browsers when trying to give the gift of Smugmug. I received a response a couple of days* later that basically consisted of the usual support response: Clear your browser cache, delete all of your cookies, and restart your computer. Ok, that is to be expected. It seems that in technical support you have to start with the most basic things first. I knew it wouldn't help but I decided to try it anyway. Well, it didn't help. I was still getting a blank page.

*Update: After going back and checking the timestamps on the emails with Smugmug support, the response actually came the next day and from then on out they responded to all of my emails within a couple of hours except for my very last message to them which was never responded to.

Next, I tried it at a different computer (from work) and again, in both browsers. Same results. So I replied to support and told them this and asked if they had any other ideas. The response I received really puzzled me:

Thanks for contacting SmugMug. To give the 'Gift of SmugMug' you must
have a current / active account with us and have credit card information
in the control panel of your account. Check to make sure you have
updates your account billing information.

Well, I guess I don't mind giving them my credit card information since I will need to be paying for this gift. So I went to my user settings on Smugmug and went to update my credit card information. Well, in order to enter credit card information, I must sign up for my own Smugmug account and pay for it. Ok, so let me get this straight. To give somebody else a gift, I must fist purchase an account for myself? But I am perfectly happy with my Flickr account and I don't need to pay another fee for a site I may or may not use.

In A Tight Spot

So now here I am, three days after Christmas and I still have not been able to purchase a Christmas gift for my friends. My first reaction was to just back out and give them a Flickr account. But my wife insisted we get them a Smugmug account - it is prettier. So what do I do? At this point I don't feel like I am getting much help from Smugmug. I am trying to give them money and they won't take it.

Why Blank?

Ok, so maybe they haven't really set up a way for non-members to give others gifts. Maybe this is even a business rule they decided to enforce on their web site. But why not explain this on the page rather than just giving me nothing? Here is what the code for that page must look like:

if(User.IsPayingCustomer)
{
     DisplayGiftForm();
}
else
{
     DisplayBlankPage();
}

Makes no sense to me. I must be missing something.


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:
Categories: Personal
Actions: E-mail | Permalink | Comments (3) | Comment RSSRSS comment feed

You Know You Are An Influential Blogger When...

December 13, 2007 06:46 by Luke

Sometimes it is hard to see threads of discussions in blog land because you may only be reading a subset of the blogs involved in the discussion. In this case, I just happened to be subscribed to many of the blogs in this thread. First let me lay out the timeline of posts:

Jeff Atwood published his post Sorting for Humans : Natural Sort Order

Ian Griffiths responds with post entitled Natural Sorting in C#

Charles Petzold responds with Sorting Without Spaces

Dare Obasanjo responds with his post Natural Sort in IronPython vs. C# 2.0

Now these are some pretty big names to have both reading your blog and responding on their own blog. And according to technorati, there are 9 blog reactions to Jeff's post. That is pretty impressive. That makes Jeff Atwood a very influential blogger in my book.

If this were my timeline, it would look more like this:

Luke published his post on Asp.Net Control For Google Charts

Luke's Mom emails him and says, "I read your new blog post and I didn't understand a word you said but great job!"

Luke's Wife calls him and says, "Your Mom really likes your new blog post."

Trackback spam responds to Luke's post: "Want to buy some ViAGra?"


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:
Categories: Development
Actions: E-mail | Permalink | Comments (2) | Comment RSSRSS comment feed

Productivity Tip: Copy As Path

December 10, 2007 08:03 by Luke

Here is a quick little tip I just learned that I use all of the time now. In Windows Vista, if you hold down the Shift key and right click on a file, a new option appears in the context menu: "Copy As Path"

image

This will copy the full path of the file you select to the clipboard. This is very handy for pasting file paths into a command prompt window. Why this option is so hidden, I don't know.

I hope this saves you some time.

kick it on DotNetKicks.com

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:
Categories: Productivity Tip
Actions: E-mail | Permalink | Comments (7) | Comment RSSRSS comment feed

Finally - Asp.Net MVC

December 10, 2007 07:15 by Luke

For those of you who have been following the new Asp.Net MVC (Model View Controller) framework know how much developers have been chomping at the bit (no pun intended) to try out new framework. Well, that day has finally arrived!

ASP.NET 3.5 Extensions preview

For those of you who haven't been following the development of this framework:

ASP.NET MVC is an architecture that enables you to easily maintain separation of concerns in your applications, as well as facilitate clean testing and test driven development.

You can read some great articles on Scott Guthrie's blog and Rob Conery's blog.

I definitely plan on checking it out and posting my thoughts and feedback.


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:
Categories: .Net | Development
Actions: E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed

Asp.Net Control For Google Charts

December 8, 2007 22:43 by Luke
Google has launched a new service which allows you to very simply build charts for any web application. Their design decision to make an interface to their service which is all based on the format of the query string is very interesting to me. Basically, you send them a Url and they return a PNG image of a chart. The little query string language they use for the charts is not the cleanest thing in the world but it is simple which is nice. Here is the official description:
The Google Chart API is an extremely simple tool that lets you easily create a chart from some data and embed it in a webpage. You embed the data and formatting parameters in an HTTP request, and Google returns a PNG image of the chart. Many types of chart are supported, and by making the request into an image tag you can simply include the chart in a webpage.

A Weekend Coding Project

I really enjoy building custom Asp.Net web controls so I decided to try my hand at creating a control to wrap the Google chart functionality. Now, this is really just a first pass so it is definitely not bug free or feature complete. I just figure I can put it out there and get some feedback to see if I should continue in the same direction or to see if I am way off. Also, I can use this as an opportunity to share a little about how I approach web control design. Note: I realize that I am not the first or only one to get the idea to create a Google chart Asp.Net control, but since my approach is so different, I figured I would go ahead and submit my own.

So Many Classes

Maybe I am a little too obsessive or just set in my ways, but it always seems like when I set out to tackle a problem like this, there is a set of helper/utility classes that I prefer to use. Over time this creates a sticky situation because I have so many copies of the same or similar classes laying around it becomes a maintenance nightmare. I have considered just creating my own utility assembly but then people would have to deploy that with any solution that they use my code in. I prefer to release my code as a self contained assembly whenever possible so I guess I will just put up with it for now. Here is a quick list of the classes I used on this project: image I use ColorHelper to translate System.Drawing.Color objects to and from their hexadecimal string counterparts. EnumHelper contains methods for getting Description attributes associated to enums as well as some parsing methods similar to these. I have written about DelimitedList and the state managed classes before. I make heavy use of QueryStringHelper to build the query string which represents the chart data.

Heavy on the Declarative Syntax

I have approached this problem by trying to represent the entire chart declaratively right in the aspx code. Here is an example of a line chart:
<web:Chart ID="chart" runat="server" Width="300px" Height="150px"
    Title="Transportation" Type="Line" EnableLegend="true">
    <DataSets>
        <web:DataSet Color="ForestGreen" Label="Cars">
            <web:DataPoint Value="5" />
            <web:DataPoint Value="9" />
            <web:DataPoint Value="21" />
            <web:DataPoint Value="30" Marker="Arrow" />
            <web:DataPoint Value="25" />
            <web:DataPoint Value="36" />
        </web:DataSet>
        <web:DataSet Color="Red" Label="Trucks">
            <web:DataPoint Value="7" />
            <web:DataPoint Value="3" />
            <web:DataPoint Value="13" />
            <web:DataPoint Value="13" />
            <web:DataPoint Value="16" />
            <web:DataPoint Value="25" />
        </web:DataSet>
        <web:DataSet Color="Orange" Label="Motorcycles">
            <web:DataPoint Value="18" />
            <web:DataPoint Value="25" />
            <web:DataPoint Value="18" />
            <web:DataPoint Value="13" />
            <web:DataPoint Value="25" />
            <web:DataPoint Value="23" />
        </web:DataSet>
    </DataSets>
</web:Chart>
As you can see, a chart with any sizable amount of data can become very cumbersome. The output of this chart looks like this: Transportation The url used to generate this chart looks like this: http://chart.apis.google.com/chart?chd=t:5,9,21,30,25,36|7,3,13,13,16,25|18,25,18,13,25,23 &cht=lc&chs=300x150&chco=228b22,ff0000,ffa500 &chm=a,000000,0,3,10&chtt=Transportation&chdl=Cars|Trucks|Motorcycles You can change the type of chart being generated through the Type property. Here is an example of a bar chart: A Venn Diagram: Pie Chart:

Feedback Please

What I really need right now is some feedback. Do you find this helpful at all? Is my design way off? What would be the ideal way to build charts using the Google Api? Please - download the library, try it out. Download the source and check it out. Post comments letting me know what you think. Also, let me know if you would like me to write more about the details of the code or the usage of the control. Source: Google Chart Source Assembly: Google Chart Assembly kick it on DotNetKicks.com

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:
Categories: .Net | C# | Development | Google Charts
Actions: E-mail | Permalink | Comments (14) | Comment RSSRSS comment feed

Productivity tip: Visual Studio Smart Tags

November 10, 2007 05:27 by Luke

In Visual Studio 2005 they added a feature that is very useful - when you type the name of a class, if you have the assembly for that class referenced but you don't yet have a using tag in your file, it can add it for you. This is accomplished using a Smart Tag (much like the smart tags in Microsoft Office). The one problem is that if you are typing and the smart tag comes up, you have to use the mouse to click on it and choosing an option.

When you first type the word (which is case sensitive)

SmartTag01

Then you put your mouse over the little blip and you get:

SmartTag02

Then you click and you get the menu:

SmartTag03

My point is that this is all a very disruptive if you just want to quickly add the using tag and keep moving. I should mention, that there is a default keyboard binding to show the smart tag menu which is Alt+Shift+F10. Personally I can never remember this short cut.

So what is the tip already?

What I like to do is to bind this shortcut to a more intuitive Alt+Down Arrow. This way I just hold down the alt button and pressing down makes sense that the menu would show.

To set this binding you must open up the Tools->Options menu in Visual Studio and go to the 'Keyboard' tab. In the commands box, type in 'View.ShowSmartTag' and you will see the command show up in the list:

Then, put your cursor in the Shortcut key box and press Alt+The Down Arrow. Click assign and OK and you are all good to go.

Now to add a using statement, you just have to type the class name, type Alt+Down Arrow, and press enter. Not very disruptive at all. This may seem small but I find this to be extremely useful in my day to day development.


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Life Changes So Fast

October 11, 2007 11:25 by Luke

If Scott Hanselman and Phil Haack can do it then why can't I? That's right, I am joining Microsoft on the Windows reliability team as an SDET. The craziest part is it has all happened so fast that I am not sure the best way to prepare to move from San Diego to Washington in two weeks.

I am very excited about this opportunity to grow and work in an area that is outside of my usual expertise. Just in case you are not clear about exactly what and SDET does or if you had some of the same misconceptions I did, here are a couple of posts from jobsblog to clear things up:

I am not sure what this move will mean for the future content of this blog. I plan on keeping up with all things .Net even though I will be taking a new journey into the land of unmanaged code.


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:
Categories: Development | Personal
Actions: E-mail | Permalink | Comments (2) | Comment RSSRSS comment feed

Welcome to BlogEngine.NET 1.3 with MSSQL provider

September 30, 2007 01:00 by admin

If you see this post it means that BlogEngine.NET 1.3 is running and the SQL Server provider is configured correctly.

Setup

If you are using the ASP.NET Membership provider, you are set to use existing users. If you are using the default BlogEngine.NET XML provider, it is time to setup some users. Find the sign-in link located either at the bottom or top of the page depending on your current theme and click it. Now enter "admin" in both the username and password fields and click the button. You will now see an admin menu appear. It has a link to the "Users" admin page. From there you can change the username and password.

Write permissions

Since you are using SQL to store your posts, most information is stored there. However, if you want to store attachments or images in the blog, you will want write permissions setup on the App_Data folder.

On the web

You can find BlogEngine.NET on the official website. Here you will find tutorials, documentation, tips and tricks and much more. The ongoing development of BlogEngine.NET can be followed at CodePlex where the daily builds will be published for anyone to download.

Good luck and happy writing.

The BlogEngine.NET team


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: ,
Categories: General
Actions: E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed

Is Ruby the new Perl?

September 19, 2007 07:27 by Luke
I just now completed the ruby tutorial over at try ruby! and I couldn't help but think how much ruby is like Perl. My first programming jobs in college were using mostly Perl so I have some (mostly) fond memories of how easy Perl made some tasks. I know I am late to the party when it comes to checking out ruby. I just don't really have alot of opportunity to use it outside of my free time. I finally decided to answer the call of Scott Hanselman and try it out. Just like Perl made working with text files and regular expressions really simple, ruby (and more specifically, rails), seems to do that for web development. I plan on spending alot more time looking into ruby/rails but I just wanted to share my initial thoughts. I can remember doing things like:
open(FILE) or die "cant open file";
in perl and when I see:
Time.now - 2.weeks
in ruby it takes me back to those days. I was just recently talking to a recruiter who was looking for Perl developers. I was really surprised that new startups are actually choosing technologies like Perl when things like ruby on rails exist.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:
Categories: Development
Actions: E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed