The Official Kountr Blog

Just another WordPress.com weblog

Archive for April 2008

More Feedback than I Can Keep Up With

with one comment

My two year old has discovered that shaving is the activity that gets rid of my rough face. Every two days he gives me feedback. “Dada shave? Dada shave?”

Then, there is all the great feedback on Kountr. An old friend of Antoinette’s wrote to her and asked if we could have a reset function. So you set a KountDown from 10 and you want to reset it everyday. I can see this being good for challenging yourself to get 10 chores done in a day. I made some data model changes and added this feature. Like the switch between Kount and KountDown, only the creator of the Kount can see the reset button. And only as long as they have the same cookie available.

One of the challenges is that I need to set the reset_to_value for all existing kounts. For the Kounts this is obviously 0 but for the KountDowns I can only guess it is their current value. This is one of those data migration headaches where there is no correct answer.

The other feedback that has me jazzed is the request for an automatic CalenderKountDown. I have finished the data model changes for this and will have the rest done by the weekend. One challenge is making it easy to enter a date. The ideal solution is to use a calender widget from the yui tool kit. I’ll have to figure this out.

One of the interesting things occuring is that we are getting all these different types of Kounts, permutations, if you will. They can all be viewed at a specific moment in time, and they will have a specific value, but how they are defined, and transformed differs.

What other types of Kounts can you think of? Request a feature, minor change, or bold idea. You’d be surprised how quickly we can implement changes.

Written by Michael Artemiw

April 30, 2008 at 7:47 am

Posted in Uncategorized

Changing Our DB Schema

leave a comment »

I did a lot of reading before I did my first data model change, and no source was fantastic. I thought I would add my experience to the pile. This post details what I am now doing for my second data model change.

We got feedback, requesting an automatic KountDown to a date. I’ll spare you all the details about what changes I am making but I will try to convey the steps I am taking.

I update the models.py file. Adding the new fields in the model I am updating. Then I run “python manage.py sql appname” This tells me what the schema should be. I’ll use this as a guide, as I already have a DB in place and I will update it with alter statements, rather than generate a new one.

I should mention now that I am doing all this in a single DB. I am on the smallest plan available and only have a single DB. Alternatively, if you had two DBs you could create a whole new one and then load the old data into this new one, doing any transformation as necessary.

At this point I take the site down so that I can operate on the DB without worrying about corrupting things. AND TAKE A BACK UP OF THE DB AT THIS POINT!

“pg_dump -f filename -F t db_name” This will produce a tar output.

Here is a great source for the SQL statements I am going to refer to.

To add a new column;

“ALTER TABLE table_name ADD COLUMN column_name column_type;”

To add values for existing data;

“UPDATE table_name SET column_name = value;

You can add a WHERE clause if you have more complex changes to make. Finally, to set a column to be Not Null;

“ALTER TABLE table_name ALTER COLUMN column_name SET NOT NULL”

Be sure to make sure that there are not any null values before making this call, it will fail right away.

With the DB up to the new schema, I believe you need to run syncdb but I could be wrong. Please leave a comment if you know.

So I turned the lights back on, on the site and everything is up and running again. I have a couple of new fields I can use but the app just ignores them for now. I did set one of the new columns to NOT NULL so I suspect that my create view will break right now. I’ll have to go fix it.

Tomorrow I will continue working on this new feature and a post to go along with it.

Schema evolution with Django is pretty simple for now but my schema is really simple, as you might have guessed

Written by Michael Artemiw

April 28, 2008 at 6:05 am

Posted in Uncategorized

The Rest of the Feedback from Today

leave a comment »

So there was more. A co-worker gave me two pieces of feedback. The first is that the logo is too low contrast. I asked Steven to do an updated one for me. He said he should have it done tomorrow evening.

The other feedback was about the feedback, feedback. When you provide feedback, it jumps to the main page and provides no feedback to the user that the operation was successful. I have modified the site so that now there is a message thanking the user for the feedback. This is a bit of a quick hack because it is 12:29am as I am writing this. I will wait for further user feedback to expand on this solution.

Please leave a comment if you have any suggestions.

Written by Michael Artemiw

April 24, 2008 at 7:30 am

Posted in Uncategorized

Lots of Feedback Today

with 2 comments

To start we got this anonymous feedback;

“It would be nice if you could edit your kounts. I made a mistake and made it a kountdown instead of a kount-up. Now I’m stuck and it doesn’t make any sense.”

So how do I solve this problem. My first reaction is to just ditch that kount and create a new one. But I shouldn’t fault my user for wanting to be tidy, just because I am not.

I haven’t implemented accounts yet, so I only have the information stored in the cookie to tell me if the user was the creator of a given kount. I will use this to expose this new feature to only the creator.

I have decided to add a plus or minus on the kount, as a button to switch the direction of the kount. On a kount you see a minus sign. Clicking on it will make it a KountDown, and reload the page. A KountDown has a plus sign. Clicking on it will make it a Kount. I am torn, and don’t know if these signs should be reversed, so that they indicate the current direction of the Kount.

Let me know in the comments what you think.

If you want to see this feature, create a kount!

Written by Michael Artemiw

April 24, 2008 at 7:03 am

Posted in Uncategorized

Tagged with

Kountr in Less than 100 Words

leave a comment »

Kountr is simply a website for creating kounts. Give it a name and click away!

We believe in the power of others to generate great ideas. We brought a seed of an idea to the web and Kountr is now quickly evolving based solely on user feedback.

Web 2.0 applications tend to reward users for their individual contributions. We reward users for their feedback, by implementing solutions for them. We believe this will encourage users to take pride in the entire application. This shared purpose is the foundation of our community.

It is our belief that a true community will ultimately be a more sustainable audience for advertisers.

