Ask HN: The Tools we used to build a SAAS. 1100/month in 6 wks. Favorite tools? - <AUTHOR> Friend and I built http://linktexting.com[1] in a few days and launched it 6 weeks ago. Feedback welcome. Doryphores not.
http://populr.me[2] - Worked quickly to mock up the concept and show it to mobile app devs to get their feedback. pwd protection too. http://efabless.populr.me/linktexting[3] (old mockup)
http://linktally.com[4] - Blog post popularity. Blogpostmetrics.com (built this with my friend)
[http://ifttt.com-[5] ] reminders.
http://jetstrap.com[6] Front end bootstrap changes. i like: http://webflow.com[7]
Google Alerts[8] - sms app distribution content.
Hnsearch.com[9] needs no explanation. Hn.algolia
Freelancer.com[10] to find workers for scraping emails of mobile app devs to find the best apps.
Producthunt.com[11] to find cool tools for every aspect of my startup.
Untorch.com[12] - for betalisting a product.
KillerStartups.com[13] - $169 to get listed in a featured blog post.
StartupLister.com[14] - $50 bucks and we got some paid traffic from it.
Leadfeeder.com[15] - free.
Compose.io[16] - for database shtuff.
Heroku.com[17] -- you know what it's for. :)
Hipchat[18] - for team comms.
Stripe[19] - gotta love it.
Chrrp[20] for Stripe notifications.
ReferralSaasquatch[21] - for Customer referral
maximization. Designed for SAAS.
Medium[22] We use this for blogging and had a few very viral posts (over 2K shares and 25K visits + 60% read rate.)
Twilio[25]
SSL Certificate purchased via Godaddy.com
Mandrill.[26]
YouCanBook.me (setup kumarovski.me) and it works great in terms of minimizing email time. Just send them the link and they'll click on an available time.
What tools do you use for your SAAS? <comment><USER2> Interesting concept, but I can already use the Google Play store to install stuff on an Android device from my desktop, so I'm not sure what problem you're solving here - how is this approach more efficient than a clear link to eh apps store, or conversely, if people ignore an app store link why do you think they'll ignore a text? For stuff I may just 'want to try out' then I very much prefer to go through the app store for the extra bit of security, as opposed to a download link from who-knows-where.

Obviously you've already got a bunch of subscribers - well done! - so it has some value, but talking about monthly income after 6 weeks seems a little premature - my initial instinct was to flag it for spam. Might be better to phrase it as '$1100 subscriber income in 6 weeks.'

Edit: 'Concept' refers to the underlying idea rather than the current state of the product. If you don't like pedantry then you should probably eschew it in your own responses.

<comment><AUTHOR> No longer a concept.

</comment></comment><comment><USER3> Slightly off-topic, great job launching! You did ask for feedback on your site, just pointing out a specific copy that was bolded out:

"You are losing customers right now. Desktop viewers of your website are leaving without downloading the app..."

Here's a friendly tip from a conversation between Amy Hoy and Nathan Barry that can be found here -- [http://nathanbarry.com/step-by-step-landing-page- copywriting...](http://nathanbarry.com/step-by-step-landing-page-copywriting/)

Nathan: Good. I wrote out half a dozen headlines trying to get at the core pain.

Amy: How would you feel, though, if a stranger came up to you and said "You're losing hundreds of sales."?

Nathan: Who the hell are you to tell me what's wrong with my business…

Amy: Right, me too. Not because you're not interested in getting extra sales, but because it SOUNDS like you're being attacked.

Nathan: Good point.

Amy: I tell my students to be very careful with statements that might sound accusatory.

<comment><AUTHOR> Hmmm... good point. I like the example and thanks for sharing the link.

<comment><USER4> I wonder if something more like, "Hundreds of sales are waiting" could work?

</comment></comment></comment><comment><USER4> Nice! There are a few resources in there I haven't seen before.

Mind if I do some quick copy-edit?

\- "Save yourself hours in reading through API documentation to build this yourself." Keep the tense consistent: "reading through API documentation and building this yourself."

\- Photoshop/GIMP the imgflip watermark out on step6.gif

-"...only charged for successfuly sent SMS..." should be "successfully"

</comment><comment><USER5> Thanks for all of the links! I was just kind of curious, what was the thought process behind the inception of the saas product? And did you have many pivots or was this a first stab?

To add to your list [1] briteverify.com [2] braintreepayments.com [3] clicky.com

<comment><AUTHOR> first stab.

<comment><USER5> How did you find your first customers?

<comment><AUTHOR> Haha. walked into a restaurant in SOMA and asked around.

</comment></comment></comment></comment><comment><USER6> What kind of conversion as well as impressions were you getting from those listing sites?

| KillerStartups.com[13] - $169 to get listed in a featured blog post. StartupLister.com[14] - $50 bucks and we got some paid traffic from it. Leadfeeder.com[15] - free.

<comment><AUTHOR> Killerstartups sucks.

<comment><USER6> Heh. How many impressions did you get from startup lister if you don't mind me asking?

<comment><AUTHOR> Not many, but helped our domain authority go up.

</comment></comment></comment></comment><comment><USER7> The tools I use every day:

Loving Slack, even with the TOS hubub.

Just getting started with FrontApp but they seem great for business / shared email accounts.

Firebase for our DB, they've been super helpful.

Github of course.

Google docs for shared docs.

KeyPassX to track all the company online accounts.</comment>


Ask HN: Any professional courses for learning business skills in the Bay Area? - <AUTHOR> There are abundant courses to learn programming, engineering outside academic institutions like Berkeley, Stanford.<p>Are there any similar courses to learn the fundamentals of business(finance, marketing, sales)? <comment><USER2> Chambers of Commerce sometimes have those sorts of resources.</comment>


Android reaches massive 80% market share, WP hits global high, iPhone languishes - <AUTHOR> http://venturebeat.com/2013/08/01/android-reaches-massive-80-market-share-windows-phone-hits-global-high-iphone-languishes/

<comment><USER2> I don't want to put down either Windows Phone or the markets in which it is selling well, but a big factor in Windows Phone's market share is Nokia's historic dominance in a few markets, like Russia.

That's qualitatively different than Apple's stronghold markets. It will be hard to defend from big OEMs like Yulong/Coolpad that focus on developing markets. Yulong is muscling in to the top 10 which means either Blackberry or Nokia will fall out. The fate of Windows Phone and Nokia are inseparable. No other OEM will pick up that ball.</comment>


Show HN: Space-search.io – A satellites search and visualisation tool - <AUTHOR> https://space-search.io <comment> White-Orchid-YC That is impressive. I wonder how it would look like if you would show all stuff flying up there! Would it be like earth has a messy bad hair day?

<comment><AUTHOR> Would be pretty curly indeed! Check out [https://space- search.io/?search=ariane](https://space-search.io/?search=ariane) for an impression

<comment><USER2> This is all the stuff launched by Ariane rockets, or is it related to a single space program?

<comment><AUTHOR> Thanks for the question! These are all Ariane leftover rocket parts, related to various launches. The leftover parts are mostly booster stages to transfer a sats to GEO orbit.

</comment></comment></comment></comment><comment><USER2> Any chance I could find out about satellites flying above my home town through this? Perhaps a quick help guide could help explain how it works.

It would be cool to see what kind of sensor data is available from my garden.

<comment><AUTHOR> Yeah should be possible to add a feature like this in the near future! Will add it to the roadmap :)</comment></comment>


Ask HN: I'm looking for beta users for a mental health and motivational bot - <AUTHOR> I have built a bot version of a daily gratitude checkin which will expand to cover all areas of life that you want to work on. It works on noticing opportunities instead of setting goals.
If you have goals or habits you want to develop, this bot could help. I've found it hugely useful in keeping my mood up and keeping me focused on long term objectives even when stressed and distracted.
It would work for sports, career, education, family or anything else you want to improve.
Ping me on twitter - https://twitter.com/danfrost - if you're interested in being a beta user for this, and help me make a truly useful bot mentor.
[Edit] The bot is current a facebook messenger bot but will be a native app soon, when the details of the chat content are worked out. <comment><USER2> So is this a twitter bot or why should we write to you on twitter? The bot could be interesting, but if this means having to have a twitter profile it negates (for me) the positive impact it could have (I find twitter more of a nuisance and distraction).

<comment><AUTHOR> It's a facebook messenger bot at the moment but it'll be native app eventually when the details of the chat content are ironed out. I hope to continue the FB bot being free forever, but it depends how it pans out..

</comment></comment><comment><USER3> Is a "mental health" bot regulated by the FDA? IANAL but perhaps you should avoid the "health" part and say it's only a motivational bot.

<comment><AUTHOR> Thanks - good point. I need to change the phrasing.

</comment></comment><comment><USER4> Whenever I enter @danfrost, I get a "Dan Frost" with the handle @danfrostgolf. Is that you?

<comment><AUTHOR> No - this is me: [https://twitter.com/danfrost](https://twitter.com/danfrost)</comment></comment>


Web2py - yet another Python web-framework - <AUTHOR> http://mdp.cti.depaul.edu/

<comment><USER2> web2py used to be called Gluon so it is new but not too new. The main reason for bytecode compiling in web2py is that, for each page, the template+layout+included views are converted into a single bytecode compiled file. That means that when serving the page there is no parsing of the template, no pattern matching, no text replacement and therefore it is much faster than the alternative.

</comment><comment><USER3> _web2py is an open source full-stack Enterprise Web Framework written in Python and programmable in Python, designed for agile development of secure database-driven web-based applications._

I couldn't help but chuckle at that description. It has so many buzzwords in one sentence that the word "Python" really seems to clash. "Java" would have seemed more appropriate.

<comment><USER2> If we want python to take over java, we need to speak "their" language. Seriously, why don't you give it a try and tell me your impression? It takes 10 minutes.

</comment></comment><comment><USER4> Looks like some features include being able to byte-compile for closed source distribution and easy packaging (.app, .exe, or .py). That's pretty interesting for people who want to make and distribute python web apps.

<comment><USER5> Or at least, it seems interesting on the face of it. Obfuscation != encryption.

<comment><USER2> True: compiling is obfuscation, not encryption but, the same argument applies to Java, VB, etc. Even compiled C++ can be disassembled. Anyway, web2py inlines some stuff before bytecode compiling so if you decompile a compiled web2py app you do not get a valid web2py app (because there is no one to one match between modules) unless you tweak it. In most of the cases it is not worth the task.

<comment><USER5> If your goal is to deny the competition free code, then, yes. But too often people think that they're successfully hiding some trade secret when they're not.

</comment></comment></comment></comment><comment><AUTHOR> I agree. I do not get why he has chosen to emphasise the ticketing system instead. It seems like a pretty trivial thing to implement in most frameworks.</comment>


Madcap Recap - <AUTHOR> http://startupchumps.com/post/29573517169/madcap-recap

<comment><USER2> Well done guys. It's always good to hear stories from fellow Aussies.

I get saddened every time I hear another startup moving to Silicon Valley from Australia. It is such a shame and I'm not looking forward to moving back there after living in Canada for a year.

</comment><comment><USER3> _Am I anything more than a junkie seeking the ultimate fix? I don't know. I may never know. I'm committed though._

Good line. Feel the same way in science, sometimes.

</comment><comment><USER4> Well done. I suppose.

But may I ask why the hell every startup story has to sound like Indiana Jones going on an adventure.

Why do we keep idolizing stories of people taking huge risk for very little chances of success?

It feels like this is a story from the wild wild west. Because it is. I just hope he's not too late to dig gold.

EDIT: on second thoughts, I commend you for taking on an amazing journey and going full steam ahead. I moved to Australia when I was 21 all by myself, so I can certainly relate. I can't imagine doing it with kids, 12 years later. So bravo.

</comment><comment><USER5> Niiiiice.

This is _dedication_ - not to some pipe dream, not to a pie-in-the-sky fantasy, but to get the job DONE and succeed.

Inspiring and great to read. Definitely cheering you all on :)

</comment><comment><USER6> I admire this guy's spirit. Yes it's tough, but fortune favors the bold.

</comment><comment><USER7> I hope I get to meet you, welcome to SF!

<comment><USER8> Likewise. We're a 500 company so I hope I can grab some of your time. I'll leave you alone for now though as you've got enough on your plate. Good luck for Tuesday @asharppaul

</comment></comment><comment><USER8> Wow. Thanks for the kind words. Didn't think my blog would ever make it to the HN home page.

</comment><comment><USER9> From another aussie, Thanks for this highly inspiring post.

It's good to know there are other aussies out there with the same drive for motivation to succeed.

</comment><comment><USER10> _that Aussie rent-a-cops working in a US Consulate can be real dicks_

This line gives a great idea for a startup. Rent-A-Person for specific occasions or tasks. I mean rent a cook, cleaner, professional trainer, swimming instructor, basically anyone who's willing to show up in exchange for money.

<comment><USER11> A temp agency?

<comment><USER10> One built from the ground up with the idea that people can hire online. Can I rent a clown for my kids birthday party through a temp agency? Can I hire someone to clean my house from that same temp agency? Can I hire someone to detail my car?

<comment><USER12> It's interesting, but you're going to get a _lot_ of human complication involved. You'll need administrators with the expertise to vet all those types of people. If money is flowing through you, customers will expect you to guarantee quality. And guarantee you don't send a criminal into their house to entertain their kids. I did essentially this just for math tutors for the math portion of the SAT for high schoolers. By far the most work was in hiring and managing staff.

If money is _not_ flowing through you then the product is Angie's List.</comment></comment></comment></comment>


Dynamo: A flawed architecture  - <AUTHOR> http://jsensarma.com/blog/2009/11/dynamo-a-flawed-architecture-part-i/ <comment><USER2> Dynamo is still in use, but as with all technologies that have to operate at Amazon's scale, the systems evolve rapidly. The storage systems in use now no longer look like the ones from 5 years ago when Dynamo was developed.

The Dynamo SOSP paper had two goals: 1) show how systems are a composition of techniques and how all of these need to work together build a production system 2) given that it was based on a variety of research results it was intended to give feedback to the academic community about the difficulties of moving from research results to production, and what matters in real-life vs production.

