Collaborable, web apps & tech startups

01

Smarty 3

Wednesday, April 25, 2012

I’ve been working with Smarty 3 lately, and it has been a good experience.

Smarty is a template engine for PHP that has been around forever. Most web developers have some kind of experience with Smarty templates, or some other template engine like Twig or Liquid (Ruby). Also, most developers have some gripe about Smarty syntax. Basically all of that frustration is from experience with Smarty 2. Smarty 3 is different.

The way you use Smarty in your app will dramatically impact whether you like it or hate it. There are ugly and frustrating sides to any complex system, but the way I use it is pretty elegant.

Here’s an example of the way I use it (MVC):

// app/views/blog.html

{get $blog from "/channels/blog"}

{foreach $blog.entries as $entry}
...
{/foreach}

There’re are a few things going on here:

  • Native REST interface. The entire app speaks “REST” natively, which makes pulling data into templates trivial.
  • No controller. This is MVC, but the controller is optional (there’s a default that handles routing directly to views if controller is missing). Since the app speaks REST, controller logic becomes so rudimentary that I often put it in the template itself. I find it faster to iterate on UI this way.
  • Smarty abstracted. In the usual Smarty tutorials, a lot of attention is paid to initializing and using the Smarty object. I did that once, and never looked back. You shouldn’t have to think about Smarty itself, just the template syntax.

Smarty 3 syntax is more elegant and concise than comparable PHP (which isn’t too hard I suppose). But again, it’s all about the implementation.

If you’ve had any good/bad experience with template engines, or have a question about the way I use it, share it with us in the comments.

Note: I wanted to include a lot more code examples, but ExpressionEngine isn’t rendering them correctly. I’ll post more after I switch to my new blog platform.

Leave a comment

 
02

How people fight discrimination

Wednesday, March 21, 2012

People get angry when organizations discriminate against minorities. One such event occurred recently as a company called Sqoot announced a “hackathon” event, which are known to be dominated by men, with a particular perk:

Sqoot: “Women: Need another beer? Let one of our friendly (female) event staff get that for you.”

Ouch.

Hindsight is always 20/20, and Sqoot quickly issued an apology as the internet lit up with outrage and sponsors began pulling out. In short, the web punished Sqoot for making an offensieve statement.

My point is not about “sexism in tech”, but rather how the free market fights it. To be clear, Sqoot didn’t actually discriminate against anyone, as it was only a (terrible) marketing statement. However they did post marketing material with offensive language, implying that “the men shall code while the women serve beer” (exaggeration mine). You’d have a hard time arguing that Sqoot intended to offend anyone, evidenced by their quick apology.

Governments make lots of laws against discrimination. I contend: those laws are completely unnecessary in a modern free market, where consumers have the power to bring organizations to their knees for even suggesting such a thing. See what happened to Sqoot? Now imagine a restaurant posting a sign with, “no women or short people allowed”. Can you see the internet outrage and ensuing apology?

You might think, we could use the law and consumer outrage to fight bad discrimination, but the law has severe consequences for consumers too. Legal liability dramatically raises the cost of doing business, and therefore the cost of consumer products. Also, consumer outrage acts much more quickly than legal action does. Attorneys spend lots of time and earn fat hourly wages from productive businesses.

So, when you hear someone say “there should be a law against discrimination of X!”, think about Sqoot, and think about the free market, and please knock some sense into whoever said it. We don’t need the government to save us from discrimination.

Obviously, we can save ourselves.

Leave a comment

 
03

Passion vs. Motivation

Thursday, February 16, 2012

Everyone talks about having passion for what you do, but it’s insanely easy to confuse passion for motivation. What’s the difference? It might not seem significant on the outside, but if you’re building a business, it means everything.

Motivation is what you get when you perceive the near-term output of your work to be much more valuable than your input, specifically when compared to other work you could perform. For example, someone tells you they’ll pay $100 for 10 minutes of your time. You have nothing else to do in 10 minutes worth $100, and that money would mean a lot to you, so you feel motivated to give up 10 minutes of your time. Another example: the house catches fire and you run outside after the smoke alarm goes off. Ah shit, your dog is trapped inside. Mentally you assess the situation and feel like you’d be able to go back in, get the dog, and escape without harm. Your work (risk) feels less painful than losing your beloved puppy, so you are motivated to run into a burning building.

We are constantly making these judgments, naturally motivating us to optimize output.

How does this apply to startups? I have been at times incredibly motivated to complete a project, launch a product, build a company. Almost every time, what motivated me was a simple (and often quick) judgment about the value of my input (time, energy) versus the perceived value of the product after launch (money, fame, glory). And almost every time, half way through or even shortly after launch, I realize my original judgment was too quick (maybe completely wrong), and the equation falls apart. Motivation fades as you struggle to regain the vision of positive output, and finally the project dies.

How is passion different from motivation?

Passion is deeper. It’s what you get when you feel that doing something is right. Think of it like the next level of motivation. The same general equation applies, but it’s based on deep understanding of the long-term benefits of your work, and emotional desire to affect change. It’s often unexplainable to others who can’t quickly absorb your understanding.

Motivation is important though, as it prompts you to experiment. This eventually leads to developing real passion, which is absolutely critical for startups. Passion comes from experience.

The reason passion is important for company building, is that it makes you think long term and allows you to push past early barriers.

Given the state of technology, modern engineers are suddenly found in a situation with massive potential all around them. It leads to a lot of quick judgments and light motivation.

Your mission, should you desire to build a lasting company, is to experiment until you find real passion.

