Friday, June 20, 2008

Postmortem

So, here's the collection of lessons learned. I'm going to frame these as advice, but everyone should remember Buchheit's Law: "Advice = Limited Life Experience + Overgeneralization". This is one startup, and not even a successful one at that. There are many ways to succeed, and even more ways to fail, and so there will likely be exceptions to every single one of these rules.

If your idea starts with "We're building a platform to..." and you don't have a billion dollars in capital, find a new idea. Now.

This seems to be a really common mistake among first-time founders, particularly those from a technology background. My last employer made it, and has been working on their platform for the last 7 years with little to show for it (nearly all their revenue comes from a single application on their platform). Early in their development, they had decided that "Well, the only thing all our use cases have in common is that they all involve writing code, so we'll provide a way to write code and handle the tricky business of parallel processing ourselves." The didn't realize that by making code their user interface, they made Java/C++/Python their competition, and those languages have had literally thousands of man-years of development behind them.

When I started GameClay, I vowed I wouldn't make the same mistake, and so Mike and I decided there would be no code in GameClay. Everything would be done through a GUI. I didn't realize that the problem wasn't code, it was the lack of focus that came with allowing that sort of flexibility. So as we were building the GameClay UI, I kept getting dragged into all these "Well, we really need this feature to let people do what they want, but it interacts in weird ways with that feature, so we need to rethink the whole thing." The search space of possible designs was just too huge to tackle.

Solve a problem, not a class of problems. Only after you've thoroughly solved that problem can you work on expanding it. Really, it's okay to not have your product do everything, as long as it does something well.

Interestingly, when you think of many common platforms in use today, they started out that way. Linux started as a terminal emulator. The web started as a way to share scientific documents. Rails started as a collection of code extracted from BaseCamp. Django started as a collection of code extracted from the Lawrence Journal-World. PHP started as a way for Rasmus Lerdorf to manage his personal home page.

The exceptions all seem to be giant corporate projects with money to burn - hence the "and you don't have a billion dollars in capital" caveat in the heading. UNIX at Bell Labs, the Macintosh at Apple, Windows and then .NET at Microsoft, and Java at Sun. Big corporations can afford to spend a billion dollars and wait 10 years, though, while startups usually can only afford a few tens of thousands and about 6 months. You have about zero chance of building and getting people to adopt a platform in 6 months.

It's a marathon, but it's a marathon made of sprints

I didn't realize how slowly I was working until I worked with a YCombinator company. I was making about 6-8 commits/day; they setup a new Subversion repository 2 days ago and it's already on revision 100.

I was going to title this "Beware the halfhearted effort", but I think that'll be misinterpreted. When people hear "halfhearted effort", they think "Oh, I'll just work harder." But there's a limit to how hard you can push yourself. Programming is a mental activity, and the brain has its own timescale. If you keep thinking to yourself "Must work faster, must work faster," you'll just end up slowing yourself down.

Instead, I think that it's absolutely essential to set things up so you get that rush of accomplishment as you finish things. With GameClay, a lot of my work was basically "Oh, I need to finish this UI widget, and then there's that bug in auto-updating the game when properties change, and...shit, it's not working." Even when I finished something, I just wasn't that impressed with what I'd done, and it was sorta ho-hum to see it working. I'd feel drained and spent after coding 2 hours instead of energized.

A lot of this comes down to picking a problem that's a.) worth addressing and b.) doesn't require a lot of support code to address it. Early in GameClay's development, I decided that every action the game developer took would instantly update the running game, so they could see their changes immediately. I thought this was absolutely essential for usability, and it probably was. But it meant that every single UI widget, whether 3rd-party or written by us, had to be wrapped with functionality to capture all of its events, update the game code, compile it, and then reinstall the new version into the running game loop. And this all had to be done in the browser, using nothing but AJAX calls. This was hard, and a lot of my time was spent dealing with problems related to this.

Initial conditions matter. A lot.

When I started, I'd read everywhere that execution was the important thing and the initial idea wasn't all that important. I still think that's true, but like most other advice you read on the Internet, it's not the full story.

The initial idea does change, and it's almost certainly wrong. The thing is, the initial idea determines how the initial idea will change, which is crucial to all the execution that follows it. And the devil is often in the details: little decisions made early on can crucially impact big decisions made later.

I gave an example above, with the decision to have all updates reflected immediately in the game. Another choice was the decision to start with arcade games, which was done very early on (even before I joined, I think) without much thought at all. It was just the first thing that came to mind when we thought of casual gaming, so we said "Let's start with that, and then expand into other archetypes when we have more experience." We didn't realize that a.) just getting arcade games customizable in a compelling way would be a huge undertaking and b.) we'd ditch the archetypes concept entirely, and so our initial archetype choice became the basis for our product. Meanwhile, most of the growth in the casual gaming industry has been in puzzle & word games, so we were positioned wrong from the start.

A third example is the choice to go into gaming at all. When we started this, a year and a half out of college, that was what we were familiar with and passionate about, and so we didn't really think much about other areas. But the gaming industry is incredibly overcrowded, and most areas other than game creation have too much competition to be worth entering. There are hundreds of Flash game hosting sites, you really don't want to be a game developer, and MochiAds has a lot of momentum in the game advertising space. So that's why this is the end of GameClay instead of a transition: if it were a less crowded and more lucrative space, I'd instead think of repositioning things to an overlooked niche.