The paper was never intended to be a complete blueprint for easy design of follow-up systems.There just isn't enough room in an academic paper to do justice to that. If it was going to have any role in that the best we could hope for was as a collection of points you would have to think hard about and make decisions about when you were going to design your own storage engine.

That doesn't means I agree with the conclusions of the analysis, on the contrary, I think they are seriously flawed as well (as with everything else that is not absolutely perfect :-)). But I can understand that when people look for the dynamo paper to be a blueprint that solves all their storage needs and provides a perfect available service under all failure scenarios (and solves world peace), that they may be left with a few questions afterwards.

I always thought that the real contribution of the paper was that it made you think hard about the trade-offs you are faced with when you have to design high-available, ultra-scalable systems that are cost-effective and provide guaranteed performance. 5 years later we know a lot more but this stuff is still hard, and we still need to balance rigorous principles with production magic to make it work. But you do need to fully understand the principles before you can make the production trade offs.

Caveat: some of these remarks were tongue-in-cheek fun; I leave it to the reader which ones :-)

</comment><comment><USER3> Basically, the author doesn't understand quorum protocols and draws a bunch of erroneous conclusions because of that.

Here's the core misunderstanding:

"It is hinted that by setting the number of reads (R) and number of writes (W) to be more than the total number of replicas (N) (ie. R+W>N) - one gets consistent data back on reads. This is flat out misleading. On close analysis one observes that there are no barriers to joining a quorum group (for a set of keys). Nodes may fail, miss out on many many updates and then rejoin the cluster - but are admitted back to the quorum group without any resynchronization barrier."

