Archive for June 2007

Flash Open-Source Goodness at Levitated.net

Occasionally, the design team here stumbles across a site that merits a good “wow.” Levitated.net presents visually beautiful, technically advanced, open-source Flash experiments that explore some of the “outer limits” of Flash.

Two greater points that we’d like to make about this site are:

1) We love it when Flash is not only used appropriately, but when it’s utilized for some of its advanced capabilities.
In many of these examples, Flash is used to emulate realistic movement through code that supports and applies the laws of physics to mimic the way objects behave in nature. Through this approach, users are presented with a piece of art/interaction that is dynamically generated and behaves so. In other words, each time you explore one of these pieces, you likely will not get the same results. They’re dynamic and organic and, therefore, remain engaging and interesting for repeat visits and uses.

2) We learn from and appreciate seeing the code.
Flash, by its nature, outputs files (.swf’s) that are not explorable from a code standpoint. While this protects the integrity of the code, it leaves everyone except the creator in the dark about how and why it works. We applaud the efforts of the contributors at Levitated to share their source code (.fla’s) and let us salivate at their brilliance. As we often say here at Viget, “The code behind the creation is often as beautiful as the creation itself.”

Perhaps, though, they say it best in their own (and fewer) words:

Levitated.net contains visual poetry and science fun narrated in an object oriented graphic environment.

The sketches and applications generated as a byproduct of research are provided online as open source Flash modules.

These pages are attempting to fasten a usable structure around a continually evolving computational ecology, so that it may be observed and enjoyed by participants of the network.

Visual, experimental, intelligent, and community/knowledge-friendly. A good recipe in our book.

Add to Del.icio.us | Digg This | Leave a Comment

Google AdWords Qualified Company Status

On the heels of announcing Viget South, we have more good news. Viget is officially a Google AdWords Qualified Company.

Google AdWords management is part of our Search Engine Marketing (SEM) services. AdWords helps clients drive new and qualified paid traffic through search engines and sites within the Google Network.

What does this mean for our clients? Well, at a bare minimum, we hope pursuing the qualified status indicates our commitment to keep up with industry knowledge. Receiving this status verifies that we know our stuff. An added benefit is that we receive limited amounts of promotional credits we can apply to clients that employ us to manage their accounts.

You can check out our Google AdWords Qualified Company page on Google.

Add to Del.icio.us | Digg This | Leave a Comment

Campfire Culture

By now you’ve heard the news that we’re growing our team and branching out into the Durham, NC area. This is potentially a big challenge for us as we strive to maintain constant communication within our project teams and between staff across our two locations. While we’re still deciding on whether to use iChat or Skype for our daily Scrum meetings, we’ve settled on Campfire to stay in contact while we’re cranking out functionality for our latest app.

Our initial solution was to use an internal IRC server to keep the development team up-to-date and provide a forum for questions. We had mixed success with this approach and knew that it wouldn’t work if we tried to roll it out to the rest of the company for a few reasons:

  • Geek factor – Sure, we cut our teeth on IRC back in our college dorms, but that’s no reason to force our non-technical employees to /navigate the sea of commands. If we wanted company-wide adoption, we needed a more user-friendly solution.
  • Some assembly required – Since we hosted the IRC server internally, it was firewalled off from anyone outside the office. This required everyone in the Durham office to connect to the VPN to chat with the rest of us in DC - not fun!
  • History – There are ways to log history in IRC and provide a searchable interface, but we’re too busy to bother with setting that up. We needed something that worked “out of the box” to give joining users insight into what happened throughout the day.

We were skeptical at first, but after a month of constant use Campfire has proven to be a better tool than we initially anticipated:

  • Communication has improved – Instead of just the core development team, we now have everyone involved in discussions throughout the day. Project Managers can alert us of new issues that crop up in production (that we don’t see in our exception notifications) and Developers can get clarification on a proposed feature.
  • Cool bots – When they’re not hanging out in the VL “Bot Tub,” our Capistrano and Subversion bots send messages to the team whenever a deployment or commit happens.
  • Context included – When people sign in, they can see what has been happening throughout the morning. This means that a Project Manager can see what features have been implemented and are ready for review on our autobuild site.

I’m increasingly optimistic about our ability to maintain our “offline” culture in this on-line meeting space. We always strive to keep a good sense of humor even in stressful situations and Campfire has allowed us to maintain the same levity in our daily communication. Sure, sometimes we have to force some conversations back on track, but we’re able to have fun and get work done at the same time.

Add to Del.icio.us | Digg This | Leave a Comment

Here Comes Viget South: Why We’re Expanding, and Why in Durham

