Sudoku!

Posted by on 27 Jan 2008 | Tagged as: news

Today I fixed the last showstopper bugs in Sudoku and put it up on the main site. So now you have a new game to play.

It doesn’t seem that new to us because Jim wrote the first rough draft of it in September of 2005. Wow, we move kind of slow sometimes! It’s been 99% done for almost a year and a half but we had a bug where it wouldn’t let you type numbers into your username or password so many of you wouldn’t have been able to log in when the page was up. I finally got that fixed today (in a way that made me happy) and so you will now see Sudoku on the leader board and in the menus.

Have fun!

Under the hood changes

Posted by on 27 Jan 2008 | Tagged as: news

About a year ago we got frustrated with some of the behind the scenes workings of the site. Certain things were too slow or just written using old techniques that weren’t making us happy. So we upgraded all of the back-end code and site templating functions which should be faster and easier to work with in the long run.

We’ve been testing them internally for the past 9 months and we haven’t found any bugs in the past 6 months, so today I loaded all the new stuff onto the main site.

It looks like everything is working to me, but if you have any strange problem first try holding down shift while reloading/refreshing the page. If that you still have the problem after that, report it to us so we can fix it.

We suck. Bear with us!

Posted by on 08 Jul 2007 | Tagged as: technical

You’ve probably noticed over the past two or three months that certain parts of the site aren’t working well. Specifically, the high scores and leader board pages are often slow and even completely unresponsive. It’s happening for two reasons. The first reason is that we don’t really know squat about database design. Actually I should say “I know nothing about database design” instead of “we” and leave Jim out of this. There are a number of, uh, questionable design decisions that were made when I first set up the database and we think they might be causing the problems.

Or maybe not. See, we run our site at a hosting company (originally it ran off my cable modem at home but it was too unreliable when we started to get lots of people playing). The problem is that our hosting company runs the database on a server we don’t have access to. So when things are locking up there’s no way for us to go in and figure out what exactly is going wrong. We’ve emailed them and tried to solicit help but they aren’t very responsive. They most they’ll do is just reset the server–They don’t try to help us figure out why the problems are happening in the first place.

So what is the solution? Well, we’re attacking both problems. First we are going to move to a new database that will run on a server that we have access to. Second, we are going to start making some changes to our database that will make it smaller and more streamlined. This should also help make things faster.

So hang in there! Bear with us. We’re working on it and we’ll hopefully have something soonish. Hopefully you won’t notice the transition except that the non-responsiveness will go away (forever, ideally). We’ll probably mention something here–I’m even considering a beta test, but no guarantees.

Cool statistics

Posted by on 07 Mar 2007 | Tagged as: Uncategorized

This weekend I was talking with Jim, and each of us was lamenting the lack of good statistics on this site. We wanted to know how many games are played and which games get played more and how many unique users there are per day, etc. Jim pointed out rrdtool and I decided to set it up and see what kind of data I could get. We thought the end results were pretty interesting and thought they might be of interest to the Greenfelt users.

Here is 1 days worth of Greenfelt data:

The data is stacked up so that the total height of each bar is the total number of games per hour. The bar is then divided so you can see which games make up what percentage of that bar. Each bar represents 15 minutes. The graph is updated every 15 minutes so if you check back here later it will always be up to date.
Not so surprisingly, Freecell looks like the most popular game. Somewhat surprising to me is that Forty Thieves seems to have a lot of plays. Spider, which is really hard also manages to have a respectable number of games played.

Next is the 30 day view:

This is interesting because it shows that huge difference between days and nights. Also you can see that more people play at night in the middle of the week than on weekends (what you have better things to do?? :-) ). And Wednesday seems to be the peak. Right now you can also see a huge gap in the Sunday before last when hosting provider (Dreamhost) went down for a couple hours (since this is also updated every 15 minutes that will eventually go away).

And finally, another interesting one is the year long view:

This show total number of games in orange. The green show how many of those games people actually won (getting a score of 52 in Freecell, for instance). The black line show how many of those games were played by anonymous users.

This one had 3 surprises for me. The first was that our overall growth curve is pretty good. Some spikes here and there but it seems to be increasing nicely. The second was that a really good portion of games are winnable. I expected the green bars to be much lower. The third surprise is that apparently 90% or so of people playing Green Felt play without logging in. I expected a large amount of anonymous users, but such a high percentage really surprises me.

Anonymous users, I’m curious–why do you prefer to be anonymous? Does the high score table not interest you? What kind of incentive would it take to make you decided to create an account?

New pyramid rules

Posted by on 04 Feb 2007 | Tagged as: news

If you’ve played pyramid recently you may have noticed we modified the game a bit. Specifically, we added a new discard pile. This makes the top card of the waste pile (the one next to the deck) available for play. So now you have a chance to dig back through the waste pile to get rid of the pyramid which makes it slightly easier.

Thanks to Michael Keller for noticing that we had the rules wrong.

-David

New game: Fourteen Out

Posted by on 04 Feb 2007 | Tagged as: news

There is anew game available now called “Fourteen Out”. I think it’s an interesting variation of pyramid style play. It’s not on the leader board or in the menus yet.

We’d like some volunteers to pound on it for a little while. So if we could get you to go play the game and then come back here and comment on it. We’d love to hear anything you think. Is it too easy, boring, fun, pointless? Let us know!

Play Fourteen Out.

-David

A bevy of new things

Posted by on 21 Aug 2006 | Tagged as: news, technical