That's because adding a barrier (a) isn't necessary for the consistency guarantee, (b) doesn't add any extra safety in the worst case, and (c) adds complexity (always be suspicious of complexity!)

Consider the simple case of a 3-node cluster (A, B, C) with N=3.

For quorum reads and writes, R = W = 2.

Then reads will be consistent if any two nodes are up. It doesn't matter if nodes A and B are up for the write, then B and C are up for the read -- the reader will still always see the latest write.

Of course you will have to block writes and reads if more than one node is down for either operation. This is what the dynamo paper means when it talks about allowing clients to decide how much availability to trade for consistency.

The rest of the article is basically variations of this theme. (The only way to provide "strong consistency is to read from all the replicas all the time"!? Wrong, wrong, wrong.)

<comment><USER4> I think you're missing the fact that Dynamo uses sloppy quorums (see section 4.6 in the paper), i.e. writes don't have to happen on the first N members of the preference list. For example, if W=3 and the first 3 nodes in the preference list are down, the write would be taken by the next 3 nodes in the preference list. Now if the first 3 nodes come back online, the system would be in an inconsistent state.

<comment><USER3> The Dynamo paper is very information-dense, so you have to do a little reading between the lines. Here's the relevant quote from 4.6:

"Using hinted handoff, Dynamo ensures that the read and write operations are not failed due to temporary node or network failures. Applications that need the highest level of availability can set W to 1, which ensures that a write is accepted as long as a single node in the system has durably written the key it to its local store."