Leave a comment

 
04

The Best Marketing Advice for Entrepreneurs

Friday, January 20, 2012

A friend e-mailed me asking for advice on marketing his first product as an entrepreneur. After I wrote back, I realized my advice might be useful for others.

Here it is:


I’m excited to hear that you’re following through with your tech entrepreneurial ambition.

I have experience with a wide variety of marketing channels. I’m also working closely with a company that raised $160k on Kickstarter 5 months ago.

The one most potent bit of advice I can offer when it comes to marketing is: make sure your product is worth talking about.

I see it time and time again. With my own businesses, and with others I have worked with. They attract attention almost exclusively because the product execution is fantastic. Un-interesting products will never get much market attention by contrast, no matter how slick the marketing strategy is.

Jellyfish Art raised $160k on Kickstarter, not because there exists any magic marketing wand, but because they were the first in the world to figure out how to keep jellyfish easily and offer that experience to others. They received press from Wired Magazine, New York Times, LA Times, NBC, Lifehacker, Gizmodo, you name it… the tank and jellyfish product just attracts attention because it’s interesting and they executed on it well.

Everything else you’re probably expecting advice on, such as ‘how to pitch the press’, or ‘how to get a top spot in the app store’, is just not very relevant without a great product. In any case, you can easily find that information by searching the web.

Here’s a couple of marketing resources I find great value in:

http://mixergy.com/andon-jellyfish-art-interview

http://mixergy.com/master-class-preselling

You’ll find the best courses on marketing and PR at Mixergy. Watch the interview with Alex, and other entrepreneurs, and learn from their experience.

Best,
Eric


TL;DR: Don’t worry about your marketing strategy half as much as you worry about the quality of experience your product delivers.

Discuss it on Hacker News

Leave a comment

 
05

Dropbox: the new file system of the web

Thursday, December 29, 2011

The Dropbox REST API is going to forever change the way people interact with web apps for business. It allows your web app to put and pull data from any user’s desktop or mobile device.

What this really means is that users of web apps (specifically small business) don’t need to struggle with your crappy UI, and you don’t need to reinvent the spreadsheet to unlock powerful new interactions and possibilities. Holy shit. Do you see it? Is it coming to you now?

Imagine: your customer can modify web app data in their desktop app of choice.

Example: Jimmy runs a small e-commerce business. He’s not a technical person and understands little about how the web functions. He typically puts internet passwords on sticky notes around the office, and gets frustrated when he needs to find one. However, Jimmy spent 12 years prior working for a financial services firm, and knows how to mash up data in an excel spreadsheet like you wouldn’t believe. With Dropbox and a smart web app, Jimmy gets to manage all of his e-commerce product information in a local excel spreadsheet, sitting in that magic box on his desktop.

Time to upload an image for a new product on Jimmy’s site. He puts it in the folder called “product images”. Magic!

It just works.

What can you imagine doing with the Dropbox REST API?
Let me know what you come up with @ericingram.

Discuss it on Hacker News

Update: This afternoon I wrote some code to explore the idea in my language of choice. This is a method of a model in the Fwd PHP framework, demonstrating how I could theoretically pull products from a CSV file to update products in my web app:

class Products extends Model
{
    function update_from_dropbox ()
    {
        foreach (get("/dropbox/products.xls") as $row)
        {
            put("/products/{$row[0]}", array(
                'sku' => $row[0],
                'name' => $row[1],
                'price' => $row[2],
                'description' => $row[3]
            ));
        }
    }
}

Update #2: brlewis posted in a Hacker News comment:

"... here's what I do that should scale to tens of thousands decently:

I run dropboxd on my web server. Instead of using the API, users share a folder with my app. Dropboxd gets the stream of changes, and my app polls the local filesystem for changes instead of polling across the net."

I’m going to try this technique myself. Thanks brlewis!

Leave a comment

 
06

Richard Stallman and Freedom

Saturday, December 17, 2011

I just watched this interview with Richard Stallman, in which he argues the case for his philosophy of Free Software. I caught Richard saying something that I found at odds with his actions.

First, I will say that I agree with the motivation behind the free software philosophy. That is, software should not constrain your will to use, inspect, and manipulate it’s behavior. I don’t believe creators of software should be compelled to make it so, but I believe it’s good when they do.

Richard Stallman gets very picky when people mince words and definitions related to free, open source, commercial and proprietary software. He is quick to correct someone that calls free software “open source”, and goes on about how free (as in free beer) software may not be free (as in freedom).

However, as Stallman began talking about Capitalism, he minced words.

“There’s no incompatibility between free software and capitalism… now Extreme Capitalism, the empire of the corporations… extreme capitalism means that in each area of life, the businesses interested in that area rule society, control the government… control policy”

What is “extreme capitalism”?

I couldn’t find a definition. I believe he is referring to the combination of ideas from corporatism, fascism, and cronyism, the result of which is often blamed on corporations and capitalism. Corporations are the most common vehicle for accumulating and deploying capital, and sometimes people don’t like what corporations do, so the blame is placed on capitalism as the vehicle.

Capitalism and corporations are awesome, violence is not.

Richard Stallman is giving capitalism a bad name by relating it to the corruption inherent in government, which claims the legal right to use violence.

Adding the word “extreme” to it does not do enough to differentiate the opposing philosophies.

Just as Richard believes that it’s dangerous to confuse free software with open source software, he is doing the exact same thing by confusing capitalism with ideas of corporatism, cronyism, fascism, and other isms.

