<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Less is More</title>
	<atom:link href="http://travid.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://travid.wordpress.com</link>
	<description>Journey as an entrepreneur and meetup organizer</description>
	<lastBuildDate>Tue, 04 Oct 2011 00:00:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='travid.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/53eb7db4a4aa336861eea48b92b794f0?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Less is More</title>
		<link>http://travid.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://travid.wordpress.com/osd.xml" title="Less is More" />
	<atom:link rel='hub' href='http://travid.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Why More is Less</title>
		<link>http://travid.wordpress.com/2010/01/13/why-more-is-less/</link>
		<comments>http://travid.wordpress.com/2010/01/13/why-more-is-less/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 19:00:45 +0000</pubDate>
		<dc:creator>travid</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[less is more]]></category>
		<category><![CDATA[philosophy]]></category>

		<guid isPermaLink="false">http://travid.wordpress.com/?p=103</guid>
		<description><![CDATA[The paradox of choice: Why more is less, and less is more. Nowadays, people are overwhelmed with information. This signal vs noise problem keeps showing up everywhere. In web design, preferences settings is consider a bad thing to have. Good &#8230; <a href="http://travid.wordpress.com/2010/01/13/why-more-is-less/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=travid.wordpress.com&amp;blog=6259113&amp;post=103&amp;subd=travid&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The paradox of choice: Why more is less, and <strong>less is more</strong>.<br />
<span style='text-align:center;display:block;'><object width='400' height='330' type='application/x-shockwave-flash' data='http://video.google.com/googleplayer.swf?docId=6127548813950043200'><param name='allowScriptAccess' value='never' /><param name='movie' value='http://video.google.com/googleplayer.swf?docId=6127548813950043200'/><param name='quality' value='best'/><param name='bgcolor' value='#ffffff' /><param name='scale' value='noScale' /><param name='wmode' value='opaque' /></object></span></p>
<p>Nowadays, people are overwhelmed with information. This signal vs noise problem keeps showing up everywhere.</p>
<p>In web design, preferences settings is consider a bad thing to have. Good designers make those decisions for their users.</p>
<blockquote><p>&#8220;Innovation is not about saying yes to everything. It’s about saying NO to all but the most crucial features.&#8221; &#8211; Steve Jobs</p></blockquote>
<p>In consumer products, companies with fewer product types tend to do better. Consider GM vs BMW and Honda. More choices tend to confuse consumers. Another example is Mac vs PC.<br />
<img src="http://api.ning.com/files/NbZQdA7dJzi5wbnXYb7-yyTo1BLCWOR8bT2u40j0k*05ZpedsT*EeJ*KL-zmAe9LipdkZ9ugy27V3xJKkKeWVw64ubU1xqyk/MacVsPC1_550x414.jpg" alt="Mac vs PC" /></p>
<p>In dating, because of the existence of online dating websites, people tend to become restless. Why settle when there are so many options out there to choose from?<br />
<img src="http://www.travelphoto.net/a-photo-a-day/wordpress/wp-content/EGIV2_057.jpg" alt="Plenty of Fish" /></p>
<p>A few years old, you have Reddit vs Digg. <a href="http://reddit.com">Reddit</a> used to be my favorite website. The quality of stories used to be better with fewer categories. Now, I read <a href="http://news.ycombinator.com/">hacker news</a>. How long would it be before hacker news become like Reddit? Consider another example: Twitter usage. You can tell when someone is using Twitter as a marketing tool when he is following more than 200 people. Unless you have nothing to do, and reading tweets was your full time job, there is no way anyone could handle all that information overload. If you are following more than 200 people, you simply don&#8217;t read your Twitter tweets. I know it because <a href="http://twitter.com/travid">I don&#8217;t</a>.</p>
<p>More is less. On the other hand, <strong>less is more</strong>. If I learned three words from more than one year of working on my startup <a href="http://travid.info">TrAvid</a>, this is it. Hence, the title of this blog.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/travid.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/travid.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/travid.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/travid.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/travid.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/travid.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/travid.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/travid.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/travid.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/travid.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/travid.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/travid.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/travid.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/travid.wordpress.com/103/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=travid.wordpress.com&amp;blog=6259113&amp;post=103&amp;subd=travid&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://travid.wordpress.com/2010/01/13/why-more-is-less/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/deceb2e2fc8c5afc7e31b24c97641b01?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">travid</media:title>
		</media:content>

		<media:content url="http://api.ning.com/files/NbZQdA7dJzi5wbnXYb7-yyTo1BLCWOR8bT2u40j0k*05ZpedsT*EeJ*KL-zmAe9LipdkZ9ugy27V3xJKkKeWVw64ubU1xqyk/MacVsPC1_550x414.jpg" medium="image">
			<media:title type="html">Mac vs PC</media:title>
		</media:content>

		<media:content url="http://www.travelphoto.net/a-photo-a-day/wordpress/wp-content/EGIV2_057.jpg" medium="image">
			<media:title type="html">Plenty of Fish</media:title>
		</media:content>
	</item>
		<item>
		<title>Steve Jobs: The Power of Story Telling</title>
		<link>http://travid.wordpress.com/2010/01/06/the-power-of-story-telling/</link>
		<comments>http://travid.wordpress.com/2010/01/06/the-power-of-story-telling/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 05:11:58 +0000</pubDate>
		<dc:creator>travid</dc:creator>
				<category><![CDATA[inspirational]]></category>

		<guid isPermaLink="false">http://travid.wordpress.com/?p=100</guid>
		<description><![CDATA[I have seen this video multiple times, and I am inspired every time. Without further ado, from the master himself&#8230; Enjoy.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=travid.wordpress.com&amp;blog=6259113&amp;post=100&amp;subd=travid&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have seen this video multiple times, and I am inspired every time. Without further ado, from the master himself&#8230; Enjoy.<br />
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='500' height='312' src='http://www.youtube.com/embed/UF8uR6Z6KLc?version=3&amp;rel=1&amp;fs=1&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent' frameborder='0'></iframe></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/travid.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/travid.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/travid.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/travid.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/travid.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/travid.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/travid.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/travid.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/travid.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/travid.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/travid.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/travid.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/travid.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/travid.wordpress.com/100/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=travid.wordpress.com&amp;blog=6259113&amp;post=100&amp;subd=travid&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://travid.wordpress.com/2010/01/06/the-power-of-story-telling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/deceb2e2fc8c5afc7e31b24c97641b01?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">travid</media:title>
		</media:content>
	</item>
		<item>
		<title>Notes on Getting Real</title>
		<link>http://travid.wordpress.com/2010/01/06/notes-on-getting-real/</link>
		<comments>http://travid.wordpress.com/2010/01/06/notes-on-getting-real/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 08:03:14 +0000</pubDate>
		<dc:creator>travid</dc:creator>
				<category><![CDATA[books]]></category>

		<guid isPermaLink="false">http://travid.wordpress.com/?p=90</guid>
		<description><![CDATA[Notes on Getting Real: The smarter, faster, easier way to build a successful web Application. <a href="http://travid.wordpress.com/2010/01/06/notes-on-getting-real/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=travid.wordpress.com&amp;blog=6259113&amp;post=90&amp;subd=travid&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I wish I had read this book sooner when I first started working on TrAvid. I would have avoided lots of mistakes described in the book. My raing 10/10. Definitely recommended for anyone working on websites.</p>
<p>** Support **</p>
<p>- Feel The Pain<br />
Tear down the walls between support and development<br />
listening to customers is the best way to get in tune with your product’s strengths and weaknesses.<br />
Don’t outsource customer support to a call center or third party.<br />
Get the developer to answer support emails.</p>
<p>- Zero Training<br />
Use inline help and FAQs so your product doesn’t require a manual or training<br />
Use tooltip</p>
<p>- Answer Quick<br />
Quick turnaround time on support queries should be a top priority</p>
<p>- Tough Love<br />
Be willing to say no to your customers<br />
Be prepare to say no to feature requests</p>
<p>- In Fine Forum<br />
Use forums or chat to let customers help each other</p>
<p>- Publicize Your Screwups<br />
Get bad news out there and out of the way<br />
Deliver bad news right away. Deliver the good news slowly to keep the good vibes.</p>
<p>** Post-Launch **</p>
<p>- One Month Tuneup<br />
Issue a major update 30 days after launch<br />
This will keep you focus on the core feature set at launch time<br />
Generate the 2nd wave of buzz</p>
<p>- Keep the Posts Coming<br />
Show your product is alive by keeping an ongoing product development blog post-launch<br />
Keep a product update blog<br />
Things to include:<br />
Faqs<br />
How-tos<br />
Tips &amp; tricks<br />
New features, updates, &amp; fixes<br />
Buzz/press</p>
<p>- Better, Not Beta<br />
Don’t use “beta” as a scapegoat<br />
private beta is fine, public beta is bullshit</p>
<p>- All Bugs Are Not Created Equal<br />
Prioritize your bugs (and even ignore some of them)</p>
<p>- Ride Out the Storm<br />
Wait until knee-jerk reactions to changes die down before taking action<br />
wait for 24-48 hours before responding to something negative</p>
<p>- Keep Up With the Joneses<br />
Subscribe to news feeds about your competitors</p>
<p>- Beware the Bloat Monster<br />
More mature doesn’t have to mean more complicated<br />
resist the urge to add features<br />
keep things simple</p>
<p>- Go With The Flow<br />
Be open to new paths and changes in direction<br />
Example: Flickr which started off as an online game</p>
<p>** Conclusion **</p>
<p>Start Your Engines<br />
- Execution<br />
Success is all about great execution in:<br />
- web design<br />
- good promotion<br />
- good code<br />
Constantly seek out your weak links and focus on them until they’re up to par.<br />
- People<br />
- More Than Just Software<br />
Apply the principles to other areas in life</p>
<p>** Promotion **</p>
<p>- Hollywood Launch<br />
Go from teaser to preview to launch<br />
Teaser<br />
drop hints on blogs<br />
stay vague<br />
boost the ego of a selective few to be the beta testers<br />
put up a email collecting box<br />
Preview<br />
A few weeks ahead of launch, start previewing features<br />
show screen shots<br />
highlight features<br />
tell people about the ideas and principles behind the app<br />
collect emails<br />
Launch<br />
Send emails<br />
post about progress: how many people have signed up<br />
Keep posting about updates/tweaks<br />
build the momentum</p>
<p>- A Powerful Promo Site<br />
Build an ace promotional site that introduces people to your product<br />
Include the following:<br />
Overview: Explain your app and its benefits.<br />
Tour: Guide people through various features.<br />
Screen captures and videos: Show people what the app actually looks like and how to use it.<br />
Manifesto: Explain the philosophy and ideas behind it.<br />
Case Studies: Provide real life examples that show what’s possible.<br />
Buzz:Testimonial quotes from customers, reviews, press, etc.<br />
Forum: Offer a place for members of the community to help one another.<br />
Pricing &amp; Sign-up: Get people into your app as quickly as possible.<br />
Weblog: Blogs keep your site fresh with news, tips, etc.</p>
<p>- Ride the Blog Wave<br />
Blogging can be more effective than advertising (and it’s a hell of a lot cheaper)<br />
Create a blog that&#8217;s helpful. Not just about the company.</p>
<p>- Solicit Early<br />
Get advance buzz and signups going ASAP<br />
Get some sort of site up and start collecting emails as soon as possible</p>
<p>- Promote Through Education<br />
Share your knowledge with the world<br />
You can give something back to the community that supports you and score some nice promotional exposure at the same time.<br />
Education gives rises to healthy marketing, build up evangelists<br />
Teaching Leads to Passion</p>
<p>- Feature Food**<br />
They’re hungry for it so serve it up<br />
Talk about the new features on blogs<br />
Get people excited</p>
<p>- Track Your Logs**<br />
Study your logs to track buzz<br />
figure out where the buzz is coming from<br />
Go to those blogs or forums, contact the people who praises you<br />
Collect positive praise and create a “buzz” page at your site.</p>
<p>Inline Upsell<br />
Promote upgrade opportunities inside the app<br />
don’t forget to call out upgrade opportuni- ties from within the product.</p>
<p>Name Hook<br />
Give your app a name that’s easy to remember</p>
<p>** Pricing and Signup **</p>
<p>- Free Samples<br />
Noisy world. In order to get people to notice you amid the din, give something away for free.</p>
<p>- Easy On, Easy Off<br />
Make signup and cancellation a painless process</p>
<p>- Silly Rabbit, Tricks are for Kids<br />
Avoid long-term contracts, sign-up fees, etc.</p>
<p>- A Softer Bullet<br />
Soften the blow of bad news with advance notice and grandfather clauses<br />
Need to deliver bad news like a price increase? Give advanced notice.</p>
<p>** Words **<br />
- There’s Nothing Functional about a Functional Spec<br />
Don’t write a functional specifications document<br />
Functional specs are fantasies</p>
<p>Functional specs are about appeasement<br />
make everyone feel involved<br />
Functional specs only lead to an illusion of agreement<br />
people interpret words differently<br />
Functional specs force you to make the most important decisions when you have the least information<br />
Functional specs lead to feature overload<br />
easy to add bullet points<br />
Functional specs don’t let you evolve, change,and reassess<br />
Specs don’t deal with the reality that once you start building something, everything changes.</p>
<p>Write a one page story about what the app needs to do.<br />
Follow the process<br />
paper sketch<br />
html<br />
code<br />
Stay flexible</p>
<p>- Don’t Do Dead Documents<br />
Eliminate unnecessary paperwork<br />
Build, don’t write.<br />
Documents that live separately from your application are worthless.</p>
<p>- Tell Me a Quick Story<br />
Write stories, not details</p>
<p>- Use Real Words<br />
Insert actual text instead of lorem ipsum<br />
You need real copy to know<br />
how long certain fields should be<br />
how tables will expand or contract<br />
what your app truly looks like<br />
- Personify Your Product<br />
What is your product’s personality type?<br />
Think of your product as a person. What type of person do you want it to be?</p>
<p>** Priorities **</p>
<p>- What’s the Big Idea?<br />
Explicitly define the one-point vision for your app<br />
Mantra</p>
<p>- Ignore Details Early On<br />
Working in iterations from large to small.</p>
<p>- It’s a Problem When It’s a Problem<br />
Make decisions just in time, when you have access to the real information you need.<br />
examples: scalability, features, servers</p>
<p>- Hire the Right Customers<br />
Find the core market for your application and focus solely on them<br />
If you try to please everyone, you won’t please anyone<br />
Know who your app is really intended for and focus on pleasing them.<br />
Polarize your customers</p>
<p>- Scale Later<br />
You don’t have a scaling problem yet<br />
Create a great app and then worry about what to do once it’s wildly successful.</p>
<p>- Make Opinionated Software<br />
Your app should take sides</p>
<p>** Feature Selection **</p>
<p>- Half, Not Half-Assed<br />
Build half a product, not a half-ass product<br />
build half a product that kicks ass<br />
Stick to what’s truly essential.<br />
Take whatever you think your product should be and cut it in half.<br />
Minimal Viable Product<br />
Start off with a lean, smart app and let it gain traction.</p>
<p>- It Just Doesn’t Matter<br />
Essentials only<br />
Answer to customer support questions: &#8220;It Just Doesn’t Matter&#8221;<br />
Leave out the nice-to have and not important features</p>
<p>- Start With No<br />
Make features work hard to be implemented<br />
Each time you say yes to a feature, you’re adopting a child. (e.g. design, implementation, testing, etc.)<br />
The secret to building half a product instead of a half-ass product is saying no<br />
Don’t be a yes-man<br />
Feature request =&gt; No.<br />
If keep hearing about it, implement.<br />
&#8220;Innovation is not about saying yes to everything. It’s about saying NO to all but the most crucial features&#8221; &#8212; Steve Jobs</p>
<p>- Hidden Costs<br />
Expose the price of new features<br />
be on the lookout for feature loops (i.e. features that lead to more features)<br />
For every new feature you need to&#8230;<br />
1. Say no.<br />
2. Force the feature to prove its value.<br />
3. If “no” again, end here. If “yes,” continue&#8230;<br />
4. Sketch the screen(s)/ui.<br />
5. Design the screen(s)/ui.<br />
6. Code it.<br />
7-15. Test, tweak, test, tweak, test, tweak, test, tweak&#8230;<br />
16. Check to see if help text needs to be modified.<br />
17. Update the product tour (if necessary).<br />
18. Update the marketing copy (if necessary).<br />
19. Update the terms of service (if necessary).<br />
20. Check to see if any promises were broken.<br />
21. Check to see if pricing structure is affected.<br />
22. Launch.<br />
23. Hold breath.</p>
<p>- Can You Handle It?<br />
Build something you can manage<br />
Build products and offer services you can manage.<br />
It’s easy to make promises. It’s much harder to keep them.<br />
Consider: organizationally, strategically, and financially</p>
<p>- Human Solutions<br />
Build software for general concepts and encourage people to create their own solutions<br />
Give people just enough to solve their own problems their own way.<br />
Example: Twitter</p>
<p>- Forget Feature Requests<br />
Let your customers remind you what’s important<br />
How do you manage them? You don’t. Just read them and then throw them away.<br />
If you keep reading about a feature request, it&#8217;s time to consider implement it.</p>
<p>- Hold the Mayo<br />
Ask people what they don’t want<br />
Sometimes the biggest favor you can do for customers is to leave something out.<br />
Innovation Comes From Saying No.<br />
Filtering out the noise and get the signal</p>
<p>** Process **</p>
<p>- Race to Running Software<br />
Get something real up and running quickly<br />
Running software is real.<br />
Once you’re there, you’ll be rewarded with a significantly more accurate perspective on how to proceed.<br />
Stories, wireframes, even html mockups, are just approximations.</p>
<p>- Rinse and Repeat<br />
Work in iterations<br />
Iterations lead to liberation</p>
<p>- From Idea to Implementation<br />
Go from brainstorm to sketches to HTML to coding<br />
Brainstorm<br />
about big questions<br />
Paper sketches<br />
Create HTML screens<br />
Code it</p>
<p>- Avoid Preferences<br />
Decide the little details so your customers don’t have to<br />
Preferences are a way to avoid making tough decisions<br />
Customers shouldn’t have to think about every nitty gritty detail<br />
More options require more code: evil<br />
Make the call<br />
Examples: sorting order, number of items to display on each page</p>
<p>- “Done!”<br />
Decisions are temporary so make the call and move on<br />
Keep the momentum going<br />
Revise if necessary<br />
Execute, build momentum, and move on.<br />
To me, ideas are worth nothing unless executed. They are just a multiplier. Execution is worth millions.</p>
<p>- Test in the Wild<br />
Test your app via real world usage<br />
Do it quick<br />
1. Decide if it’s worth doing, and if so:<br />
2. Do it quick – not perfect. just do it.<br />
3. Save it. upload it. publish it<br />
4. See what people think</p>
<p>- Shrink Your Time<br />
Break it down<br />
Keep breaking down timeframes into smaller chunks.<br />
Same goes to tasks<br />
Smaller Tasks and Smaller Timelines are easier to manage</p>
<p>** The Organization **</p>
<p>- Unity<br />
Don’t split into silos<br />
As much as possible, integrate your team so there’s a healthy back-and-forth dialogue throughout the process.<br />
hire people with multiple talents who can wear different hats during development.</p>
<p>- Alone Time<br />
People need uninterrupted time to get things done<br />
Getting in the zone takes time. And that’s why interruption is your enemy.<br />
The alone time zone is where the real development magic happens.<br />
Set up a rule at work: Make half the day alone time.</p>
<p>- Meetings Are Toxic<br />
Don’t have meetings</p>
<p>For those times when you absolutely must have a meeting (this should be a rare event), stick to these simple rules:<br />
Set a 30 minute timer.When it rings, meeting’s over. Period.<br />
Invite as few people as possible.<br />
Never have a meeting without a clear agenda.</p>
<p>- Seek and Celebrate Small Victories<br />
Release something today<br />
Long, drawn out release cycles are motivation killers.<br />
quick wins that you can celebrate are great motivators<br />
“What can we do and release in 4 hours?” It could be&#8230;<br />
A new simple feature<br />
A small enhancement to an existing feature<br />
Rewriting some help text to reduce the support burden<br />
Removing some form fields that you really don’t need</p>
<p>** Staffing **</p>
<p>- Hire Less and Hire Later<br />
Add slow to go fast<br />
communication overhead, personality clashes<br />
You don’t need as many people as you think.<br />
1 great player &gt; 4 mediocre players</p>
<p>- Kick the Tires<br />
Work with prospective employees on a test-basis first<br />
&#8220;test drive&#8221; potential employees</p>
<p>- Actions, Not Words<br />
Judge potential tech hires on open source contributions<br />
Quality of work<br />
Cultural perspective<br />
Level of passion<br />
amount of time indicates how much they love programming<br />
Completion percentage<br />
Social match<br />
If someone’s lacking in manners or social skills, filter them out.</p>
<p>If you want something done, ask the busiest person you know.</p>
<p>- Get Well Rounded Individuals<br />
Go for quick learning generalists over ingrained specialists</p>
<p>- You Can’t Fake Enthusiasm<br />
Go for happy and average over frustrated and great<br />
A happy yet average employee is better than a disgruntled expert.</p>
<p>- Wordsmiths<br />
Hire Good Writers<br />
Always hire the better writer for a given job position<br />
Effective, concise writing and editing leads to effective, concise code, design, emails, instant messages, and more.<br />
Indicator of an organized mind</p>
<p>** Interface Design **</p>
<p>- Interface First<br />
Design the interface before you start programming<br />
Design is relatively light.<br />
Hard to change code<br />
The interface is your product<br />
Answer these questions<br />
Does it make sense?<br />
Is it easy to use?<br />
Does it solve the problem at hand?</p>
<p>- Epicenter Design<br />
Start from the core of the page and build outward<br />
you start at the epicenter and design the most important piece of content first.<br />
worry about the navigation/tabs, footer, colors, sidebar, logo, etc later</p>
<p>- Three State Solution<br />
Design for regular, blank, and error states<br />
Regular<br />
The screen people see when everything’s working fine and your app is flush with data.<br />
Blank<br />
The screen people see when using the app for the first time, before data is entered.<br />
Error<br />
The screen people see when something goes wrong.</p>
<p>- The Blank Slate<br />
Set expectations with a thoughtful first-run experience<br />
The blank state is the most crucial because it creates first impression!</p>
<p>What should you include in a helpful blank slate?<br />
Use it as an opportunity to insert quick tutorials and help blurbs.<br />
Give a sample screenshot of the page populated with data so people know what to expect (and why they should stick around).<br />
Explain how to get started, what the screen will eventually look like, etc.<br />
Answer key questions that first-time viewers will ask:<br />
What is this page?<br />
What do I do now?<br />
How will this screen look once it’s full?<br />
Set expectations and help reduce frustration, intimidation, and overall confusion.</p>
<p>- Get Defensive<br />
Design for when things go wrong</p>
<p>- Context Over Consistency<br />
What makes sense here may not make sense there<br />
Consistency is not necessary</p>
<p>- Copywriting is Interface Design<br />
Every letter matters<br />
Great interfaces are written.<br />
Examples: buttons, labels etc</p>
<p>- One Interface<br />
Incorporate admin functions into the public interface<br />
build these admin functions (i.e. edit, add, delete) into the regular application interface</p>
<p>** Code **</p>
<p>- Less Software<br />
Keep your code as simple as possible<br />
each time you increase the amount of code, your software grows exponentially more complicated.<br />
Get 80% of the functionality with 20% of the time: it&#8217;s a win<br />
Less software is easier to manage.<br />
Less software reduces your codebase and that means less maintenance busywork (and a happier staff).<br />
Less software lowers your cost of change so you can adapt quickly.You can change your mind without having to change boatloads of code.<br />
Less software results in fewer bugs.<br />
Less software means less support.<br />
Encourage programmers to make counteroffers: say no when it&#8217;s too complicated<br />
It&#8217;s better to inform the user using text rather than with server side code. Example: image upload format</p>
<p>- Optimize for Happiness<br />
Choose tools that keep your team excited and motivated<br />
Choose ruby for elegance and simplicity to keep the engineers happy</p>
<p>- Code Speaks<br />
Listen when your code pushes back<br />
If it takes forever to implement something, there is probably a better way</p>
<p>- Manage Debt<br />
Pay off your code and design “bills”<br />
technical debt: fixing hairy design (pay down payment) rather than keep hacking (interests)</p>
<p>- Open Doors<br />
Get data out into the world via RSS, APIs, etc.<br />
give up the idea of sealing in data. Instead, let it run wild</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/travid.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/travid.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/travid.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/travid.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/travid.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/travid.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/travid.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/travid.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/travid.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/travid.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/travid.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/travid.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/travid.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/travid.wordpress.com/90/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=travid.wordpress.com&amp;blog=6259113&amp;post=90&amp;subd=travid&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://travid.wordpress.com/2010/01/06/notes-on-getting-real/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/deceb2e2fc8c5afc7e31b24c97641b01?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">travid</media:title>
		</media:content>
	</item>
		<item>
		<title>How to start a meetup group for fun and profit: part I</title>
		<link>http://travid.wordpress.com/2009/09/22/how-to-start-a-meetup-group-for-fun-and-profit-part-i/</link>
		<comments>http://travid.wordpress.com/2009/09/22/how-to-start-a-meetup-group-for-fun-and-profit-part-i/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 07:10:07 +0000</pubDate>
		<dc:creator>travid</dc:creator>
				<category><![CDATA[meetup]]></category>
		<category><![CDATA[new in town]]></category>
		<category><![CDATA[newcomer]]></category>
		<category><![CDATA[travid]]></category>

		<guid isPermaLink="false">http://travid.wordpress.com/?p=36</guid>
		<description><![CDATA[As a way to promote TrAvid and an attempt at customer validated learning, I decided to start a meetup group in Vancouver. With over 520 meetup members since its launch date on May 1, the Vancouver Newcomers Meetup group has &#8230; <a href="http://travid.wordpress.com/2009/09/22/how-to-start-a-meetup-group-for-fun-and-profit-part-i/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=travid.wordpress.com&amp;blog=6259113&amp;post=36&amp;subd=travid&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As a way to promote TrAvid and an attempt at <a href="http://www.startuplessonslearned.com/2009/04/validated-learning-about-customers.html">customer validated learning</a>, I decided to start a meetup group in Vancouver. With over 520 meetup members since its launch date on May 1, <a href="http://www.meetup.com/The-Vancouver-Newcomers-Meetup-Group/">the Vancouver Newcomers Meetup group</a> has become one of the fastest growing groups in the Vancouver meetup community. Along the way as a meetup organizer, I have learned a few keys in running a fun and successful meetup group:</p>
<p><strong>1. Target the right niche</strong><br />
The members from Vancouver Newcomers Meetup group are great. They are outgoing and friendly. This has a lot to do with the fact that majority of the members are newcomers. When you are new in town, you naturally gravitate towards making new friends. This leads to my point about targeting the right niche market. By targeting newcomers, I automatically picked those fun and outgoing individuals. </p>
<p><strong>2. The importance of providing social settings</strong><br />
Out of all of the 25 meetup events that I have organized so far, one key attribute contributed directly to the rating that I get from my meetup members&#8211;<em>the amount of time I allocate for the members to socialize</em>. For example, if I start a hiking event, I always organize a &#8220;hanging out&#8221; event before the hike. These &#8220;hanging out&#8221; events can be a meetup event in a restaurant or a bar. This is very important in easing out the initial tension that members may have. In addition to this, alcohol helps. The pub crawl events have received by far the biggest interests.  </p>
<p><strong>3. Collaborate with other meetup organizers</strong><br />
Meetup organizers tend to be socially savvy. In collaborating with another organizer, you can learn a few tricks. I had the opportunity to collaborate with Jason from Atlanta. His <a href="http://www.meetup.com/sun-republic/">meetup group</a> is all about pub crawling. When he visited Vancouver, we co-organized the Sky train pub crawl. This turned out to be a wildly successful event. I have since adopted the monthly pub crawl tradition. </p>
<p><strong>4. Use the right web tool for the job</strong><br />
There are a lot of meetup groups specialized in restaurant dining. In order to convince your member to go to a particular restaurant, you will need to promote the restaurant in some way. As an organizer, this involves doing some research on different restaurants. <a href="http://yelp.com">Yelp</a> is very useful for finding out the best restaurants. <a href="http://travid.info">TrAvid</a> is also useful for achieving this. For example, here is <a href="http://travid.info/countries/Canada/cities/Vancouver/restaurants/">a list of good restaurants</a> suitable for meetup events in Vancouver. In addition, one of the feature of TrAvid is that users can find out about a place through a combination of photos, videos and twits. This provide them with a social context for meetup events. </p>
<p>What are some of your tips running as a meetup organizer or community organizer? What do you use to promote your startup?</p>
<p>Next, I will talk about some of the limitations of Meetup.com, and how TrAvid can be used as a better alternative for those on-the-fly meetup events.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/travid.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/travid.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/travid.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/travid.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/travid.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/travid.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/travid.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/travid.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/travid.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/travid.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/travid.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/travid.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/travid.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/travid.wordpress.com/36/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=travid.wordpress.com&amp;blog=6259113&amp;post=36&amp;subd=travid&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://travid.wordpress.com/2009/09/22/how-to-start-a-meetup-group-for-fun-and-profit-part-i/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/deceb2e2fc8c5afc7e31b24c97641b01?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">travid</media:title>
		</media:content>
	</item>
		<item>
		<title>OAuth vs Facebook Connect</title>
		<link>http://travid.wordpress.com/2009/05/03/oauth-vs-facebook-connect/</link>
		<comments>http://travid.wordpress.com/2009/05/03/oauth-vs-facebook-connect/#comments</comments>
		<pubDate>Sun, 03 May 2009 01:55:42 +0000</pubDate>
		<dc:creator>travid</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://travid.wordpress.com/?p=28</guid>
		<description><![CDATA[I spent most of this afternoon looking at different options to promote TrAvid. The immediate problem facing TrAvid right now is the lack of users. And being a user-generated-content site, this poses more risks than running backward in the middle &#8230; <a href="http://travid.wordpress.com/2009/05/03/oauth-vs-facebook-connect/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=travid.wordpress.com&amp;blog=6259113&amp;post=28&amp;subd=travid&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I spent most of this afternoon looking at different options to promote TrAvid. The immediate problem facing TrAvid right now is the lack of users. And being a user-generated-content site, this poses more risks than running backward in the middle of the road at 2am while being blind folded. </p>
<p>In order to solve this problem, I am looking at the potentials to integrate TrAvid&#8217;s authentication system with Facebook or Twitter. </p>
<p>After following a <a href="http://www.madebymany.co.uk/tutorial-for-restful_authentication-on-rails-with-facebook-connect-in-15-minutes-00523">tutorial session</a> on how to use Facebook Connect and reading <a href="http://mashable.com/2009/04/18/twitter-facebook-connect/">Facebook Connect vs Twitter Oauth</a>, I realized that the ultimate differentiators between the two lies on<br />
1. Time (OAuth being simpler to deal with than Facebook Connect)<br />
2. Technology<br />
3. How suitable these APIs can be used to leverage your website. </p>
<p>First, as a massive social networking website, Facebook has grown drastically from a dorm floor application to a bloated, complex and frequently-changed-so-you-have-to-relearn-everything system. This makes developing anything on Facebook a complicated task. Twitter, on the other hand, is still a simple (insert your own description) service. </p>
<p>Second, Facebook is developed using PHP, and the official libraries and examples are only available in PHP. On the other hand, Twitter started out as a Rails shop. This makes integration with Rails sites a relatively easier task compared to Facebook.</p>
<p>Most importantly, however, the real differentiator comes when you consider how these APIs can be used to promote your site. Arguably, everything in Facebook is built on friendships. There is you, and your friend, and your friends&#8217; friends. For twitter, though, the concept of follower is relatively simpler, and less prone to complicated privacy headaches. This difference becomes painfully clear when you consider how users&#8217; twits or messages are searched in twitter and Facebook. This REALLY is what makes Twitter such a powerful platform compared to Facebook. For business, companies can have followers. Whereas, such equivalent concept in Facebook will be absurd. That&#8217;s why they created Facebook groups to solve this problem. And for developers, this creates an extra layer of complexity to solve on its own.</p>
<p>So, the decision to integrate with Twitter is a no brainer for TrAvid at this point. As a one developer Rails shop that would benefit from Twitter&#8217;s Twits system. I hope I made the right decision&#8230; Now the task is to invite all my friends to join Twitter. Hopefully, they all read the following post&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/travid.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/travid.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/travid.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/travid.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/travid.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/travid.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/travid.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/travid.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/travid.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/travid.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/travid.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/travid.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/travid.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/travid.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=travid.wordpress.com&amp;blog=6259113&amp;post=28&amp;subd=travid&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://travid.wordpress.com/2009/05/03/oauth-vs-facebook-connect/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/deceb2e2fc8c5afc7e31b24c97641b01?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">travid</media:title>
		</media:content>
	</item>
		<item>
		<title>How Facebook promoted Twitter</title>
		<link>http://travid.wordpress.com/2009/05/03/how-facebook-promoted-twitter/</link>
		<comments>http://travid.wordpress.com/2009/05/03/how-facebook-promoted-twitter/#comments</comments>
		<pubDate>Sun, 03 May 2009 01:14:37 +0000</pubDate>
		<dc:creator>travid</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://travid.wordpress.com/2009/05/03/how-facebook-promoted-twitter/</guid>
		<description><![CDATA[A and B are on Facebook. A: Oh, Facebook totally steals this new UI from Twitter. B: What&#8217;s Twitter? A: Check it out. B: Oh man. I just signed up. It&#8217;s so much simpler. And that&#8217;s how Facebook promoted Twitter.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=travid.wordpress.com&amp;blog=6259113&amp;post=27&amp;subd=travid&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A and B are on Facebook.<br />
A: Oh, Facebook totally steals this new UI from Twitter.<br />
B: What&#8217;s Twitter?<br />
A: Check it out.<br />
B: Oh man. I just signed up. It&#8217;s so much simpler.<br />
And that&#8217;s how Facebook promoted Twitter.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/travid.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/travid.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/travid.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/travid.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/travid.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/travid.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/travid.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/travid.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/travid.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/travid.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/travid.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/travid.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/travid.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/travid.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=travid.wordpress.com&amp;blog=6259113&amp;post=27&amp;subd=travid&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://travid.wordpress.com/2009/05/03/how-facebook-promoted-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/deceb2e2fc8c5afc7e31b24c97641b01?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">travid</media:title>
		</media:content>
	</item>
		<item>
		<title>Sprockets and Rails 2.1</title>
		<link>http://travid.wordpress.com/2009/02/25/sprockets-and-rails-21/</link>
		<comments>http://travid.wordpress.com/2009/02/25/sprockets-and-rails-21/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 19:08:58 +0000</pubDate>
		<dc:creator>travid</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Sprockets]]></category>

		<guid isPermaLink="false">http://travid.wordpress.com/?p=20</guid>
		<description><![CDATA[I recently stumble upon Sprockets. It sounded like an amazing tool to take javascripts related pains out of Rails applications. If you are seeing problems like, &#8220;Plugins::Sprockets-rails::Lib&#8221; is not a valid constant name! make sure your version of the rails &#8230; <a href="http://travid.wordpress.com/2009/02/25/sprockets-and-rails-21/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=travid.wordpress.com&amp;blog=6259113&amp;post=20&amp;subd=travid&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently stumble upon <a href="http://getsprockets.org/">Sprockets</a>. It sounded like an amazing tool to take javascripts related pains out of Rails applications.</p>
<p>If you are seeing problems like,</p>
<p>&#8220;Plugins::Sprockets-rails::Lib&#8221; is not a valid constant name!</p>
<p>make sure your version of the rails is 2.2 and above.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/travid.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/travid.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/travid.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/travid.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/travid.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/travid.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/travid.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/travid.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/travid.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/travid.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/travid.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/travid.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/travid.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/travid.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=travid.wordpress.com&amp;blog=6259113&amp;post=20&amp;subd=travid&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://travid.wordpress.com/2009/02/25/sprockets-and-rails-21/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/deceb2e2fc8c5afc7e31b24c97641b01?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">travid</media:title>
		</media:content>
	</item>
		<item>
		<title>Rails New Features and TrAvid</title>
		<link>http://travid.wordpress.com/2009/02/24/rails-new-features-and-travid/</link>
		<comments>http://travid.wordpress.com/2009/02/24/rails-new-features-and-travid/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 21:19:15 +0000</pubDate>
		<dc:creator>travid</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[technologies]]></category>
		<category><![CDATA[travid]]></category>

		<guid isPermaLink="false">http://travid.wordpress.com/?p=13</guid>
		<description><![CDATA[So, I was asked recently what kind of new features I used for my website TrAvid. After some reflection, I come up with the following list. I&#8217;ve decided to share the list with other Rails developers. named_scope I use vote_fu, &#8230; <a href="http://travid.wordpress.com/2009/02/24/rails-new-features-and-travid/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=travid.wordpress.com&amp;blog=6259113&amp;post=13&amp;subd=travid&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So, I was asked recently what kind of new features I used for my website TrAvid. After some reflection, I come up with the following list. I&#8217;ve decided to share the list with other Rails developers.</p>
<p><strong>named_scope</strong></p>
<p>I use vote_fu, but it doesn&#8217;t provide which user liked(voted up) or disliked which story, so I implemented the following named_scope for vote model:</p>
<p><code>#vote.rb<br />
  named_scope :for_voter_liked, lambda { |*args| {:conditions =&gt; ["voter_id = ? AND voter_type = ? AND vote = TRUE", args.first.id, args.first.class.name]} }<br />
  named_scope :for_voter_disliked, lambda { |*args| {:conditions =&gt; ["voter_id = ? AND voter_type = ? AND vote = FALSE", args.first.id, args.first.class.name]} }</code></p>
<p>And for user model, I have<br />
<code># user.rb<br />
  def liked<br />
    liked = Vote.for_voter_liked(self)<br />
    liked.each do |voteable|<br />
      v_type = voteable.voteable_type<br />
      v_id = voteable.voteable_id<br />
      model = Vote.find_voteable(v_type, v_id)<br />
      instance_var = v_type.downcase.pluralize<br />
      instance_eval &lt;&lt;-EOT<br />
        if instance_variable_get("@#{instance_var}").nil?<br />
          instance_variable_set("@#{instance_var}", [])<br />
        end<br />
        instance_variable_get("@#{instance_var}").push(model)<br />
      EOT<br />
    end<br />
  end</code></p>
<p><strong>Cache in 2.1</strong></p>
<p>I used the new caching capability provided by Rails 2.1 for retrieving information for the featured destinations:</p>
<p><code># city.rb<br />
  def City.popular_cities<br />
      Rails.cache.fetch('popular_cities') { City.fetch_popular_cities }<br />
  end</p>
<p>  def City.fetch_popular_cities<br />
    City.all.find_all{|city| city.vote_score &gt; CUT_OFF_LINE}<br />
  end</code></p>
<p><strong>rescue_from</strong></p>
<p>I use rescue_from to handle exceptions.</p>
<p><code># application.rb<br />
  rescue_from ActiveRecord::RecordNotFound, :with =&gt; :redirect_if_not_found</p>
<p>  def redirect_if_not_found<br />
    render :file =&gt; RAILS_ROOT+'/public/404.html', :status =&gt; 404<br />
  end</code></p>
<p><strong>counter_cache</strong></p>
<p>I use counter_cache for active record.</p>
<p><code># city.rb<br />
belongs_to :country, :counter_cache =&gt; true</code></p>
<p><strong>on enhancing polymorphic_url</strong></p>
<p>So, Rails provide edit_polymorphic_url and edit_polymorphic_path helper methods. But for my website, I have some models which can benefit from the *_polymorphic_url helpers. So, I implemented the following helper:</p>
<p><code>  %w(bookmark add_tags).each do |action|<br />
    module_eval &lt; "#{action}")<br />
      end</p>
<p>      def #{action}_polymorphic_path(record_or_hash)<br />
        polymorphic_url(record_or_hash, :action =&gt; "#{action}", :routing_type =&gt; :path)<br />
      end<br />
    EOT<br />
  end<br />
</code></p>
<p>This allows me to call helper methods such as bookmark_polymorphic_path(@country, @city, @attraction). And from maintenance point of view, adding any more path like these would be very easy.</p>
<p>I hope this run down helps.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/travid.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/travid.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/travid.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/travid.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/travid.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/travid.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/travid.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/travid.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/travid.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/travid.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/travid.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/travid.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/travid.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/travid.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=travid.wordpress.com&amp;blog=6259113&amp;post=13&amp;subd=travid&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://travid.wordpress.com/2009/02/24/rails-new-features-and-travid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/deceb2e2fc8c5afc7e31b24c97641b01?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">travid</media:title>
		</media:content>
	</item>
		<item>
		<title>Intoducing TrAvid</title>
		<link>http://travid.wordpress.com/2009/01/22/intoducing-travid/</link>
		<comments>http://travid.wordpress.com/2009/01/22/intoducing-travid/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 10:14:24 +0000</pubDate>
		<dc:creator>travid</dc:creator>
				<category><![CDATA[travid]]></category>
		<category><![CDATA[travel]]></category>
		<category><![CDATA[travel planning]]></category>

		<guid isPermaLink="false">http://travid.wordpress.com/?p=3</guid>
		<description><![CDATA[travel planning should not be the same as researching for a school paper <a href="http://travid.wordpress.com/2009/01/22/intoducing-travid/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=travid.wordpress.com&amp;blog=6259113&amp;post=3&amp;subd=travid&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For some, vacations provide a chance to escape the reality and to venture into the unknown.  But the unknown can sometimes be overwhelming and, at times, intimidating: planning, scheduling, budgeting, exploring and safety.</p>
<p>TrAvid begins with a simple idea—travel planning should not be the same as researching for a school paper. TrAvid provides quick-to-find information for a destination. Information such as restaurants, hotels, local cuisines, attractions, tours, stories and even movies filmed in a city! The information is contributed, voted and discussed among TrAvid users.</p>
<p>For more information, please visit <a title="About TrAvid" href="http://travid.info/about">http://travid.info/about</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/travid.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/travid.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/travid.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/travid.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/travid.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/travid.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/travid.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/travid.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/travid.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/travid.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/travid.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/travid.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/travid.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/travid.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=travid.wordpress.com&amp;blog=6259113&amp;post=3&amp;subd=travid&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://travid.wordpress.com/2009/01/22/intoducing-travid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/deceb2e2fc8c5afc7e31b24c97641b01?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">travid</media:title>
		</media:content>
	</item>
	</channel>
</rss>