So, if W < N, then N - W writes can be written using hinted handoff to nodes other than the final destination, and forwarded when the natural nodes come back online. BUT the W writes specified by the requested consistency level do have to be to the right nodes or everything falls apart.

This is the implementation that makes the most sense when taken with the rest of the system design, so even though it's not quite spelled out I'm pretty sure that's how it works. (I _am_ sure that's how Cassandra's consistency levels work, as possibly the highest-profile eventually consistent open source database. :)

<comment><USER4> > BUT the W writes specified by the requested consistency level do have to be > to the right nodes or everything falls apart.

The paper doesn't say this. The passage you cited explicitly says that if W=1 any node in the whole system could take the write, contradicting your statement.

Even then, it wouldn't make sense to apply your rule. If W writes have to happen on the first N nodes in the preference list, then I wouldn't need sloppy quorums at all.

<comment><USER3> > any node in the whole system could take the write

No, it says "a single node," not "any node." The distinction is important: I'm saying the former means "a single [real destination] node."

> If W writes have to happen on the first N nodes in the preference list, then > I wouldn't need sloppy quorums at all.

Hinted handoff is there to make "eventually" happen faster for clients who _don't_ specify R + W > N. Not to magically make W not matter for clients who do, because clearly that doesn't work. (And if the authors didn't understand that, why bother discussing W at all? it doesn't make sense.)

<comment><USER4> > No, it says "a single node," not "any node." The distinction is important: > I'm saying the former means "a single [real destination] node."

But the paper explicitly says: "Applications that need the highest level of availability can set W to 1, which ensures that a write is accepted as long as a single node in the system has durably written the key it to its local store. Thus, the write request is only rejected if all nodes in the system are unavailable.". The last sentence makes clear that they mean any single node in the whole system.

Additionally the paper states: "all read and write operations are performed on the first N healthy nodes from the preference list, which may not always be the first N nodes encountered while walking the consistent hashing ring.". There is no mention that at least W of the first N nodes have to accept a write.

<comment><USER3> You're missing the forest for the trees. You're taking a pedantically literal view of one sentence and saying "see? it can't work!" when that interpretation of the sentence in question makes no sense at all when taken with the paper as a whole.

If you want to keep arguing that Dynamo's HH ignores the W value they spend a lot of effort explaining, fine, maybe you're right; maybe Dynamo's authors really are a bunch of idiots. Nobody outside Amazon can say for sure.

But Cassandra doesn't ignore W, and neither does any other actual system I know of: HH is just for the N - W nodes. Because that's the only way to implement it that makes sense. :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> [Disclosure: I used to work at Amazon, but not on Dynamo or Cart, and have no non-public information about those systems.]

I think this is based on a flawed application of metrics from other organizations that do not match Amazon's actual business needs.

The author talks about bank transaction systems with five nines of availability. Sure, you can build a centralized system with a critical core that has near-zero downtime - usually at great operational cost - but there's not a bank in the world that's actually 99.999% available _to customers, over the internet_. Most retail banks I've used take several hours of outages _per month_ for maintenance on their web services.

Amazon wants its systems not just to keep running but to keep taking orders from millions of people all over the world. This means that they are concerned with the reliability not just of a storage server, but everything needed to connect it to its application servers and to customers. They have found that the cost-effective way to do this is to distribute every component across geographically separated datacenters. Amazon has remained available through real and simulated datacenter-wide outages ranging from power/cooling failures to floods, fire, and hurricanes. No Amazon system lives within a single building, much less a single network switch or rack.