Written by Michael Artemiw

April 23, 2008 at 6:02 am

Posted in Uncategorized

Some Gems at Rick Segal’s VC Roundtable in Victoria

leave a comment »

I had a chance to attend Rick Segal’s VC Roundtable on the 21st. Rick does an excellent job of making venture capital approachable. I was really impressed.

I have a bad habit of being like a kid in a candy store when ideas are being thrown around. I need to focus on the 1 or at most 3 key things I can take away, and change how I do things. So I will try with this;

  1. Protect your angel’s ability to profit – Convertible Debentures
  2. Get to NO quickly!
  3. Your pitch must include “What must I believe, to invest?”

There was plenty more in the 2 hour talk but those are the three that stand out for me.

I managed to find some photo’s of the event taken by Tris Hussey. Unfortunately, or fortunately, depending on how you look at it, the best one I could find of me was of the back of my head.

I’ll be working hard on some updates to Kountr based on what I heard at the event, and will contact Rick about a no harm no foul in the next couple months.

Written by Michael Artemiw

April 23, 2008 at 5:40 am

Posted in Uncategorized

A Flurry of Features

leave a comment »

I am not getting much sleep this week. We have been implementing a bunch of new features. I implemented sessions so that I could provide a history of the kounts viewed and created by the user. This should make it easier for people who want to return to the site periodically to increment their kount.

I have been holding off on doing any new features that required changing the data model. I just didn’t think I had the right tools in place yet. We wanted to add the ability to have a kountdown. This had been requested 3 times by users. Antoinette had this awesome idea. Rather then having a bit in the data model to indicate which direction the kount was going we could do it without changes to the data model. We let the user set the initial value of the kount. We then store the negative of this number. But when we display the value of the kount, we show the absolute value.

abs( -x + 1 ) = x – 1

When it reaches 0 it will bounce back up. Not a big deal because the user is just trying to get to 0. I like this solution because it was the absolute bare minimum required to meet the customer request. In the future if the feature is worthwhile we can always do a cleaner implementation.

Finally, I got a request today to include a timestamp on the kounts so that people can know when they were created. This requires a data model change, but it was painless.

I’ll write more about these all once I am done the critical stuff tonight.

Written by Michael Artemiw

April 18, 2008 at 5:38 am

Posted in Uncategorized

First Explicit Feedback

leave a comment »

Auto-refresh available?

We are so exited to receive our first explicit feedback. My first instinct is to say auto reload should be done by the browser, not the web app. But I have a user who is willing to give me feedback, I need to return the favour.

Auto-refresh is a solution, so what is the problem? (The remainder of this paragraph is conjecture) This user and another have the same kount open for an extended period of time, and they both periodically click on the kount. Sometimes this user’s kount will jump by more than one, because in the interim the other guy has been clicking. He would like to see his kount increment when the other guy clicks.

Interestingly, this behaviour is an anomaly according to the analytics. Most users only stay on a kount page for a couple seconds, 15s tops

After doing a bit of research and playing around I have arrived at my solution. It isn’t perfect, but I think it meets the users need, is relatively clean from my perspective, and it was quick to do.

When you arrive at a new count page there is a one minute delay until a redirect to a different, but identical looking page. This new page is designed to refresh every 15s. In this way most users never notice this feature, for those loading and keeping pages open a long time, they get a nice auto-refresh to keep the count in sync.

I chose to implement with the html meta tags vs. using Javascript. My motive here is YAGNI (You Ain’t Gonna Need It) a phrase I first heard from Venkat Subramaniam. By implementing the solution in the simplest way possible I reduce the risks; the risk that I solved the wrong problem and the risk that a future feature will conflict with this one. If this feature proves to be a winner I can always improve the feature with Javascript in the future

One point about this implementation. I did the easiest implementation I could. Not because I am lazy or totally inept. I want to be responsive to user feedback and that means sometimes doing the quick solution. If I do the longer, more ‘elegant’ solution it could still turn out that I was solving the wrong problem, or the next request could take me in a perpendicular direction. This rule in programming is called YAGNI (You Ain’t Gonna Need It). I first heard this phrase from Venkat Subramaniam.

Written by Michael Artemiw

April 12, 2008 at 11:13 pm

Posted in Features

XHTML Compliance

leave a comment »

Being a Firefox user, I had been ignoring IE for a while now. I recently noted that >80% of our traffic was on IE, and to my chagrin the site looked horrible on IE.

I decided to make the page XHTML compliant to start, and then take steps to make it render well on IE. This turned out to be a good strategy. Working with the online validator at W3C I was able to quickly root out the illegal XHTML I had used. The most prevalent errors were not using quotes around descriptors and using <div>’s inside <a href>’s. The later I had done to make the whole div into a link. (I figure a bigger target will be clicked on more often.) I have replaced these with a little bit of javascript;

onclick=”location=’http://www.kountr.com/kount/123&#8242;;”

Once I was XHTML compliant I went on to make some changes to help the site look proper on Firefox and IE. It isn’t perfect but I think it is workable now.

The lesson I learned through all this is follow the standards first, this minimizes the work necessary to make your site work with the various browsers.

Oh, and I almost forgot. If you want to know how your site looks on many different platforms, check out BrowserShots.

Written by Michael Artemiw

April 10, 2008 at 4:31 am

Posted in Uncategorized

It’s the Journey

leave a comment »

We redesigned the main page of the site. It seemed to few people were actually creating kounts. I have made the key operations of the site more prominent.

I also included a quote that summarizes our vision. Kountr is not the destination, but the starting point. The starting point of a long journey. I am really excited about where this is headed.

Written by Michael Artemiw

April 9, 2008 at 5:06 am

Posted in Uncategorized