DevelopmentNow Blog
 Thursday, November 29, 2007

When search results are displayed on Google, the descriptive text below the page title is called the snippet. See example below:

 

Matt Cutts from Google recently videotaped a bunch of impromptu tech-oriented videos (I think he stole the idea from me <g>), one of which was how Google comes up with the snippet. Hint: it's not always your meta description tag, and sometimes it's even your DMOZ description! :/

You can view the video, or view notes courtesy of Eric Enge. I personally prefer to skim notes in 2 minutes instead of watching a 10 minute video, but that's just me...

Web
November 29, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Wednesday, November 28, 2007

I recently ran across three Facebook application generators that allow you to quickly generate a Facebook app from your existing Clearspring widgets, Widgetbox widgets, or Dapps (content feeds).

Clearspring's Facebook App Generator

Widgetbox's App Accelerator 

Dapper's Facebook App Maker 

Building a Widget inside an existing framework can be helpful for developers, as you can leverage existing APIs and distribution channels.

Thx to Mashable for the info. ;)

Web
November 28, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [1]



 Wednesday, November 21, 2007
I thought about calling this entry "Don't Spend Two Hours to Save $20", but it lost out on the internal blog title poll. Both phrases are about how it's easy to end up spending hours & hours to avoid paying a nominal amount.

People who know me know that I like to talk about productivity a lot. Granted, I see the irony of me talking about productivity while I sit around writing blog posts, but anyhow.

Have you ever...

One of the things I've learned over the years is to not be afraid to spend a little money to save a lot of time. Assuming your time has value, it makes a lot of sense. So have you ever:
  • Spent hours creating a program to do something, instead of buying a $25 piece of software that does all that you need and more?
  • Used poorly-written, cumbersome free software to do your daily work, instead of paying $30 for a program that works really well?
  • Saved $20 on a new tech gadget by trolling FatWallet and TechBargains for a week, sending in multiple rebates, asking store managers to price match, and/or driving back to the store to do a return/rebuy or price guarantee?
  • Avoiding paying a $25 shipping fee on furniture or other large items by driving down to the store yourself, strapping the items to the top of your car, heading back home, unloading it, and carrying it into the room?
  • Bought a cheap piece of crap to do something (a rake, a wrench, a garden hose reel, a heatsink) that required extra time or money to get it working correctly, and/or broke after a short while and required replacement?
...and so on. It's easy to get sucked into saving a little money, but unless you enjoy the time spent saving that cash, you should make sure to be aware of how you spend your time and ensure that it's really getting you somewhere. As programmers, we love writing software, and it's really easy to say "hey I can quickly write or build my own X for free!" I've done that a lot (and heard similar sentiments from other developers), and while it's fun writing little utilities and tools, they have a habit of taking longer than expected.

A Full Price Lesson

I had a friend back in Chicago who asked me to come with him to buy some stuff for his computer. I mentioned that he could save a lot by checking out various deals, and that different stores had different prices, so that he could buy his keyboard at one vendor, his antivirus software somewhere else, a mouse on Amazon, and then send in some rebates to save even more. I mentioned that he should keep an eye on bargain-shopper sites and only buy when items go on sale, do some online research to compare price-for-performance between different items, and other price-shaving tips.

After a long spiel on techie thriftiness, he promptly ignored me and dragged us into Office Depot, where he asked my advice on what a good keyboard, mouse, and antivirus vendor were. I told him, and he grabbed the items, paid at the counter, and strolled out.

Initially I was shocked at his cavalier attitude at paying full price, but then I realized that he was done in 15 minutes. Done! I'd still be driving around, cutting out UPC symbols, etc. a week later.

I still remember that experience whenever I start thinking about how I can save $10 on a hard drive by comparing 4 different drives at 5 different sites over the course of 2 weeks.

If you're not working, you aren't getting paid

I'm not saying you shouldn't try to save money, nor should you throw money away. Nor should you buy things you don't need if something free will work just fine. Nor should you avoiding writing your own tools.

I'm just saying that if your time is valuable, think about how your time is spent, and just be conscious of where your hours are going vs where they'd go if you spent an extra $20-$100. Over the past two years at DevelopmentNow, that really hit home. We do 100% project work here, so if we're not working on a client's site, we don't get paid. With that in mind, I felt more comfortable paying a little to gain a lot (of time). Especially in IT, there are opportunities to spend an extra $20 to save hours.

Examples from the field

For example, I set up an Unfuddle account for the company. Unfuddle is sort of like BaseCamp+Subversion+Ticket system, but it was ready to go instead of me spending hours (days?) setting up SVN, Trac, and other stuff for free. I'm also probably going to buy phpEd or some other commerical PHP editor. Why? Because I get a lot for that $100 or so, and I buy it & I'm done. I take a lot of screenshots, too, and need more features than Cropper + Ifranview currently provide, so I'll probably buy SnagIt for $40. Plus I order most things (including furniture) online & have it delivered right to my door -- not only does it save me time, but it's better for the environment than driving my car around.