Finally, although the formally provable aspects of Dynamo's "eventual consistency" guarantee may be vague, any team operating a distributed system will study and understand the actual operational characteristics in practice, under both normal conditions and various failure modes. Some systems may have realistic failures that lead to days or hours of inconsistency (in which case the team has deliberately chosen this and will write client software to be aware of it); others might be tuned to achieve consistency within milliseconds under normal operation and to set off alarms within seconds after a failure. I've never known any that would be used in circumstances where "human lifetimes" are a relevant time period.

</comment><comment><USER6> I don't agree with all his conclusions. In particular, it seems as though he is saying 'eventual consistency is no practical good' and then beating Dynamo for a few paragraphs with the same stick.

The most often quoted example of Dynamo's use is the shopping cart application on every Amazon page. In the worst case, your shopping cart will mysteriously empty itself. This is a huge pain, and a potential loss for Amazon, but it's not catastrophic in the way that is implied here. Indeed, assuming the liveness of a quorum, the application will read back all conflicting entries for the shopping cart (those that aren't ordered under their vector clock timestamps) and the onus is on it to merge the conflicts. Of course, the shopping cart will take the union of all updates to ensure that nothing is dropped (and therefore some delete operations may be lost).

The key point is that some applications can do without observing a linearisable history, and the interest of this paper is that it explores the design space if you drop that requirement.

I don't understand the post's points about CAP; all three requirements are in tension. Dynamo is unusual in that it is live in the case of a network partition while still maintaining its consistency guarantees.

Similarly - those systems that use chain-replication asynchronously like he describes can still suffer from the same read-old-value-after-it-was-written consistency issue, if the reader jumps between two replicas for consecutive reads. Avoiding that can require synchronous coordination of updates (a la Paxos, e.g.) which is, I think, what the paper is driving at. Otherwise, there are still failure modes which, in order to patch up, require stronger guarantees about liveness of quorums than Dynamo needs.

I understand that Dynamo is no longer used internally at Amazon at scale, so maybe some of the practical points this post makes about the realities of central coordination held water for real deployments. Still, I don't buy the reaction that prioritising availability uber alles and designing a system that does not behave exactly like a strongly-consistent key-value store immediately invalidates it for workloads that have high availability requirements and lower consistency needs.

<comment><USER7> _Dynamo is no longer used internally at Amazon at scale_

That's certainly relevant. I'd love to know more. Do you know why? What are they doing instead?

<comment><USER6> No - all I know is based on rumour.

</comment></comment></comment><comment><USER8> Author somewhat intelligently argues that Dynamo sacrifices more consistency than it gains availability. Part of his argument is the difficulty of truly leveraging partitioning to gain availability, mostly the practical issues of users finding the currently available nodes in such a system. Another is issues arising from nodes re-joining a cluster without first performing a synchronization. He seems to favor the BigTable family, or simple master-slave replication (assuming that the write-load is low enough for this to be acceptable).

<comment><USER9> Except that he leaves out vector clocks and read repair which are mechanisms critical to fixing consistency issues in a dynamo style system.

Also his treatment of partition tolerance assumes that operations set up the Dynamo cluster machines incorrectly; all in the same rack.

He also completely glosses over merkle trees, assuming that the sync they help perform must be a heavy operation.

</comment></comment><comment><USER10> @everyone - thanks for all the comments. i have incorporated the multiple comments about the data loss scenario being incorrect when using vector clocks. i have been thinking too much about Cassandra lately - and it doesn't use vector clocks. that said - i continue to believe that returning stale reads is bad and best avoided and that unbounded stale-ness is not acceptable for many applications. To the extent that this is an avoidable scenario in a tightly coupled environment within a single data center - i consider it to be a significant drawback.

@jbellis - i hope the responses to your comment have convinced you about the problems with the dynamo quorum scheme/read-write protocols. i can convey that the problems i described definitely do exist in Cassandra. Jun Rao has made this point in the Cassandra public mailing lists a long time back and i have a pointer to the JIRA that he filed in my post as well.

regarding Dynamo being an interesting design space and for the academic community etc. That may very well have been the case - but the reality of the situation is that the world is now overflowing the Dynamo clones with people considering them for all kinds of usages. Hey - if it was good for Amazon (and Facebook and LinkedIn) - it's probably good for me! The people trying to use Dynamo clones do not understand all the small details. They don't understand what applications would be safe to write on it and which would not. I hope my posts (imperfect and opinionated undoubtedly) would provide a counterpoint to this sentiment and make users think harder and deeper before they make the leap.

i was also hoping to trigger a discussion (looks like i succeeded). i hope that it takes us to a better design space than what exists currently.

</comment><comment><USER11> @Werner: Darn, someone figured out that Dynamo is a flawed architecture. Luckily its only use is storing hundreds of millions of shopping carts :-)

</comment><comment><USER12> Well, this guy works at Facebook on Hive. If there's no hope for him, how much hope do the rest of us have ;-)

</comment><comment><USER12> Also, Cassandra is a Dynamo clone? Someone should tell them that...

</comment><comment><USER13> Abridged version: CAP is hard/scary and eventual consistency is too complicated. Let's go shopping.

<comment><USER14> Let's all go shopping, eventually.

</comment></comment><comment><USER15> If by flawed you mean scalable.</comment>


