Your browser is no longer supported! Please upgrade your web browser now.
Posts by HARVEST:

OAuth 2.0 for the Harvest API, Plus a New SDK

At Harvest, we have a ton of pride in our smart and creative users. The ideas you bring to life on top of our Harvest API are always surprising and inspiring. OAuth 2.0 and our new JavaScript SDK are two great tools coming into beta today, and we can’t wait to see what you do with them!

OAuth 2.0 is an industry standard for API authorization, used by Facebook, Google and others. With OAuth 2.0 you won’t need to store the passwords of Harvest users to build an integration. That means more security for Harvest users, and less liability for integration authors. You can learn more about the specifics of OAuth 2.0 and our implementation in the updated API authentication docs.

Our new JavaScript SDK is inspired by the ease of using Facebook Connect. Build integrations in pure client-side JavaScript, without thinking about Cross-domain requests and the details of OAuth 2.0. We’re already using it to add timers to our bug tracking and support tools. It’s a great way to bring Harvest to your other web apps.

  • Add timers to your bug tracking software in only HTML and JavaScript.
  • Import open invoice amounts from Harvest without using server-side programming.
  • Pull reporting into JavaScript to generate custom visualizations and charts.

Again, the best place to learn more is our new JavaScript SDK documentation.

Getting Started

If you’re a user or partner interested in working with our new API authentication and SDK options, make a request for OAuth credentials on this form, or drop us a line at api@getharvest.com for more information. While in beta, we’re going to issue credentials manually, and that form is the quickest way to get set up. you can sign up for OAuth credentials right from within your account. Go to Manage > Account Settings and click the OAuth2 Tokens button to get started. If you’re not a code-slingin’ type of person, just know that we’re giving developers the best tools available for the next generation of Harvest integrations.

Your comments and feedback about these API additions are important – please do get in touch!

Made By Two: Illustrator + Industrial Designer = Business Plan

To help companies get on their feet, The Harvest New Founders Program gives one year’s subscription of Harvest time tracking service to a new company each month. Think you might be a good fit for our New Founders Program? Learn more and apply.

Made By Two is a design firm established by Kermit and Azadeh Westergaard, who caught our attention with their interdisciplinary approach to design, from interior design to inventing their own products. We were so impressed with the body of work they had created in such a short amount of time, all while raising a baby boy together, that we just had to know — how did they make this amazing business venture a reality? Kermit and Azadeh chatted with us, and it was a love fest: they expounded on about falling in love with each other, falling in love with eclectic design projects, and falling in love with Harvest to keep them on track of their time and expenses.


Continue reading…

Details About Unexpected Downtime

Earlier today, a serious problem affected customers using Harvest between the hours of 4 a.m. EDT and 9 a.m. EDT. During this time, Harvest users temporarily lost access to their assigned projects and tasks, and were not able to track time or view time associated with those projects. By 9:18 a.m. EDT, all accounts were restored, no data was lost and all services are back to normal.

For customers who experienced the problem this morning – we are very sorry for the trouble this has caused. We know how important Harvest is to you, and we’re extremely disappointed with this incident given our core focus on stability and reliability.

In the name of transparency, we want to share with you what happened and let you know the safeguards we’re putting in place against situations like this in the future. Continue reading…

Rubber House: Creative Projects That Generate Commercial Work

Brewing in the heart of Melbourne’s creative hub of Gertrude St Fitzroy is Rubber House, a fresh entry to Australia’s animation scene. Combining the talents of Greg Sharp and Ivan Dixon, Rubber House is busy creating a unique and wild style of animation, illustration and games. The pair joined forces to create this two man hand drawn animation studio, and we got a chance to talk with them about how personal and paid projects can feed into each other, why Flash has a bad name, and tracking time on creative projects to better estimate to future clients.


Continue reading…

SuperMango Media, Combining Code & Comedy

SuperMango Media is an interactive agency specializing in helping funny people strategically brand themselves. By continually evolving, SuperMango Media has been able to nimbly navigate from the idea of a business, to securing funding, to functioning as a profitable company in a short amount of time. We got to chat with founder Dan Allen about his love of comedy, how to set prices, and how Harvest helps them win jobs.