In my view, the important aspect of Free Software is that it rejects intellectual property. If you come across software code, you should be free to manipulate it and redistribute it without constraints. It is immoral to claim ownership of ideas, as they are not scarce. This is only made possible by government violence (or threat of violence).

Richard Stallman is an intelligent philosopher, and I am certain we agree regarding the destructive nature of government.

Here are statements from the interview that I completely agree with:

“Freedom is having control over your own life, it doesn’t mean getting whatever you want.”
“I reject the assumption that we should want the government to have more power.”

Here’s to freedom.

Leave a comment

 
07

Why I’m So Happy About MongoDB

Tuesday, December 13, 2011

I’ve been building web apps with SQL databases for over a decade. I love SQL and the things it has enabled us to create.

But, managing SQL schemas is a huge pain in the ass.

SQL schema migrations are generally feared by the team. Not overtly, but any time a feature comes up that requires a schema change, people try to find a way around it. I’m sure everyone has a different process and for some, SQL migrations are painless, but not for most environments and teams.

The NoSQL movement in general is going to blow this pain away for the most common case web apps. That’s not to say SQL won’t always have a special place in our system, I believe it will remain in common use for a long time and continue to evolve.

But, as I’ve been tinkering with MongoDB over the last few weeks, I felt a paradigm shift.

Suddenly I can write applications that are smart enough to migrate their own schema changes.

Suddenly I can save and query trees and reduce complex application logic.

Holy crap, this makes my code much simpler. I’m in love.

Could I have done all this with SQL? No doubt, but not without pain. It’s the reduced friction I am so fucking excited about. Less friction means more iterations, more productivity, faster learning, good times.

So why call out MongoDB specifically?

It’s open source done right. Few open source products reach a level of ubiquity comparable to WordPress, MySQL, PHP, Rails, etc… but I can see 10gen is doing things right with Mongo, and it’s going that way. This is why I mostly hear MongoDB when people talk about NoSQL products in general.

You don’t have to be the first to market to dominate it, and I’d bet 10gen is going to prove that. Of course there’s room for a lot of competition, and competition is important. I’m also excited about Cassandra, CouchDB, Redis, and others.

Now, I will say I don’t have any experience with scaling MongoDB yet. I am excited mostly for the patterns it makes possible, but I feel confident that the product is evolving and over time it will be as stable and scalable as any other top tier solution.

So if you haven’t started tinkering with NoSQL yet, get to it, and be ready for a total change of mindset. It’s not supposed to be a direct drop-in for MySQL, so the queries and techniques are a little different.

I will start publishing my own NoSQL techniques on this blog soon, so subscribe for updates!

Discuss it on Hacker News

Leave a comment

 
08

Take a position and defend it until realizing you’re wrong, then immediately switch sides

Sunday, December 11, 2011

Developers constantly debate, and debate is an effective filter for ideas.

To take a position and defend it until realizing you’re wrong, then immediately switch sides.

This is the definition of wisdom.

Don’t hesitate to debate your peers on the merits of their ideas. No one has everything just right, and getting feedback on your thoughts is a way to add new information to your mental model.

But if you can, avoid taking disagreement the wrong way. It’s nothing personal. Debate is a powerful mechanism for refining and evolving ideas if you’re not shy about it.

Initially you might find switching sides difficult. Ever get into a debate and fight hard, only to realize some of the things you said moments ago suddenly don’t make sense? What do you do?

The knee-jerk reaction is to end the debate smoothly without alerting anyone of the sudden uncertainty of your original position. I think this tends to be the primary reason most people don’t like getting into debates. They haven’t taken enough time to form strong opinions around the subject.

As it turns out, this is also an effective way to judge developer experience in an interview. Ask the candidate an open ended question like, “if you could build a web application from scratch with any technologies you choose, what what you would choose and why?”

If the candidate answers with uncertainty regarding any part of the stack, he/she has not taken enough time studying the technologies to form a strong opinion.

Very wise people will form opinions quickly and debate vigorously to prove or disprove assumptions.

The goal is not to win, but to reveal the winning argument.

So wise up, debate, and filter your ideas.

Discuss it on Hacker News

Leave a comment

 
09

Software Is About Productivity

Sunday, December 11, 2011

Software creates value by abstracting complex tasks to increase productivity.

It has been so effective that the software market (in a broad sense) is exploding by orders of magnitude every few years. The primary limit of growth seems related to the speed at which humans can adapt to new abstractions. Therefore, new abstractions should in some way resemble old abstractions to increase the speed of adaptation.

But wait, why is the market exploding again? Productivity gains.

When an engineer writes software to automate a system, more can be produced with the same resources. Your dollars buy more output, price goes down, the market grows, automates further, and productivity is continually enhanced.

And let me tell you, there is nothing more economically mind-blowing than the pace of automation by software.

I am intensely interested in software patterns for the purpose of accelerating productivity gains.

Software is all about productivity.

Leave a comment

 
010

Intellectual Property Is Bad for Business

Tuesday, February 08, 2011

Intellectual property is one of those subjects that gets me into frequent debates. You know, copyrights, software patents, and trademarks. One’s opinion of whether IP is “good” or “bad” tends to change depending on which side of the Intellectual Property fence they sit on at any one moment. My opinion?

Intellectual Property is bad for business, and bad for consumers.

Let’s use an example — say you are a hacker looking for new antivirus software. What’s your first move? Do you rush to the store and throw down $100 for the first big yellow Norton box you come across? Or, do you hit your favorite bittorrent site, run a search and have it installed for free before you could’ve put your shoes on?