How to launder the Bitcoins you just stole from NiceHash - <AUTHOR> https://medium.com/f0lio-cryptocurrency-portfolio/how-to-launder-the-bitcoins-you-just-stole-from-nicehash-465e6791a8d9 <comment><USER2> The article forgot to add that there may still be 'bugs' in monero that will allow someone to track your transactions many years later.

<comment><USER3> Funnel it through dash -> zcash -> monero again :)</comment></comment>


An Argument for Automation - <AUTHOR> https://medium.com/@kentcdodds/an-argument-for-automation-fce8394c14e2#.n0fw2rg8h <comment><USER2> Agree with most of what the author says. In addition, the urge to automate has given rise to some excellent ideas in the world of technology so far (if not most of them).</comment>


Show HN: Voice enabling hacker news - sid- WAs playing with the voice webspeech api and wrote a tampermonkey script to voice enable clicking links
Click anywhere on page body and say anyone of the words appearing in bold font and voila ! it takes you there Please let me know if you find this useful <comment> sid- Sorry about that...heres the link to the sxript ...[https://pastebin.com/ZmNB2DiT](https://pastebin.com/ZmNB2DiT)

</comment><comment><AUTHOR> There is no script or link.

<comment> sid- [https://pastebin.com/ZmNB2DiT](https://pastebin.com/ZmNB2DiT)</comment></comment>


The Anti-Mac User Interface - <AUTHOR> http://www.useit.com/papers/anti-mac.html <comment><USER2> Summary:

In 1996 some academics tried to re-imagine human-computer interaction, and they used the current Mac OS as a starting point (FYI: It was version 7.5).

How Their Predictions Panned Out:

First off, they got some relatively obvious things right: they correctly saw that computers of the future would be hyper-connected instead of isolated (but in 1996 this wasn't exactly a bold prediction), and that they would have hardware orders of magnitude more powerful.

Somewhat more insightfully they predicted that the purpose of computers would shift from mainly solo productivity-type work to games, multimedia, creative, social, etc. They also predicted the rise of alternative forms of I/O, and I think the I/O of Apple's iOS, for instance, is in many ways consistent with what they envisioned.

A few of their guesses have not yet materialized, though. They emphasize the use of "language" over point and click icons. Unfortunately, NLP and AI are harder than they anticipated. If we again look at iOS as an example, touch icons, it seems, are still much more useful than natural language.

The article provides a fascinating time capsule of HCI thinking at the dawn of the Internet.

Incidentally, just weeks after this article was published Steve Jobs returned to Apple and sparked the new generation of interfaces that they could only imagine.

<comment><USER3> " _Incidentally, just weeks after this article was published Steve Jobs returned to Apple and sparked the new generation of interfaces that they could only imagine._ "

In what way were the newer generation of interfaces different to what they'd already described (as the 'mac interface')?

\--

I think we're still using very WIMP orientated interfaces .. most interfaces haven't changed that much. Even iOS / Android use central themes from the old desktop metaphor.

<comment><USER4> Apple's iOS doesn't use windows, all apps are full-screen. IOS doesn't have a menu bar, only an info bar (time, power, cell reception, etc). It doesn't even use a pointing device, and there's no onscreen pointer -- you can use your finger to 'click' (touch) and drag, but you can't point.

Window, Icon, Menu, Pointing device. Only the icons survived.

There's no desktop metaphor either in iOS: no recycle bin, no central file cabinet to browse through, no desktop to arbitrarily place things on, no way to make file folders.

<comment><USER3> * (W) You are presented with modal dialogs (a form of window) at various points in many iOS interfaces - ditto for Android.

* (I) The main way of representing an application is via an icon.

* (M) There are definitely menus in Android. I'd argue that there are also even menus in iOS - lists of options that are allow you select which operation you'd like to perform (e.g. mail settings menu).

* (P) You can point - you use your finger. You can't hover.

It's not really that ground-breaking - it's a relatively small iteration.

<comment><USER4> When using Mac OS X, no matter what you do, there's always a menu bar at the top of the screen. Until recently, all Mac OS X apps had window chrome, even when the application window was maximized. IOS doesn't have any of that -- there are specific situations in which you are presented with a modal dialog or a menu, but they aren't GUI elements that are always onscreen.

Then there's the pointing. In iOS, you can't just point -- to touch is to point+click.

<comment><USER3> I don't understand why these distinctions make any difference? Fundamentally - I think the core elements are very similar - the differences are necessary due to the constraints of mobile devices. Perhaps implementation differs - but I don't see how this makes my point less true.

Are you stating that we actually are making use of interfaces which are groundbreaking (in a similar way to those presented in the article)?

<comment><USER4> I doubt we'll see another leap as huge as from CLI to GUI. But as incremental improvements in user interfaces go, I find iOS (and multitouch control in general) pretty significant.

<comment><USER5>
        I doubt we'll see another leap as huge as from CLI to GUI

Unless you have a particular reason to believe that GUI is the end of evolution, then there's room for massive change.

Circumstances suggest that wimp is not the last word on user interfaces. Some factors to think about:

* The GUI has grown during an era of groups fighting to establish platforms, when there were constant newcomers to the scene which caused a large emphasis on creating systems that are as newcomer-friendly as possible. Those circumstances will change.

* As the scale of data increases, user interface needs change. Consider the progression from flat file structure, to directories on a single machine to searching through large datasets, and the different tooling we use. I deal with large numbers of small files, and have built custom tools to allow myself not to drown in scale. GUI tools and CLI directory systems are inadequate.

* A lot of GUI has been driven by the need to make glossy things that sell, rather than things that are useful. Look at changes to Windows since XP. As free software eats away at territory that is currently commercially viable, this will change. We won't have companies pushing gaudy bells and whistles that have shifted platforms over the last fifteen years. Stability increases in value.

* Plenty of power users have never been happy with the WIMP approach, and consider it a leap backwards from the CLI. 1980s word processing users, unix users, people who knew menu-driven mainframe systems before being "upgraded" to less-useful GUI replacements. There's strong interface loyalty to the Bloomberg interface from people who have also dealt with GUI and CLI tools, despite significant problems in that system.

It's unusual to know about groundbreaking things before they happen. I expect our grandchildren will look back at screenshots of today's candy interfaces and ask how we took it seriously.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> Upvoted in the hopes that somebody will provide a summary...

<comment><USER3> TL;DR - the user interface paradigms that we current use are still pretty similar to the interfaces that were developed at Xerox PARC (bought by Apple). Not much has changed.

It doesn't have to be this way.

What are the principles of current interfaces / what could the future principles be (if we're not stuck with the constraints set by the current batch of WIMP interfaces)?

It's a 'what if' article.

<comment><USER7> Makes sense.

If we take anti-mac as the future principles, then many of them have in some ways become true...

<comment><USER3> Indeed .. I think that's a good point, but I'd also argue that I'm using a WIMP interface right now to write this message.

Maybe Chrome OS is more of an 'anti-mac' interface?

Nielsen's initial summary points out that the article forecast the coming of an 'Internet desktop', but I'm not sure what an 'Internet desktop' is ..

</comment></comment></comment></comment><comment><USER8> The article is quite vague about what an anti-Mac interface would but it does make some good points about the limits of the mouse-window-and-menu GUI.

Especially: Language-like interfaces are better than thing-like interfaces. Interacting with language is a much preferable approach than physically manipulating things, especially since most of what an average user wants to input is discrete, meaningful bits of information (visual and auditory artists are the exception).

Both Google and Quicksilver are example of more "language like" interfaces but there's not too much flesh on the bones of the article's "anti-Mac User Interface".

</comment><comment><USER9> This article shares with many other academic exercises a fine analytical examination of current trends but provides a woefully unhelpful basis for innovation. It sounds merely negative to say that, but I think the problem isn't with the scholarship of these exercises, but the purposes they're put to. Plainly put, academic constraints in all but the most fearless imposes a kind of self-censorship, a desire to present a tidy, well-researched argument that only with extreme caution ventures out on a limb.

Almost the first thing I do when reading articles like this is scroll to the end and see if any actual interface designs are offered. There are none. No criticism is intended; mostly a statement of the obvious!

The frustrating thing is that interface design FEELS like it ought to be the most natural thing in the world, yet even after the first Macintosh in 1984 we are STILL steaming down the track of the window paradigm. Over 25 years it's of course become more 'natural' - which is to simply say more mentally efficient - but thinking outside the paradigm is kind of like trying to imagine a third arm; or at least wiggle an eyebrow you've never wiggled ...

</comment><comment><USER10> There are two distinct way to look at it. The first, progress for the sake of progress is not the solution. However, when you think of it, we have been walking using our legs since time immemorial. Is that wrong or does it call for rapid evolutionary prototyping of humans? Maybe, maybe not?

I remember using one of such revolutionary interfaces recently "Bump top desktop", where did that lead us? I was honestly irritated with it. I am of course talking about the visual interface and not of things like memory of last actions performed and understanding the series of events. The nearest things that comes to my mind is "Clippy" from MS Office. Remember how if you used to paste something in every slide, it used to tell you of the Master Slide View? That is the direction interfaces need to go.

Also has anyone used Soulver? For a real metaphor of calculator in the UI, it goes out of box to solve the way people want to deal with it on computer. Using keyboards rather than click point 1/+/2/=

</comment><comment><USER11> The yearning for the richness of language in computer interfaces is a meme that keeps coming back. I wonder whether there is a way to satisfy that. Here's an idea (around MacOSX) -

Push the dock over to the side as a column and set aside a fixed text box at the bottom of the screen for both text input and output. When you do things using he GUI, the text box should continuously update itself with a textual description of what you're doing, that will also work the other way - i.e. if you'd typed that textual description in there, the same actions would be accomplished. This may setup a dialog between the comp and the user gradually building a vocabulary for linguistic interaction with your computer. Could this be a way to leverage the explorability of a GUI to teach a language using which you can over time become a power user?

</comment><comment><USER12> Since the article was written file search has become much more a part of both Mac and Windows operations. And on my Linux laptop I use dmenu to launch most programs that aren't running in a terminal or important enough to have a keyboard shortcut.

</comment><comment><USER13> In this article they have tried to Think Different for the sake of thinking different. Not bad. But they basically described Linux, Command-Line interfaces, and the Web. Their idea of "language" is basically scripting languages.

</comment><comment><USER14> It's funny the example of an anti-Mac interface is a bookcase — but if you look at the ebooks interface on an iPad it's pretty much that...

</comment><comment><USER15> The fact that is is only beginning, is the reason I want to go into Human Computer Interactions and it is the reason I am truly terrified I am going try and make this magical "anti-WIMP" and then the current paradigm will be too deeply ingrained to make room. This is what I hope the wearable computing niche will find symbiosis with.

</comment><comment><USER16> Using language instead of icons is only useful for advanced users. I love gnome-do/launchy/quicksilver but most people don't get them. It would be bad to think of them as "replacement" for icon. Instead I think it's better to think of them as complimentary components.

</comment><comment><USER17> I think they have the "Feedback and Dialog" and "System Handles Details" in the wrong column. Those should be reversed. Macs love handling all the little "details" for me without letting me change them, for example the mouse acceleration curve.

</comment><comment><USER18> My (in-depth) summary:

The authors (in 1996) imagine what an interface would look like that is inspired by the opposite of all the guiding principles for the Mac GUI.

Mac => Anti-Mac

* Metaphors => Reality

* Direct Manipulation => Delegation

* See and Point => Describe and Command

* Consistency => Diversity

* WYSIWYG => Represent Meaning

* User Control => Shared Control

* Feedback and Dialog => System Handles Details

* Forgiveness => Model User Actions

* Aesthetic Integrity => Graphic Variety

* Modelessness => Richer Cues

The authors then talk about the weaknesses of each of the principles guiding Mac interfaces.

1) _Metaphors_ \- impose artificial restraints and obscure the true capabilities of computers.

2) _Direct Manipulation_ \- repetitive work is better handled by batch processing and simple scripting.

3) _See and Point_ \- language is more expressive.

4) _Consistency_ \- different things should be represented differently, forced consistency is oversimplification.