Wrapping up

So...that's how not to spend two hours to save $20. If you get paid hourly, saving $20 via two hours of unpaid work carries a real opportunity cost, which is how you go about losing 20 (or more) dollars an hour.

November 21, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Wednesday, November 14, 2007
A friendly reminder that the Portland Open Coffee Club will be meeting on Wed, November 28th, at 10am at the downtown Stumptown at 128 SW 3rd Ave.
 
For those not in the know, Open Coffee Club is a very laid back event where people interested in the web, startups, and technology meet up at a coffee shop and chat for a bit before heading back to the daily grind.
 
There's no set agenda, and the meeting lasts as long as people want to stick around. If you're downtown & out for coffee that morning anyhow, I encourage you to drop by & say hello. You can quiz me on Silverlight & social networking if you want to.
 
I'll be the tall guy with the orange jacket, probably with a mocha.
 
Eventful link:
 
OCC homepage:
 
November 14, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Thursday, November 08, 2007

Ice Cream for Everyone wrote about their experiences in hiring a designer, listing out where they placed ads and what kind of candidates they found. Me the Geek also has a list of specialty job boards for finding programmers, and has a great quote (from Michael Arrington) on why companies often choose to post ads on smaller, niche boards:

The idea is that the best candidates read these blogs, and by definition are up to speed on cutting edge tech issues. By advertising there, you get the benefit of access to those candidates, without the hundreds of unqualified resumes that come flying in from a Craigslist or Monster.com listing.

I like playing devil's advocate, so I'll say that while it's true that sharp people keep up with technology, there are also a lot of bright programmers who don't read TechCrunch. There are also ones who read TechCrunch, but not the TechCrunch job boards.

A friend of mine runs a consulting company and had his best success on Monster.com, of all places. He mentioned that while he had to wade through a lot of bad candidates, the mere fact that Monster.com cast such a wide net helped ensure he'd find someone. He also felt that if people were looking for a job, they'd be sure to check Monster.com -- he didn't think there would be many viable candidates who ignored Monster and only focused on niche boards.

Anecdotally, I posted ads on ThinkVitamin and Authentic Jobs, and I did get a number of resumes from really sharp-seeming developers. However, they were on average outside the range that I could afford. When I posted on CraigsList, I actually didn't get as many responses as I thought I would -- largely because posting ads was free (until recently), and so your CraigsList job ad would get buried within a day or two by tons of staffing company ads.

So...maybe I don't get it. Or maybe if you're on a tighter budget, niche boards aren't the right place to look. But now that CraigsList charges $25 per ad in Portland, I might get better visibility.

 

November 8, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Wednesday, November 07, 2007
I spoke with one of my social networking clients today about how to get their user participation up. My client mentioned that they saw people registering, but they just weren't doing anything. I was thinking about the conversation on the way home from work today and wanted to blog out some thoughts.

What's In It For Your Users?

The first question I asked was "From your perspective, what does your site offer users? Why should they sign up, and why should they participate?" It's a good question to ask yourself about your site -- what's in it for your users? Do you have a good value proposition? Who is your target audience? Who is your competition and why are you better? Would you use your site? Do you use your own site, and how often? Are your needs unique? What do your friends and associates think? Do they use the site too?

It's easy enough to stick a survey from Zoomerang or PollDaddy on your site to collect some feedback, too. You need to understand the needs of your users and the value you provide -- you can't just build a site and wait for the content to roll in.

A Combination of Factors for User Participation

Getting user participation is a combination of a few things:
  1. There should be things drawing your users into the site
  2. There should be as few barriers as possible preventing them from participating
  3. To grow, you need more and more users
  4. Some percentage of users will do nothing

Draw Users Into Your Site

#1 begins with two standard fares: content and activities. Having lots of interesting content is great, but content isn't all you need -- this is an interactive site, not a book you just flip through and read. So give users a chance to do something, too. Let them put their two cents in, compete against other users, show off their skills/photos/etc, win a prize, gain notoriety, ask a question. And give users instant feedback if possible. Let them see the results of their participation.

Important point: Users need to know that if they do something, they will get a (positive) result. That's important to realize. That's why no one participates in forums with no posts -- why bother posting to an empty bulletin board, since no one will probably read and/or reply to what you said? There's a reason why forum moderators seed content and prune empty threads.

Another thing talked about is stickiness. Stickiness means getting users to come back. Maybe there's an activity that keeps them logging back in to check on stuff (e.g. checking your score or approving a friend request), or maybe your site emails them to tell them that "XYZ just happened on the site, click here to visit the site and check it out!" Make logging into the site worthwhile. If the content (text, photos, etc) is interesting, that could be reason enough to come back.