That’s one side of the fence.

Now let’s say you just finished designing the most incredible iPad App on the planet. It’s beautiful, unique, and simple. It gets into the App store and sales start to climb. Suddenly, a near perfect copy of your beautiful App hits the market. They copied your UI! Stole your idea! Stealing your sales! WTF, isn’t this illegal?

That’s the other side of the fence.

So what exactly is Intellectual Property, and what’s the big deal?

Copyrights are given to authors of original works, such as books, articles, movies, and software programs. Copyright gives the exclusive right to reproduce the work, prepare derivative works, or to present the work publicly. Copyright protects only the form or expression of ideas, not the underlying ideas themselves.

Patents are property rights of inventions, that is, of devices or processes that perform a “useful” function. A new or improved mousetrap is an example of a device that may be patented. A patent effectively grants the inventor a limited monopoly on the manufacture, use, or sale of the invention.

If you’re a software developer, your mouth is probably watering at this point.

Of additional interest are Trademarks and Trade Secrets, but for now we’re going to focus on the mouth watering monopoly power of copyrights and patents.

Arguments for Intellectual Property usually go something like, if we protect inventors and creators, give them government guaranteed monopolies, they will have a stronger incentive to create more, and society will be better served as a whole. So then, I suppose inventors have no stronger motivation to create, other than to get rich being the only one able to reproduce their works, right?

It would stand to reason, then, that if we examine industries or business models that rely heavily on Intellectual Property, we should find rampant creativity and quality, of the kind to better society for all. How about the movie industry? They get rich selling theatre tickets and copies in the form of DVD sales, and rely tremendously on their monopoly power to reproduce and present their work publicly. It seems reasonable, and we’re all used to this model, but let’s compare it to another well known business model that enjoys almost no copyright protection: the fashion industry.

The fashion market dwarfs the movie market in scale.

Did you know that fashion designers steal from each other’s ideas constantly? That fashions you see on sale in Target for $19.99 are in some way ripped off of a trend that started with a $10,000 runway dress? I’m oversimplifying, but the fact is that the fashion business has thrived and experienced far more creativity and progress than the movie business. The same is true for all industries of similar age and opposing views on intellectual property. I dare you to prove me wrong.

IP is loosely based on the legal concept of Property rights, which states that you have a right to tangible goods acquired through lawful trade. This makes sense, because tangible goods are scarce, in that there is a limited supply of them. There is only so much of any tangible item to go around, so if you take one for yourself, you reduce the available supply for others.

This is untrue for Intellectual Property rights, which put claim on ideas that are not scarce. There is no tangible cost to reproduce an idea. When you have an idea, intellectually, does it reduce the supply of ideas for others? Of course not.

Software patents are a big deal. Some organizations are overrun with attorneys who find nothing more innovative to do than to find loosely related software ideas and sue the pants of them in an effort to maintain dominance. Are these organizations the most innovative and creative thinkers, out to serve humanity with the best intentions? It’s almost laughable. No, the “software patent trolls” we’ll call them, spend more time developing threats in court, than they spend developing ideas in software.

So then, I guess Intellectual Property does not necessarily encourage creativity.

It encourages lawsuits.

And when those lawsuits win, we all lose. We lose the innovations of a small group of hackers who came up with a better mousetrap, because it was squashed by Microsoft, or another IP beast. Intellectual Property destroys creativity, destroys value, and makes lawyers rich. I have nothing against lawyers, but I wish they would leave the innovation to the hackers, and stop fighting for innovation-destroying monopolies.

My advice to hackers and startups everywhere: If you are building a better mousetrap, don’t rely on lawyers and legalese to create and protect value. Rely on service, and other benefits that are truly scarce. Your customers will love you for it, and you will better humanity with your free ideas.

Oh, and for a deeper insight on the fashion industry and it’s free culture, take the time to watch this TED presentation by Johanna Blakley. I couldn’t agree with her more.

Bonus: Read the book that first changed my outlook, Against Intellectual Property, by N. Stephan Kinsella, who won’t mind that I stole a couple ideas from his book.

Feel free to steal mine, and notice this blog is not bound by copyright.


Like this blog? Follow me on Twitter @ericingram and subscribe to the RSS feed.

Read less

Continue reading

Leave a comment

 
011

TechCrunch Is A Fame-Hungry, Media-Manipulating Hypocrite

Thursday, February 03, 2011

I’ve been reading TechCrunch passively for a few years now. It sits on my feed list, spitting out new tech stories every few minutes. For a while TC felt like the source for fast paced up-to-the-minute web news, so dominating my feed that I felt compelled to remove Mashable because TC seemingly covered the same stories.

Lately I can hardly bring myself to read TechCrunch, and yesterday’s blog about Julian Assange, marks the last straw for me.

Firstly, the blog written by Paul Carr, isn’t news. It’s an attack/smear/flame on Julian Assange and the concept of publishing leaked state secrets.

Secondly, it doesn’t even make sense. Paul is arguing that Assange is only interested in transparency of government, which is true, and is “hypocritically” against transparency of his own life and organization. But wait… there is a big difference between government secrets and private secrets. Governments use guns, force, violence to achieve their goals, while private individuals may not. Given that fact, it is wholly unreasonable and intellectually dishonest to compare state secrecy to private secrecy.

Paul Carr continues, “Now can we all accept that Julian Assange is a fame-hungry, media-manipulating hypocrite? Please?”

Come on Paul, really?