5) _WYSIWYG_ \- the authors interpret this as meaning "your document, as it appears on the screen, accurately reflects what it will look like when it is printed," and argue that interactivity is better.

6) _User Control_ \- sometimes automation is better, and when there are multiple actors (as in networked systems, like the internet), control must be compromised.

7) _Feedback and Dialog_ \- interruptions should only be made when they are valuable to the user, and over time as he/she gains proficiency they will matter less and less.

8) _Forgiveness_ \- forgiveness means there should always be an "undo" button and warning signs, but this can become a nuisance when the warnings are gratuitous.

9) _Perceived Stability_ \- the real world is not stable because there are forces beyond our control, and that's what makes life interesting. (This principle is curiously missing from the table summary in the article).

10) _Aesthetic Integrity_ \- variety is more interesting and expressive than unity.

11) _Modelessness_ \- this is defined as not having "modes" which restrict the user's range of actions. The problem is that users can only cope with so much at once, modes help chunk things up.

\</comment><comment></comment><comment>-- Next: The Anti-Mac Interface </comment><comment></comment><comment></comment><comment>--

This was a pretty time-consuming summary, and I'm kinda wanting to get back to work. Want me to write a summary for the second part of the article? Use the upvote as a demand signal. If this gets 20 upvotes I'll summarize the second part.