We’ve been busy lately. Or, more acurately, we’ve not been busy lately–Green Felt is our “spare time” project. However you look at it, we’ve made a bunch of under the hood and user visible changes lately. I’ll explain them one by one:

  1. We added a new graphic to represent an empty card pile and got rid of the cheesy old-school html table borders. I have to say I’m really happy with the way this turned out. I originally wanted the empty pile to look like a depression in the green felt background, but I was unable to draw it in Illustrator. I’m not much of an artist. I still have hope that my brother Michael will come through with a nice picture. In the mean time I think the dotted outlines look good enough.
  2. We added a little box in the top right that tells you when there are new posts on this blog or in the forum. I don’t like that it takes a long time to load, plus it doesn’t wrap nicely when the window is too small (especially in Internet Explorer for some reason), but I like the functionality. I wish it were quick and built into the static HTML instead of being AJAX.
  3. We added redo support! If you undo too far or decide it was a bad idea to undo you can redo back to where you were. Control-Shift-Z (or Command-Shift-Z for you Mac heads) is the key shortcut for redo. Note that if you undo and then start moving cards around then your redo history is lost.
  4. We moved the Forum to our hosting provider and updated it to the latest version. This is more of a behind the scenes change, but you should notice that the forum is more responsive now that it’s hosted by a provider with a lot of bandwidth and not from my personal cable modem. :-) We also added some spam protection which, for the moment, seems to be keeping the spam bots a bay (which may not have been annoying you, but it was making us delete a bunch of stupid spam messages every day).
  5. We also created a new forum just for resolved bugs and moved all the bugs that have been fixed into that forum. That way the bugs forum only lists outstanding/unresolved issues.
  6. It’s not quite done yet, but we’ve done a lot of work on a new game. Suduko! There’s a couple bugs we have to fix and loose ends to tie up, but you can try it out now if you can guess the address. :-)

-David

Leader Board Changes

Posted by on 16 Aug 2006 | Tagged as: news, technical

We made a change to the way the scores are ranked on the leader board. Today I pushed the change to the main site. The change is this: If you play a game multiple times and get the same score then only the first game will be shown.

Why did we make this change? We wanted to combat the technique of playing a game multiple times and getting the same score, but each time incrementally decreasing the time. This seems like gaming the system to us. Not only that but it pushes everyone off the high score list which can be annoying. So now only your first game of a particular score gets counted.

We’ve been calling this the “Kathy Problem” amongst ourselves as Kathy in particular seems to engage in this activity. Don’t worry Kathy, we still love you. :-)

Think this is a good change? Hate it? Feel slighted because we singled you out and named a problem after you when you’re really not the only person to engage in this activity? Leave a comment and let us know how you feel.

Added a news box

Posted by on 13 Aug 2006 | Tagged as: technical

The following post was originally written in August of 20066. For some reason I never posted it to the blog, though reading it now it seems interesting. It’s fairly technical, unlike some of the other posts. Hope you enjoy it:


I wasn’t sure how to best link in our new blog. After thinking about it a while I decided that a little box in the corner of the site could list the last 2 or 3 blog posts. I then figured I should be able to list the last forum posts too. Once I had the idea, I had to figure out how I was going to get the info from two diverse pieces of code into our green felt page template.

Then I noticed that the blog we set up (wordpress) has an RSS feed. This is a little XML data file that always has the latest posts in it. Nice. The forum didn’t have any RSS support though. Luckily, it’s one of the most popular forums out there so there were at least 3 add-ons that would add RSS functionality. It took me 2 tries to get a good one, but in the end I liked the way it worked. I was able to customize it and add in a couple XML fields that they didn’t set by default.

After seeing how slow the RSS feeds were to respond I decided that it would be best for the client to go get the data and transform it onto the screen. Nobody wants to wait 2 extra seconds for their page to load just for some integrated RSS.

I then had to coax the XML from the RSS into a form that could be displayed on the page. I started with the standard javascript DOM interface, but it was a big pain and the code was growing way too big way too fast. I then realized that it would be best to parse it on the server side and send JSON over to the javascript client. So it was time for a quick CGI script.

Let’s hear it for perl! I whipped up something that parsed the XML adequately in about 5 minutes. The key to the whole script is this line here:

print objToJson(XMLin($response->content, ForceArray=>["item", "channel"]));

That uses perl’s XML::Simple to parse the XML into a perl structure. The “ForceArray” part makes sure that all the “item” and “channel” tags in the XML get interpreted as array items. It then outputs that structure as JSON, ready to be interpreted by the javascript side.

The javascript side is easy since it has everything in a native structure. Want the title of the first item in the first channel? rss.channel[0].item[0].title. Once I had the right data structures, the rest of the code basically wrote itself.

In the end I’m happy with the way the code turned out, but I’m not sure whether an extra little box in the corner of the page use useful enough to balance out the amount of clutter it adds.

-David

Hello from the developers

Posted by on 13 Aug 2006 | Tagged as: Uncategorized

Hello to all Green Felt players. We’ve set up this blog so that we have more direct contact with each of you. We’d like to discuss new ideas and issues that exist with Green Felt and in the past felt held back by the forum. It’s so complicated. We like it for bug reports (or at least, I do–Jim’s not so gung-ho) but we think it’s just too much for a simple blog.

Anyway, this is just a taste of what’s to come. It’s too late for me to write anything terribly profound!

-David

« Prev