Author Archives: Web Design and Programming on NewsGator Online

OpenSocial now friends with PHP, Java, Ruby, and Python

With more and more containers introducing server-to-server APIs based on the OpenSocial REST and RPC protocols (think MySpace, LinkedIn, Plaxo, orkut, and iGoogle just for starters), it has never been a better time to jump into OpenSocial development. These new protocols allow you to write engaging social applications for these containers using the language of your choice — JavaScript is no longer the only option.

To help you get started using the OpenSocial REST and RPC protocols, we have assembled a set of client libraries for PHP, Java, Ruby and Python. Each library enables developers to retrieve profile information and persistent data from supporting containers without having to concern themselves with managing network connections, signing requests, or other lower-level details. To check out the code, point your browsers to the Source tab linked from each project’s home page:

These libraries are completely open sourced under the Apache 2.0 license, and contributions are not only welcomed but encouraged. In addition to a wiki page explaining the patch submission process, each project hosts an issue tracker which have already been populated with known issues and requested enhancements. These trackers are the best places to start if you’re interested in contributing to a particular project. Please report any new bugs or incompatibilities you find along with any feature requests using these trackers and be sure to star those reported by other developers which are significant to your own development also so they can be prioritized effectively.

To help get you started, we have assembled a set of sample applications, linked from the project wiki pages, which you can run directly from the command line or your favorite IDE. As an added bonus, the Ruby and Python libraries have accompanying full-featured sample applications which you can run inside containers supporting the OpenSocial REST protocol. These larger samples are checked in to the Subversion repository under “Samples” and include a bootstrap mechanism for securely retrieving the ID of the current viewer before the core application loads, which you can use as a template for your own container-based applications.

For general questions and commentary, we have set up a discussion group to help build the developer community around the libraries. The original engineers of each library are already members of the group, so feel free to ask the tough questions. :) We will also be hosting a special session of IRC office hours next Monday, December 22 from 1:00 to 3:00 (PST) so you can share your feedback with us directly. The official OpenSocial IRC channel is located at irc://irc.freenode.net/#opensocial.

We’re really excited to see the next generation of social applications that the OpenSocial server-to-server APIs enable, and we hope the client libraries ease you along your development journey. Please give the libraries a spin, file any issues you see, and stop by the IRC channel next week to get your questions answered. See you there!

Continue reading

Posted in Web Design | Leave a comment

Myth #1: Rails is hard to deploy

(If you don’t want to bother with the history lesson, just skip straight to the answer)

Rails has traveled many different roads to deployment over the past five years. I launched Basecamp on mod_ruby back when I just had 1 application and didn’t care that I then couldn’t run more without them stepping over each other.

Heck, in the early days, you could even run Rails as CGI, if you didn’t have a whole lot of load. We used to do that for development mode as the entire stack would reload between each request.

We then moved on to FCGI. That’s actually still a viable platform. We ran for years on FCGI. But the platform really hadn’t seen active development for a very long time and while things worked, they did seem a bit creaky, and there was too much gotcha-voodoo that you had to get down to run it well.

Then came the Mongrel

Then came Mongrel and the realization that we didn’t need Yet Another Protocol to let application servers and web servers talk together. We could just use HTTP! So packs of Mongrels were thrown behind all sorts of proxies and load balancers.

Today, Mongrel (and it’s ilk of similar Ruby-based web servers such as Thin and Ebb) still the predominate deployment environment. And for many good reasons: It’s stable, it’s versatile, it’s fast.

The paradox of many Good Enough choices

But it’s also a jungle of options. Which web server do you run in front? Do you go with Apache, nginx, or even lighttpd? Do you rely on the built-in proxies of the web server or do you go with something like HAProxy or Pound? How many mongrels do you run behind it? Do you run them under process supervision with monit or god?

There are a lot of perfectly valid, solid answers from those questions. At 37signals, we’ve been running Apache 2.2 with HAProxy against monit-watched Mongrels for a few years. When you’ve decided on which pieces to use, it’s actually not a big deal to set it up.

But the availability of all these pieces that all seem to have their valid arguments lead to a paradox of choice. When you’re done creating your Rails application, I can absolutely understand why you don’t also want to become an expert on the pros and cons of web servers, proxies, load balancers, and process watchers.

And I think that’s where this myth has its primary roots. The abundance of many Good Enough choices. The lack of a singular answer to How To Deploy Rails. No ifs, no buts, no “it depends”.

The one-piece solution with Phusion Passenger

That’s why I was so incredibly happy to see the Phusion team come out of nowhere earlier this year with Passenger (aka mod_rails). A single free, open source module for Apache that brought mod_php-like ease of deployment to Rails.

Once you’ve completed the incredibly simple installation, you get an Apache that acts as both web server, load balancer, application server and process watcher. You simply drop in your application and touch tmp/restart.txt when you want to bounce it and bam, you’re up and running.

But somehow the message of Passenger has been a little slow to sink in. There’s already a ton of big sites running off it. Including Shopify, MTV, Geni, Yammer, and we’ll be moving over first Ta-da List shortly, then hopefully the rest of the 37signals suite quickly thereafter.