</comment><comment><USER19> I wonder how close Mac OS X comes to the Anti-Mac interface, given that it includes a command line.

</comment><comment><USER20> The result is Microsoft-Bob-esque.

<comment><USER21> Not at all. The article even makes references to Bob and similar systems, and explains why they didnt work.

</comment></comment><comment><USER22> Appears to be from 1996.

<comment><USER3> I think the 1990s were an interesting time for the Internet. Lots of crazy thinking about what it could become - large ideas, less fixation on profit and commerce. Lots of theory.

<comment><USER14> If you look at the success of Windows 95 in that era (and what failed) it was very much about the money as much as the theory in that era. What's interesting is that when the article was being written Jobs was working on NeXT which is still alive today on your Mac and iPhone.

<comment><USER3> I agree - commercialism was around .. but not many companies really understood how to monetise the web in the early / mid nineties. For example, Bill Gates famously didn't think the Internet would catch on, and assumed that MSN would be most people's choice of walled-garden alternative.

The WWW was just another application for the Internet (along with Gopher / FTP / Usenet / IRC) - and therefore wasn't seen _as_ the Internet.

Because the technology was relatively new, I think people were interested in taking risks - user expectations hadn't been set in stone, and innovation could be less about iteration and more about being bold / daring.</comment></comment></comment></comment>


Show HN: Etcports – Map any domain to any port (api.example.com-localhost:3001) - <AUTHOR> https://github.com/asleepysamurai/etcports <comment><AUTHOR> I made this little helper utility, since I often needed to test out an API client, with the dev version running locally. Like how /etc/hosts maps domain names to ip addresses, /etc/ports maps domain names to specific ports.</comment>


Can I be able to start a company in US from India? - <AUTHOR>

Hi,
 I am from New Delhi, India. Is it possible for me to finish a product and start a company in USA. Should I be able to raise money from VC's if my product has few thousand users and is getting good traction? What are the options for people like me to penetrate into US start up world. <comment><USER2> I guess you can partner with an american to make things easy for you. Offer him/her some equity and ask them to start a LLC.</comment>


Code library - <AUTHOR> http://snippetlib.com

<comment><USER2> This is great, I'd like to see more snippets for beginners.</comment>