We just announced officially what you may have noticed (if you follow our recruiting buzz) we’ve had in the works for months. We’ve opened our first remote office in Durham, NC. While our official press release covers a lot, I thought I’d add a bit more perspective here.

4 Reasons We’re Expanding Geographically

Why open a remote office at all? It’s not because we’re out of room in our Falls Church office (in fact, we’ll be announcing our brand new headquarters soon enough - stay tuned).

  1. Fresh talent. Our clients hire us for our people, and we’re growing the team. A remote office gives us another community of smart, talented people to connect with. Even if we’re not able to hire every great web person we come across, just engaging with new groups of sharp people helps us be better at — and get more out of — what we do.
  2. Client connections. We work with clients all over the country. We’re great at working with clients remotely — some we’ve never actually met face-to-face — but sometimes there’s just no substitute for being there. A remote office helps us be closer to some clients and become acquainted with new ones.
  3. Options for the team. The Washington, DC area is a great place to live for lots of reasons; but, it’s not for everyone. We know this. We’ve always felt an obligation to the team to provide options for where to live and work.
  4. It’s smart growth. We’ve known since Viget started that being able to support multiple offices with a consistent set of services would be critical to our long-term growth. This is really just the first step.

4 Reasons We’re Expanding to Durham, NC

We weighed a lot of criteria and evaluated several options (Austin, TX and Boulder, CO, among others), but ultimately selected Durham for four key reasons:

  1. Quality of life. That region of North Carolina has a low cost of living, great weather, great schools, and just a nice community vibe. Whether you’re fresh out of school, raising a growing family, or ready to retire, it’s a great place to live.
  2. Strength of economy and workforce. The Triangle is booming. The business community is full of talented, highly educated people (having so many top Universities right there doesn’t hurt), and growing businesses. Being surrounded by other healthy companies will only help us.
  3. Location. Plane trips and time zones would add cost and complexity to what’s already challenging enough. We’re committed to keeping open communication and efficient collaboration between the offices, and sometimes that means a visit. I wouldn’t want to do it every week, but when necessary a four-hour drive or train ride isn’t bad.
  4. It’s just a Viget kind of town. We like it there. When I say “we,” I mean Peyton and Ben (who relocated), Emily (who’s lived there for years), and Andy and me who will no doubt visit often. The people are friendly, the web community is active, and the region is growing as quickly as we are. We think we’ll fit in; but, we hope to shake things up a bit as well.

It’s hard to say exactly where our first step in geographic expansion will take us; but, I’m excited about the possibilities. If you know anyone in the Triangle area, ask them to introduce themselves — we’re a friendly bunch.

Add to Del.icio.us | Digg This | Leave a Comment

Will Ruby and Rails Scale?

“Can Ruby on Rails scale when my web traffic takes off like a rocket ship?”

This is a common question we get (or some variation). I have a simple answer:

“Yes, it can.”

As with any technology or framework, it’s easy to build something that won’t scale. Furthermore, there are applications where Ruby/Rails isn’t the right solution. However, we believe that Rails will scale fine if you make smart architecture decisions. Heavily-used apps like Basecamp and large-scale sites like Revolution Health show this; but, lately people like to talk about Twitter’s problems.

Silicon Valley-based Powerset just announced that they’re building their front-end in Ruby (though not necessarily Rails). They addressed the question of scaling and Twitter’s situation with some first-hand insight:


We’re not worried about scalingSo, inevitably, whenever we talk about Ruby or Rails scaling these days, someone brings up Twitter and its scaling problems in the past. Twitter is right down the block from our offices and I know several of the devs personally, so before we made a final decision I arranged a sit down with Twitter’s lead developer, Blaine Cook, to talk about the situation. Blaine was kind enough to let me bring along our Search Architect (and former search architect at Yahoo!) Chad Walters, our Head of Product Scott Prevost, and our COO Steve Newcomb, to poke and prod and get their questions answered. The simple fact is that Ruby wasn’t the source of Twitter’s woes. As it often happens with rapidly-growing sites, they ran into architectural problems. Some design decisions don’t hurt until they reach a massive scale and, at that point, you have to rethink your approach. In an email he writes:

For us, it’s really about scaling horizontally - to that end, Rails and Ruby haven’t been stumbling blocks, compared to any other language or framework. The performance boosts associated with a “faster” language would give us a 10-20% improvement; but, thanks to architectural changes that Ruby and Rails happily accommodated, Twitter is 10,000% faster than it was in January.


Twitter’s explosion of growth in March certainly created pain points for them (gotta love slide 7 here) and a lot of lessons learned; but, it’s not an indication that the framework inherently won’t scale.