Think about the sites that you visit regularly -- why do you visit them? Now think about the sites you participate in regularly -- why do you participate, and are the reasons different from the sites you merely browse?

Lastly, make sure users know what your site has to offer. Laura G from Ning talks about Welcome Centers -- does your site have a prominent area, preferably on the home page, welcoming new users, telling them what the site is about, and encouraging them to join in the fun?

Eliminate Barriers to Participation

Top of the list -- make registering as easy as possible, or eliminate it. Allow people to post comments, rate, & review things without registering at all. Then, allow registered users something extra as incentive (maybe they can gain reputation, or access special features, or not have to use the CAPTCHA all the time). Make registration quick & simple -- require as little as possible before they can participate. Don't make them wait 5-10 minutes for a confirmation email (*unless that kind of security is really necessary). Don't redirect them to the home page after registering so they have to remember what page they were on. Don't make them log in again, after they just told you what their username and password should be. People will register because they want to do something, and the more hoops they have to jump through before they're able to do what they wanted to, the more their enthusiasm will wane.

A cumbersome registration process is part of a larger theme -- usability. A site needs to be easy to use, be responsive, be intuitive, work on all browsers, not require rebooting your computer to load a plugin, etc. If a site is simple and easy, then people enjoy using it, and they'll use it more often.

Granted, barriers can be higher if the reward to your users is higher. Lonely bachelors are more willing to put up with an involved registration process if it means they can browse pictures of pretty girls and find true love. But in general, don't make the barriers any higher than they need to be. If you start getting too much content, you can apply the brakes later.

Another good tip is to visit a non-technical friend (who's not a member), ask them to participate in your site, and watch them use your site. And I mean physically sit behind them and observe. Watch what they do, see where they get caught up, and understand what might be frustrating your users.

Get More Users

I won't talk much about this, but obviously, you need to get as much of your target userbase to your site as you can. Note I said target userbase, not just any random set of users. That's because your site has some sort of theme, niche, or focus, and you want to reinforce that. Social sites' value and appeal increases with more users (and more user generated content), so make sure your site is something your users will share. Include standard "viral" elements in your site -- invite a friend, email this XYZ to a friend, import your Yahoo/Gmail/etc contacts. Give people a direct reason to include more people. Give them points, give them a "friend count", something. Make a facebook/OpenSocial app. Get some buzz. Get blogs to write about you. Do some SEO. Buy keywords. Acquire an existing social network.

Some Users Will Always Be Lame

After all your hard work, some users will always do nothing. Some might start participating after a while (especially if you email them from time to time to let them know about new and interesting features), but there will always be a percentage of users who register on your site but don't post anything, don't upload any photos, and never come back. First off -- that's normal, and that's totally ok. If your site is healthy, those inactive users will fall by the wayside as your active users fill in your content. Secondly, if it still bothers you, ask yourself "why did these users register in the first place, and why didn't they do anything else?" Make sure that your site's registration process is easy and leads people towards contributing. If it's a cumbersome process, you may find that after completing registration, users are too tired to do anything else.


November 7, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



Yes I've been busy lately. In fact that's what I wanted to blog about.

A while back, I was going through my finances to see how much I spent on different things. I wanted to know what my budget should be. When I'd go through the credit card statements, I'd see utilities, food, and other fixed costs. Restaurants, entertainment, etc. But there would always be one or two oddball one-off purchases (e.g. plane tickets one month, a new refrigerator another month, a new PC some other month, etc.) that I didn't want to include in the budget. "That fridge was a one-time thing, I shouldn't include that $500 in my budget," I'd say. But each month there's be some other random purchase that wasn't accounted for in the budget I drew up. And so these one-time purchases kept blowing my carefully detailed budget.

I eventually realized that I needed some sort of $500 "Random" or "Miscellaneous" category in my monthly budget because it dawned on me that there was always some important -- but new and unaccounted for -- item being purchased. So after I restructured my budget to assume that I'd "buy a fridge each month" so to speak, things worked out better.

Since starting DevelopmentNow almost two years ago, I've come to a similar realization about what takes up some of my time -- I can't assume I'll be able to spend 100% of my time coding, because there's always something that comes up as part of running a business. Interviewing job candidates, talking with clients, purchasing things for the office, working with my accountant to incorporate the business, writing contracts, updating proposals, upgrading my site hosting -- the list goes on. All that stuff needs to be done, and probably takes up at least a few hours a week, but it's hard for me to know exactly what those 8-12 hours a month will be spent doing ahead of time. I can guess, but I won't know for sure. And it's different each month.

But I now know that I need to permanently budget for that time so that I don't overcommit myself. So if you find yourself repeatedly crunched by unexpected timesinks, you may want to add a good ol' 10-hour "Random Stuff" block to your monthly budget, too.

How to minimize the amount of random stuff, however, is a topic for another day.

November 7, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]