All this is not suggesting that you overthink every possible decision at the beginning of the project and make sure you have the perfect idea. You'll never get started if you do that. But realize that your initial decisions become the base that you take for granted, and you usually never even think about them past that point. And there's a high, high probability that those decisions are wrong. It's worth reexamining them after 3-6 months to see if that's still what you want to do. (We actually did reexamine them, several times, and the answer was still yes, but that didn't make the decisions any less wrong.)

Developing in a vacuum never works.

If you look back at early blog posts here, you'll see that the idea hasn't really changed. That's because it hasn't been in front of many people. Oh sure, I demo regularly to my former cofounders, and Mike had been showing it around to people at his workplace and a couple potential investors. But it hasn't really had the sort of rigorous critique that you need to achieve product/market fit.

The reason for this is that I didn't want to repeat one of the mistakes of my last employer. They had products that they actually put before a customer and got feedback on - but then the customer's feedback was viewed through the lens of "What does this mean we have to include in our platform?" not "How can we solve the customer's problem in the simplest way possible?" This was a huge drag on development, since everything had to fit into the original vision.

I believe that if you have a strong vision, you should go for it. You may be right or wrong (you're probably wrong ;-)), but at least you find out and can approach subsequent problems with a clean slate. Don't waste 10 years trying to "work up" to your vision that was probably wrong anyway.

The flip side of this is that if your vision takes more than a year to execute (I'd actually say 3 months, since that seems to be the limit on your initial enthusiasm), assume it's just not possible in the current environment, and find a new problem to work on. You want to prove yourself wrong as soon as possible, not spin your wheels forever. Then you can start the hard work of getting to right quickly.

I should probably clarify this: this doesn't mean you should shy away from big goals. Only shy away from big goals where you have to solve lots of thorny problems before you can even put something useful in front of users and get their feedback. Invent the WWW, not Xanadu.

Beware the chicken and the egg.

A couple of the side-projects we launched had serious chicken-and-egg problems. Bootstrapacitor, for example, would only be useful if other entrepreneurs used it, yet it needed to be useful before people used it. Diffle and GameClay had minor chicken-and-egg problems, but we solved them in Diffle by finding lots of free-for-the-taking games on the web and uploading them ourselves. inAsphere.com, a startup I worked at way back in the first dot-com boom, also had a chicken-and-the-egg problem that prevented the site from really getting off the ground.

The easiest way to avoid chicken-and-egg problems is simply to have a product that is useful on its own. Del.icio.us, for example - it's just a bookmark manager that happens to be more useful as more people use it.

It's also possible to beat chicken-and-egg problems through sheer determination - after all, Reddit, YouTube, FaceBook, Snaptalent, and various other Web 2.0 companies have achieved it. The way to do it seems to be to make sure you're passionate enough about your own product to use it yourself (like submitting your own stories to Reddit, or how we all created 3-4 sockpuppets at inAsphere and had conversations with ourselves on the forums) and to get out there and put it in front of lots of other people. It's that last point where we failed: we just kinda built the product, launched it, and let it die.

It really helps to have a passionate, committed cofounder here. It's pretty difficult both to improve the product (which is critical if you want to show users that you really care enough to be in this for the long term) and to evangelize it.

Prototype any 3rd-party libraries that you'll be depending upon, before you base your product on them.

We did this with JavaScript libraries - we ran through quick prototypes with Prototype, Mootools, and YUI before finally settling on JQuery. And we haven't regretted the choice at all.

We didn't do this with Python web frameworks, and wasted a lot of time as a result. When I started, I picked web.py because it was the only one I could understand while working within the time constraints of my day job. Totally the wrong choice - there were a lot of things that web.py just didn't handle that we had to spend a lot of time implementing ourselves.

Then I went to Pylons, because I had this irrational aversion to Django. I think Pylons actually would've been okay - it's not a bad piece of software - but it was a mistake to make the decision based on a quick glance at the Django website. When I actually started using Django for the project, I found it was much more convenient than Pylons had been.

Another thing to keep in mind: by "prototype", I mean actually write code that exercises a lot of the features of the framework, don't just read the website. A serious look at the platform turns up many more issues than a superficial glance at a feature list. Get to know your software before you pick it.

Actually, one of the things I regret is not taking a deeper look at Ruby on Rails and ExtJS for this project. I did do a quick Rails prototype for my previous employer, so I'm not completely ignorant of it, but I wish I knew it better when deciding. But there is limited time for evaluating software, and so the non-Python solutions tended to get short shrift.

If you're doing anything other than building your project and getting users, it's premature.

This was actually something we did pretty well. We had help, of course: nobody would give us money, so we didn't have the resources to do anything else.

But when we did deviate from the product/user focus, it was a mistake. We nearly incorporated too early, back when diffle.com first launched; there was no reason to (nobody was uploading anything anyway), and the bookkeeping involved with being a corporation would've slowed us down significantly. I also spent two weeks or so load testing the server and doing some performance tweaks, which was completely unnecessary: we never hit more than about 5% CPU usage anyway. Some of the deployment tools we built never got used; wait till you have something to deploy before you start automating updates to it. Internationalization support was also a total waste of time.

Some things we did well on this front:

We didn't spend all that much time talking to investors. They probably wouldn't have invested anyway, but if they had it would've been a disaster. Our idea was flawed from the beginning; I don't think we could've pulled it off without putting 5-10 years into it. If we'd gotten money, it would simply have allowed us to waste other people's time in addition to our own.

We didn't worry about corporate trappings - titles, board of advisors, offices, furniture, etc. - at all. This let us focus on the product and keep our overhead low.

We didn't spend a lot of time on hypothetical design decisions. Basically, when one of us proposed a change or new feature, our design process was "Let's try it out and see how it looks." Oftentimes, the answer was "Terrible. Let's change it back," but we'd find that out in a day or two (or sometimes just a couple hours) instead of arguing over it forever. And many times, the process of looking at it suggested a new way of doing things that was better than both the old and the new.

We didn't spend lots of time trying to partner with big names to offer us credibility. Okay, we also failed, so it's hard to say whether this would've been helpful or not, but since we failed due to lack of a product, I suspect it'd just have made the failure more public and embarrassing. Also, big companies tend to be very conservative about lending their brand to support any sort of new startup; it can be very difficult to get them to sign on at all.

The product will take longer than you expect. Design for the long-term.

I need to put this together with the last point, because otherwise I know someone will misinterpret one or both.

Whenever I had a choice between doing things quick and doing things right, I chose to do things right. And in nearly all cases, this was the correct choice in hindsight. This seems to contradict the previous point, so I'll offer a possible clarification:

Do anything you possibly can to avoid bugs.

Bugfixing takes unbounded time; it's usually not possible to predict how long it'll take to track down and fix a given glitch. Moreover, fixing a bug in a dirty code base often introduces 2-3 other bugs that then have to be fixed, creating a nonterminating loop and stack overflow. I've worked in organizations where 90-95% of programmer time was spent tracking down bugs. Just think, they're moving 10-20x slower than they could be.

I should probably mention that this is heavily context-dependent, i.e. the reason why avoiding bugs was such a big win for us was because our product was so damn hard to build, and having a product that was that hard to build was a net loss. So maybe a company that gets the initial product idea right wouldn't benefit from solid development. Reddit, for example, is famous for just releasing their code and letting their users QA the product. But the Reddits of the world seem to be the exception - I'd guess that most people are working on products hard enough that they may actually screw them up, and their customers actually care when they do screw up.

People have an incentive not to crush your dreams. Take everything they say with a grain of salt.

When we did talk to investors, the response was almost universally "It sounds interesting, but I'd need to see a prototype before I invest". Almost nobody flat-out said "This idea sucks, and you'll never be able to complete it." (Paul Graham did, but even he couched it in language that was less blunt.)

Everybody in the startup world knows that big ideas come from unexpected places, and we've all heard the stories about the guy who told YouTube "Nobody would ever want to share videos online" or the guy who told Apple "Nobody would ever want to have a computer on their desk." They don't want to be that guy. So they'll encourage you, but say that it's not yet time for them to invest.

If you really want critical, honest feedback, you need to read between the lines. Concentrate on proving yourself wrong, not proving yourself right. It's easy to fall victim to confirmation bias, particularly if you're as passionate about your idea as an entrepreneur needs to be.

This of course presupposes that you want critical, unbiased feedback, and this is debatable. If I had an accurate assessment of my chances when I started, I would've stuck with my day job, and I'm so much better off now for having tried and failed.

I guess I'm trying to get across that you should assume that everyone you talk to is being nice, analyze their remarks critically to figure out what they're really saying, and then assume that every problem they raise can be solved. You want to prove yourself wrong, but then use that as a springboard for finding out what the right answer is instead of assuming there's no solution.

Know your limitations.

When I started GameClay, I was like "I'm a smart guy, I work really hard when I have a sense of ownership of the project, I've got a few years of work experience in fairly related areas, why not? I'm just as qualified as anyone else to start a startup."

It turns out that brilliance and dedication alone cannot create a market or solve an intractable problem. They can help you find out faster if your idea isn't viable, and they may allow you to reach markets that others pass up as too difficult, but there will be some markets that remain out of reach until the environment changes enough to bring them within reach of a dedicated, passionate team.

That doesn't mean you should shy away from working on hard problems, otherwise there'd be no Apple, or Sun, or Google. But even the founders of those companies knew their limitations and concentrated on the areas that they were experts in. Page & Brin, for example, knew they were experts in search and decided that Google would do that one thing well and not worry about anything else. Wozniak knew he was a damn good engineer and didn't join Apple until it was clear he would only be an engineer. Sun...well, the founders of Sun were each experts in their various domains, and it happened that when you put them together, they basically had all bases covered.

My problem with GameClay was that there were 3 really hard problems (game design, end user programming, and AJAX-based webapps) and I was an expert in maybe 1 1/4 of them. Next time I start a startup, I'll perhaps approach it with a little more humility, and pick something that's definitely within my sphere of competence.

On the plus side, picking a project way outside your limitations is a good way to expand your limitations. I know so much more now than I did when I started this project.

Conclusion

Ultimately, GameClay failed because I gave up. Up until that point, it's just a startup that has "not yet succeeded", and so I feel like I should explain why I'm giving up:
  1. I don't think I can do this without a cofounder. It's very, very difficult to wear both the developer and the evangelist hats at the same time: being a developer requires that you be very pessimistic, so you can see and fix all the problems in your design, while being an evangelist requires that you be very optimistic, so others can feed off your passion. I suspect that if I tried to do both, the cost would be my sanity, literally, and that's not a price I'm willing to pay for the startup. Cofounders also help even out the emotional highs and lows inherent in doing a startup, since you're rarely in phase.
  2. I've exhausted the pool of potential cofounders I know. Amherst College is not really a hotbed of entrepreneurial types, and most of my friends are now either lawyers, in grad school, or have secure corporate jobs. And I've found that you can't just jump into business with someone: you really need to forge the relationship in a low-stress setting before you subject it to the pressures of a startup.
  3. We're moving too slowly. This was a problem at my last employer, where it took 7 years and counting to build their platform. The risk isn't really competitors; most markets develop far more slowly than you'd think. It's that the whole technology ecosystem changes over time, which makes your initial design decisions a disadvantage against startups that start fresh. Woe to the companies that started building desktop GUIs in 2002, for example.
  4. There's little outside indication that people want what we're building. When I run it by friends, most find it interesting, but they find it interesting because I'm doing it and I'm their friend and not because they really understand the idea. Also, competitors have been significantly less successful than I thought they would be.
It's not really the end of my startup journey - I suspect there will be other startups in my future, both as an employee and hopefully as a founder. But it's the end of this startup. I'm a little sad about that, but I have no regrets about having started it.

260 comments:

«Oldest   ‹Older   201 – 260 of 260
Unknown said...
This comment has been removed by a blog administrator.
ClothingJeans said...
This comment has been removed by a blog administrator.
Unknown said...
This comment has been removed by a blog administrator.
Unknown said...
This comment has been removed by a blog administrator.
scaining said...
This comment has been removed by a blog administrator.
Anonymous said...
This comment has been removed by a blog administrator.
Erika said...
This comment has been removed by a blog administrator.
Unknown said...
This comment has been removed by a blog administrator.
Wendy said...
This comment has been removed by a blog administrator.
coatjack said...
This comment has been removed by a blog administrator.
janewangleilei said...
This comment has been removed by a blog administrator.
scaining said...
This comment has been removed by a blog administrator.
Unknown said...
This comment has been removed by a blog administrator.
Unknown said...
This comment has been removed by a blog administrator.
Unknown said...
This comment has been removed by a blog administrator.
akinggirl said...
This comment has been removed by a blog administrator.
ClothingJeans said...
This comment has been removed by a blog administrator.
Anonymous said...
This comment has been removed by a blog administrator.
Unknown said...
This comment has been removed by a blog administrator.
Unknown said...
This comment has been removed by a blog administrator.
Unknown said...
This comment has been removed by a blog administrator.
Anonymous said...
This comment has been removed by a blog administrator.
Erika said...
This comment has been removed by a blog administrator.
tn requin said...
This comment has been removed by a blog administrator.
甜蜜蜜 said...

spyder
coats & jackets
leather jacket
ski jacket
the north face
moncler
coach outlet
coach handbags
coach bags
Moncler
Moncler jackets
moncler outlet
Coats & Jackets
Spyder Jackets
Spyder Jackets
MBT shoes
MBT footwear
Moncler
Moncler jackets
Moncler coats
coach outlet
coach handbag
coach bag
spyder
spyder ski wear
spyder jackets
Puma Shoes

甜蜜蜜 said...

puma outlet
Puma Sneaker
christian dior
dior shoes
dior handbags
dior sunglasses
herve leger
herve leger bandage dress
herve leger outlet
Dior sunglasses
Ray Ban sunglasses
Gucci sunglasses
ski jacket
Spyder Jacket
spyder
pink ghd
discount ed hardy
ed hardy wholesale
wholesale ed hardy
cost performance of car
cars news
car information

Anonymous said...

When I see your article, I really agree with you about the blog.I think people will know this after read the information. I hope you will share more with us.

At the same time, you also can go to our website to find someting that maybe you like. We have
nike chaussures,nike shox chaussures,
nike tn,nike tn requin
nike air max chaussures,nike chaussures femmes.
nike chaussures homme,nike chaussures enfants
We have so many kinds of nike shoes that we are sure you will find the one that you like. Besides, we have the special
MBT chaussures.
If you like climbing then you can choose the vibram chaussures in our store.
You can find the Y-3 Yohji Yamamotoand
Nike Air Jordan are designed for you!

combattery84 said...

Compaq Business Notebook NX9000 series battery
HP 395789-001 battery
HP 446506-001 Battery
HP dv9700 battery
HP F4809A Battery
HP nc8000 battery
HP nc8230 battery
HP pavilion zd8000 battery
HP f2024b battery
HP f4812a battery
HP Pavilion ZV5000 battery
HP Pavilion DV1000 battery
HP Pavilion ZD7000 Battery
HP Pavilion DV2000 battery
HP Pavilion DV4000 Battery
HP Pavilion dv6000 Battery
HP Pavilion DV9000 Battery
HP F4098A battery
HP pavilion zx6000 battery
HP omnibook xe4400 battery
HP omnibook xe4500 battery
HP omnibook xe3 battery
Notebook NX9110 battery
IBM 02K6821 battery
IBM 02K7054 battery
IBM 08K8195 battery
IBM 08K8218 battery
IBM 92P1089 battery

combattery84 said...

IBM Thinkpad 390 Series battery
IBM Thinkpad 390X battery
IBM ThinkPad Z61m Battery
IBM 02K7018 Battery
IBM thinkpad t41p battery
IBM THINKPAD T42 Battery
IBM ThinkPad R60 Battery
IBM ThinkPad T60 Battery
IBM ThinkPad T41 Battery
IBM ThinkPad T43 Battery
IBM ThinkPad X40 Battery
Thinkpad x24 battery
ThinkPad G41 battery
IBM thinkpad r52 battery
Thinkpad x22 battery
IBM thinkpad t42 battery
IBM thinkpad r51 battery
Thinkpad r50 battery
IBM thinkpad r32 battery
Thinkpad x41 battery
SONY VGP-BPS2 Battery
SONY VGP-BPS2C Battery
SONY VGP-BPS5 battery
SONY VGP-BPL2C battery
SONY VGP-BPS2A battery
SONY VGP-BPS2B battery
SONY PCGA-BP1N battery
SONY PCGA-BP2E battery

combattery84 said...

Acer aspire 5920 battery
Acer btp-arj1 battery
Acer LC.BTP01.013 battery
Acer ASPIRE 1300 battery
Acer ASPIRE 1310 battery
Acer Aspire 1410 battery
Acer ASPIRE 1680 battery
ACER BTP-63D1 battery
ACER BTP-43D1 battery
Acer lc.btp05.001 battery
Acer aspire 3000 battery
Acer Travelmate 4000 battery
ACER aspire 5560 battery
ACER BATBL50L6 battery
ACER TravelMate 240 Battery
ACER BT.00803.004 Battery
ACER Travelmate 4002lmi battery
Acer travelmate 800 battery
Acer aspire 3613wlmi battery
Travelmate 2414wlmi battery
Acer batcl50l battery
Acer Travelmate 2300 battery
ACER aspire 3610 battery
ACER travelmate 4600 battery
Dell Latitude D800 battery
Dell Inspiron 600m battery
Dell Inspiron 8100 Battery

combattery84 said...

Dell Inspiron 9300 battery
Dell INSPIRON 9400 Battery
Dell INSPIRON e1505 battery
Dell INSPIRON 2500 battery
Dell INSPIRON 630m battery
Dell Latitude D820 battery
Dell Latitude D610 Battery
Dell Latitude D620 battery
Dell Latitude D630 battery
Dell xps m1210 battery
Dell e1705 battery
Dell d830 battery
Dell inspiron 2200 battery
Dell inspiron 640m battery
Dell inspiron b120 battery
Dell xps m1210 battery
Dell inspiron xps m1710 battery
Dell inspiron 1100 battery
Dell 310-6321 battery
Dell 1691p battery
Dell Inspiron 500m battery
Dell 6Y270 battery
Dell inspiron 8600 battery
Latitude x300 series battery
Dell latitude cpi battery
Dell 1x793 battery

combattery84 said...

HP Pavilion ZD7000 Battery
HP Pavilion DV2000 battery
HP Pavilion DV4000 Battery
HP Pavilion dv6000 Battery
HP Pavilion DV9000 Battery
HP F4098A battery
HP pavilion zx6000 battery
HP omnibook xe4400 battery
HP omnibook xe4500 battery
HP omnibook xe3 battery
Notebook NX9110 battery
IBM 02K6821 battery
IBM 02K7054 battery
IBM 08K8195 battery
IBM 08K8218 battery
IBM 92P1089 battery
IBM Thinkpad 390 Series battery
IBM Thinkpad 390X battery
IBM ThinkPad Z61m Battery
IBM 02K7018 Battery
IBM thinkpad t41p battery
IBM THINKPAD T42 Battery


IBM ThinkPad R60 Battery
IBM ThinkPad T60 Battery
IBM ThinkPad T41 Battery

King Bayern Munich said...

Writing is great, impressive!
soft sofa
http://www.eyousofafurniture.com/Soft-Sofa-41.html
soft sofa
Modern-stone-sculpture
http://www.stone-trading.com/Modern-stone-sculpture-53.html
Modern-stone-sculpture

Anonymous said...

laptop battery
ACER Laptop Battery
APPLE Laptop Battery
ASUS Laptop Battery
COMPAQ Laptop Battery
Dell Laptop Battery
FUJITSU Laptop Battery
GATEWAY Laptop Battery
HP Laptop Battery
IBM Laptop Battery
LG Laptop Battery
SAMSUNG Laptop Battery
SONY Laptop Battery
TOSHIBA Laptop Battery
APPLE M8403 battery
APPLE A1078 Battery
APPLE A1079 battery
APPLE A1175 battery
APPLE a1185 battery
APPLE A1189 battery 1
Acer aspire 5920 battery
Acer btp-arj1 battery
Acer LC.BTP01.013 battery
Acer ASPIRE 1300 battery
Acer ASPIRE 1310 battery
Acer Aspire 1410 battery
Acer ASPIRE 1680 battery
ACER BTP-63D1 battery
ACER BTP-43D1 battery
Acer lc.btp05.001 battery
Acer aspire 3000 battery
Acer Travelmate 4000 battery
ACER aspire 5560 battery

Anonymous said...

ACER BATBL50L6 battery
ACER TravelMate 240 Battery
ACER BT.00803.004 Battery
ACER Travelmate 4002lmi battery
Acer travelmate 800 battery
Acer aspire 3613wlmi battery
Travelmate 2414wlmi battery
Acer batcl50l battery
Acer Travelmate 2300 battery
ACER aspire 3610 battery
ACER travelmate 4600 battery
Dell Latitude D800 battery
Dell Inspiron 600m battery
Dell Inspiron 8100 Battery
Dell Y9943 battery
Dell Inspiron 1521 battery
Dell Inspiron 510m battery
Dell Latitude D500 battery
Dell Latitude D520 battery
Dell GD761 battery
Dell NF343 battery
Dell D5318 battery
Dell G5260 battery
Dell Inspiron 9200 battery
Dell Latitude C500 battery
Dell HD438 Battery
Dell GK479 battery
Dell PC764 battery
Dell KD476 Battery
Dell Inspiron 1150 battery
Dell inspiron 8500 battery
Dell Inspiron 4100 battery
Dell Inspiron 4000 battery
Dell Inspiron 8200 battery
Dell FK890 battery

Anonymous said...

Dell 1x793 battery
dell Inspiron 1501 battery
Dell 75UYF Battery
Dell Inspiron 1720 battery
dell Latitude C640 battery
Dell XPS M140 battery
Dell Inspiron E1405 battery
dell 700m battery
dell C1295 battery
Dell U4873 Battery
Dell Latitude C600 battery
Armada E700 Series battery
Compaq 116314-001 battery
Compaq 319411-001 battery
Compaq nc4200 battery
Compaq Presario R3000 Battery
Compaq Presario 2100 battery
Compaq Presario r3000 Battery
Compaq Business Notebook NX9000 series battery
HP 395789-001 battery
HP 446506-001 Battery
HP dv9700 battery
HP F4809A Battery
HP nc8000 battery
HP nc8230 battery
HP pavilion zd8000 battery
HP f2024b battery
HP f4812a battery
HP Pavilion ZV5000 battery
HP Pavilion DV1000 battery
HP Pavilion ZD7000 Battery

Anonymous said...

HP Pavilion DV2000 battery
HP Pavilion DV4000 Battery
HP Pavilion dv6000 Battery
HP Pavilion DV9000 Battery
HP F4098A battery
HP pavilion zx6000 battery
HP omnibook xe4400 battery
HP omnibook xe4500 battery
HP omnibook xe3 battery
Notebook NX9110 battery
IBM 02K6821 battery
IBM 02K7054 battery
IBM 08K8195 battery
IBM 08K8218 battery
IBM 92P1089 battery
IBM Thinkpad 390 Series battery
IBM Thinkpad 390X battery
IBM ThinkPad Z61m Battery
IBM 02K7018 Battery
IBM thinkpad t41p battery
IBM THINKPAD T42 Battery
IBM ThinkPad R60 Battery
IBM ThinkPad T60 Battery
IBM ThinkPad T41 Battery
IBM ThinkPad T43 Battery
IBM ThinkPad X40 Battery
Thinkpad x24 battery
ThinkPad G41 battery
IBM thinkpad r52 battery
Thinkpad x22 battery

Anonymous said...

IBM thinkpad t42 battery
IBM thinkpad r51 battery
Thinkpad r50 battery
IBM thinkpad r32 battery
Thinkpad x41 battery
SONY VGP-BPS2 Battery
SONY VGP-BPS2C Battery
SONY VGP-BPS5 battery
SONY VGP-BPL2C battery
SONY VGP-BPS2A battery
SONY VGP-BPS2B battery
SONY PCGA-BP1N battery
SONY PCGA-BP2E battery
SONY PCGA-BP2NX battery
SONY PCGA-BP2S battery
SONY PCGA-BP2SA battery
SONY PCGA-BP2T battery
SONY PCGA-BP2V battery
SONY PCGA-BP4V battery
SONY PCGA-BP71 battery
SONY PCGA-BP71A battery
SONY VGP-BPL1 battery
SONY VGP-BPL2 battery
Sony vgn-t2xp/s battery
Sony vaio vgn-s4xp battery
Sony vaio pcg-z1rsp battery
SONY NP-FT1 battery
SONY NP-FC10 Battery
SONY NP-F330 Battery
SONY NP-F550 Battery
SONY NP-FM50 Battery

shopping online said...

Adsense of Jordan Shoes : just do it!
Adsense of Moncler Jackets : sends to warm, give you more comforts of life!
Adsense of NFL Jerseys : everything is possible!
Adsense of Christian Louboutin : choice me is choice beautiful foot and body!
Adsense of Puma Shoes : champion is in the first line!
Adsense of Gucci Shoes : Allows you to enjoy the leisure life in the fun!
Adsense of Vibram Fivefingers : taste original life, wear the most morden and comfortable shoes!
Adsense of GHD Hair straighteners : why make our hair so beautiful and lots stylers, for choice me is choice happy!
Adsense of Michael Jordan Shoes : just do it!

clarebear said...

Wholesale Beads
Jewelry Beads
Jewelry Supplies
Jewelry Findings
Jewelry Beads
Tibetan Style Beads
Acrylic Beads
Charms
Pandora Style Beads
Gemstone Beads
Wood & Nut Beads

Unknown said...

Remington S6500 Sleek chi flat iron and Curl Ceramic.chi guitar flat irons 410 ° F ghd straighteners cheap show a high temperature.

Unknown said...

I always have ideas for new ones and always want to get them rolling. One thing that has kept me motivated, is Edison's quote(don't know if it's real or not...), "I didn't learn how to make a light bulb...
download youtube

Anonymous said...

These are impressive articles. Keep up the noble be successful. Online Medical Transcription

sushil kumar said...

Done well. I m certainly happy with the value of the data offered. I hope that you keep up with the excellent job conducted.
aurora il locksmith
Locksmith In Bayonne NJ
Locksmith Alameda CA
Locksmith RedwoodCity CA
Locksmith RedwoodCity
Locksmith RedwoodCity CA
Locksmith RedwoodCity CA
Locksmith RedwoodCity CA
Buffalo Grove Locksmith
Locksmith Buffalo Grove
Locksmith Buffalo Grove IL
Locksmith Buffalo Grove IL
Locksmith Buffalo Grove
Locksmith Buffalo Grove
Locksmith Buffalo Grove IL
Locksmith Buffalo Grove
Locksmith Buffalo Grove IL
Locksmith Buffalo Grove
Locksmith Buffalo Grove IL
Buffalo Grove Locksmith
Locksmith Buffalo Grove
Buffalo Grove Locksmith
miami beach locksmiths
plano locksmiths
miami beach locksmiths
locksmith fort worth
plano locksmiths
plano locksmiths
locksmith fort worth

logo Design said...

Well, the article is actually the sweetest topic on this related issue. I fit in with your conclusions and will thirstily look forward to your forthcoming updates. Saying thanks will not just be sufficient,
Logo Design

luck said...

Nike air max 2011,Nike Air Max Shoes,Nike Shoes Us Air yeezy, a name taken from Kanye West's nickname yeezy, Nike Air Max 1 implanted in Air Max Griffey 1 Nike's innovative elements, Nike Air Max 180 through stage testing and adjustment, Nike Air Max 2009 through integration into the past to challenge theNike Air Max 2010 traditional classical elements, Nike Air Max 24 7create a new see lots, and this can.Nike Air Max 87,Nike Air Max 90,Nike Air Max 2011,Nike Air Max 91,Nike Air Max BW,Nike Air Max Plus TN,Nike Air Max LTD,Nike Air Max Boots,Nike Air Max Presto,Nike Air Max Skyline,Nike Air Max Turbulence,Nike Air Max Fitsole,Nike Air Max Goadome,Nike Air Max Zenyth,Nike Air Max Wildwood Supreme,Nike Air Max Zoom Kobe,Nike Air Max Shoes.

li said...

Dear friends,Cheap Sale Louboutin online.All shoes elegant shoes is one of masterpiece from Christian Louboutin Platforms. When you buy yourself a pair of Christian Louboutin Thong Sandals
shoes you allow yourself to benefit from the vast experience and expertise that this brand has collected over the years.Christian Louboutin Platform Sandals
shoes is the personification of women,is their direct orgin of racial pride.Christian Louboutin Shoes
shoes is the personification of women,is their direct orgin of racial pride.andChristian Louboutin Mensis a very distinctive design, its design reflects its style. You put on it, that means you have its style.Welcome to our Louboutin 2011 .http://www.sale-louboutin-shoes.us

Unknown said...

I am very glad to see your blog. Your blog sends me a lot of information that I need. Hairstyle as an important part of trend, more and more people like to design their hairstyle by themselves, so have a hair straightener is necessary. ghd uk is your best choice to choose Best Ghd Hair Straightener

baele said...

This Nike mercurial vapor ultra vibrant Nike Mercurial Vapor Superfly III FG...The Superfly series has a huge army of fans across the globe, and if you're one of them we know you love them to be bright, flashy and in-your-face colours. Checking out these Nike mercurial vapor fg versions, part of Nike's Fall seasonal releases, we're sure you're going to love these Nike mercurial vapor too, especially once they start appearing en masse on pitch. You can click "VIEW MORE" for more detailed pictures. New levels of performance after Nike soccer cleats new levels of performance after,Nike Mercurial Superfly.

prodigyceo said...

I entered at the south end and rode north.


Ankara escort

Escort ankara

escort bayan ankara

Ankara escort

Escort ankara

escort bayan ankara

Ankara escort

Escort ankara

escort bayan ankara

escort bayan ankara kızılay

Escort ankara bayan

escort bayan ankara çankaya

Ankara escort bayan

Escort ankara bayan

escort bayan ankara

Ankara bayan escort

bayan escort ankara

escort bayan ankara

Ankara escort bayan

Escort ankara bayan

escort bayan ankara
Ankara escort bayan

Escort ankara bayan

escort bayan ankara

Unknown said...

Nice information,Ankara escort
many thanks to the author.Ankara escort
It is incomprehensible to me nowAnkara escort
, but in general,Escort ankara bayan
the usefulness and significance is overwhelming.Ankara escort
Thanks again and good luck!
Ankara escort
became the first designer in Wimbledon's 133-year history to create official uniforms for the tournamentescort bayan ankara
As part of this year's event, which starts next week.
will introduces the first ...Escort ankara
determinationEscort ankara
to maintain and enhance the values for which our two brands are famous throughout the world.Escort ankara
The rugby ralph lauren brand brings to Wimbledon the look of timeless elegance,Escort ankara
drawing on our rich history and traditionsEscort ankara
expert and i like your blog and the information you have
mentioned in this post about the Google tools is really great!
Thanks for sharing!
escort bayan
escort bayan ankara
escort bayan ankara
escort bayan ankara kızılay
Escort ankara bayan
escort bayan ankara çankaya
Ankara escort bayan
Ankara escort bayan
.Ankara Escort

escort ankara said...

Nice information,Ankara escort
many thanks to the author.Ankara escort
It is incomprehensible to me nowAnkara escort
, but in general,Escort ankara bayan
the usefulness and significance is overwhelming.Ankara escort
Thanks again and good luck!
Ankara escort
became the first designer in Wimbledon's 133-year history to create official uniforms for the tournamentescort ankara
As part of this year's event, which starts next week.
will introduces the first ...Escort ankara
determinationEscort ankara
to maintain and enhance the values for which our two brands are famous throughout the world.Eskort ankara
The rugby ralph lauren brand brings to Wimbledon the look of timeless elegance,Escort ankara
drawing on our rich history and traditionsEscort ankara
expert and i like your blog and the information you have
mentioned in this post about the Google tools is really great!
Ankara Escort Bayan
Escort Bayan Ankara
escort bayan
escort
escort istanbul
Bayan Escort
escort bayan ankara
escort bayan ankara
escort ankara ilan
Escort ankara bayan
escort bayan ankara çankaya
Ankara escort bayan
Escort Bayan Ankara
Ankara Escort,
Ankara Eskort

Thanks for sharing. Very impressive

Costa Rica Travel and Fishing said...

Costa Rica Fishing page had been adjusted to past tense, eulogists had added a footnote to his biography of success. Failure.

Costa Rica Fishing and Tours
Jobs, though wildly successful, also failed often and badly. Therein, we note, lies perhaps the larger lesson of his life: Sometimes you have to fail to succeed.

http://costa-ricafishing.com/
The truth is, you usually have to fail to succeed. No one emerges at the top. Even those born lucky eventually get a turn on the wheel of misfortune. Anyone with a résumé of accomplishments also has a résumé of failures, humiliations and setbacks. Jobs was fired by the company he co-founded. Yet it was during this period of exile that he picked up a little computer graphics company later called Pixar Animation Studios, the sale of which made him a billionaire.

Costa Rica Wedding
This is to say, to fail is human. To resurrect oneself is an act of courage.

Costa Rica Fishing
Jobs himself recognized his failures in a now-famous 2005 commencement speech at Stanford. He recalled sleeping on the floors of friends’ dorm rooms and walking seven miles to a Hare Krishna temple for his one good meal of the week. One needn’t make an appointment with the Genius Bar to glean the moral of this story.

Costa Rica Fishing and Tours
Fear of failure isn’t only an adult concern. From an early age, we are plagued with anxiety about performance. This seems a natural-enough evolutionary development. The strong and savvy survive (and get the girl). The less accomplished eat scraps and enjoy the company of human leftovers. “Losers,” we call them. So habitual is our attention to failure that we even have a word — or at least the Germans do — for enjoying others’: schadenfreude.

http://costa-ricafishing.com/
What possibly could make us take pleasure in another’s failure? Simple. We love the company.

Costa Rica Wedding
A history of human failure would make for a long and interesting read, yet we prefer books about success. We thrill at the end-zone victory dance, applaud the extra point, admire the perfect 10. In literature, what is redemption but recovery from human failing? We love no one more than the man or woman who says I made a mistake, I’m sorry, please forgive me. Forgive? We want to hoist the penitent on our shoulders.

Costa Rica Fishing
An entire lexicon of cliches has evolved around the idea of failure and recovery. It’s not the thing attained that matters; it’s the journey that gives us life. The act of creation — the struggle — far exceeds the pleasure of the thing created. Unless, of course, it’s an Apple iPhone 4S. BlackBerry? Not so much.

Costa Rica Fishing and Tours
Recent acknowledgment of the power of failure, inspired by Jobs’s too-soon demise, provides a welcome spiritual uplift for stressed-out adults. But we’re missing an even more important morality tale that has profound consequences for our nation’s future. Our obsession with success and our fear of failure has trickled down to ever-younger humans, our children, at great cost not only to their psychological well-being but also, ultimately, to our ability to compete in the global marketplace.
Costa Rica Fishing and Tours
http://costa-ricafishing.com/
Costa Rica Wedding

Christine Yun said...

Very insightful post. I've had the experience of working in a start-up before and although I wasn't in control of the business nor plan, having read this article beforehand would have proven to be very useful.

Christine

Unknown said...

Great post. i like it. feeling great when reading your post .
Jugar frozen en línea gratis, los nuevos de princesa de Disney juegos frozen - la princesa encantadora y linda. Divertirse juegos de frozen

Unknown said...

Thank you for that information you article
Signature:
The place to play all unblocked games online. Here you can find every blocked games such as: unblockedgames , unblocked games happy , unblocked games 77 , gmod

Anonymous said...

I think this is one of the most interesting articles I’ve read on this subject
----
facebook móvil and facebook movil gratis and apply facebook iniciar sesion

Unknown said...

A good website is very important in promoting anything
-----
play game juegoskizi online free and play game juegos kizi online and play game jogos do friv

Unknown said...



What you get from RSC Bux - Main Benefits :

Earn from home
Garneted ads daily
Detailed statistics
forum permissions
Upgrade plans
Instant Payment
Reach millions of clients
Easy management
Demographic filter
Affordable rates
Anti-cheat protection
Detailed statistics
Opportunities You Enjoy from RSC Bux :

$0.25 Free New Registration
2.5% Commission on AD
$2 Income on Referral On every paid referrals only
2.5% generation Income
Unlimited Generation Income.
WWW.RSCBUX.COM



bux
the rsc bux
advertising
perfect money
get Free Money Online



Suraj said...

Nice information on here, I would like to share with you all my experience trying to get a loan to expand my Clothing Business here in Malaysia. It was really hard on my business going down due to my little short time illness then when I got heal I needed a fund to set it up again for me to begin so I came across Mr Benjamin a loan consultant officer at Le_Meridian Funding Service He asked me of my business project and I told him i already owned One and i just needed loan of 200,000.00 USD he gave me form to fill and I did also he asked me of my Valid ID in few days They did the transfer and my loan was granted. I really want to appreciate there effort also try to get this to anyone looking for business loan or other financial issues to Contact Le_Meridian Funding Service On Email: lfdsloans@lemeridianfds.com / lfdsloans@outlook.com He also available on WhatsApp Contact:+1-9893943740.

«Oldest ‹Older   201 – 260 of 260   Newer› Newest»