Our belief is that when building a web app, agility is more important that built-in scalability. “Premature optimization” causes more problems than it prevents. Focus on building a site that people will really use, then refactor and optimize over time as your audience grows. Rails is made for agility. You always hear about development speed, but test-driven development is easier and faster in Rails as well. Both factors mean that making architecture improvements to an already-deployed site is more practical.

Regardless of technology, build with scaling in mind, not necessarily built-in. Friendster didn’t scale, but that seemed to be a management decision. Had Twitter obsessed about trying to build for the number of users it’s supporting today, they probably never would have made it out of the gates. And then how would I possibly know that Darth Vader just ate a burrito?

Add to Del.icio.us | Digg This | Leave a Comment

To Start Up or Not To Start Up

Marc Andreessen (co-founder of Netscape and now Ning) is blogging a series on start-ups (thanks, Brad). “Why not to do a startup” outlines some of the many, many challenges an entrepreneur faces in starting a company — the long hours, hiring and retention, sales … — even before you consider actually building and marketing a product or service. It’s a great read for the start-up-inclined, and I’d say his first point that it’s truly a day-by-day “emotional rollercoaster” is both the most important to understand (since it’s influenced by all the other challenges) and the most difficult to grasp — you really have to just do it before you really get it.

We work with a lot of start-ups here at Viget, and we’re always looking for more. Why would I link Marc’s post? Am I discouraging potential clients? Hardly. People who don’t have the start-up bug might read the post and think “that sounds awful!” For those who have decided to dive into their own venture, it will only invigorate them. In fact, I might specifically ask every potential start-up client to read it. The best entrepreneurs have vision and perspective, not just for what’s unique to their business, but for what’s consistent across all businesses.

Not surprisingly, the most rewarding start-up projects we work on are with entrepreneurs who know what they’re getting into and ride — and, to the extent possible, steer — the rollercoaster accordingly. A lot of our clients are first-time entrepreneurs. We’ve seen lots of mistakes, lots of inspiring triumphs, and everything in between. We ride the rollercoaster with them, and it’s invigorating every time.

I would never discourage someone who has the itch from doing a start-up, and I don’t think Marc’s trying to either. You wouldn’t try to climb a mountain without asking how high it is, would you? Knowing what you’re getting into and planning (or at least thinking) accordingly is just the first step in what will hopefully be a lot of smart decisions you make.

Marc’s post only eloquently scratches the surface. As the foundation to everything else an entrepreneur needs to be successful, you need unwavering focus, passion, and dedication to see a start-up through. Entrepreneurs need stick. If you don’t have it, none of the other people whom you’ll need to make your start-up successful (staff, partners, customers, investors, etc.) ever will.

Add to Del.icio.us | Digg This | Leave a Comment

Get Reviewed on Google Maps

Did you know that you can essentially get free advertising on Google just by registering your business on Local Business Center? By doing so, your business may rank for local (and relevant) queries on Google via Google Maps.

But that is not all.

Google just rolled out a new feature that allows local businesses to be reviewed too. So, now client X or patron B might throw their two cents about your company into an easily accessible review linked off of Google.com.

That might scare you, encourage you to do better, or be fine because you are sure that people are happy with your business.

Think about it though, would you choose the business with outstanding reviews or the one with nothing to validate it? Similar to soliciting offline customer feedback, Google Map reviews are going to be key for any local business.

In sad news, my favorite Chinese food place in Falls Church - New Dynasty (previously on speed dial) - recently shut down. I wonder what would have happened if it had some reviews?

Add to Del.icio.us | Digg This | Leave a Comment

Cursor Keys in Vim: You Mac’ing Me Crazy!

Switch from PHP to Ruby on Rails? Check!
Switch from Windows to OS X? Check!
Switch from Vim to TextMate? Check! Well, most of the time.

Vim is useful in many situations, particularly for quick edits (especially as root), and editing files on a remote server. One annoyance I’ve had during my nine months with a Mac Book Pro is cursor keys in Vim ringing the bell in both insert or command mode instead of changing lines. Upgrading to version 7 via MacPorts yielded the same results. The cursor keys worked after switching my TERM to VT220 from rxvt! The downside was syntax highlighting stopped working.

Luckily, adding VT220 to my Google search parameters turned up a reference to vt100-cursor-keys in the Vim documentation. Add the following code to your .vimrc file to fix the problem:

:set notimeout          " don't timeout on mappings
:set ttimeout           " do timeout on terminal key codes
:set timeoutlen=100     " timeout after 100 msec

But, this only works on your computer since the settings do not propagate when you ssh to another server. A better solution is to change the default value for TERM to either linux or dtterm since the TERM value will be picked up on the remote server. In this day and age, I would bet most servers support both these terminal types.