After reading this junk, I decided to finally remove TechCrunch from my feed and replace it with Mashable, who actually reports on web news. As a bonus, Mashable doesn’t appear to slander Jualian Assange.

So why do I care, and why should you?

I call myself a "skeptic". It's written in my bio, and lately a few have asked me what I mean by that. I usually characterize it as, "I am skeptical of conventional wisdom", which means that I question vigorously the very things most people take for granted. This is a great quality for an entrepreneur to strive for. But really, my skepticism started when I discovered my political footing as a Libertarian at the age of 21.

The Libertarian philosophy encourages skepticism of government action, which makes sense to me considering they are the only legitimate group that uses force and violence to achieve their objectives (which are most often unconstitutional).

For this reason, I am inherently supportive of Julian Assange and WikiLeak's mission, to inspire government reform around the world by exposing the deception and corruption kept secret by politicians.

A quick look at the blog's comments reveal that I am not alone:

"There is a difference between a PUBLIC entity (government) and a PRIVATE individual / entity. It is a crazy world we live in when PUBLIC entities (and their leaders) believe that they can assassinate / imprison / etc in order to maintain there secrecy, while PRIVATE individuals are expected to literally lay themselves bare at the feet of state ("rape" scanning, monitoring of communications, finances, etc). We should simply redefine private as public and public as private..."newspeak"-style!"
— michael lockyear

"This may be the worst post I've seen on TechCrunch. Hands down."
— ghosthead

"And you've certainly changed my mind with this article because it's made me give up on TechCrunch. As much as I enjoyed the articles on start-ups, new technologies and people behind them I'm simply unwilling to subscribe to the RSS feed (Ahh, the irony of saying here) of this site with nearly pure opinion columns like this coming around with increasing frequency."
— Tashinak

"Paul, really you are such a "fame-hungry, media-manipulating hypocrite". Libel is making false statements about a person. Transparency of government acts/policies/structures/spending ect. is a requirement for a democracy."
— Alfredo de Almeida

"You are a horrible person Paul Carr. You do this again and again, a highly opinionated post not related to technology or business and highly biased and reflective of your conservative propaganda. Thanks to you, this otherwise awesome site is off my Feed app."
— Fascinate

"I think that this, combined with the the poorly written article by Steve Gillmor (http://techcrunch.com/2011/01/.../), has convinced me that it's time to take my reading elsewhere."
— David Franklin

"You are obsessed with Assange. I would stop at this point. Secondly, whether you like him or not, his organization is responsible for facilitating transparency (at great personal cost to many who work in the org) and that is a good thing."
— omar

I urge you to support WikiLeak's mission, whether or not you like Assange.

Be skeptical, and quit reading TechCrunch.

UPDATE: Here is a list of blogs on WikiLeaks by Paul Carr, in chronological order:

I should note that this and other blogs related to Assange are not the only reason for my rejection of TechCrunch, but just the latest and most aggregious.


Like this blog? Follow me on Twitter @ericingram and subscribe to the RSS feed.

Read less

Continue reading

Leave a comment

 
012

Was I Unfair To Mark Suster?

Wednesday, February 02, 2011

Some are saying I was unfair to Mark Suster in my blog, with a “link bait” title such as, Mark Suster Is Wrong, You Should Be A Startup Entrepreneur.

Actually, just Mark himself is telling me I was unfair to his position and views.

I’m typically fair, to a fault, and creating controversy is not something I’m highly accustomed to. I respect Mark, his positions and views, and even learned a few things from an insightful presentation he made at Standard’s Entrepreneurship Corner (which I highly recommend everyone watch).

Via Twitter:

msuster: @ericingram your title is disingenuous at best, dishonest at worst. and anybody reading the title would assume I said that

msuster: @ericingram I don’t mind debate / dissention. Your post was fine. The misleading headline to drive HN views was unfair to me & my position

msuster: @ericingram “MS is wrong - u shld be an entr” implies I said opposite. I did not. I said understand issues & decide then go for it

I think Mark took this personally. And with a title like “Mark Suster Is Wrong”, I can understand why. Was it link bait? Effectively it worked that way, but that was not my intent specifically.

However, my title was not disingenuous and absolutely not dishonest. As I read Mark’s post on TechCrunch, the thought which came to mind as I scanned his conversation starter was: “No! I have a hard enough time convinving people they can do it if they try, how many people would never try if they were confronted with this all at once?”

Mark's post goes on to describe the roller coaster ride with the kind of precision accuracy that could only come from experience. It sounds scary, heart-wrenching, difficult, and unless you had experienced something like it, I was afraid you'd come away not realizing that it is worth every challenging moment.

If you read his post and thought, "Yeah, being a startup entrepreneur sounds too rough for me, I doubt I have what it takes", then my rebuttal was for you.

The truth is that such a representation, while contextually accurate, should never slow you down or stop you from chasing your vision. Mark doesn't want that either.

Apparently I wasn't the only one who came away with the "wrong" sense of what Mark says he believes. Here is the first and most popular comment on his blog:

"You live once. Go for it. If it doesn't happen the first time, try again. And again. Persistence will almost always win out if "no" isn't a part of your vocabulary.

I took the plunge and moved to California with a wife and 2 kids, 8 months pregnant with the third, leaving a cushy job and a cushy life. As we were trying to raise our Series A we had a premature birth, our son requiring 3 weeks in intensive care while my wife went to the hospital every day and I ran up and down Sand Hill looking for money. Meanwhile my old company tried to stiff me out of the health insurance and I was stacking up $400k worth of doctor bills while we ran around recruiting the best SW engineers we have ever worked with in the midst of the great depression. The product ended up blowing people away and within 3 weeks of launch Steve Jobs called and bought the company. A roller-coaster indeed.

