Latest Project from IZEA – WeReward

This is a Sponsored post written by me on behalf of WeReward. All opinions are 100% mine.

Since January, we've had a small development team here at IZEA working on WeReward.com, breaking us into a whole new market here. If you've ever heard of Foursquare or Gowalla, WeReward is similar, but builds on them with some neat additions.

How it Works

WeReward search page Let's say you're looking for a place to go out to eat. You can search WeRewards for the type of business you're looking for (restaurant, pizza, wings, subs), and see what's close by. That part you can do on a million other apps — but what makes WeReward special is that the results will have rewards of various amounts. The default amount is 5 points (5 cents) of businesses not claimed by the owner. Once an owner claims a business, they can up the reward to whatever they want.

Some places might offer a 100 point ($1.00) reward for completing a specific objective. All objectives are in the form of a picture to verify. Usually this means taking a picture of your meal, your receipt or your happy face smiling at the business.

After you take the picture, you can also share it on Twitter, Facebook or Foursquare. If you share it, a link to your checkin will be posted, where others can see the picture you just took. I like it because it combines the checking with the image post – and makes people click through to see the picture you just took.

What are these Task Things?

WeReward Tasks

In addition to checkins, WeReward also has a separate section for tasks. Tasks are similar to checkins in that you have to complete some objective and take a picture — the only difference is that you usually don't have to be at a specific location.

There are dozens of tasks in there right now. Here's a few examples…

  • $5 from EyeFi – Take a picture at Best Buy or an Apple Store with an employee and an Eye-Fi package.
  • $1 from T.G.I. Fridays – Take a picture with Friday's Bartender, your Waiter or Waitress.
  • $0.52 from Target – Take a crazy picture of yourself with the Target logo at a store. Share with @target!

Get the App Now!

Getting the app into the app store a fun ordeal. WeReward was launched at Techcrunch Disrupt 2010, which meant that the iPhone app should really be available by then (the phone is kind of essential for everything I've listed so far). We went through a few rounds of the app store approval process, but eventually got it pushed through and approved within a day when the app was presented. Luckily most the companies presenting had prototypes and ideas, so WeReward being a public app that was being released right there stood out due to the polish.

The app is available for iPhone and Android right now, with a Blackberry scheduled for late August. If you have any questions about the app, you can checkout WeReward.com for more information on how it works and how to use the app.

Visit Sponsor's Site

jQuery Driven Tokenizing Additions

Facebook got tokenized input right. If you’ve ever sent someone a message, or searched for someone a message you probably used what was previously a less user-friendly system to perform this same task. The idea is easy – you want to enter one or more names or other text and select matches. Gmail uses the same kind of auto-complete to allow you to email to multiple email addresses, as do a host of other sites, so it’s surprising there aren’t better solutions to this in the public. I came across one amazing solution for this when I was working on MovieFly a few months ago, and was able to expand it with a few more options while working on SponsoredTweets.

The jQuery Tokenizing Autocomplete was released last year, with some nice additions to it in December. It’s an extremely rich plugin that behaves very similar to the Facebook version. You can select previously entered tokens and delete them, navigate completely by keyboard, or with the mouse – it’s amazing. There’s a few things that came up that I’ve added to it:

initialValues option

First is the ability to pass in a javascript array of initial values via the initialValues option. This is real simple:

$("#tokenize3").tokenInput("response.txt", {
  initialValues: [{"name":"The Dark Knight (2009)", "id":"12345"}, {"name":"Sweeny Todd (2008)", "id":"45334"}]
});

Real straightforward. When the page loads, the token input will be created with these two tokens pre-created.

defaultOptions

On MovieFly when you’re entering a movie for a viewing (that would show up on your recent viewings page), one thing thing that made sense to do was to have a way to pre-fill the list with some commonly used movies. So maybe you want it to show “new releases” since that’s what a large percentage of people are going to use. Another case might be if you want people to tag themselves (or something), and you want to show common tags. One easy way is for the “hint” to link to a list of common tags. Codewise it’s basically the same as initialValues.

$("#tokenize4").tokenInput("response.txt", {
  hintText: "Type a movie title, or see the <a href='#' class='defaultOptions'>current releases</a>.",
  defaultOptions: [{"name":"Hot Tub Time Machine (2010)", "id":"12345"},
                             {"name":"Clash of the Titans (2010)", "id":"12345"},
                             {"name":"Date Night (2010)", "id":"12345"},
                             {"name":"Alice in Wonderland (2010)", "id":"12345"}],
});

The key is the link with a class of “defaulOptions” in the hint text. The plugin finds this link and pre-fills the suggested matches when clicked.

The code is available on github, or check out an example of these and the basic behavior of the plugin. There’s already some great forks of the initial code, so seeing what other great additions have been made.

Getting Rails 3 Beta Setup

If you use Ruby on Rails, you’ve probably heard by now about the release of the Rails 3.0 betayesterday. There’s been a lot leading up to this release, so naturally most of the rails world is eager to jump in and give it a try. Saturday morning is a great time to get started, so I decided to give it a try.

First off, I wanted to make sure I had a more up to date version of Ruby. Rails 3.0 beta and up will require Ruby 1.8.7 or higher. If you’re running Snow Leopard you probably already have this, but can always do a ruby -v to check your current Ruby version. The easiest way I’ve found to run multiple versions of ruby is using the rvm gem. It handles everything needed for running multiple versions of Ruby, including Rubygems. Just install the gem and go from there:

link:~ adam$ sudo gem install rvm
link:~ adam$ rvm-install
link:~ adam$ mate ~/.bash_profile
link:~ adam$ ruby -v
link:~ adam$ rvm install 1.9.1
link:~ adam$ rvm use 1.9.1
link:~ adam$ sudo gem install tzinfo builder memcache-client rack rack-test rack-mount erubis mail text-format thor bundler i18n
link:~ adam$ sudo gem install rails --pre

At this point, I tried to create a new rails project using the usual rails [projectname], but I ended up getting the following error:

link:research adam$ rails beta
/Library/Ruby/Site/1.8/rubygems.rb:384:in `bin_path': can't find executable rails for rails-3.0.0.beta (Gem::Exception)
	from /usr/bin/rails:19

A lucky comment in another blog showed a fix for this:

sudo gem install railties --pre

After that I was able to create a project the usual way, and start messing around the latest version of Rails. Looking forward to upgrading some existing sites!

link:research adam$ rails testsite
link:research adam$ cd testsite
link:testsite adam$ rails server