HNHacker News
TopNewBestAskShowJobs

ericingram

559 karma · joined July 16, 2010

Web developer, designer, entrepreneur, skeptic, father.
submissionscomments
ericingram··on The genius and folly of MongoDB
I agree. TokuMX has filled many holes in Mongo and (at least in my experience so far) performs very well. It's got great documentation, backed by a brilliant team. As a drop in replacement for mongo binaries, it's really easy to install and offers professional/enterprise support if you need it.
ericingram··on Feds Arrest Alleged Top Silk Road Drug Seller
Is anyone still convinced that prohibition is the best way to reduce drug abuse?
ericingram··on A Less Risky Path to Entrepreneurship in Software Development
Quite the opposite, in my experience.
ericingram··on Deis open source PaaS now ready for dev, test apps
I checked this out a while ago but found it only works (out of the box) on EC2. Eagerly awaiting support for other environments.
ericingram··on Shopify POS
I'm the founder of Forward Commerce (http://getfwd.com), a new platform focused on giving developers more template control without all the pain.

One of our early adopters was a very notable/early Shopify customer who encountered the kind of problems you describe with templates and customization. I am pleased to say they have been successful using Forward and Shopify combined in order to solve these problems, and are planning to migrate completely when the time is right.

Shopify is a great solution for small business without irregular catalog and checkout requirements. I am however surprised that they haven't done more to support businesses that grow beyond this stage.

ericingram··on How Software Companies Die (1997)
It is rare for an engineering founder to assert leadership for an extended period of time, but when it happens, amazing things can follow. Microsoft, Oracle, Facebook, Github, SAP all come to mind.
ericingram··on [dead]
Why did you build Bitsy in the first place? I've seen a number of beautifully designed apps in this space, so I wonder what pain point sparked the initial development?
ericingram··on FoundationDB Fault Tolerance Demo Video
Question: Does FDB have any sort of "find" method in its API? As a key/value store I understand that I can set/get keys, but is there any way to find keys based on nested values?

I.e. fbd.find({someproperty: "123"})...

ericingram··on FoundationDB Fault Tolerance Demo Video
What a great demo! We're currently building a critical service on MongoDB and feel a bit leery about some of the issues others have expressed at scale. Would be interested in testing FoundationDB for our purpose in the near future.
ericingram··on Space: A whitespace alternative to JSON
Looks interesting, are there any serious drawbacks from JSON?
ericingram··on WordPress 3.5 “Elvin” Released
You said it better than I could have. Forcing template developers to maintain separate controller code prevents a lot of good work from getting done in my experience. If the project expands and the combined templates become a problem (usually due to the make up of skills in the team, i.e. heavy on back-end developers), separating them is pretty straight forward.
ericingram··on WordPress 3.5 “Elvin” Released
It can be abused, but I've seen controller heavy systems abused the same way. It depends on your goals. Some people prefer to write controllers, and the framework also contains a controller pattern for those cases. For example, you could write this...

    # controllers/BlogController.php
    class BlogController extends AppController
    {
        function index ()
        {
            $this->entries = get("/channels/blogs/entries");
        }
    }

    # templates/blog/index.html
    {foreach $entries as $blog}
        ...
    {/foreach}

Or, as in my example, this...

    # templates/blog.html
    {get $entries from "/channels/blogs/entries"}
    {foreach $entries as $blog}
        ...
    {/foreach}

I've written substantial apps both ways, and so far I have found that powerful templates are actually easier to write, read, and maintain, perhaps because the entire request flow happens in a single file.
ericingram··on WordPress 3.5 “Elvin” Released
Forward (a new e-commerce platform) uses a template engine and routing layer that might be something like what you describe. It works with MongoDB, has a REST-like model system, plugin system similar to WordPress, and you can do stuff like this in a template:

    {get $blogs from "/channels/blogs/entries"}
    ...
Alpha version was released just yesterday, you can sign up and download it at http://getfwd.com

/shameless plug

ericingram··on Federal Agency wants black boxes in every new car by September 2014
As I understand it, the word "regulate" had a different meaning at the time the commerce clause was written. It generally meant "to make regular", as in, prevent states from taxing imports from one state higher than another.

Now it essentially means "control".

ericingram··on Flatiron, A framework for Node.js
I really like what they've built here, but...

> DSLs (Domain Specific Languages) such as <%=foo%> or {{foo}} reduce portability

I would argue, well documented template DSLs increase portability among developers, which is often more important than portability among frameworks.

ericingram··on Show HN: Firebase-powered auction app running Jellyfish Art starter kit
It was fun! Seems that higher priced items should bid more than $1 per click, or last longer.
ericingram··on Ask HN: What do you with customers' feature requests for your SaaS app?
Do as Dropbox does, build a feature request forum so that customers have visibility on what is important to others and what is being worked on. Transparency is powerful this way. When a feature is declined by your team, describe why in that forum.
ericingram··on Shut up and play nice: How the Western world is limiting free speech
I think the big difference between private and public is that the public authority uses force against the property of others to exclude speech, supposedly deemed as disgusting to a particular group, but you have to recognize as history shows that it will be abused to limit legitimate political speech.

Private forums like Hacker News in no way infringe on the rights of others, by using their own property (web site) in a way they deem fit.