If you're an innovator with an itch that won't die, consider Mark's savvy list of things to think about, ignore it and go get it."

— Dag Kittlaus, Co-founder and CEO, Siri

A great story by someone who also suggest you ignore Mark's list and go get it

Come to think of it, I can't find one instance in Mark's blog that says "go for it".

So, what do you think, was I unfair to Mark's position, or was Mark's own blog unfair to his position?


Like this blog? Follow me on Twitter @ericingram and subscribe to the RSS feed.

Read less

Continue reading

Leave a comment

 
013

Faceoff: ExpressionEngine Vs. WordPress

Tuesday, February 01, 2011

To the point: I believe developers should choose a platform that solves their needs and fits their skills. Considering that needs and skills evolve over time, it stands to reason the platforms we choose will evolve over time. I have used both platforms extensively.

That said, there is no shortage of opinions on which product is better for this or that. Let’s put ourselves in the shoes of a user with a choice.

Which platform should I use, ExpressionEngine or WordPress?

We’ll start by comparing features (warning, this is not a complete list):

  • WordPress Features:
    • Affordable (Free or Cheap)
    • Plugins/Add-ons
    • Templating System
    • Blog/Content Management
    • User Registration and Comments
    • Large Developer Support Community
  • ExpressionEngine Features:
    • Affordable (Free or Cheap)
    • Plugins/Add-ons
    • Templating System
    • Blog/Content Management
    • User Registration and Comments
    • Large Developer Support Community

Well, shit.

Now to be totally transparent, there are specific elements to each platform that might be better suited for one project or another. For example: ExpressionEngine costs around $100-200 per site, inherently supports multiple content channels (i.e. "a blog"), and each channel is completely customizable. WordPress is free, comes out of the box with the tools that work for most sites, and plugins make it completely customizable.

Not much help there.

Okay, user with a choice, which one is for you? ... Not sure? Well, which makes you feel more comfortable? Great, go for it, problem solved.

To expand on my point, I believe this goes for all platforms, products, services and even people you interact with: there is no "best choice" when things are this close. Go with what fits you and your needs, with what makes you feel most comfortable.

Do you ever look at your friends and think "maybe I could find better friends... ones with better features"?

Although hilarious, probably not.

Note: this blog is built on ExpressionEngine.


Like this blog? Follow me on Twitter @ericingram and subscribe to the RSS feed.

Read less

Continue reading

Leave a comment

 
014

Mark Suster Is Wrong, You Should Be A Startup Entrepreneur

Monday, January 31, 2011

Last night I came across a blog titled Should You Really Be A Startup Entrepreneur? by entrepreneur turned VC, Mark Suster. I’ve watched Mark speak before and I appreciate the wisdom he shares with the startup community.

In this blog, Mark argues that “wantrepreneurs” should “make sure it’s in your personality type, make sure you have the risk appetite, make sure you can afford to take the risks given your life situations and make sure you know that there is a high possibility your startup won’t be hugely financially rewarding.”

Here is a list of traits Mark says you need to become a startup entrepreneur:

  • Not very status-oriented
  • Doesn’t follow rules very well and questions authority
  • Can handle high degrees of ambiguity or uncertainty
  • Can handle rejection, being told “no” often and yet still have the confidence in your idea
  • Very decisive.  A bias toward making decisions — even when only right 70% of the time — moving forward & correcting what doesn’t work
  • A high level of confidence in your own ideas and ability to execute
  • Not highly susceptible to stress
  • Have a high risk tolerance
  • Not scared or ashamed of failure
  • Can handle long hours, travel, lack of sleep and the trade-offs of having less time for hobbies & other stuff

Mark is wrong.

Okay, maybe I should say “I disagree” with Mark on this issue, and he has a couple decades more experience than I do. So who am I to say such a successful entrepreneur and investor is wrong?

I was once a “wantrepreneur” and someone who asked “should I start a startup?”. At the same time, I would not have assessed my personality as Mark describes. I did not consider myself an entrepreneurial type, although it turns out I am. I did not consider myself to have a risk appetite, although it turns out I do. I was not sure I could afford the risks given that my wife and I had a new baby 2 months prior, no savings, and I was not aware that my startup wouldn’t likely be financially rewarding, although I did afford it and my startup did become financially rewarding.

On the other hand, a lot of what Mark says is right. Startups are like riding an emotional roller coaster. In fact, I agree whole heartedly with this image:


(Image courtesy of Rich Evenhouse on Flickr)

The up-and-down scenario Mark describes is spot on. As he puts it, “Your highs are super high.  Crack.  Your lows are unexplainably low and lonely.”

Here is why I say “Mark Suster Is Wrong”...

I know from experience, it is wrong to assume you understand yourself well enough to say, “I don’t fit that profile”, if you’ve never done it. You will learn to love things you didn’t think you’d ever take interest in. You’ll grow an appetite for risk, for business, for sales, for customer development, and for things you might today tell yourself, “That’s not me”.

I used to tell myself, “I like programming. I would never want to run a business. That’s not me.” — I was wrong. You might say I became addicted to the roller coaster. I enjoyed it in ways I would have never imagined. I never looked back at any of my experiences and thought, “I regret that”.

So, as my belief goes, if you have the guts to wonder, and even ask out loud: “Should I start a startup? Should I become a startup entrepreneur?” — Chances are you have an entrepreneurial vision. A glimpse of the future as it would be if your product/service/idea were to exist. That, right there, is all it takes to determine whether you should become a startup entrepreneur. Vision, and the motivation to try.