The easiest way to set this value across all terminal instances is to update /etc/bashrc and restart the terminal session. OS X already has the framework for you to support this change, just add the export line as listed below.

case "$TERM" in
xterm*|rxvt*)
    export TERM=linux # ADD THIS LINE!
    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
    ;;
*)
    ;;
esac

This will cause terminal instances reporting itself as rxvt or xterm to use linux instead.

Let me know if you find instances where this does not work or know why Apple decided to default to a TERM that restricts normal functionality.

Add to Del.icio.us | Digg This | Leave a Comment

3 Easy Ways to Accept Donations Online (for nonprofits)

If you are a registered 501(c)3 organization and are set up in the GuideStar database, here are three free and easy ways to start accepting donations online. Free + easy = you should be using them all.

  1. Accept donations on your Web site through Network for Good or Just Give
    These services collect donations and send tax receipts to your donors, then pay you at the end of each month. You will be able to download contact information from any donors who have not asked to keep that information private. They each charge a moderate fee to cover credit card processing and overhead. Network for Good offers a basic option (free to set up + 4.75% per transaction fee), or a customizable option (one-time setup fee + $29.95/month + 3% per transaction fee). Just Give does not offer a customizable option, but is free to set up and charges only 3% per transaction to cover credit card processing costs.
  2. Set up a Charity Badge on sixdegrees.org
    Donations made through the badge are processed by Network for Good. You can post the badge on your site and provide code for supporters to post it on their sites, blogs, and elsewhere. (4.75% per transaction fee)
  3. Set up a Cause on Facebook
    Project Agape and Just Give have partnered up to allow you to set up a Cause that can accept donations on facebook.com. First, you’ll need to create a Facebook account. Then add Causes to your profile and start your own. Other Facebook members will then be able to join your cause and contribute. As a bonus, you’ll also be building a community around your cause! (4.5% per transaction fee)

6/18/07 - NOTE: I’ve amended this post to add in the per transaction fees for each option. In the examples above, about 3% per transaction can be expected to go straight to credit card processing fees.

Robert Tolmach of WellGood LLC also wrote to offer up ChangingThePresent.org as an option to list giving opportunities. On Changing the Present, donors can list and promote their favorite charities and causes, while nonprofits can offer specific gift options. (3% plus $.30 per transaction fee).

If you have any recommendations for other services (chipin.com or change.org, for example), please post a comment.

Add to Del.icio.us | Digg This | Leave a Comment

Who Should Blog

I’ve decided to break our don’t-blog-about-entertainment-clients rule this morning. Last night, several of us caught Brian Regan’s show at the Strathmore Theater. The show was hilarious, and we had a blast.

If you’ve never seen Brian’s act, he does “observational comedy“, with a particular gift for expressive delivery. As I listened to the jokes, I thought: this material comes across like a series of blog posts. Very funny blog posts. Quick stories about childhood memories, insights into the world around us, and simple-but-true reflections on everyday life. What’s more, Brian is one of those rare people who is just really funny to be around. He has a way of thinking and talking that cracks you up.

Who better to write a blog than Brian Regan? I’d read it every day. So would many of the other 2,000 folks who saw the show last night and the hundreds of thousands of fans who follow him. He’s got great content at the tip of his tongue and a pre-established audience. It would be a sure hit.

Brian was gracious enough to invite us backstage after the show for a few photos and a brief chat.

Viget and Brian Regan

So I had to ask him, “Any interest in blogging?” The short answer: not really.

His focus is on continuing to make his stand-up show the best it can be. That takes time and effort. Regular blogging takes time and effort. As funny as Brian’s Daily Reflections would be (his, not mine), it’s just not a priority for him professionally or personally right now. Until he decides it is, I would never advise him to launch one.

Blogging isn’t for everyone. It takes a certain personality. Think about Brian’s scenario if you’re asking “Should I blog?” Before you consider how hilarious (or informative, compelling, inspiring) your content would be, how many fans (or friends, contacts, colleagues) you already have who would read it, or how much a successful blog will help your career by filling theaters (or sales funnels, job offers, speaking gigs), you should ask, “Do I really want to?” Am I really inspired to share my thoughts with the world several times each week? Am I really motivated to keep it up over months and years?”

I think many blogs start out because people think they have great information and insight to share. While that’s significant, it’s more important to know that you’re ready to stick with it.

Oh, and Brian’s best comment backstage? Kyle, who has managed to meet Brian after a few shows, asked what he could do so that he’d be remembered during their next encounter. Simple, Brian said. “A one-thousand dollar bill.”

Add to Del.icio.us | Digg This | Leave a Comment