So while there are still reasons to run your own custom multi-tier setup of manually configured pieces, just like there are people shying away from mod_php for their particulars, I think we’ve finally settled on a default answer. Something that doesn’t require you to really think about the first deployment of your Rails application. Something that just works out of the box. Even if that box is a shared host!

In conclusion, Rails is no longer hard to deploy. Phusion Passenger has made it ridiculously easy.

Continue reading

Posted in Web Design | Leave a comment

Coming Soon From ENTP: Propane

We don’t use Campfire at ENTP. We use a Campfire chat room, but we view it with Propane.

Here’s ENTPer Trevor Squires talking about why he wrote Propane:

Campfire is about immediacy. When you want to share a file, you just upload it. Seen a cool image? Copy in the url and Campfire shows it inline.

With Propane I’m trying to take immediacy and turn it up to eleven. In a desktop app I can do stuff that a web app can’t do.

When you drag an image from Safari and drop it into Propane, what are you trying to communicate? Sure, Campfire displays the image, but where did it come from? How many times have you been asked “where’s that from?”. Propane does that for you.

Same thing with text from a web page.

When you copy in a tweet url, why are you doing that? If you want to share the tweet, the actual message is what you meant to share – not some opaque URL. Propane turns it into a twicture because that’s what’s recognized as a great way to share tweet messages.

How many clicks does it take to upload a file? 3? This is supposed to be immediacy. Just drop the file on Propane.

And one application’s ‘immediacy’ should not get in the way of the same quality of other applications. That’s why Propane strips out stuff from Campfire that a native client doesn’t need. Navigation bar? Don’t need it when you’ve got control of the app’s menu.

When you copy text out of the transcript, did you really mean you wanted all that markup and crazy-ass “lets turn table contents into something legible”? Or did you mean to copy:

trevor: this is cool
giles: indeed it is
matt: I like turtles

Campfire is great. Propane just improves it. The “why” – immediacy – is the killer feature for me.

The fact that ‘space’ or any punctuation mark commits your tab completion is important to me. I thought long and hard about “what does a user intend” and tried to make Propane behave in a way that doesn’t disrupt their intentions.

It’s the only reason I wrote this. Continue reading

Posted in Web Design | Tagged | Comments Off

How to Green Your Swag

Picture%204.jpgWith an abundance of companies going green, and a corresponding explosion of green themed conferences sprouting up, this is to be applauded. And yet, there’s a remnant of the old paradigm that sticks up like a weed out of the smooth green path: Swag. You know, those little things that companies give away at conferences with the hope they’ll stay in your mind. Those little things add up to a lot. Multiply each attendee with a bag full of knick knacks, many of which are made from non renewable materials, are not recyclable, and you’ve got the potential for an enormous amount of waste, and resources used.

Eco Imprints shows a different way. Rather than being a quantity driven tschotske pimp, they are a company committed to sourcing and creating memorable, sustainable, and custom tailored eco friendly promotional items that will serve their clients, recipients, and the planet equally well. And they have a few tricks up their sleeve:

The founder, John Borg, has decades of experience in branding, marketing, and design, having run Wishbone Creative, a firm that has worked with some of the biggest names in business, including Electronic Arts, Levi Strauss and Kodak.

So what you get with with Eco Imprints is a company that has really done it’s homework to find the greenest, most high quality products, and combines that with a deep expertise in how to best leverage the goods you do give away for the maximum impact.

custom%20lettering%20beans.jpgWhat does eco friendly swag look like? A particularly amazing example is their Custom Message Bean Plants. These beans can be inscribed by a laser with your company name, logo, or a simple message, and when they grow, that message reads on the plant, remaining for month, and the plant living for a year.

They also do the usual suspects quite well, too: That standby the pen can come in the form of sustained yield solid white birch. Bamboo. Or recycled plastic. Pencils can be made of recycled newspaper. They do larger, more complex items as well: the Eco Plasma Jacket is made from 100% recycled polyester. Several bags and totes are made from recycled PET (soda/water bottle) plastic.

Beyond just being a green promotional item purveyor, they also offer sustainability consulting, currently in the realm of discerning ways to green your marketing efforts, and creating green product lines for company stores. They’ve done the research to find the manufacturers of greener products, and can benefit you with that knowledge.

It’s clear that Eco Imprints cares about more than selling green swag. They also talk about it, and the areas surrounding it, in the entertaining, educating read, http://sustainableswag.blogspot.com/ . Subjects range from the recent move by major city mayors to phase out water bottles in city offices to having the courage to give kudos to competitors.

Eco Imprints is the real deal. Consider them next time you’ve got some promoting to do. I recommend their PDF catalog, it’s much more attractive and thorough than the site.

Readers: What are some of your favorite eco friendly promotional items? How have you creatively reframed what you do in terms of giveaway items?

Paul Smith is a sustainable business innovator, the founder of GreenSmith Consulting, and has an MBA in Sustainable Management from Presidio School of Management in San Francisco. His overarching talent is “bottom lining” complex ideas, in a way that is understandable and accessible to a variety of audiences, internal and external to a company.

(Please click the headline if you would like to comment on this post)

Continue reading

Posted in Web Design | Tagged | Comments Off