Some might say, “I have a vision, I can see my product in the future, but I don’t have any motivation.”, and I would argue that your vision is not yet clear. Motivation stems from confidence. Confidence in your belief. Belief that your vision represents something of real value, and that you have the ability to create it.

For me, the vision came easy, as it often does to those who dream about the future. The motivation, confidence, and belief in my ability to create it was hard fought (and won) by exploring the massive amount of writings, advice, interviews, biographies and so on of entrepreneurs before me.

That’s the way successful entrepreneurs like Mark give back to the community. They write about their experience and the belief system that motivated them to become a startup entrepreneur.

Although it turns out, on this issue, Mark is wrong.

And for the record, I’m not the only one who thinks Mark is wrong about a few things. I guess that’s what happens when you are an outspoken and successful target entrepreneur turned VC.


Like this blog? Follow me on Twitter @ericingram and subscribe to the RSS feed.

Read less

Continue reading

Leave a comment

 
015

Disqus + jQuery Hack = Awesome UX

Sunday, January 30, 2011

Comment systems suck. Except for Disqus, which offers a wide array of functionality in a fantastic user interface. But, awesome UX doesn’t always come “out-of-the-box”.

I am obsessive when it comes to certain design elements. If there is something about a platform I can’t customize, it usually leads me to develop my own platform. In this case I found everything I needed in Disqus, except for one: the ability to embed multiple comment forums on a single page. Why would I need this? Because UX matters to me, and I couldn’t think of a good reason to force visitors to jump pages for comments.

I wanted to load comments with AJAX, on-demand.

It turns out, Disqus does not support this, but they were support-ive:

“You may be able to accomplish your goal by implementing some iframe hackery, though some additional JavaScript and CSS may be necessary at that point. Let us know what you come up with, we always enjoy seeing Disqus customized in new implementations.

And do let us know if we can be of any further assistance; while we don’t officially support multiple embeds on the same page, we’d be glad to lend a second opinion where appropriate.”

— Tyler, Disqus Support Guy

So I hacked it.

Surprisingly, my hack worked in every browser except Firefox. Whoa. What the... yeah. It works fine on first load, but subsequent loads won't allow you to type a comment. To deal with this, I force Firefox to jump to a blog detail page after the first Disqus forum loads. Most people will never run into this case, and although rare, we'll blame Firefox for a slightly crappier user experience.

You might notice I used this pattern on "Read more" links also. Again, the idea is to eliminate an unecessary page jump. And why not? This was the promise of the AJAXian age, where web sites feel more like web apps.

Anything for a little UX love.

Oh, and here's my hack:

<div class="comments">
  <p class="nocomment">
    <a class="nocomment" href="/">Hide comments</a>
  </p>
  <div class="disqus_thread"></div>
</div>
<p class="comment">
  <a class="comment"
    href="http://collaborable.com/blog/blog-entry-title"
    data-disqus-identifier="blog-entry-id">
    <span>Leave a comment</span>
  </a>
</p>

And...

// DISQUS vars.
var disqus_shortname = 'collaborable';
var disqus_identifier = '';
var disqus_url = '';

// Leave a comment/cancel.
$('.entry a.comment').click(function ()
{
  // Firefox? Bad firefox.
  if ($.browser.mozilla && window.disqus_loaded)
  {
    return true;
  }

  // Init DISQUS.
  disqus_identifier = $(this).data('disqus-identifier');
  disqus_url = $(this).attr('href');

  // DISQUS requires each thread to have the ID #disqus_thread.
  $entry = $(this).parents('div.entry');
  $('#disqus_thread').removeAttr('id');
  $entry.find('div.disqus_thread').attr('id', 'disqus_thread');

  // Load DISQUS script, if not already loaded.
  if ($entry.find('div.disqus_thread .dsq-reply').length == 0)
  {
    $.getScript('http://'+disqus_shortname+'.disqus.com/embed.js',
      function ()
      {
        window.disqus_interval =
        setInterval('is_disqus_loaded("'+$entry.attr('id')+'")',
          200);
      }
    );
  }

  // Hide/kill other DISQUS forums.
  $entry.find('a.nocomment').trigger('click');
  $(this).find('span').addClass('loading');
  return false;
    
});

// Hide/kill all open DISQUS forums.
$('.entry a.nocomment').click(function ()
{
  $('div.comments').slideUp('normal',
    function () { $(this).find('.disqus_thread').empty(); });
  $('p.comment').slideDown();
  return false;
});

function is_disqus_loaded (entry_id)
{
  $entry = $('#'+entry_id);
  if ($entry.find('div.disqus_thread .dsq-reply').length)
  {
    clearInterval(window.disqus_interval);
    window.disqus_loaded = true;
    $entry.find('div.comments').slideDown();
    $entry.find('a.comment span').removeClass('loading');
    $entry.find('p.comment').slideUp();
  }
}

Like this blog? Follow me on Twitter @ericingram and subscribe to the RSS feed.

Read less

Continue reading

Leave a comment

 
016

You Should Become A Hybrid Developer

Saturday, January 29, 2011

I sometimes hear graphic designers say “I wish I knew how to code”, or programmers say “I wish I could design worth a damn”. It’s not uncommon for people to want what they don’t have, but is there a good reason for distracting yourself with two rapidly evolving core skills?