ericingram··on Suicide is Cheaper
I consider myself a Libertarian also.

The problem with government funded health care is what you can't see. True market based competition leads to lower prices and greater innovation in all observable areas over time. That would mean more access for more people in the case of health care, but instead with deep government intrusion for decades, we have seen ever increasing prices and sluggish innovation.

Libertarian philosophy has a lot to do with a belief in sound market principles. Why should all that go out the window for health care?

The problems facing health care today, in my view, are largely a result of the free market being trampled on. People who don't really understand market principles will tell you the exact opposite, that health care has been nothing but a free for all, totally unregulated. Do you believe that?

It sounds like you might generally agree with libertarian ideas and some research on scholars like F.A. Hayek and Ludwig von Mises might help focus your libertarian perspective.

ericingram··on Which web framework to develop a mid-sized community site?
We are in alpha stage with Forward, which we call "the open source platform for custom e-commerce" -- but it's not just about online stores. It has components for building communities, blogs, user management, roles, login, etc. We are using it to build our own blog/forum/chat/community at getfwd.com.

It's a lightweight system for building web apps in general, but it just so happens to have a few e-commerce APIs built in (which comes in handy if you ever decide to offer community subscriptions or sell t-shirts).

Obviously this won't help you immediately because it's not available to download yet, but will be in less than 4 weeks.

Here's a simple example of how you'd build a login page with it...

    {if $params.account}
        {get $account from "/accounts" [
            login => $params.account,
            role => "any-required-role"
        ]}
        {if $account.errors == false}
            {$session.account_id = $account.id}
            {redirect "/welcome"}
        {/if}
    {/if}

    <form method="post">
        <input type="email" name="account[email]" />
        <input type="password" name="account[password]" />
        <button type="submit">Log In</button>
    </form>
You can read more about it and sign up for the beta at http://getfwd.com
ericingram··on Ask HN: Any startups in need of awesome support?
We might need some of that, email eric at getfwd.com
ericingram··on Teach a Dog to REST
I agree with going versionless (though I can see the case for it also depending on how the API is intended to be used).

Get rid of .json? Make it optional sure, but allow it if the client wants to be specific. Seems like a good feature in that sense (optional with a good default).

I agree that search should not be a resource, but perhaps a parameter for filtering in addition to explicitly named param filters.

Thanks for sharing your thoughts on it.

ericingram··on MongoDB Performance Tuning with Dex
Dex is very cool. Mongo lends itself to adding fields and queries on the fly which has advantages in prototyping quickly, but the flip side is that many queries don't get optimized. Dex makes it much easier optimize later.
ericingram··on Teach a Dog to REST
What do you propose as alternative to these issues?
ericingram··on Teach a Dog to REST
Forward (http://getfwd.com) employs conventions like this between the template and model layers of an MVC style framework.

    get("/accounts") // collection
    get("/accounts", [limit => 10, page => 3]) // pagination
    get("/accounts/email@address.com") // single record
    get("/accounts/email@address.com/orders") // relations
    get("/accounts/email@address.com/orders/10234/items/6/price") // deep relations
    get("/accounts", [search => "john"]) // search
    get("/accounts", [fields => "name, email"]) // partials
    get("/accounts", [order => "name desc"]) // sorting
    get("/accounts", [login => [...]]) // special conventions
    post("/accounts", [alternate_email => $alt, ":validate" => [required => [alternate_email]]) // validation
    put(...) // pretty much what you expect
    delete(...) // same
The interesting thing about moving REST conventions to the model layer, is that you can suddenly create external facing APIs in various formats really easily. I'm hoping/expecting this will become a more common pattern.
ericingram··on Grove.io shutting down
Open source with a service is an exciting model, a lot of network effects but also greater up front investment. We are doing this with getfwd.com
ericingram··on E-commerce with MongoDB (+example)
To those that say Mongo's lack of transactions are a deal-breaker in e-commerce, I'd like to know more about this perspective. Can you be very specific?

We've been running production e-commerce sites for many months now and haven't encountered a major issue in the lack of transactions across collections.

ericingram··on Review Forward, get contributor status
The platform has been in private development for almost a year and there are a lot of interesting parts to review. Let me know if you have any questions about it.
ericingram··on Show HN: My weekend project, find average sales price for stuff on ebay
Cool idea! Here's my feedback: Feels like there is too much on the page that doesn't do anything. Since this is essentially a search box with a button and a result, I would eliminate almost everything on the page and focus all attention on that search box and the results. Also you should show something if the search doesn't come up with an average, perhaps the few listings that did come up. Better yet, show the eBay search results no matter what, so I can edit my search if it looks like the wrong items are being averaged.
ericingram··on Show HN: DubJS: A New Way to Build Web Apps
The code looks very cool. Great job on creating such a concise dialect. I would have fun experimenting with this, but that's probably as far as it would go as the massive number of people that are already comfortable HTML/CSS can't be ignored. I think it's easy to discount the value of mind share, but why try to replace HTML/CSS when every beginning web developer knows it?

I don't feel any pain in writing HTML/CSS as it is. Also, I would feel a bit uncomfortable moving away from the underlying language, with the feeling that it might make writing/debugging regular javascript more difficult.

← PreviousPage 2 of 9Next →