Continue reading…

Thebes: A New, Minimal Sphinx Gem for Rails

Recently, we’ve been sharing a lot of technical lessons from building our new Help Center and in upgrading Harvest to Rails 3. The gem Harvest is releasing today, Thebes, is at the intersection of both projects.

Thebes is a wrapper around Sphinx, the search engine we use on most of our projects. Thebes differs from other solutions by staying as far away from your Rails code as possible. Instead of hiding the Sphinx configuration file behind a domain-specific language, this library assumes you will write Sphinx config files by hand. In Thebes, you edit an ERB template of your Sphinx configuration and populate it with variables at generation time. For developers needing the most flexible or fastest solution possible, this is a great way to work with Sphinx.
Continue reading…

Easy Rails Asset Handling with HTML5 & S3

While working on the new Harvest Help Center, our team had a chance to look at some common web-app issues with fresh eyes. Asset upload is almost certainly a requirement of any modern document-based web site, usually for images or general downloadable assets. There are a few pre-built Rails plugins that address asset upload (most notably paperclip), but they require database tables and are often designed with server-side storage in mind. Having a robust server-side solution for assets provides many benefits, but we found they were unnecessary for the simple workflow we had in mind.

We worked at finding something simpler and came up smiling.

Continue reading…

A New Rails 3 Positioning Library: RankedModel

When we started work on the new Harvest Help Center, it was with the fresh perspective of our recent Rails 3 upgrades. We looked for a simple row sorting solution, but the traditional plugin ActsAsList is showing it’s age with old ActiveRecord conventions and naive logic. Rising to the challenge, we rolled up our sleeves and built our own ordering solution, that we have dubbed RankedModel.

ActsAsList

ActsAsList has been around for a long time. I can’t recall what release of Rails it came out with, but it was well before Rails 1.0. The fact that it has remained the default solution for row ordering so long speaks to how simple the problem of row sorting is. There isn’t anything too crazy going on in this code:

  • Keep the order of items in an integer column.
  • When fetching a set of items, default the order statement to sort by that column.
  • When we move an item to a new position, assign all the other items to their new positions.

But there were a few downsides to using ActsAsList:

  • The code does not use ARel. This means we can’t chain sorted item collections into complex ARel queries.
  • If one item is moved, many of the other items are adjusted to compensate for the movement. Many rows in MySQL can be updated by one row’s reassignment.

What’s a modern Rails developer to do?

Continue reading…

Harvest Upgrades to Rails 3

Harvest is on Rails 3! This is exciting news from the Harvest technical team. I’ll detail how the upgrade process went, but first a little history. The initial commit to Harvest was made on November 23rd, 2005 – five years ago. Back then, we ran Rails 0.14.1 and were still discussing how time should be entered into Harvest. That’s five years of Rails releases since we started, and each upgrade was a painful but worthwhile experience.

I cannot stress that last conviction enough. Besides the obvious technical improvements an upgrade brings, there is also a morale boost from using the very best tools. This comes at a cost: Upgrading a key dependency is challenging for an app of Harvest’s size.

Name Lines
Controllers 12K
Models 25K
Views 28K
Helpers 7K
Libraries 3K
Functional tests 18K
Unit tests 20K
Selenium tests 2K
Our Javascript 10K

Harvest also has 32 plugins, 82 gem dependencies, our widgets, mobile apps, and Co-op integration. These are all potential breaking points during an upgrade. Continue reading…

Cadence, Making Time for Work and Play

Rebecca Bradley and Gage Couch made the leap from their steady paying-great benefits-corporate jobs and struck out on their own with Cadence, a site planning and landscape architecture firm with a big heart and a lot of soul (they even make thank you cards out of their own cereal boxes!).  We got to chat with them about their methods for achieving balance between their professional and personal lives, and how they use Harvest to keep themselves (and their contractors) on budget.

Continue reading…