A few months ago I read a blog by Eric Ries (Lean Startup guy), describing the havoc caused by separating teams into departments, specifically programmers and designers. It’s a great read, but here’s the spoiler:

“The solution to this problem is actually really simple. Just create an art path team, composed of some artists and engineers. Force them to live and work in the same physical space, force the engineers to actually do some art production, and force the artists to actually learn what the technical limits of the tools are. As the team gets traction, simply rotate members from both departments through this team, so that the knowledge they gain is eventually diffused through both organizations.” — Eric Ries

So the solution is to mash them together, resulting in what I call Hybrid Developers.

I’ve personally experienced the benefits of a mixed skill-set. From the age of 7, I told everyone that I would one day work with computers. I dabbled in 3D animation (fail) and started playing with Adobe Photoshop (success) around the age of 11. I discovered web design with Adobe Pagemill around the age of 12. I began my “professional” career at 15 with a part-time job at Ace Computer Graphics, and the glorious title of Graphic Designer. It really was glorious for me. I earned $10/hr with no bills to pay. At the beginning of a high-school class, our teacher asked everyone to introduce themselves and describe what they did for work or fun. Of course, I was excited to proclaim myself a “Graphic Designer for Ace Computer Graphics” (the company is still in business, and no I did not design that web site).

Fast-forward 2 years — I decided I couldn’t put up with the subjective nature of graphic design work. I wanted to become a programmer, where no client could force me to create something ugly (if you’ve ever performed graphic design for a client, you know what I mean). Then I found PHP. I maintained fondness of the design profession and continued admiring great works.

In 2005, I started working full-time for a company that produced an e-mail marketing web app. Almost immediately I recognized a trending hot topic, Usability Design. Books started rolling out, 37signals hit the scene hard, and suddenly everyone recognized the value that great usability proposed. It was a perfect storm of AJAX, the birth of Javascript frameworks (one of which I created), and web apps were getting ready to revolutionize the software industry. The movement began years earlier, but momentum really picked up around this time.

Usability centered design intrigued me. I could see the value. It was more utilitarian and less subjective. It was more like programming. I started reading a handful of usability books and dug deep into Photoshop. With a renewed interest and understanding in design, I felt like I could create anything, and then code it.

Ok, I’ll skip to the chase. Here’s how I see it:

A programmer writes code.

A designer creates visual art.

A hybrid developer designs code, visually.

Think about that. If you go nuts when pixels are out of place, you also go nuts when code is out of place. The same instinct behind your design senses, come into play when you are writing code. Forget that, you stop writing code and start designing code. You inherently understand the technical limitations of your designs, and the design limitations of your technicals (huh?).

I was surprised to find… not many people discuss this subject in the terms I use here. Some people call themselves Hybrid Developers, some companies look to hire Hybrid Developers, but in general there is hardly any discussion about this topic (unless Google is holding back on me).

So, if you are a programmer who doesn’t use Photoshop, I highly recommend you start.

And, if you are a designer who doesn’t code PHP or Ruby, I highly recommend you start.

Begin ripping out web apps and let us know how it goes.

One thing is for sure: startups will be after you.


Like this blog? Follow me on Twitter @ericingram and subscribe to the RSS feed.

Read less

Continue reading

Leave a comment

 
017

What Do You Believe In?

Friday, January 28, 2011

First, I’ll introduce myself by telling you what I believe in.

I believe in Developers
Web developers have incredible influence over the future — the ability to create tremendous value from nothing, with less sacrifice than almost any other pursuit.

I believe in The Web
The ultimate platform, not just for software, but for ideas. It’s exciting to see the tail wag the dog, and we owe it all to the simple concept of networked computers.

I believe in Software
Software like Twitter makes us feel connected. Software like Basecamp makes us more productive. Software like Eclipse makes us write better software. It continues to evolve and life experience with it, always for the better.

I believe in Design & Usability
Great design is exciting, and great usability is satisfying. I believe software should be intuitively designed before it is functional. The goal is to create an experience, make the user feel like the center of the world, confident and in control.

I believe in Incentives
Great developers are hard to hire these days. Why? Because the incentive structure is broken. Great developers are self-motivated — entrepreneurial by nature. A new model is necessary to capture and harness the natural desire for innovation.

I believe in Startup Schools
Paul Graham changed my life. Y Combinator’s Startup Library made me believe I could change the world with my ideas. I became obsessed with this, and months later I founded my first startup. I hope to encourage others to do the same. Startup schools are the new Universities. Not an addition, but a replacement.

I believe in Growth, Value & Investors
Many startups tout their lifestyle model: bootstrapped and small. This is a pleasant idea. One that I will challenge ardently. Where would the world be if farmers didn’t believe in Growth? Hungry. It’s not that small is bad, it’s not, but growth is better.

I believe in Pragmatic Programming
jQuery, Ruby On Rails, CakePHP, and so on, represent an approach to software that is practical and effective. Is it any wonder these frameworks lead their category? I plan to dive into this topic and share my view of pragmatic programming.

I believe in Heated Debate
Debates are valuable, to watch, to participate in, to learn from. Too often, great debate ends when it heats up and participants fear offending someone. I encourage and welcome it. Share your passion and debate it.

Collaborable is my method of connecting with great web developers and startup founders. What do you believe in? Do you agree or disagree with my beliefs? Am I missing something, or am I on to something? Feedback is welcome and appreciated!

Follow me @ericingram
Contact me eric@collaborable.com


Like this blog? Follow me on Twitter @ericingram and subscribe to the RSS feed.

Read less

Continue reading

Leave a comment