hacker news with inline top comments    .. more ..    22 Feb 2014 Ask
home   ask   best   5 years ago   
Ask HN: Why isn't Erlang more popular?
152 points by gordonguthrie  12 hours ago   206 comments top 75
jerf 11 hours ago 5 replies      
Honestly, I think what kills it is that it's not an Algol-descended language [1]. If Erlang was written with an Algol-esque syntax it would have taken off years ago. But instead it has this weird syntax, which it then doesn't really do that much with. What do I mean by that? Haskell has a radically different syntax, but it does things with that syntax and its pervasive currying to enable a powerful succinctness that one can not imagine being translated back into the Algol-esque framework. Lisp does things with its bizarre syntax, making it obvious how to write correct macros and being homoiconic, which translates poorly back into Algol-esque infix languages. It's almost inconceivable that one could translate a concatenative program back into Algol-esque syntax [2]. But Erlang really doesn't do anything that couldn't be in Algol-esque syntax. (Near existance proof: Go. Yes, there are significant differences, but the two are inter-transliterable to a much greater degree than any pairing of any of the previous sets of language families.)

If it had an Algol syntax, and performed the SSA transform behind the scene, it would probably be very, very big now.

Bear in mind as I say this that I'm not necessarily advocating for those changes. For instance, this would require some tweaks to the semantics of pattern matching, too, which aren't necessarily for the better... in the abstract. However, they probably would be for the better in terms of usage.

I'm pretty sure Go is going to eat Erlang. Erlang programmers will 100% absolutely correctly complain that OTP can't be translated without loss into Go, and almost nobody will care. Again, I'm not necessarily advocating for this, because the Erlang advocates will be right, you just can't quite get it fully expressed in Go and that saddens me, it's just what's going to happen, I think.

In fact I'm doing it myself; the Erlang core of my system is getting pulled out and replaced by Go for a variety of reasons, and one is despite the fact my team is fairly adventurous over all, we're still better off finding people to work on Go than Erlang. (In the next couple of months I hope to release my first release of "reign", "Rewrite Erlang In Go Nicely", which brings some of the Erlang stuff into Go for the purpose of porting existing programs. I've been pulled into other fire fighting so I'm not on it this second, but I'll be getting back to it soon. That implements Erlang-like mailboxes and network clustering, and I've got a supervisor tree implementation on deck for Github too. Subscribe to https://github.com/thejerf to see when those come out in the next couple of months.)

By the way, Erlang advocates, bear in mind that trying to argue me out of this position is a waste of time. I've been programming in Erlang for 7 years now. I get the syntax just fine, even if I still don't like it. The problem is that you have to argue the greater programming community out of this position, and I don't think you have, and I really doubt you can. For better or worse, being non-Algol seems to put a hard limit on your general-purpose programming acceptance. (In my opinion, that is for the worse, but here we are. Again, please don't mistake this opinion as celebration of any of these facts. My opinion is that Erlang deserves better. My belief is that it won't get it.)

[1]: That's pretty much every modern mainstream language today: C(/++/#), Java, Python, Javascript, etc. Not all those languages come from the same semantic heritage (scripting vs. conventional OO manifest types being one big example), but they come from the same syntactic heritage. Contrast with the ML family, the Lisp family, the Prolog family (which is pretty much just Erlang now), and the Forth family for different syntactic heritages.

[2]: http://evincarofautumn.blogspot.com.es/2012/02/why-concatena...

DougWebb 11 hours ago 5 replies      
I haven't looked at Erlang before, so I thought I give it a quick look. Google led me to the Erlang home page[1], which has "What is Erlang" (sounds good) and "What is OTP" (which doesn't bother to define what O, T, and P stand for.)

Following the Erlang Quickstart [2] link, I get a page that doesn't really tell me anything about the language. It demonstrates a program that implements a factorial function, then tells me to go write games. Other than "Burn the CPU", I'm not sure what kind of games I can write with what I learned here.

The first link to more documentation at the bottom of the page goes to a book's website, so that's a dead end. The second link goes to an online reference guide [3] which seems more promising, until I read the introduction [4]. Under "Things Left Out" is "How to communicate with the outside world". Hrm...

So, what I have so far is that Erlang is a functional language, and that the online reference doesn't cover interaction with anything outside of your program. Based on this I'm guessing that Erlang is one of those functional languages that are great for mathematical proof-like software development but not practical for solving actual problems because the world is mutable and the language constructs are not. Yes, I'm making a big inference here, but that definitely seems like where I'm heading.

So I'm going to stop here, and do some real work in a pragmatic language.

[1] http://www.erlang.org

[2] http://www.erlang.org/static/getting_started_quickly.html

[3] http://www.erlang.org/doc/getting_started/users_guide.html

[4] http://www.erlang.org/doc/getting_started/intro.html#id62800

jaimebuelta 11 hours ago 1 reply      
Erlang is a very specialised language. It does one thing well (scalability) at the expense of not really being a general purpose language.

The syntax is just weird, not only in a paradigm-way (pattern matching is not huge in most languages, but, hey, that's the way of doing stuff in functional programming), but on strange places ("read" lines ending on dot, semicolon takes time, it does not share any common syntax definitions with the languages used by 99% of the programmers). That sets a high bar in approaching the language, so it's difficult to "play around" with it (at least compared with other languages)

While I like some of the advantages of Erlang, the lack of general support for a lot of common operations (and yes, string manipulation is a huge deal) and the fact that it is designed with a very very particular problem in mind makes it "a silver bullet". Not in the usual meaning, but in the way that's only useful for killing a werewolf. For every other task is too expensive and just not the proper tool.I was involved in a project that used Erlang for something not well suited for it, and it was absolutely awful, you have to wrestle with it to perform common stuff that in other languages is done by the standard library. Again, you win something, but only in a very very VERY specific problem.

(I've used it in another project when it was the proper tool, and, in that case, it's still not the most pleasant experience, but you're getting a clear win)

technomancy 11 hours ago 0 replies      
My theory: writing network servers that are not web servers is a relatively uncommon problem to have these days.

One of the hardest parts about learning a new language is coming up with a learning project that showcases the unique strengths of the language without being intimidating to a newcomer or too contrived to actually be useful. This is difficult in any language, but it's especially so in Erlang.

Obviously "it's different; people don't like things that are different" has a lot to do with it, but we've seen other FP languages experiencing faster growth recently, so I don't think that can be the only cause.

I've been using it for a few months, for what it's worth.

Edit: obviously there are lots of people who need to write concurrent network server clusters, but I'd argue that the benefits of the Erlang approach are difficult to grasp before you've actually deployed something written in Erlang; simple toy projects (which are a prerequisite to learning a language) don't usually play to its strengths. A language that's really good at web apps is going to grow more quickly simply because its advantages are easier to appreciate from the start.

cia_plant 11 hours ago 1 reply      
I think the majority of programmers are very conservative about language, they use whatever they already know, be it Java, C#, C++, ruby, etc.

A minority are more fashion-driven - if something seems like the hot new trend they'll jump on it, scoffing at the old-fashioned crap their coworkers are using. Erlang unfortunately is not fashionable, and it's hard to predict or control fashion.

A smaller minority are driven by some concept of technical merit. However, once you've strayed from the safety of Java/C#/etc., it seems like you might as well go all the way and get into Haskell, which is pretty widely seen as the most advanced, mind-expanding, powerful, futuristic programming language right now, and for good reason.

lincolnq 12 hours ago 1 reply      
I've tried using Erlang once or twice. I inherited an open source project written in it, wanted to maintain it a bit but I couldn't make head nor tail of it, and I'm a good programmer (but very busy with other things). There were too many things to learn to get started working with the Erlang ecosystem and I didn't really have the time.

I didn't find any good tools.

The error messages were obtuse.

I didn't understand how simple shit like configuration files worked. I couldn't find any place where the file was 'opened' from code. I chalked it up to the magic of the underlying framework or whatever.

redthrowaway 11 hours ago 3 replies      
Fun fact: I did a co-op at Ericsson in second year. I asked my interviewer (later boss) if they used Erlang at all, and she'd never heard of it. Some of the hackers in the company had a limited degree of familiarity with it, but none of the PMs/managers seemed to know what it was.
arh68 11 hours ago 2 replies      
Popularity is probably the worst metric for a programming language. Programmers conflate popular for good pretty often. They line up often, but they are orthogonal. The original question is loaded. Why not ask "What usually increases a language's popularity? How can these effects be applied to Erlang?"

Now the answers are a bit more useful, a bit more constructive:

* write more, better docs (Erlang for Java programmers, .. for JS devs, .. Ruby, etc)

* polish the websites, improve search rankings for helpful links (the standard library, etc)

* write at least one good O'Reilly book

* write lots of libraries, especially web frameworks

* integrate seamlessly with other platforms (possible with Clojure, maybe not Erlang)

* upload screencasts "15 Minutes in Erlang", etc

* ...use your imagination

Lisp is another prototypical "our language is awesome, why is it dying?". FreeBSD used to get joked on, too. Well la-dee-da, Erlang on FreeBSD can be a winning combination! These technologies will remain good, but they won't magically make themselves popular. It's not if-you-build-it-they-will-come anymore. There are too many programming languages to get acquainted with even 20% of them. Languages need to be more competitive to be more popular.

RogerL 2 hours ago 0 replies      
I looked at it, even bought a couple books. A guy here at work was a huge booster for it, and used it in some small piece of production code. It looked cool, and I love parallel and distributed processing, so the idea of 'fail fast' appealed to me because of how it seemed to simplify a lot of thinking about such things. Hot swapping sounds awesome.


1) I don't currently do much that requires any of that.

2) I don't want to learn a completely different 'kind' of language just to hit one pain point.

3) Resources are quite limited (re the website, training, books)

4) and this is the biggee: I just don't want to do functional programming. Our Erlang booster? Want to know how much time he sometimes spent on mailing lists and such asking "how do you do X"? I mean for pretty basic stuff. I get the value of functional programming and immutability ("oh no you don't" you'll respond, but bear with me), but in the end it is too high a price to pay FOR ME. I work in imperative languages, I am comfortable in them, I can't get away from them (I need C++ for speed, for example), I'm just not going to take on a language that kicks my legs out from under me like that. Y'all can argue about the finer points of functional vs whatever, but I'll abstain. I'm interested in solving my problems, and the imperative model works very well for my brain and needs.

So, for me, an interesting toy. I'm 47 and don't have time to chase 'yet another language' which is all this is for me.

Now, if I was trying to solve issues like the ones that got Armstrong to write Erlang in the first place, perhaps I'd revisit it. But as it is? No. No time. Not enough return on the investment.

gordonguthrie 12 hours ago 1 reply      
Pierre Fenoll has provided a link to an extensive list of links (and summarised them) about why it has not taken off:https://github.com/fenollp/kju/blob/master/criticisms.md
captainmuon 11 hours ago 0 replies      
It's just not suited for what I do. At work, I do number crunching. Essentially a bunch of simple calculations in a for loop. C++ is excellent for this. I use a lot of Python for rapid prototyping, and as glue code. When I need to do concurrency, it's usually the easiest thing to run multiple instances in parallel, or to submit jobs to a cluster. There is already a well-tested infrastructure in place, and I don't need all the fancy stuff erlang has in this area.

Second, but more important, my colleagues know C++ (good enough at least). If I started to use something else, we couldn't collaborate. We're physicists, not computer scientists or professional programmers.

Then, I often find myself writing GUI code. I wouldn't know how to start writing a GUI in Erlang, but it's trivial in Python or C++.

If anything, I would need a language centered around mutability, so almost the opposite of erlang. A language where everything is mutable, where you can databind to any object. Where you can just make an array of objects and bind it to a graphical widget, and get create, edit, update, delete operations for free. You never have to write `listview.insert(...)`. Maybe the command pattern is part of the language and it is trivial to write an undo function. And finally, it would include multithreading, with only a simple syncronization primitive, the transaction. The goal of concurrency here would not be speed, but GUI responsiveness.

So, I have two very different use cases, for one I can use C++, for the other the ideal language has not been invented (but C# and Python are both not bad). I just don't know what to do with Erlang (and Haskell, Clojure, and all the other hip languages).

astine 11 hours ago 0 replies      
Learning Erlang has been on my todo list for years now. I know Java because I was exposed to it in school and had to use if for work. I know Perl because I've had to use it for work. I know C because I've had to know it for projects and some work. I know javascript because I have to. I know Common Lisp and Clojure, because I want to.

Erlang belongs in this category of languages that have really cool features but which almost nobody has to learn to do a certain job. Nearly everything you can do with Erlang you can do with something else and there are a lot of languages that are necessary for one purpose or another and can't be replaced with Erlang. This is usually because said language is so entrenched in a space that it doesn't make sense to use anything else.

The end result is that programmers only have so much time and only so many projects that they can reasonably devote to their 'fun' language and there are a lot of those from which to choose. Erlang isn't competing with Java, it's competing with Lisp, Smalltalk, Factor, Haskell, OCaml, etc. That's a long list of competition.

pbnjay 11 hours ago 0 replies      
I tried it for approximately 6 months (a few years ago). I translated some slow python into fairly idiomatic (IMHO) erlang and got some pretty significant speedups. I had vary little functional programming experience before that, so my comments here come with that caveat.

My hangups:

- lack of easy-to-use string libraries. far and away the biggest pain point. working in bioinformatics, I deal with a lot of poorly-formatted text.

- installing erlang itself was fine, but installing (and finding) any other packages was a PITA.

- documentation could have been better. I can't remember what specifically I disliked but remember being frustrated trying to find info about builtin nuances.

- syntax. this one seems silly from the outside, but the whole commas-here-but-definitely-not-there and other idiosyncracies really made tweaking code and debugging a pain. Go has similar pains around the "unused variable" errors so I know this type of thing isn't particular to erlang.

thedufer 8 hours ago 2 replies      
I haven't used or looked at Erlang, but bear with me.

* no package manager

This is _huge_. For example: I currently work very heavily with node.js. I understand all of the many, many problems with javascript. NPM single-handedly makes up for all of them put together, in my eyes.

Which is to say - an amazing package manager can make a poor language. A decent package manager (pip, for example) allows a nice language to shine, but won't make or break it. Lack of a package manager could probably kill just about any new languages these days (and Erlang - correct me if I'm wrong - appears to have the popularity of a pretty early-stage language right now).

paperwork 11 hours ago 1 reply      
Like Clojure, I like that Erlang has lots of interesting ideas. I may never use either in production, but Erlang's OTP sounds very interesting as a way to handle real-world scenarios like failure handling. Similarly, Clojure's datomic, core async, etc. are interesting ideas, implemented by people with good taste.

However, too many examples show trivial things like mapping over a list or calculating something recursively. As a professional programmer, I get how those things wrok. What sets these languages apart from Javas of the world is how state is handled. It isn't easy to dig through tutorials and docs to find the best way of keeping state, updating it, referencing it, etc.

I once attempted to implement a small order matcher (from the stock trading world) in Erlang. I know how to do it in imperative languages, but it was pretty painful to do so in Erlang. It was getting very verbose, I wasn't sure how to create a priority queue, how to modify elements in a data structure, etc. Since this wasn't a simple transformation of data, I had a hard time finding references in documentation spread across the web.

I realize that if I was committed to learning Erlang, I would work through a book or two. Perhaps find a small open source project and work through the implementation. However, I, like so many others, wasn't committed. I was merely trying it out and when I couldn't make progress, I decided to use my precious free time on something else.

jeffdavis 4 hours ago 0 replies      
Shared state is great as long as you control it.

Databases are a giant blob of shared state, albeit a carefully-managed one. People complain about them all the time, but databases completely take over in huge areas of the application development landscape. There's a reason for that -- consistency is a very powerful simplifying assumption (giant understatement). Getting consistency in erlang may be possible, and of course you can still use a database from erlang, but the philosophy doesn't quite line up.

Databases already offer isolation between transactions. And they naturally work with immutable structures similar to functional programming.

For most applications out there, HA means replicating a database, and when it goes down (which is actually quite rare), you lose a little time doing a failover.

Hot code loading means uploading a PHP file with a new extension and "mv"ing it over the old one. Need schema changes? PostgreSQL offers transactional DDL (e.g. ALTER TABLE).

Any error in the database usually just causes that one transaction for that one request to fail. Any error in the application usually just crashes that one process serving that one request.

Philosophically, using erlang is trading consistency for availability. Given that it's easy to get good availability using normal applications connected to a database, using erlang is somewhat of a niche.

I have spent some effort learning erlang, and I really like it in many ways. I bought the new book and I like it so far. I have no problem with the syntax and I find it enjoyable to write in (though I haven't written any large programs). There are certain projects where I think erlang would be a great choice, like management and control of a cluster system. Obviously it works for telco-like things, too, but I've never developed anything like that.

prodigal_erik 9 hours ago 2 replies      
To me it sounds like Erlang's biggest departure from the mainstream is http://c2.com/cgi/wiki?LetItCrash, casually letting processes die and be recreated. When I put effort into actually using a niche language (as opposed to merely learning it for fun) I expect it to enable me to write software that's less embarrassingly defective than everyone else's, where Erlang only seeks to reduce the pain from my doing bad work.
nousernamesleft 11 hours ago 1 reply      
I have "tried it & stopped". I only tried it to check out webmachine, which appears to the be only web framework in existence that is not stupid and terrible. I stopped because I was done trying webmachine, and went back to my normal language that is much nicer than erlang (haskell).

I don't think my experience with erlang has anything to do with the reasons it isn't more popular though. The biggest thing I see is the lack of module/library/package management. CPAN was a big deal. It is now expected that every language have their own CPAN. I think the lack of one is a huge problem for any language, erlang being a good example. I think it is also a big reason that ocaml and haskell went from being "ocaml is the more commonly used one" to "haskell has ten times the userbase of ocaml".

waffle_ss 10 hours ago 0 replies      
I fall under the "tried it & stopped" category.

I stumbled upon Erlang in 2011, and did the full "Learn You Some Erlang for Great Good!" tutorial and about 1/2 of the Erlang Programming book (and exercises). Where I ended up is that I had no real-world use cases that would benefit from Erlang, so I just kind of atrophied with it. It seems to me like Erlang is really really good at building programs that can be modeled with message passing (like chat), but a lot of problems are difficult to map to that paradigm (or perhaps my mind just has trouble envisioning how to do it yet). The closest I got was starting to use it to write a distributed Web crawler, but I ended up using scrapy (a Python framework) because the string manipulation was annoying with Erlang, and scrapy already had a lot of features that I would have had to re-implement on my own. But as I'm starting to try and manage crawler distribution with Celery and RabbitMQ, I find myself starting to think more and more about how Erlang would probably do this bit in particular better, so I might return to it.

The language that I've since discovered I really want for most tasks is Haskell. I've been programming Ruby full-time for the last few years, and I've grown really jaded with it. I get sick of having to write so many unit tests around everything in what I see as a poor fix for its loosy-goosyness. I'm still pretty early on in learning Haskell, but I find the approach towards correctness first to be exactly what I want, and while so far some of the material is pretty challenging I can see it will be very rewarding as well.

bunderbunder 10 hours ago 0 replies      
Based on my (limited) experience. (Learned it for the sake of learning it, thought it was fun to work with, not considering using it for any serious projects.):

I think it's similar to the reason why DSP's aren't very popular compared to general-purpose CPUs for most tasks. It's a very specialized tool, designed to solve a very specialized problem. If you don't have that problem, it's not a practical choice because it's more difficult to use and often ill-suited to more common problems. I'm sure plenty of others have mentioned strings already.

Even if you do have that problem, but only a little bit, it might not be a practical choice. There are a lot of tasks where a DSP might perform better but a general-purpose CPU's still preferable because it's good enough, and the skills necessary to work with one are more common. The story's similar for choice of programming language in many applications that require concurrency and fault tolerance, but not to any particularly great extent.

rvirding 8 hours ago 1 reply      
I am not going to enter into a syntax argument I have already given my views on that here http://rvirding.blogspot.se/2014/01/erlang-syntax-again-and-... . My main point is that the syntax is simple and that it fits the semantics much better than anything based on an Algol like syntax would, even one which uses ';' in the "normal" way.

And one reason it works is because it has built-in those features for building fault-tolerant systems which, for example, Go lacks. Borrowing from NASA "Failure is not an option".

wcummings 11 hours ago 0 replies      
Erlang is dogmatically functional and smells of prolog. Most people don't know what to do with it.

I love reading all these posts about new cool-kid concurrent languages when Erlang has decades of maturity and a sophisticated scheduler that kicks the shit out of go/rust/scala/insert cool new thing.

Source: I've used it professionally and its my language of choice

squigs25 10 hours ago 0 replies      
Never used it, have thought about spending an hour or two to play with it but ultimately:

There is no good reason that I have encountered yet where I need to use it. Generally I think people try to use the tools they have at their disposal to solve a problem. I have python, and I can do most things in python. It's not always efficient, and as an example, when I first started using python, I blindly used urllib without thinking about it. The requests library has been getting momentum recently, and I found that I prefer it and that it simplifies some of what I do, but at the end of the day why would I have searched for an alternative if what I had was working?

As developers we have to value our time. In an ideal world we would learn everything there was to know about every programming language, and pick the appropriate language for each project. In reality we stop to think that a language is capable of achieving a task, and if it is, we don't look any further.

Ironically, the reason so many people use c/java/python/ruby is because so many people use c/java/python/ruby.

501 6 hours ago 1 reply      
I've posted these before[1]:

* No public bug tracker

* epmd's security (or lack thereof)

* Can't insist that epmd be started separately (`erl -no_epmd` won't start epmd but it also won't start epmd's gen_server)

* Can't swap out epmd because while `erl -epmd_module foo` is there, `net_kernel:epmd_module()` is barely used. (Although I don't think its interface is documented anyway)

* No built-in way to hook UNIX signals

* While the documentation itself is pretty good, it's presentation is lacking and it's difficult to quickly correct mistakes as you run into them

* It can be difficult to reason about when a shared binary will be garbage collected

* OS packaging (I'm thinking of Debian/Ubuntu) of Erlang and Erlang apps tends to be more harmful than helpful (old packages, namespace conflicts, etc)

To them I'd add:

* No agreed upon build tool (rebar while prevalent isn't universally accepted)

* Community libraries often have no support for upgrades or aren't packaged properly for releases

* Can't upgrade SSL if you're using it as a carrier

* No standard code format tool like gofmt (yes I know about erl_tidy, no it doesn't provide the same functionality as gofmt or it'd see similar use)

* Not enough infrastructure around built around edoc; where's the godoc or godoc.org work-a-likes? (yes I know about erldocs.com, it's no godoc.org)

[1] https://news.ycombinator.com/item?id=5801706

bandris 5 hours ago 0 replies      
Rails made Ruby very popular.

Django made Python very popular.

There is no killer webframework for Erlang. However, N2O looks promising. [1]

Also, the learning curve: I took me half a day to be good enough in Python and years to learn the basics in Erlang. It is way more complex and the standard library is plagued with inconsistent/messy interfaces. (They say it is because of legacy code support or other BS.) But under the ugly surface lies the hidden beauty: single assignment is great when reading other people's code. Patching several running servers without stopping with one command is thrilling. Or the built-in nice abstractions for distributed programming like rpc:multicall [2].

[1]: http://synrc.com/framework/web/

[2]: http://erldocs.com/R16B03-1/kernel/rpc.html#multicall/3

eliah-lakhin 12 hours ago 0 replies      
In my opinion, there are three main issues:

1) The Language actually is not general purposes. Or at least it is not promoted this way. If you really need Actor based model and lightweight threads, you can choose Scala/Akka, that is also well suitable for a wide range of different objectives.

2) Standard library(I mean OTP) is simply ugly.

3) Language's syntax is ugly too. Pascal again? No, thanks. :) I know there is Elixir that fixes most of the issues, but too few people know about it outside of the Erlang community. When someone mention Erlang he/she probably thinks about "vanilla" Erlang, which is ugly again.

P.S. I had been using Erlang for a while and then stopped.

room271 10 hours ago 0 replies      
I like a lot of things about Erlang. But the main reason I would be wary of using it is that it seems like an all-or-nothing kind of thing. The distributed actor model effectively means Erlang everywhere. This contrasts with RPC, queues, http, etc. where a variety of technologies (and languages) can be combined together. And an all-in approach seems laden with risk - all devs and relevant technologies need to fit in with the Erlang stack.

And if you are not using distributed actors, then why bother with Erlang at all?! (It's a nice language to be sure, but there are lots of nice functional languages available so the competition is pretty fierce).

9999 6 hours ago 0 replies      
I've actually always wanted to use Erlang and I've worked on quite a few projects where it probably would have been the best solution possible (massively concurrent websocket backends for example). The two things that made Erlang a non-starter on those projects were:

1) It's hard to find people that have production experience with Erlang2) The perception is that batteries are not included (even in comparison with Go... if you have some information to refute that notion I would be more than happy to learn more)

seldo 11 hours ago 6 replies      
Since you asked: I have never tried Erlang because I've heard it's like Haskell but harder to learn, and Haskell already breaks my feeble mind, so I have steered clear. This may or may not be an accurate picture, but it was my decision-making process. I have no programming problems that make me think learning a whole new language would be worth it (on top of my existng stack of 10 or so).
stdbrouw 11 hours ago 0 replies      
As an everyday language, it seems too different to get used to. As a language you learn to expand your horizons, it's not weird/different enough when compared to e.g. Haskell and Lisp.

Also, Erlang has long had an excellent reputation for performant, parallelizable code, but Go and node.js have stolen some of their thunder on that front. (I'm talking purely marketing-wise, I don't know enough to compare them technologically speaking.)

I'm not sure if "no platform / no package manager" really matters.

People first learn a language and get excited about it, and then if something irks them, they'll scratch that itch. It's like that famous de Saint Exupry quote: "If you want to build a ship, don't drum up the men to gather wood, divide the work and give orders. Instead, teach them to yearn for the vast and endless sea."

The node.js ecosystem was absolutely awful at first, and the deployment story really only got fixed about a year or longer after the first release of NPM.

chc 11 hours ago 0 replies      
A language needs to get a foothold somewhere. Ruby started on the low end and worked its way into a position of power. Java started in the enterprise and became normal thanks to catering to their needs so well. Erlang is in an awkward place where it solves certain problems well, but there is not a big class of user for it to get a foothold in. It's not better than Ruby at bring Ruby and it isn't better than Java at being Java and it isn't better than C at being C.
ssmoot 11 hours ago 0 replies      
I found learning Erlang difficult since pattern matching is poorly justified in the material I came across. You don't see the benefit right off the bat.

Also, the "processes only" model is pretty off-putting compared to Scala IMO where you're able to choose between threads and processes. You lose _some_ benefit in reliability (I assume, since it's said so often), but I've never seen that actually play out in the real world. What I have seen is comparably slow IPC exactly a real world development cost. So I'm personally more of a "in-process first" kinda guy.

I may be completely wrong on that one BTW. It's just what I recall from reading half of some Erlang book and studying online material trying to pick up the language.

It wasn't until Scala and Akka that the benefits of both pattern-matching and actors really clicked with me. Though I still prefer Scala's versions on both counts so I don't feel a great need to revisit Erlang at this point since I'm not working with Telco equipment. ;-)

swvist2 8 hours ago 0 replies      
I have tried it and (try to) use it when appropriate. I am fairly comfortable with it and my only disappointment is that I do not get to use it often.

The ability to solve a problem in a particular programming language is often dependent on the ability to express the problem in the constructs provided by the language. A very good example is the problem of concurrency. Doing something concurrently in a primarily procedural/OOP language often seems hacky and it is something that does not feel natural. The actor model that erlang implements is a very powerful model for certain class of problems and concurrency is one of them. Erlang the language, minus the OTP, is extremely small and once you get over the culture shock experienced when it comes to syntax, things will seem pretty easy. OTP isn't magic. Its years and years of erlang experience packaged into one neat library, solving commons problems, so that you can concentrate on your work instead of reinventing the wheel.

Reading Joe Armstrong thesis 'Making reliable distributed systems in the presence of software errors'[1] is highly recommended if you want to understand why things are the way they are.

[1] : http://www.erlang.org/download/armstrong_thesis_2003.pdf

pessimizer 9 hours ago 1 reply      
Tons of people mention Elixir in threads like these. Is anybody actually using it in production, or is it just something that Rubyists use as a foil to criticize Erlang's syntax?

I feel the algol-ization of (functional, prototypical)javascript is a confusing mess and a weakness that makes js harder to use. Making Erlang look object-oriented just seems awkward.

Syntax: comma means AND, semicolon means OR, period means "done." Is that so crazy? There's no comparison to how badly Perl does my head in.

_halgari 11 hours ago 1 reply      
Before finding Clojure I dabbled in Erlang. In the end I found the "share nothing" model to be too limiting. Sure its great for highly fault-tolerant systems. But the fact is I just don't need that most of the time. It's just easier to setup a AWS autoscaling cluster of web servers running Clojure and be done with it.

Oh yeah, and Clojure beats the pants off Erlang when it comes to performance. Even Erjang is faster than stock Erlang.

bfrog 11 hours ago 1 reply      
It has a huge learning curve compared to many other languages.

Ask the simple question of how do you write the equivalent of

int main(....) { ... } and well... there isn't one!

You are almost forced, from the start, to learn about releases and a ton of other really complicated stuff just to write a program you can share. Its sort of being fixed with relx.

Secondly no one seems to understand pattern matching at first. Its just such an alien concept when you look at it compared to all the other mainstream procedural/oo languages people usually already know. Again a huge cliff to climb to really grasp the possibilities and usage.

It really is quite a great language, and an even better runtime. The learning curve to making great things with it is just quite high in my opinion. I've done two major projects with it, one shipped as an embedded web app in some lab equipment out there. I think it was a good choice!

bsder 3 hours ago 0 replies      
Erlang isn't more popular because to be popular you need to be at least passably good at a lot of things. There is a lot of stuff where Erlang makes life hard. Operating system integration, lack of IDE, imperative programming, UTF-8 manipulation, and maps (which just hit the language) are all good examples of things that Erlang gets stomped on by most more "mainstream" languages.

That having been said, anybody who is serious about concurrent network programming knows about Erlang. The problem is that those people are far outnumbered by the people doing CRUD all the time.

nfm 7 hours ago 0 replies      
Never used Erlang nor considered it, for the same reason C programmers don't start rewriting their code in Python: it's just not the right tool for the kind of stuff I work on.
jwatte 7 hours ago 0 replies      
We've developed and run a rather large erlang cluster (> 100k simultaneous users) for several years. It's pretty clear that OTP is not ready for that scale -- most of our big bugs have been in the libraries and OTP, not in our code. Couple that with the poor type safety at compile time, and a "in place update" model that doesn't actually work for "many times a day" continuous deployment, and I feel it's not lived up to the hype.We also run PHP, C++ and Haskell stacks, each of which has had less environment-based problems.
dwb 9 hours ago 0 replies      
I really think moaning about the syntax is a bit pathetic. It's not what most programmers are used to, sure, but it's hardly Malbolge, is it? If Erlang/OTP is a good fit for your problem, use it. Learn the syntax. It's really not that hard.
timje1 11 hours ago 0 replies      
I learned Erlang at University, and haven't come across it in the real world yet. I've mostly been locked into Microsoft houses since I graduated.

It's not wasted, though. I use my knowledge of functional programming to write better, more stable programs in Javascript and C#.

The lessons of Erlang, of what can be achieved when one shrugs off the burden of state... are extremely valuable in scalable, concurrent programming - regardless of language.

skittles 11 hours ago 1 reply      
Erlang needs a production quality web server that is a fully compliant OTP application, and mnesia needs to have its dependency on dets abstracted away so that other storage engines can be used (relational database of choice, dynamodb, etc.). This would give a web developer a single platform that is extremely fault tolerant and scalable. This sort of thing may be possible (by using an embedded web server wrapped in your own OTP code and by experimental mnesia extensions), but it wouldn't be easy to get it set up and working.
mstump 12 hours ago 0 replies      
Something not mentioned in the the list of criticisms linked by gordonguthrie is the lack of a coherent release and distribution framework. There are several half baked implementations none of which have the full support of the community. Sure Erlang allows hot code swap, but it's mostly a manual process requiring a user to interact with the shell.
benmmurphy 11 hours ago 0 replies      
i find messaging between processes and handle exits can be a bit awkward as well.

for example if you send a message to a process there is no way to know whether it actually received the message or not. if you wait for a reply from the process then you can tell if the process received your message AND processed it but sometimes you only want to do the first for performance as well as semantic reasons. for example you may not want to retry sending a message that has crashed a process. i think this is because erlang wants to be network transparent and with the network you obviously can't be 100% sure whether your message was received or not.

handling exit()s is a bit weird as well. you get a message which is like {'EXIT', pid_that_called_exit_or_the_pid_you_are_linked_to}. so you need to know who would call exit() on you to handle exits correctly (OTP assumes only your parent will call exit on you) or assume that you will know all your linked pids correctly at all times and if you get an exit for a pid that is not linked then assume it is for you. i think it would much cleaner if there was a way to differentiate between an EXIT from a linked pid and an EXIT from yourself.

mpd 8 hours ago 1 reply      
There's a lot that I like about Erlang the language, but using it in production left a sour taste in my mouth due to difficult-to-find documentation, difficulty in testing the code, and (especially) the misery that is mnesia.

It was a poor fit with our cloud-based infrastructure, and once the mnesia database began corrupting itself weekly, requiring a full rebuild, it was an easy decision to move to another solution for what we were using it for.

seiji 11 hours ago 0 replies      
Short answer: You have to be slightly smarter than average to use it properly.

Longer answer: The only proper way to learn Erlang is to read the documentation. Then re-read the documentation. All of it. It takes 3-6 months to get proficient, then another 6 months to stop doing things the native or outright bad way.

If you are primarily an "erlang programmer," you can't interview for jobs. Everybody hires for either java, ruby, or python. If you do see a rare "Erlang job" position, they probably actually mean "We want you to understand ejabberd because we based our company around it and it's actually unusable at scale, so you get to fix other people's problems all day long." (Of course, building your own company/services around Erlang stops the "need to interview in other languages" problem.)

But, why can't you interview in Erlang? I guess you can, but the way I work, I have an editor in one window and API docs in the other. Interviewers, sitting up there on their oh-so-high perches, don't like it when candidates want to do quick API lookups for things like parameter order or return values. (Does it take (Fun, List) or (List, Fun)? Does it return Value or {ok, Value} or {value, Value}?)

Short conclusion: Erlang is a system and understanding systems takes effort and practice. People, in general, don't want to learn, they want to do. It's the whole "one year of experience 15 times over" instead of 15 years of growth and advancement problem. It's the "person with 20 years in computing can't write a tail recursive function" problem. It's just a problem.

Alternative question: why don't people understand defmacro (and recursive defmacro) and write their programs from the bottom up?

Bonus analysis: In a world where people just want to learn one thing and use it forever, Erlang doesn't fit. With Python, you can learn it once then keep "extending" it to pretend to get concurrency and other fancy features Python actively rejects at the implementation level. So, you learn Python once, then feel productive because you're duplicating functionality given to you for free in other languages.

Erlang has so much "done right the first time" built into its VM you don't have to reinvent basic parallel computing every time you want to get two webpages at once or serve more than one client at a time from a basic five line server. ButErlang people know for other tasks, say something better served by numpy, they should jump over to Python or Lua or something else better suited to the task without reimplementing all of the "they did it right the first time" code in Erlang just because they refuse to learn any other language.

etrepum 11 hours ago 0 replies      
Erlang requires a fair amount of boilerplate for a small project (rebar, app file, application behaviour, gen_server behaviour, etc.) and escript doesn't work very well.

It lacks a good way to do abstract data types (records don't count).

The compiler's ability to optimize is limited by the lack of purely functional guarantees and the metaprogramming facilities (parse transforms) aren't easy to use to work around that.

There's no facility like Haskell's ST or clojure transients to encapsulate mutable stuff, just a hole to write code in C and who really wants to do that? Yes, I know about the process dictionary and ets but those aren't appropriate for most algorithms I've wanted mutability for.

That said, I still use Erlang, but only in the domains where it really shines.

tlogan 11 hours ago 0 replies      
Erlang is meant to be high-availability and high-performance language. Good. It has potentials.

However, I cannot build any high-availability and or high-performance system based on it because it lack community around it. I.e., if something stops working there is very little resources or support - I'm not even sure if anybody tried or tested that.. So it is chicken and egg problem :(

awnird 11 hours ago 0 replies      
Compared to other languages, Erlang has a huge learning gap between "playing around in the REPL" and "deploying an application". There's a much larger base of knowledge needed to deploy Erlang apps, than an equivalent app in another language such as Python or Java.
jderick 11 hours ago 2 replies      
I've used it and I like it alright. I like the CSP style communication and automatic serialization especially. However, I probably would seek another alternative in the future. Here are my primary concerns.

1. Erlang performance is not very good (forcing significant FFI usage which is a pain).

2. Debugging code which is a mix of Erlang and C is difficult

3. Weakly typed language seems unsuitable for larger projects.

4. Better interop with C++ or Java would be a plus.

5. The syntax I can see people complaining about but it didn't bother me.

andyl 8 hours ago 0 replies      
The problem with Erlang is the syntax.

Elixir is the solution.

gordonguthrie 12 hours ago 0 replies      
All your thoughts most gratefully received - the internal debate is pointless and fruitless.
angersock 12 hours ago 0 replies      
So, it's probably not any sort of technological issue--I'm pretty impressed by the tech behind Erlang.

It's the language (somewhat Prolog-ish) that is weird and uncomfortable to people new to it. Elixir helps with this, but still, every time I've tried to pick up Erlang I've rapidly been turned off.

It's the community--rather, the lack of one. Right now the product I'm working on pretty much plays directly to the strongpoints of Erlang: high-availability, high-scalability, soft-realtime performance, and straightforward error handling. Should be an obvious play.

But, I can't find Erlang developers where I live--which is funny, because at least one company with a good exit in town is an Erlang shop.

Maybe we'd be better off trying to open a branch somewhere in Europe to poach ex Ericcson folks. :(


More thoughts.

Prototyping is just a hell of a lot faster in JS/Ruby than in Erlang, though this could be a side-effect of it being a lower-level language more suited to infrastructure stuff. Then again, I've seen at least one 3D modeling package written in it ( Wings3D ).

Maybe that's part of the problem: just what the hell is Erlang good for? I see it used for really hardcore systems stuff, but it also seems to want to serve web pages, and draw 3D objects, and orchestrate builds, and all these other things. It doesn't seem to have a clean focus in the public eye right now.

wolfeidau 9 hours ago 0 replies      
I have learnt a small amount of it a few times, I use and rely on RabbitMQ every day so it is important I know a bit about it.

That said I just can't get over how bizarre and jarring the syntax is, this paired with the configuration structure and error messages really make it hard to get into to.

Having seen a few talks on the subject I tend to agree, more recently I am using golang for most of the things I intended to do in Erlang.

The reason I chose this route is to stick with a syntax which is common to all the languages i use day to day, while exploring a new, but much smaller toolset for building concurrent applications.

It seemed to me a much wiser route in the long run.

That said I still like the Erlang runtime and the modules it provides, if only the authors of the language could chart a course out of this unusual and sometimes frustrating syntax.

On elixir, I really hope this catches on but unfortunately like coffee script you will still need to get your hands dirty in Erlang if you want to wrap any existing libs or modules available in the runtime, or debug the crazy error messages it produces from time to time.

iqster 11 hours ago 1 reply      
I'm seriously thinking about Erlang now. What raised my eyebrows was "2-3 million concurrent connections on a single FreeBSD box"[this is what WhatsApp achieved]. Async network IO can be done with library support in Python, natively in nodeJS, etc. I wonder if one can push those stacks to this level.
nickmain 10 hours ago 1 reply      
> doesn't run on the JVM


abvdasker 10 hours ago 0 replies      
What nearly all these comments seem to agree on is that the syntax of Erlang is unusual, which poses a not insignificant barrier to entry.

Personally, I'm willing to try a new unusual language if there's some killer feature, but I haven't heard much about Erlang at all. What incentive is there to put in the extra effort if there is no perceived benefit?

redspark 12 hours ago 0 replies      
Have never used it nor considered it.

The driving force behind most of the new languages I have adopted; is a friend with experience who plants seeds, then can offer support and answer simple questions as I am learning. I have no friends that I know of who use Erlang.

chaostheory 11 hours ago 0 replies      
For me it was lists for strings, something both basic and that I know I'd run into a lot.

Another issue is that a lot of languages are bringing Erlang's best feature (actor model concurrency) via libraries or into their core, so it makes me less interested in pursuing Erlang.

zzzeek 10 hours ago 0 replies      
haven't used it. but I recall reading a lot of "I tried erlang with its promises of immense concurrency and my program runs like crap!" "That's just because you're doing it wrong" (discussion of highly esoteric details one needs to deeply understand ensues). Made me much less curious about it.
jhawk28 11 hours ago 0 replies      
Erlang has 3 issues. It has a VM dependency, its syntax is not C like, and it doesn't have a huge marketing budget. Elixer fixes #2, but I don't see it helping the other two issues.
dustingetz 8 hours ago 0 replies      
Scala and Clojure were designed to succeed Java for all the types of problems that people typically use Java for.
cordite 11 hours ago 0 replies      
Coming from Haskell, the actor model does not seem composable. The state machine style is interesting, but the pattern that it comes out as distracts from the concept / algorithm.

This comes from reading rabbitmq and riak-core sources.

billrobertson42 11 hours ago 0 replies      
* tried it & stopped

Performance was focused solely on throughput, latency was terrible for anything requiring even modest computation. Finally dropped it after rewriting a naive Clojure implementation of something that ran 8x faster than the Erlang version.

lectrick 10 hours ago 0 replies      
Elixir, aka "Ruby on Erlang" ;)


JVerstry 7 hours ago 0 replies      
Erlang is not available as PaaS and it is missing a good editor. Solve those issues and it will take off.
nox_ 8 hours ago 1 reply      
> * FP is trs, trs la mode

That is spelt "trs", not "trs".

fegu 10 hours ago 0 replies      
Don't forget RabbitMQ. It must be one of the most widely deployed Erlang applications, surely?
6d0debc071 6 hours ago 0 replies      
> Never used Erlang nor considered it


Well, I guess only the first part of that is true now. :p

But yeah: Why not Erlang?

I haven't seen a good pitch for it that addresses anything we're interested in.

Erlang's big thing seems to be that it scales. We don't have that as a major problem for our programming. If we did, I imagine I'd be interested in quantitative comparisons with other programming languages for similarly advanced code, (i.e. I wouldn't want to read some ungodly shitfest alongside decent code as the argument that Erlang was better.)

To be convinced from that perspective, I'd have to:

A) Know ahead of time that we were going to be in a position where we'd need that sort of optimisation

B) Know, or strongly suspect, that we wouldn't have to expend more effort learning Erlang than we would optimising it to 'good enough' performance in another language.

C) Be assured that I'd be able to hire sufficiently intelligent programmers who knew, or were willing to learn, Erlang to maintain things if I set up in it.

That seems a rather niche position to be in requiring both a very strong pitch for that advantage on the part of Erlang, and a significant degree of foresight on my part. If it takes six months to a year to gear up for starting a decent Erlang solution, we'd best be expecting to do massive systems engineering fairly frequently as compared to writing the solution in something that we know right now for that to pay off.

People may say that it's trivial to implement what's missing in Erlang, as compared to the systems side of things that's missing in some already known language. That may be true, I don't pretend to know enough about it to comment on it. However, even if it's so, is it sufficiently harder to implement something that scales out to the required efficiency in Known-Language-X than it is to learn Erlang to that level? Especially given that there's probably already community support for scaling in Known-Language-X.


It does seem to have some other nice features. But from that perspective - and this was my first response on dipping into Learn You... I look at it and think 'This looks kinda like Haskell. Why not use Haskell?' or, as the case may be, 'Why not Lisp?' Both of which I've some experience with and would be easier to find good programmers for.

In that regard Erlang is competing with some damn powerful languages.

CmonDev 11 hours ago 0 replies      
Doesn't run on CLR/Mono.
ninjakeyboard 5 hours ago 0 replies      
No strings :P
sdegutis 11 hours ago 0 replies      
A mixture of things:

1. It doesn't fill a pressing need

2. It has foreign syntax

3. It's hard to tell if it has familiar semantics (due to #2)

Credentials: I looked at some Erlang sample code twice and haven't looked at it again since; also, I'm no stranger to new languages, I fully adopted Clojure within a month of learning it

sebastians 9 hours ago 0 replies      
Didn't understand how to use dializer. Situation seems to have improved since I tried last time, because of learnyousomeerlang.
tg1234 9 hours ago 0 replies      
Erlang is dark magic. Not intended for the faint of heart.
s1gs3gv 11 hours ago 0 replies      
The name is too easily confused with Uhhh Lang ?
Ask HN: How much is my webapp worth?
3 points by abeiz  57 minutes ago   3 comments top
doubt_me 31 minutes ago 1 reply      
How long has it been around?

Does 25k include the purchase of the domain as well?

Show HN: I've open-sourced my ERP SaaS, Stockor
38 points by nathanstitt  13 hours ago   26 comments top 10
gizmo 13 hours ago 1 reply      
The demo doesn't look bad, but it seems to suffer from design-by-programmer. It also seems like the stockor.com website is more of an afterthought, even though it's a critical part of your sales funnel (other ERP vendors can afford to have a lousy website because they do face-to-face sales).

You can make a ton of money in the ERP business, even if your product isn't very good. So if you're losing hope that stockor.com is going to bring in serious money anytime soon, it's probably because you need to focus way more on your onboarding experience and quality of the stockor.com website.

pinaceae 12 hours ago 1 reply      
Interesting attempt.

Key questions I would immediately ask an ERP vendor that I do not see answered on your homepage:

- What kind of interfaces/APIs does Stockor provide? Both for in-house systems (analytics, whatever) as well as externals (EDIFACT, etc.).

- Is there some sort of pricing engine to fully calculate an order? How flexible is it?

I assume this is US only? If not, then what about languages, currencies, etc?

callesgg 12 hours ago 1 reply      
Look very nice. Looks allot like Pimcore http://pimcore.com

The demo stuff was laking good test data on most pages. That was my initial thought.

yebyen 13 hours ago 1 reply      
Is it a coincidence that the page says

"It's 11 o'clock in the morning, do you know where your inventory is?" and I'm reading the page at 11 o'clock? Creepy

Everything looks very polished, I've never worked with an ERP before but I didn't know it could include your customer-facing website and process orders directly. I guess that's what ERP is for...

lubos 12 hours ago 1 reply      
I love the roadmap gauge on your website, can I steal it?
ing33k 11 hours ago 1 reply      
do you think this can be used by a small scale manufacturing industry as an Internal ERP ? ( there no need for Store sort of thing ). Reason I am asking is that I had to do a very basic inventory management app for a friends mechanical industry, just generated some models in rails and used an admin panel gem to generate the app..


andersthue 10 hours ago 1 reply      
I am using an online ERP, the trust to do that came because my accountant used it.

He liked it because he have access to my data without the need to come to my office.

So you might try to get accountant/bookkeepers to like it so they can be your trustbuilders!?

2810 11 hours ago 0 replies      
Just curious, how much revenue it has generated up to date?
dougaitken 12 hours ago 1 reply      
Having a 2 second look at the demo, it looks like a lot of useful kit. But what makes this different to other software, or indeed compared to Shopify and the like?
PhasmaFelis 10 hours ago 1 reply      
Stockor was my favorite He-Man toy. He had pallet jacks for hands! I think his sold-separately vehicle was a shipping container.
T.E.C.H. Foundation Spring Beer Tasting featuring Family House - San Francisco
11 points by brookeveres  8 hours ago   discuss
Give HN: Take over my Apple video site?
7 points by jason_slack  7 hours ago   5 comments top 2
e1ven 6 hours ago 1 reply      
I apologize I'm on mobile, so I can't really look carefully right now, but if you don't have time to run the site, perhaps you could convert it to something with lower maintenance, like YouTube channel?
jason_slack 6 hours ago 0 replies      
For some reason I cannot edit this anymore. It is HTML5.
Ask Sama: Do you plan any major changes with HN and YC
8 points by diminish  8 hours ago   2 comments top 2
beat 7 hours ago 0 replies      
Actually, as a clarifying question... will pg continue to maintain HN separately from YC? It's always appeared to me to be two separate projects with congruent goals, operated by the same person, rather than HN as a YC sub-project.
sama 2 hours ago 0 replies      
probably a lot of minor changes that all together will help us grow a lot.
Ask HN: Are there no irrational/incorrect valuations? [Re: WhatsApp and others]
3 points by sendos  4 hours ago   1 comment top
notastartup 4 hours ago 0 replies      
I honestly think that we are in a bubble right now. Somebody today posted a 1998 AOL article highlighting the purchase of a chat company and the languages are very similar to what we read today about these type of mega buyouts. Having said that, I think that the financial forecast of Facebook is questionable at this point, if they need to keep buying billion dollar price tag items without making money from it's core product, it's a no brainer math that at somepoint in the future they will lose investors confidence and ultimately disappear. I have similar views regarding Twitter.

If Google bought this I wouldn't be worried but it seems that Facebook is more concerned about portraying the image that they are powerful and too big to fail without making enough revenue like their rivals.

Google and Microsoft have enough cash to fail many many more times than Facebook has relatively fewer chances to fail.

$ make -k $(python2 -c "print 'A'*5432")
2 points by neur0mancer  4 hours ago   discuss
Ask HN: I want to get out of finance but salaries scare me
10 points by boredeasy  12 hours ago   18 comments top 11
CompelTechnic 12 hours ago 2 replies      
How much have you been saving using your fat salary? If you've been making an average of 150k and saving aggresively over the last few years, you could easily have $500,000 saved up. Invested in dividend stocks, using 4% withdrawal rule, boosts your apparent income by $20,000.

If you want to feel safer, save more cash until you switch to do whatever you want to do. Some people find that no matter how much they save up, they never feel comfortable- don't fall into that trap. Know the real risk here- the risk of not doing what you want to do in life, because you need a "safety blanket" job.

MrZongle2 5 hours ago 0 replies      
If you want out of finance, get out of finance.

I was making a little less than half of what you're currently making at a job that I hated, but I stayed there for 8 years because I was terrified of the financial impact of going somewhere else. The money was very good for where I was living, and there was nothing comparable in the region.

Staying there wasn't worth it. Not only did it affect my behavior -- which, in turn, affected my personal relationships -- but I stagnated professionally.

Life's too short. Believe in yourself. Find another job to jump to, and go.

falsestprophet 7 hours ago 0 replies      
$149,890 is the 90th percentile salary of the 33,360 software developers in the New York-White Plains-Wayne, NY-NJ metropolitan statistical area (according to http://data.bls.gov/oes).
segmondy 10 hours ago 0 replies      
Stay where you are, and save as hell. Go to a tech company and it's not guaranteed to be glorious as Whatsapp.
spoiledtechie 11 hours ago 1 reply      
Work for a government contractor. You can easily reach those numbers at a small tech firm who contracts for the government.

You can also look into tech companies that give you bonuses for work etc. That salary can be easily reached through yearly bonuses.

czbond 12 hours ago 0 replies      
You can easily pull that as a Software manager or VP Enginneering. Do you want to stay a programmer or manage? What part of the country are you in now? (I'm guessing NY or NC).
stirno 12 hours ago 0 replies      
Become an independent contractor - easy path to similar numbers.
blendo 7 hours ago 0 replies      
I've been programming for over 30 years, and began work in finance in 1995. As you note, the money is very good. But I found that it became soul-deadening.

Last year I quit my job, took five months off, then started work as a programmer with a public service agency. Despite a 30% pay cut, I'm happy now. Performing "socially useful" work turns out to be important to me.

alsoboredeasy 8 hours ago 0 replies      
Identify a couple niches you've tackled over the years and try contracting within those niches.

It may be tougher to find jobs for tech specific shops but you can at least get out of finance and have a change of pace.

I say this as someone making a similar salary with ~7 years of professional experience.

lemon1979 11 hours ago 0 replies      
I make 130K, 4 years after doing a PhD in systems. No/negligible bonuses. NY area. Man .. I should work in finance.
jman25 10 hours ago 0 replies      
Honestly, if you do care about money at least in the sense of relatively short-term cash, I'd recommend trying to solve it by shooting for something Google-caliber.
Ask HN: Advice for proxy while in China?
2 points by taigeair  5 hours ago   7 comments top 4
mschuster91 4 hours ago 1 reply      
Your best bet is to rent your own server, e.g. OVH, Hetzner or any other host (though it MUST be a real server, so-called VPS or other virtual servers will not work reliably), set up OpenVPN on it and be done.
xxdesmus 4 hours ago 0 replies      
DigitalOcean ($5 per month) + https://www.digitalocean.com/community/articles/how-to-insta... ... done and done. :)
k3oni 4 hours ago 0 replies      
If you want let me know and i'll setup a VPN account for you. I used to have a VPN business but i shut it down a couple months back.. some of the servers and code is still in production. You can have it for free until you get back.
xbu 3 hours ago 0 replies      
you can email me, it's not convenient to list here, popular vpn service will be blocked by gfw.xingjiebu@yahoo.com
Ask HN: Were you ever scared of pushing to production?
4 points by zipfle  9 hours ago   7 comments top 5
japhyr 7 hours ago 1 reply      
I think this is why having real-world experience in non-programming realms is valuable. When your life has been on the line in some physical adventure, things like pushing to production are easier to keep in perspective.

I have run in the woods with bears, climbed steep and sketchy mountains, rock climbed, tried hang gliding and paragliding, kayaked in rough waters. Most of that was quite safe, with well-qualified people, using the right equipment, with the right training and with the right progression of risk. That said, I have definitely held my life in my hands a few times,put my life in others' hands, and had other people's lives in my hand.

When you've had these experiences, technical risks are easier to manage. They don't become easy, but you go through the same mental checklists. "Can I close my eyes and pull my kayak skirt off if I flip in these waves" becomes "have a followed my backup routines, so if this push fails will I be able to recover in a reasonable timeframe?"

I've been a hobbyist programmer for most of my life. But now I'm dabbling in more meaningful and important projects. This is the perspective that makes me comfortable jumping into technical projects, without being paralyzed by the fear of breaking something important.

edavis 7 hours ago 0 replies      
I still get nervous, but I've learned to manage it.

Some things that help:

- Keep your changes small. You should be able to fit the entire diff in your head and completely understand the purpose for every changed line. If you can't, split it up.

- Automate the process as much as possible. Invest in learning whatever tool works best for you (Fabric, Rake, Grunt, etc).

- Use a staging environment. This is especially helpful for catching issues like missing dependencies, DB migration problems, etc.

taternuts 8 hours ago 1 reply      
If you aren't at least a little nervous during a production push, then somethings wrong, I think.
robbiea 8 hours ago 0 replies      
I was scared in the last email I sent to over 30 people. Like /u/taternuts said, you have to be a little scared. But yes, you will get over it, but if it's a big push to prod - you will still be scared.
JacobH 1 hour ago 0 replies      
Currently scared
Ask HN: How much disposable income should you have?
2 points by cunninghamd  9 hours ago   3 comments top 2
josephjrobison 9 hours ago 1 reply      
Are you wondering percentage wise or an absolute dollar amount for living in one of the top 10 largest cities in the world or US?
sharemywin 9 hours ago 0 replies      
you didn't mention retirement. That should be about 10% of your income.
Ask HN: How the hell is Whatsapp worth $18 billion?
10 points by notastartup  1 day ago   18 comments top 12
gexla 1 day ago 0 replies      
Facebook mentioned the volume of messaging sent through the application is approaching that of the SMS volume of the entire world. So, it's like buying a huge (the largest by far) global telco which only allows texting. In some poor countries, that's all people really use a cell phone for anyways. Calls are too expensive, so you see far more people texting than talking.

As big as thing thing is, it's possibly headed to 1 billion users. I'm assuming that's about as massive as anything which exists right now. It's one big platform among very few that are operating at that level.

I just don't think there is any comparison. Money doesn't matter. You make big plays. If Zuckerberg were thinking small when he built Facebook, it would be a small e-commerce store selling T-shirts or something.

akg_67 23 hours ago 0 replies      
You may want to read this blog post from Prof. Damodaran. I thought it was one of the best valuation/ pricing article I read on Whatsapp acquisition.


workhere-io 4 hours ago 0 replies      
We're in a tech bubble. I don't see any other explanation, because it's unlikely that WhatsApp itself will ever generate the amount it was bought for. Some years (months) from now the bubble will burst, and IT companies will be bought for a far more reasonable sum (a sum they'll have to justify to the buyer by having decent revenue. Sure WhatsApp has revenue, but nowhere near $18 billion).
phantom_oracle 9 hours ago 0 replies      
Here is a couple of theories I have had about it:

Firstly, Facebook doesn't need to monetize it. WhatsApp seems to be generating enough cash to run on its own. Instead, WhatsApp is a data-cow (I, phantom_oracle, officially coin the term data-cow on 21/2/2014 :P, which is the 21st century equivalent of a cash-cow).

WhatsApps value proposition lies in the data it has access to. I've already read on pandodaily/wired/one of those tech blogs that explains that whatsapp can access your private data, as it is in their terms.

So now think about it.

WhatsApp is always on/connected, so user tracking and trend-creation becomes easier.

People discuss a lot of things on it too, thus a lot of personally identifiable info exists (think, planning meals with your loved one, chatting to your kids, etc.).

By combining these 2, FB can improve its targeted ads on the FB platform and Instagram. Link all three and they basically have the equivalent of a user-database that is the envy of the NSA (pictures, messaging, location, etc, etc.).

If FB can improve its ad-revenue by even US 1 billion each year through this purchase, then the real ROI will be over 19/16/14 years (whatever the true amount they paid is).

Chances are, it will increase by a lot more than 1 billion a year. There's just too much data they control.

If you want to spot how they might monetize on their data, look at FB for jobs about natural-language processing (now or in the past). Also look at their ad pages to see if they boast about targeted ads.

brudgers 14 hours ago 0 replies      
The deal is only worth $18 billion if FaceBook can sell additional shares into the market worth $14 billion dollars without lowering current share price. Since the announcement of the deal itself influenced share price, such an opportunity seems unlikely. It's supply and demand. WhatsApp is in the same boat. They cannot dump $14 billion worth of Facebook shares into the market without likewise influencing share price.

Thus neither company values the deal at the headline grabbing number because the opportunity costs are low. Facebook doesn't have a lot of options to move that much equity and WhatsApp does not have a long list of potential buyers with $4 billion in cash plus the discounted value of Facebook equity.

badman_ting 23 hours ago 1 reply      
I read a comment that said people run their entire businesses on it, and that in many places there is a 90% chance that someone you're talking to has WhatsApp on their phone. Sounds pretty valuable to me. It's a communication platform, what's more valuable than communication.

You might say they don't have enough lock-in, that someone else could come along and take their business. True, but I don't think that changes the value of this space in general. People always say that startups focus too much on problems that young white males tend to have, well here's something that's as generally useful as you can get.

gopi 13 hours ago 1 reply      
WhatsApp is not really free but supposedly cost $1/year from the second year. Yes they are doing free renewals for now and i am guessing it will not be long they begin to charge again.

They have 400 million active users now and will be around billion users by next year. If they charge the usual $1/yr in the emerging markets and say $5/yr in the developed markets that will get them around $3 billion revenue. Also they have almost 90% gross margins as from what i read its a tight operation with just 50 people and 600 servers.

So with a $2.7 billion EBITDA by 2016 the $19 billion dollar valuation is just 7x multiple and very reasonable. This is not even considering the strategic value of WhatsApp to Facebook!.

jwheeler79 22 hours ago 0 replies      
price is what you pay, value is what you get. it cost 19b, doesn't mean it's worth 19b. intrinsic value is the amount of future cash flow the business will generate discounted to present value. projected earnings must be measured against the returns of the s&p 500 rate of return 6% per year adjusted for inflation. they would need to have profits in the range of 500M to 1B for that valuation compounding much higher than that. it is a totally bogus valuation based on new metrics a la zuckyberg
pratkar 17 hours ago 0 replies      
Most acquisitions should be compared from a lenses of a peer company acquisition (Peer multiples in financial-speak). If you compare the acquisition of Whatsapp with Viber a few days back, you would know why Whatsapp was such a steal.

Read more here: http://appiterate.com/whatsapp-vs-viber-who-got-a-better-dea...

a3voices 1 day ago 0 replies      
It's worth that much because it has the growth potential to overtake Facebook. The value is in futures. In order to keep your lead in the market, you sometimes need to buy out the competition. I'm not an expert on it, but that's just how I understand it.
checker659 1 day ago 1 reply      
That's how much it's worth to Facebook. Not to you and I but to Facebook.
nodata 21 hours ago 1 reply      
Nobody has answered the OP's question: why $18B? why not $18M or $523M?
Ask HN: How to create an anonymous site?
78 points by Murkin  2 days ago   48 comments top 18
patio11 2 days ago 1 reply      
Much like security, you pick your countermeasures in advance in the hopes of raising the cost of an attacker to penetrating your security. You're not anonymous. You're anonymous to an adversary with a given amount of technical/legal/intelligence/etc resources to bring to bear on deanonimizing you.

People will probably give you links which describe adequate methods for securing you against adversaries without $1,000 or equivalent amounts of brainsweat. If that's your adversary, there. May you execute properly.

If your theorized adversary is a nation state, pick another adversary. You're guaranteed to lose that fight in the long run. If you bid the price of your identity up to $5 million, they will counter with "We routinely pay that to kill mosquitoes" and mean that entirely literally.

yoha 2 days ago 2 replies      

More specifically, if you truly care for anonymity, you won't be using a plain DNS+Web site. Instead, you should go for Freenet [1] or a Tor-hosted website [2].

[1] https://freenetproject.org/

[2] https://www.torproject.org/docs/tor-hidden-service.html.en

captainmuon 2 days ago 0 replies      
Besides the technical measures in the other comments, there are a bunch of other tricks that might be useful. (Please don't take this as advice, but just as a thought experiment! If I were writing a spy novel, these are some things my characters would do.)

Find a homeless person, and ask him/her to register a bank account in exchange for some cash or a meal. Use that account to set up your website anonymously. You'll find that you need to dirten money if running such an operation - reverse laundering or taking "clean" money and putting it untracably into the business. Such a proxy account is a vital ingredient.

Don't rely on Tor alone. It might be completely subverted, you wouldn't know until it's too late. Buy access to a botnet and route your stuff over it.

Have multiple servers. If you have one single server, its easy to trace. Either by brute force: the ISPs disconnect/slow down 50% of customers for a split second, depending on wheter your site went down or not they know in which half you are, repeat until they find you. There are much more sophisticated techniques that don't require active interference. But if you have at least two or three identical servers at different locations, it makes it a lot harder to catch you. Don't forget tamper-proofing your servers.

Have trustworthy accomplices. Generally, the less people you tell what you are doing, the better. But if you have a close circle of people you can really trust, it becomes much easier to pull this off. You can work from multiple locations, give each other alibis, etc..

Build fake personas. Don't just take a pseudonym, but create fake identities. Keep records on their interests, their motivations, what you disclosed about them. The purpose is to throw investigators off. You should be aware of techniques used by them, such as behavioral analysis, stilistic analysis, etc.. Working with accomplices can help alot in creating these fake identities and concealing your own (e.g. writing style).

Go somewhere safe. If possible, move your servers, or even yourself, somewhere where what you are doing is not punishable, or the authorities can be bribed.

This list could go on for ever... I'm not sure how practical many of these ideas are, but one thing is clear, you'll need a certain amount of "criminal energy" to pull this off - no matter whether your intentions are criminal or not. (Disclaimer: I'm too pussy to actually have done any of the above, so it may or may not work :-))

igvadaimon 2 days ago 2 replies      
Here are a couple of interesting links:



To answer your questions - you can buy domain for bitcoins and use some free hosting like Wordpress or Github Pages.

p4bl0 2 days ago 0 replies      
I would go with a Tor [1] hidden service or an EepSite on I2P[2].

Both are easy to setup and are accessible by anyone using "inproxies" such as onion.to or i2p.us.

Another advantage is that you can host the sites anywhere even behind a firewall or a NAT as long as the computer it's hosted on can run Tor or I2P.

I personally have a preference for I2P, since this is its main purpose while Tor's hidden services are not the primary purpose of Tor (which is to anonymize users on the clearnet).

[1] https://www.torproject.org/

[2] https://geti2p.net/

austerity 2 days ago 3 replies      
1. Buy BTC with cash

2. Buy a domain with BTC via Tor

3. Buy hosting with BTC via Tor

4. Do not accidentally leak your identity in one of million possible ways

#1-3 are pretty easy, but #4 is next to impossible. If nobody cares about you there might be some small room for error. But generally it takes one smallest mistake and you are ultimately busted.

evgen 2 days ago 1 reply      
If you need to ask these questions you are not qualified to run such a site, or at least not to ask anyone else to trust that you are not going to screw up when setting it up or at some point in the future and break anonymity. The more you move away from "free speech" to avoiding regulation and toward criminal activity the greater the chance that someone out there will actually try to see how good you really are, and then your whole house of cards will fall down. Seriously, don't.
bdcravens 2 days ago 0 replies      
Depending on what you're trying to accomplish, couldn't you drop content on the blockchain? Not a traditional website, but relatively anonymous (depending on how you move the coin), and more importantly, it can't be seized or taken down (kinda scary when you think about the potentially implications for everyone who downloads the blockchain)
tmikaeld 2 days ago 1 reply      
Maybe someone with experience of such hosting?Like: http://www.nearlyfreespeech.net

I should add: Goes under US Law, so forget pirating or illegal content.

anongrid 7 hours ago 0 replies      
It is not as much creating an anonymous website as it is about protecting the users (keeping their anonymity) and their content (from prying eyes).A service can be in plain sight, but if it employs the correct (often needed - extreme) practices, it can provide its users with this level of confidence.I happen to be a Co-Founder of such a service :-)www.anongrid.com is an extremely secure and anonymous content sharing service. still in its infancy but you're welcome to check it out and see what I mean.
rjzzleep 2 days ago 0 replies      
if you host it yourself, don't forget to clean up your access logs. you might want to actually fill them with invalid data, rather than completely deleting them.
gesman 2 days ago 0 replies      
Launching and maintaining fully anon site is close to impossible. And maybe not worth a hassle depending on your purpose of course.

Instead - register Twitter nick and link your tweets to pastebin or similar repository where you'd post something worthy of reading.

Use Tor for all above.

xrctl 2 days ago 0 replies      
I think most answers here are over thinking it; I do not think he wants a website that can defeat the NSA, just one where the service provider could get subpoenaed and not lead them to him.

So, just buy webhosting with Bitcoin at somewhere that does not require contact details.




Sign up at the local library to cloak that IP then use tor after that if you think you will have a dedicated adversary.

cturhan 2 days ago 0 replies      
Use subdomain on any known websites like http://anonymous.wordpress.com ?
wellboy 2 days ago 1 reply      
The untraceableblog.com below is a great resource.

However, in the end, there is always text analysis though that can give your identity away, which the untraceable blog does not address.

That's why you possibly need a ghost writer that you provide with a script or a robot audio recording if you want to go 100% sure. You need to be able to trust your ghostwriter a 100% though then. :)

thesorrow 2 days ago 1 reply      
What is really hard is to have a secure (SSL) anonymous website with a valid SSL Cert.
kungpooey 2 days ago 1 reply      
For how long? Get a dyndns pro account, laptop(s) and host the site from multiple coffee shops. I didn't give this much thought, internet advice eh.
BitStamp stops Bitcoin withdrawals
6 points by andr  21 hours ago   discuss
Ask HN: Why is MtGox BTC so much cheaper?
5 points by zaroth  21 hours ago   4 comments top 4
zaroth 21 hours ago 0 replies      
Today MtGox take 10 Bitcoins from their cold wallet, and use it to SUBTRACT 33 BTC balance from their ledger.

That's a REALLY huge incentive to click a button and start doing it, which if that was happening, would drive up the price until the market hits equilibrium.

blueskin_ 20 hours ago 0 replies      
Because it can't be withdrawn and Mt Gox will probably disappear soon, taking people's coins with it.

People buying it are buying the coins at way below market rate, essentially gambling that Mt Gox will eventually allow withdrawal (presumably they have other bitcoin investments too), while people selling are sensibly trying to get what money they can out before the company folds.

matznerd 20 hours ago 0 replies      
There is no way to get your money out, plus there are a number of other issues with them. Gox is dead. Read up on reddit.com/r/bitcoin or bitcointalk.org
laichzeit0 21 hours ago 0 replies      
Have they re-enabled BTC withdrawals again? It might be that it's too risky to use them.
What will the world look like 5 years from today?
2 points by justinzollars  10 hours ago   discuss
Ask HN: Any examples of currying that's not toy stuff?
7 points by coldtea  14 hours ago   8 comments top 6
NickPollard 14 hours ago 0 replies      
The problem is that currying is useful for so many things that this is a bit like asking 'what is addition useful for?'

Currying can always be implemented just by lambdas, so it does not actually enable any new behaviour, but it makes a lot of things simpler - any time you want to close over values, it can normally be neatened by using currying.

Let's say you're making a 3D renderer. You have a list of vertices (points) in object space, and you want to transform them to screenspace by multiplying by a modelview matrix and then a projection matrix.

Without currying:

  vectors fmap (\x -> multiply modelview x ) fmap (\x -> multiply projection x)
With currying:

  vectors fmap (multiply modelview) fmap (multiply projection)

cgore 12 hours ago 0 replies      
I'll use a C example, GUI toolkits. Look at the code example for GTK+ at:


All of the calls to gtk_fixed_put are of the form:

    gtk_fixed_put(GTK_FIXED(fixed), button1, 150, 50);
For most applications, the leftmost argument is going to be exactly the same window/buffer/menu/etc. for several calls in a row. A shortcut version like this is nice if you are going to add 25 buttons to the same widget:

    curried_put(button1, 150, 50);
You can do this sort of thing with curry, making a shortcut function.

chriswarbo 11 hours ago 0 replies      
We can think of methods in Object Oriented programming as functions with their first argument (self/this/etc.) curried.

This is a very limited form of currying though, since a) only the first argument gets curried and b) in order to access these curried functions (methods), we have to qualify them with the object they're inside. This pretty much 'cancels out' any syntactic saving we might have hoped for.

For example, compare these two implementations of the same algorithm:

    foo = function(this, x) { run(this, x, x); }    foo(obj, 10);    class Bar {      function bar(x) { this.run(x, x); }    }    obj.bar(10);
The "foo" implementation requires us to pass in an explicit object parameter like "obj", which is then explicitly passed along to the "run" function. However, the "bar" functions are wrapped in objects, so we must specify which one we want in order to call it (eg. "obj.bar"). Likewise, inside "bar" we must look up the "run" function inside "this", so we've not actually gained anything here; we've just shuffled the tokens around!

bjourne 12 hours ago 0 replies      
Partial application is syntactic sugar over lambdas. For example, say you have a print_with_color function:

    print_with_color(color.RED, level.INFO, "some message")
But it's to long to type, each time you want to print a message, so you define some wrappers:

    info=lambda m: print_with_color(color.GRAY, level.INFO, m)    error=lambda m: print_with_color(color.RED, level.ERROR, m)    warning=lambda m: print_with_color(color.YELLOW, level.WARNING, m)    info('hi im an info')
Which works, but it is perhaps nicer to use partial:

    info=partial(print_with_color, color.GRAY, level.INFO)    error=partial(print_with_color, color.RED, level.ERROR)    warning=partial(print_with_color, color.YELLOW, level.WARNING)    info('hi im an info')
You could also use it on objects:

    std=partial(stdlog.log, level.INFO)    std('hi')    err=partial(errlog.log, level.ERROR)    err('bad')
Partial application saves you more in languages with syntactic support for them. There api producers design their functions with partial application in mind, unlike python where you often wish for an rpartial function because you want to partially apply from "the other side."

fakenBisEsRult 14 hours ago 1 reply      
Dependency injection using currying would be some real-world example.
collyw 10 hours ago 0 replies      
I had this feeling for a while, then I notice some places it fitted into Django - for creating actions. I wrote it up.


Offer HN: Improve and show your skills by working with a NPO/NGO
67 points by professorTuring  3 days ago   17 comments top 4
Blahah 3 days ago 3 replies      
We're building a site, http://solvers.io, to enable projects that improve the world to recruit highly skilled volunteers.

Adelante Africa is a great fit - we'd love you to post to Solvers and we'll try to put some eyes on the project.

Just this morning I heard that a Solver had helped fix the website of another Africa-related charity, TReND in Africa. We're still in open beta and would love feedback.

kenrick95 3 days ago 1 reply      
By the way, non-profit organization is not the same as non-governmental organization (NGO)
beshrkayali 3 days ago 4 replies      
Because most NGOs (I know it's not all of them, but I would say the majority) are bullcrap, do-nothing orgs. Spending more money on lobbying and staffing than the original cause.
Ask HN: Best Open Source Phonegap and Titanium Apps?
74 points by candeira  1 day ago   47 comments top 13
marknutter 1 day ago 1 reply      
Untappd is a quite successful phonegap app: https://untappd.com/

Here's a talk the founder gave about using phonegap: http://phonegap.com/blog/2013/11/13/untappd-phonegap-perfect...

IbJacked 1 day ago 4 replies      
Are Phonegap and Titanium the preferred way to go for cross-platform mobile development? If not, what are people using these days? (I don't want to hijack this Ask HN, so please ignore my question if I already have a couple of replies.)
general_failure 1 day ago 1 reply      
I have actually tried Cordova for my app using angular and ionic. We failed miserably.

We kept hitting cases where we need something from native and we had to write native plugins. Developing native plugins is no fun task and in fact very painful to develop.

So we then tried writing native apps. We actually did it faster with developing a separate iOS and Android app. We are very happy with the result. The big bonus was that we are now able to conform to platform UI interactions better now (ionic does things in a very iOS way). The debugging facilities with native apps are way more awesome than cordova (which hardly has any on android. and it's hard to debug cordova stuff on ios too)

goatforce5 1 day ago 1 reply      
Ionic is a relatively new framework that plays nicely with PhoneGap to help you produce pretty looking apps that behave similarly to native apps. It is "open source front-end framework for developing hybrid mobile apps with HTML5."


They have some sample code:



And a showcase of apps built using their framework:


jchrisa 1 day ago 0 replies      
I created an example app using our embedded JSON sync database. Maybe someone would find this as a good introduction to data-driven apps on PhoneGap.


Zigurd 1 day ago 2 replies      
The Wikipedia mobile client is a Phonegap app. But it, and most such apps, are basically more-elaborate Web wrappers around a Web site's content. While they might adequately not offend each platform's conventions, they are not exemplary w.r.t. platform UI capabilities. It would be very hard to make a cross-platform app that uses Fragment and multiple layouts in a way that really captures the power of those UI capabilities.
tluyben2 1 day ago 0 replies      
We found that both Xamarin and Corona work really well depending on your needs; much better than Cordova for practically anything. Because sometimes clients demand it we have used Cordova and Appcelerator in the past but now we simply refuse; it creates horrible stuff which feels and looks bad unless you sink so much time in it that you could've written in natively for every platform 10x over. It's ok for fast prototyping but actually both Xamarin & Corona beats them there easily too.
valevk 1 day ago 0 replies      
A quick search on github [1] revealed a few known apps. Unfortunately, I can't say whether those are the best open source apps written in Phonegap.

wikimedia/WikipediaMobile [2]

wildabeast / BarcodeScanner [3]

[1] https://github.com/search?o=desc&q=phonegap&ref=cmdform&s=st...

[2] https://github.com/wikimedia/WikipediaMobile

[3] https://github.com/wildabeast/BarcodeScanner

cannuk 1 day ago 1 reply      
I am surprised no one has mentioned steroids js from appgyver (http://www.appgyver.com/steroids). It's sort of a blend between titanium (native controls with a javascript api) and phonegap. That way you can write a truly hybrid app. I've played around with it a bit and I have to say that it seems like the best of both worlds. Plus the documentation and onboarding is stellar.
TeeWEE 1 day ago 3 replies      
Rdio is an app written in Titanium, I really like it. However, you notice its not fully in new-style nadroid without the native DrawerLayout. HTML5 is really not good enough for killer mobile apps.
brandynwhite 1 day ago 0 replies      
Our http://wearscript.com project for Glass and wearables has some similarities to phonegap (we called it GlassGap at one point) but has different design goals (e.g., live coding, pub/sub communications between devices, etc).
kinur 1 day ago 1 reply      
Appcelerator is realy (totaly) free? I like this platform but I doubt about the license.
Ask HN: What'd you do to get your first 100 users?
195 points by brandonhsiao  5 days ago   151 comments top 56
jonnathanson 5 days ago 2 replies      
This is going to sound overly reductive, but I promise it's not:

1) What existing solution do you believe your product (or prospective product) is better than?

2) Where can you find a critical mass of people who use the existing solution?

3) Go there. Talk to them. Show them your product.

Now, none of this is trivial. First, because assuming you're operating lean, you start with no real clue if you're "better" than anyone or anything else, or on what dimensions that actually matter. You start with a hypothesis, and you have to seek out opinions (customer development). Second, because the existing solution might not be what you think it is. Or it might not be a product at all. It might be a behavior people are doing, or an "off-label" use of another product.

But by and large, this method works. It might not get you scale. But it'll get you in front of potential users, and those users will be primed to try out your product. The trick is in identifying the existing solution, finding people who use it, and getting some of their time.

I'd definitely advocate doing this before doing any "Show HN" posts. Show HN is a (potential) way to get a lot of traffic and attention in one blast. You don't want to play that card until you know you can benefit from it: either in terms of feedback (you'll want to have vetted out basic users and assumptions first), or in terms of users (aim for some indications of fit before firing the shotgun). The other problem with relying on Show HN, or Reddit, is that there's luck of the draw involved. Sometimes your post gets buried or washed out by the noise. Being good is no firm guarantee of charting to page one.

gabemart 5 days ago 15 replies      
I haven't done any promotion for http://asoftmurmur.com besides posting to reddit and HN, and it now has 400-500 regular daily users. It depends entirely on what type of product or service you're offering.

Another key thing is to understand the community. There is radical cultural diversity between subreddits which manifests in very different reactions to self-promotion. It's essential to engage appropriately and respectfully.

Something I've used for other projects is searching for coverage of competitors in the same space, then pitching to people who have already featured them. Again, very important to hand-tailor each pitch and offer value to the person you're contacting.

gbelote 5 days ago 2 replies      
One cool technique I saw recently (which isn't always applicable) is from a talk by Jason Cohen: http://vimeo.com/74338272 around minute 7)

In a nutshell when he was building WPEngine he went to LinkedIn and found folks who were Wordpress consultants. He then sent them a follow email and said he's building a product for "folks like you and would love to talk to you about your pains, needs, etc" (customer development stuff) and offered to pay for their time. It worked well - he sent 40, 100% agreed to talk, actually talked to 38, and 0 asked for money. He suggests this worked so well because the offer to pay showed he was respectful of their time so they were happy to help. YMMV.

lobotryas 5 days ago 2 replies      
It can be a working strategy if you're building a lifestyle business and don't care about hockey-stick growth or making millions.

I'm an armchair entrepreneur for now (just getting that out of the way), but the advice I've seen over and over again can be generalized as: "Go out and talk to peope". You'll want to avoid starting with a sales pitch. Instead, talk to them about their business (or life) and see if your product is a fit (ie: don't try to sell a social network for cats to a dog owner). If it seems like there's some product fit, ask how they are filling the need now. If appropriate, give the the elevator pitch and a 1min demo on your live product. Ideally, convert them by having them sign up for a trial right then and there on your computer, followed by walking them through the COOLEST thing they can do on your product.

Rinse, repeat.

That's my 2 cents. Also interested what others think.

mgl 5 days ago 2 replies      
If you have a product that may generate profit, e.g. a SaaS application targeting businesses, not a money burning consumer-app train (see: twitter or another photo album app) one of the strategies that work is cold emailing:

0. Identify and name your target group, e.g. commercial real estate agents in CA.

1. Find these people on Linkedin using advanced search option and invite them to connect.

2. Once connected you have their e-mail address, so send them a short e-mail (better response rate than InMails) describing the business problem and your solution. Short means 3-5 sentences, no attachments, just try to attract their attention.

3. Don't forget about follow-ups.

4. They will reply if interested and bam, you have a lead! Now it's time to set up a call and go into details.

5. Rinse and repeat. Stay persistent, you should send at least 20+ every day. Track response rates and adjust, you should achieve at least 5-10% easily.

dbla 5 days ago 1 reply      
In my opinion reddit is very underrated in terms of customer acquisition. It's a target community of early adopters who are willing to start a conversation with you. For my start-up, 900dpi, I got our first 400 users from reddit after failing miserably through other channels. We found our best success in /r/web_design but have also looked at /r/frontend and /r/webdev. Sometimes your best traffic comes from comments in other peoples posts (where redditors are asking for a product like yours or discussing a problem that you solve). Our product has been picked up on a couple blogs too after being discovered by the bloggers via a reddit post.

I've also had luck with some other niche community sites such as Designer News. The important piece here is to try and integrate yourself into the community instead of just spamming them with links to your website. Get involved in conversations about things other than your start-up (people notice this and appreciate it). Make friends with the moderators. When Designer News was still private with no search capabilities I wrote a quick search engine built on sphinx to index all of the posts and make them searchable. Not only did this get me an invite to the community but also sent some nice traffic to my start-ups site via a small link on the search page.

I've had little to no success with twitter and facebook, although I might be doing it wrong. Some of the targeted communities that you can find through google plus look somewhat promising, but I've yet to fully explore these.

Our most vocal power users are people we know personally, or met at local events (our local co-working space).

cl8ton 5 days ago 1 reply      
I tried many options to get to our first 100 users.

Tech Blogs (they thought we were to boring to cover)

HN (no interest)

Reddit (no interest)

Ad Words (I think I sucked at it)

So I shrugged and kept improving then one day out of the blue, a big Mommy blog covered us for ways to keep up to date on coupons.

This one coverage leads to our first 200 users, and then another blog (MakeUseOf) covered us, which then lead to other industry specific blogs to cover us. Now we are getting 70+ new accounts a day and have over 120k users.

My advice (if the OP is asking) would be to target industry specific blogs/sites that would find your product useful and covers news that relates to your websites offerings, that is what I do now.

loomio 4 days ago 1 reply      
Our first customer for our collaboration tool Loomio (htp://www.loomio.org) was the coworking space we were working in and the social enterprise hub that was based there.

We built a tool that was instantly useful to them, and in exchange we instantly had 100+ users. We released an extremely "M" MVP and had real users from day one. Because they were using it free and we were building features in response to their direct feedback, they were very understanding about it being a rough prototype. Two years later, they voluntarily opted to generously backpay us for use of the tool (we didn't even ask them to).

If you can get real users from very early on, even if your tool is rough, do it! It will help you build what's really useful to people, and involving early users in the design process actively means they are motivated to use the tool early and help you make it work as well as possible as quickly as possible.

itengelhardt 5 days ago 3 replies      
Here's a tactic that has worked for me so far

1. Set up a blog on your domain

2. write 20+ articles on industry-related topics (this alone will bring in some traffic)

3. get a number of emails from prospective customers

4. write a PERSONALIZED email to everyone on the list and ask if they are interested in an interview to be published on your blog. Offer a link from your blog as additional incentive

My response rate so far was >80%

shazow 5 days ago 1 reply      
For Briefmetrics[0], first 10 users were basically the people I was building the product for. About half of those immediately and enthusiastically converted to paying customers.

The next 100 were friends, people who follow me on Twitter/Facebook, and Show HN[1]/Show Lobsters[2]/Show Reddit[3]. Got a few more paid customers from this segment but the conversion rate was not great at all.

Now I'm working on the next 1,000 which will probably involve some "real press coverage" and some reviews on niche blogs or guest posts. This part has been the hardest for me and would love any advice/intros.


[0] Briefmetrics [https://briefmetrics.com/], email summaries of your Google Analytics.

[1] Show HN [https://news.ycombinator.com/item?id=6641385], which annoyingly got flagged pretty early on and never got any traction. Considering doing another Show HN, but kind of worried about annoying the HN hivemind.

[2] Show Lobsters [https://lobste.rs/s/ppcmud/show_lobsters_i_built_briefmetric...], some good feedback, this went as well as I could have hoped for the size of the audience. Been really enjoying the Lobsters community.

[3] Show Reddit [http://www.reddit.com/r/analytics/comments/1uk9na/briefmetri...] Got a chunk of visitors, but all the comments were from people I knew so the feedback was a bit of an echochamber.

neals 5 days ago 1 reply      
I've got 3 people cold-calling and driving around the country showcasing our product. They started last week. This is the first time I'm trying selling an online service this way, I must say that I am pleasantly surprised by the feedback and the signups.
eli 5 days ago 1 reply      
This is almost the exact same question as this front page post from an hour earlier: https://news.ycombinator.com/item?id=7248460

In essence: Go where your users hang out. With few exceptions, this is probably NOT the same place as where startup geeks hang out.

One example: my startup has a website for the Energy & Utilities industry. We got a bunch of early users by forming a partnership with a trade organization for energy providers.

Jasber 5 days ago 2 replies      
My friend and I just started a site to help do this: http://leaklist.org/

It's super early, but we've already gotten 500 users who are looking to beta test software and we've already started sending out codes.

Our goal is to make it the best platform for developers to get their first 100 users and the best place for users to get early & free access to awesome apps.

If you're interested please sign up either as a user or a developerwe're sending out stuff weekly!

DanBC 5 days ago 0 replies      
You don't appear to have any links to your product on your HN user page!!!
girasquid 5 days ago 0 replies      
I was after people who used iTunes to listen to their music for Beathound (http://beathound.com), so I created a survey asking them about their listening habits and offered a $100 iTunes gift card as a reward in the hopes that folks filling it out would self-select based on how much they cared about the gift card. I posted a link to the survey in a handful of survey-oriented subreddits (/r/SampleSize is good) as well as some specific ones (like /r/music and /r/itunes).

I had them leave their email if they wanted to be notified of the survey results, and then when Beathound was ready to go I sent them a nice email that said "Thanks for filling out my survey! You didn't win the gift card, but [here] are the results, and [here] is what I built using them."

I had a terrible time giving the gift card to the person who won it, because they were in Australia and I'm in Canada - if you're going to give something away for your survey, make sure that you can easily do it internationally.

muratmutlu 5 days ago 1 reply      
http://betali.st/ got us our first 300 users for http://www.marvelapp.com, it's free to submit, I recommend it, great way to get momentum.

To get our first 1000 I used a combination of Twitter, LinkedIn Groups and my own blog and newsletter

lgilchrist 5 days ago 1 reply      
What's your product and who is your target user? Where do they spend their time? LinkedIn, Reddit, and HN won't help if you're trying to reach, for example, teenage girls.

I collected some thoughts on this that you might find helpful:http://lgilchrist.github.io/how_to_get_your_first_100_users/

TL:DR;- get a splash page up and start collecting emails- guest blog - particularly in places you know your would-be-users will read- organize an event - play around with paid marketing

davidw 5 days ago 1 reply      
With LiberWriter, I targeted forums where our users actually hang out, and gave useful answers to questions, with the URL at the end of the message as a sort of '.signature'.

HN is far, far away from our target audience, so posts here - even on the top of the front page - have gotten me pretty much 0 conversions. That's fine, though.

Disruptive_Dave 3 days ago 0 replies      
Quick background on Collabo (www.letscollabo.com) for some context - we're a bootstrapped startup aimed at creating a safe environment for freelancers, solopreneurs, and work-from-homers to video chat about anything they want. No selling, just camaraderie. We're very much in the P/M fit stage and wanted to test our theories that we can build and sustain and engaged community of peers willing to share/learn/give/seek with each other. So, here's what we did to get our first 100:

1. When users sign up for our email drip campaign (which consists of drive-to's for our blog), they also receive an invite to a private Facebook Group. We manually approve every person in the Group, and use the Group to learn about our customers, connect them with each other, survey new ideas, and build a sense of community. The Group has been wildly key to our building process. We're seeing about 55-60% of our email sign-ups join the Group, with about 20% being active participants.

2. My co-founder and I put out an offer to all our customers/readers to meet us for a cup of coffee, on us. We're in Portland and NYC, so only for those folks.

3. Sent personal emails to our networks promoting Collabo and asking them for feedback.

4. I manually scraped the follower lists of our competitors and industry big dogs on Twitter and followed them, which yielded some really good results, mostly in terms of gaining targeted followers.

5. Lots of time spent offering advice and sharing stories/knowledge on communities like r/startups and r/freelance.

6. In the process of guest blogging on sites that serve our niche market.

morisy 5 days ago 1 reply      
30% from mailing lists where I was already an active member.30% direct referrals from people I knew in field.30% referrals from when I would find people not interested in product, and ask them if they knew anyone who was interested.10% media coverage of product.

Super labor intensive.

dsugarman 5 days ago 0 replies      
Focus on getting a product to the point that some small group (as small as one person) really loves the product. If you focus on that getting to 100 will be easy. Of course you will need to pick a product that at least 100 people have a use for.
dangrossman 5 days ago 0 replies      
Advertising. AdWords PPC and banners on relevant sites. You can use tools like http://mixrank.com/ YC S11) to see where your competitors advertise and what ads they use.
bredren 5 days ago 0 replies      
Friends and family count for your first dozen at least, hopefully. After that, consider looking for online communities that need your product. For example, vbulletin forums that focus on them.

Ingratiate yourself to these communities by participating in discussions unrelated to what you're working on.

By then, you should be able to post a full thread describing what you've done, offer a few screenshots and ask if people will try it. By replying to people's questions and being friendly, you will keep the thread reasonably topped and pick up users that way.

This also works in general interest internet forums, so long as you are a reasonable participant and posting in the correct areas.

nhebb 5 days ago 1 reply      
Before launching my first product, I wrote ten articles on related subjects and put up an email sign-up form. The article were static html pages, not blog posts. They were howto's and other reference pieces that had lasting traffic value.
shasa 4 days ago 0 replies      
Back in Dec 2012, when we were planning to launch TripTern we were bootstrapped and didn't have any money for marketing. So we relied heavily on Facebook for promotion. One thing that we used to spread the word was to create promotional material based on movie posters ( see the links below). It helped us in getting the initial signups and also was instrumental in us getting featured on Mashable.




You can see the entire album here


helen842000 5 days ago 1 reply      
Adwords, Forums, facebook groups, blog audiences, commenting, twitter, pinterest.

Go and find out where you customer hangs out online. Who already has your perfect audience on their mailing list? See if you can write something of value for their audience and tap into existing groups.

When you do get users, ask how they found you then double down on promoting in that channel.

vetleen 4 days ago 0 replies      
There are a lot of great answers here already, however if you just do everything at once, you have no idea what works and not. Therefore, my advice is to take all of the great strategies mentioned here and write them down in column A in a Google Docs spreadsheet. Then write todays date in column B. Then choose one of the strategies in the list, preferably one you believe in. In the intersection between the date and the strategy write Procedure: <exactly how you plan to proceed>, Measure: <exactly how you plan to measure the result, i.e. pageviews, signups etc.>, Result: <the results per metric>, Comments: <any comments that you think youd like to remember when you read this in three months> . Then do exactly what you planned to do, measure the results and write them down in the designated field. Next day (or when the first strategy is done) pick a new strategy and repeat the process.

I work with a lot of startups, and one of the things we keep learning is that it is a lot harder to get customers than it is to build something. Therefore try to think of marketing as a puzzle, a challenge to be solved. The key is to keep experimenting, and measure everything until you find something that works, then keep experimenting and measuring.

adambrod 5 days ago 0 replies      
Striking up conversations in targeted areas works well for Blonk [0].

We're targeting software engineers & smaller startups looking to hire in the bay area. Find an icebreaker and when they naturally ask what you do, have your elevator pitch ready. If they're interested they'll ask you for url info or start downloading it on the spot. If not, no worries.

We often work at coffee shops in that area. When someone starts talking, we're happy to chat. Typically when they need to plug in a laptop or they ask you to watch their stuff. Attending meetups that your target audience goes to can be very worthwhile.

[0] http://blonk.co is an job finding app that connects job seekers to co-founders or their potential dept. leader in large companies, skipping the recruiters entirely.

Sindrome 5 days ago 0 replies      
It really depends on the business. But ideally you want to find a place where your ideal user is and promote there.Some Example:- If you are doing something entertainment based try posting branded content on Tumblr and promoting it through social media.- If you are building a SaaS application for developers, try to speak at a conference.

Be sure not to fall into the trap of using users/straight growth as a vanity metric. Any website can get decent growth with a spammy strategy. You want quality users that will help grow the product.

spencerfry 5 days ago 1 reply      
I've grown https://www.uncover.com (a simple tool to give employees perks and rewards) in various different ways. A lot of it began with telling my network of friends who run startups. Getting them signed up. Then getting them to tell their friends how much they liked it. Once that source was depleted, I began to do a lot of content marketing. I started writing for a lot of different blogs, websites, etc. That helped get out name out there and brought in about a third of our current customers. I'm now beginning to experiment with buying ads. It's still too early to tell how well that will work out, though.
yaur 5 days ago 0 replies      
My last personal project was a fan site for an MMORPG where I was doing around 250k monthly uniques before the game tanked. Promoting it was just a matter of establishing a presence on the official forums prelaunch, looking at referrers and extending the presence to other sites that were generating traffic.

My last commercial project was an OTT IPTV startup which we mainly promoted through adwords, some premium online ads in our target demographic, and doing interviews with media outlets that were serving that demographic. In terms of CPA adwords were by far the most cost effective.

My current project is in the entertainment. We are looking to get buy in from a couple of prominent people in the space before we go live and expect that a "we like it" from them will give us critical mass very quickly.

Bartweiss 5 days ago 0 replies      
What's your general field? B2B, especially for big industries, tends to call for networking and possibly cold calls. Individual sales tends to call for advertising with a focus on high relevance sites. Social or two-sided markets (think credit card companies and users) tend to call for narrow early focus via outreach to online or physical communities. This simulates widespread use by creating a regionally high use space.

If you're in a specific field (e.g. online cello sales), do outreach to things like relevant forums and subreddits. You'll get targeted use which will provide quality feedback, hopefully. If it's a broad spectrum project, buy up relevant and cheap(ish) ads in several venues. Push use with some definable group that you can interact with directly, get emails via a newsletter, etc.

ry0ohki 5 days ago 0 replies      
Who is your customer? You need to go to where they are. Depending on your customer there will be wildly different marketing strategies.
trevordev 4 days ago 0 replies      
I created a website chatleap.com about a month ago and I had moved on since I was unable to get people to use it. I saw the twitch plays pokemon post and realized that it was hard to chat in the twitch chat due to all the people spamming commands so I decided to post my website there in hopes to get 1 or two people to visit my lonely chat. I ended up getting around 130 people and even had others posting my link in the twitch chat. So thats how I got my first 100 users but I am afraid they wont stay for long.
junglhilt 4 days ago 0 replies      
At Jungl VPN we do the following:

1) Personally craft a unique, thoughtful reply to every sales question.2) Use our own VPN ourselves on a daily basis so we can empathize with our customers and improve our product3) Provide stellar support for our product. For example remotely troubleshooting issues on customers computers or setting up a custom VPN server temporarily if customers are in a pinch. 4) Reward our influential customers by offering a referral fee.


wuhha 4 days ago 1 reply      
We had a idea for a group messenger tool to bridge teams and their customers (http://peer.im). Then we signed up an advisor to help us on sales and marketing. His is a sales director so he started used this tool in his team. Then we had a media press covered which brings us several dozen of real users who can give us feedback and iterate on features.
mrborgen 5 days ago 0 replies      
A few years ago I started a norwegian Fiverr.com clone, called Mikrojobb.no. We got our first 100 users by:

1. Telling all of our friends to create accounts and post some 'gigs', so the site didnt look like a ghost town.

2. Going to various forums for bloggers, web developers, part-time entrepreneurs etc and asking them for feedback. (In other word, finding communities that we thought would use the site and asking them for feedback.)

3. Pushing some press releases to local news sites.

Quite straightforward.

blase40 4 days ago 0 replies      
I struck up a partnership with the owner of the largest forum in my vertical. I just published this blog post about the whole process a few days ago:

How One Strategic Partnership Generated Hockey Stick Growth For Our Online Community http://justinblase.quora.com/How-One-Strategic-Partnership-G...

vetleen 4 days ago 0 replies      
I work with a startup that sells education games to elementary schools in Norway. We did a survey, where we sent out 600 forms to teachers and got 154 responses. At the end of the form we had an extremely short description of the concept and a check-box for yes, I would like to try this product together with my students. We got 94 signups from that.
pypetey 5 days ago 0 replies      
How should I acquire users for classified ads website?I've done this site recently, it's my first personal project:http://oglos.info/

I managed got some ads etc. I will appreciate feedback :) and suggestions related with the site (it's not in english but it's extremely easy so it should be understandable).

arikrak 5 days ago 1 reply      
If you have a project associated with your startup, you can launch it on Kickstarter and get both users and money. That's what I did for Learneroo.com.
raghavb 1 day ago 0 replies      
Bunkmate.in told a few friends about it in college and . Grew from there.
GnarfGnarf 5 days ago 1 reply      
Not post on HN or Reddit, that's for sure.
BorisMelnik 5 days ago 1 reply      
cold called - I hired interns and commission based workers to call people they thought would buy our product. I didn't have to worry about selling it to the customers, I just had to figure out how to sell it to our sales reps. Cold calling worked great, just got tired of the bS that came along with it.
cmelbye 5 days ago 0 replies      
Advertising on social media and lots of instrumentation.
elgrito 4 days ago 0 replies      
We don't have budget for marketing at http://www.cloquo.com so the only way we can do in order to promote our platform is by inviting bloggers, related with our service, to try out what we have develop so far, and we got some good feedback and reviews. Other way we are experimenting is to listen on twitter what kind of upcoming events people is interesting to not miss out and we add some value to them by sharing an alarm to easily activate it and being reminded when time comes. As a Google Mentor told me once, is better to reach first your primary audience instead going mad to be reviewed at big tech media.

Maybe our experience can help others...

phinett 3 days ago 0 replies      
Similar to what others have said...when I setup my DJ mixes website for electronic dance music back in 2008 (http://www.house-mixes.com), I literally jumped on to like-minded forums asking if people would be willing to trial it out, there was only a handful of competitors at the time which helped I suppose, but today we have over 550,000 registered users and an extremely active site.
pekk 5 days ago 0 replies      
What kind of customer are you trying to get?
MarkIceberg 4 days ago 0 replies      
HN got me the first 260 users for http://crushify.org(Reddit was a no show.
prottmann 5 days ago 0 replies      
Thats the holy grail of marketing, and you will not get the answer here.
mehulkar 5 days ago 0 replies      
Reach out to 100 strategic people individually.
mbesto 5 days ago 0 replies      
Talk to people. In person.
enra 5 days ago 0 replies      
Told friends, twitter, HN.
sharemywin 5 days ago 0 replies      
you might try your local chamber of commerce. I believe one the mail apps tried that. probably need a general business app.
pikachu_is_cool 5 days ago 1 reply      
I got my first 50,000 users in a few days by posting to reddit. And literally doing nothing else.

If you're trying this hard to market then you're probably making a bad product.

jarnix 5 days ago 0 replies      
I would give a kidney.
Ask HN: do you use App.net?
27 points by sarhus  16 hours ago   45 comments top 21
mikeash 15 hours ago 2 replies      
I never understood the point, personally. App.net was created to fix the problems with Twitter. But to me, the root problem with Twitter is that it's centralized, and App.net doesn't even try to solve that.
freehunter 15 hours ago 2 replies      
I always hear talk about "if you're not paying for it, you're not the customer". App.net was designed to solve that: you pay for it, so there's no ads, no privacy intrusions, and no worries about who is selling you to whom.

I guess the experiment failed, and free-to-play wins out.

kylec 14 hours ago 0 replies      
I cross-post my Twitter posts to App.net with IFTTT. I'd like to use it more, but I'm not satisfied with any of the desktop clients, and most people I want to follow are still active on Twitter, meaning I need to follow both.

I still support the service and its goals, and hope it will still be around the next time Twitter does something user-hostile so there's an alternative for people to consider.

mikestew 12 hours ago 0 replies      
I don't use it anymore. I jumped on it when App.net switch to its current incarnation from <whatever it was they used to do, I forget>. Paid the $50 for the developer key. Looks over the docs, posted a thing or two, then never used it. From a development standpoint I guess I never really got it. After looking at the other apps out there for inspiration, which were all Twitter clones, I guess no one else "got it", either.

Helping me "get it" lands at the feet of App.net. But a mass of corporaty buzzwords isn't going to fix that. Someone else mentioned the mistake of directing users to the Alpha app. Yup, it's just a paid version of Twitter, I guess. And App.net did nothing to dissuade me of that idea. Nothing in their pitch, nothing in the API docs (that I saw) indicated to me that there was more to do than post short pieces of text. Telling me it's a "platform" is not useful. Pointing me to an API and saying "here, we have user storage!", "over here we have a picture API", now those kinds of things would be useful and would persuade me that it's not just paid Twitter.

rip747 15 hours ago 1 reply      
i never really understood what they were trying to do.

even going to their about page (https://app.net/about/) doesn't really explain anything. there are no screen shots, only common buzzy worded language, no depth of explanation on benefits of using the product.

jaegerpicker 15 hours ago 0 replies      
No but thanks for reminding me that I need to go cancel the subscription I have with them. I think it was a neat idea that just shows how difficult it is to overcome the inertia of the established social networks.
bluetidepro 14 hours ago 1 reply      
I used to, but don't anymore. It's like Google Plus, it's just spam on there (it seems like). Or it's just a bunch of tweets pushed to it, which defeats the purpose.
zimpenfish 16 hours ago 0 replies      
I've got an account but since I mostly use Twitter for bots etc., App.net loses out. Although there was some new stuff recently (metadata? PUBSUB? I forget) which made me think it was time to have another look at it.
dkoch 15 hours ago 0 replies      
Signed up for an account when they started offering free, didn't really understand the benefit because no one was there.

I have not been back.

AznHisoka 12 hours ago 0 replies      
Looking at all the responses posted so far, and it's pretty clear: App.net is a solution to a problem that doesn't exist (or it's a poorly executed solution to a painful problem)

Honestly, who cares about an API that lets you post, or read messages if there's nobody on the other side that will read your messages? it doesn't matter if I can make 1 billion calls a day.

Shank 14 hours ago 0 replies      
I use it for Broadcast -- I have Broadcast set to send me a news story if it reaches 500 points on HN, and a few other sites that I like a lot that don't update frequently.
kristiandupont 14 hours ago 0 replies      
I used to use it, when it was a service for mobile app landing pages. The twitter-replacement I've never tried.
almosnow 15 hours ago 1 reply      
I never really got what app.net is. Is there someone subscribed? Can you explain more?
andyhmltn 15 hours ago 0 replies      
Tried it for a few days but I haven't used it since. The appeal of twitter isn't the concept anymore it's the fact that everyone else is using it
Joe8Bit 15 hours ago 1 reply      
I've been thinking about this recently, as like others in this thread I too have't used it in a while, but I think it's less indicative of the quality of the premise behind App.net (pay = no ads + privacy) than how little I notice Twitter ads and consequently how little they alienate me onto another platform.
richf 14 hours ago 0 replies      
Used it and loved it when it was the mobile app landing page service, paid the $50 for the new reincarnation during the backing phase -- never used it since. Wish I got my money back, actually.
photorized 14 hours ago 0 replies      
No. Looked at it a year ago, didn't feel like signing up.
fs111 15 hours ago 0 replies      
tried it once, but did not like it, since everybody is on twitter anyway
munimkazia 16 hours ago 0 replies      
Not really, no. It's been ages since I've logged in.
icantthinkofone 14 hours ago 0 replies      
I never heard of it till this news came out.
jeffcarroll 16 hours ago 0 replies      
Not really anymore.
Ask HN: Where I can post my startup to get beta users?
122 points by matysanchez  5 days ago   35 comments top 21
nfm 5 days ago 1 reply      
This is a lesson I have learned the hard way... You should know the answer this question before you start work on anything. If you're having trouble figuring out who your product is for, or how you're going to get in touch with prospects in an affordable way, you may have picked the wrong thing to work on.

That said, it's definitely possible to recover from being in this position. It can just take a long time.

benologist 5 days ago 2 replies      
Sites that are relevant to your audience. Don't prioritize "startup" sites over industry-specific sites.
hglaser 5 days ago 1 reply      
This is super hard and there is no great answer. I've never met anyone who's had good luck with places like Betalist. (Though "Show HN" can work.)

Realistically you are going to be tracking down your first 100 users yourself manually. Figure out who among your friends is a good fit and bug them. Then ask all your other friends who they know who'd be a good fit. If they don't click, follow up and ask why. If they click but then don't come back, follow up and ask why. If they become an active user, you are about to become best friends, always talking about what they like and why.

You're going to feel like a mooch for a while -- like you're always asking your contacts for things and not giving back. This is normal.

Also, this thread is on the front page, so post a link. Quick -- an opportunity!

nate 5 days ago 0 replies      
My best tools for getting beta users when I was kicking around Draft as an idea:

1) Build your own audience through teaching. Stop looking for the one time hit. The odds your startup/project is going to last the long term are probably low, and if you move onto the next thing, you'll be in the same spot. Start trying to build an audience around you of people and students who share your world views, and build stuff for them. Blog, write articles, do webcasts, talk at one of the many co-working spaces that look for speakers now.

Many people reading this are saying "But I don't know anything to teach." That's ridiculous. You just learned something last week that someone still doesn't know. I was teaching an entire Freshman Chemistry class as a Senior. There were juniors doing it. Sure, I took the class myself, but I didn't think I knew it well enough to even teach them. But I did the work to prepare, and teaching made me learn it backwards and forwards. Teaching isn't just good for the student; it's good for you.

"What is obvious to you is obvious to you" -John Medina (author of BabyBrainRules).

There is so much you know that someone else would love to acquire.

2) User testing. Get some beta testers simply by paying some people to use your app. (Read: Don't Make Me Think) I got some early folks on Usertesting.com. They were invaluable in finding problems and providing feedback in way you just don't get from some comments on a forum or thread about your product.

3) Go do some volunteer/non-profit work for 2 hours a week. Join something that has a big group of people you can help out and commit to for awhile. You'll quickly find when you start working for groups have a cause much bigger than you, you make a lot of new friends. And when you help them out, they love helping you out. You'll have these new groups to reach out to kick around new ideas. And they are the first ones spreading your stuff. Even better if you can find some groups to help with stuff you are building, but definitely not required to get some great benefits.

zvanness 5 days ago 0 replies      
I'm currently working on http://headlinr.com/

It's supposed to be a billboard for startup and product launches.

I pushed it out about three weeks ago, it's picking up some pretty good traffic so far.

I plan on expanding it into something more, something that actually gets you your initial user-base.

rrhyne 5 days ago 0 replies      
If B2B, decide on a few target verticals. Verticals that post email addresses to websites would help you get started easily, else get creative with linked in and google to find emails.

Then create an email campaign using something like Toutapp.com to email these people telling them you'd like their opinion on a tool that does x for their needs.

If consumer, try the same thing with facebook or similar.

notJim 5 days ago 0 replies      
Where do your customers hang out online? If your customers are everyone, pick a narrower group to start with that you can target more directly, and then once you get traction there, expand to other groups.
grisha 5 days ago 0 replies      
Hmm. It seems to me, that if you answer such a question, then you do not know who your users are. And this is not good for your startup. Because you have to know your users to be able to fix problems worth fixing. So try ask another question. Who are my users? And what actual problem I want to fix for them? Then, I think, you will be able to find a way to them.
DanBC 5 days ago 0 replies      
You don't appear to have a link to it from your profile?
cmelbye 5 days ago 0 replies      
Are the people who use "betalist" and HN in your product's target market?
nish1500 5 days ago 0 replies      
I had my last product on the front page for a while. Show HN can be a good source of traffic, but it was quite useless for getting users, or even quality feedback.

I suggest you look for niches in your industry.

makyol 5 days ago 1 reply      
Startup Buffer: http://startupbuffer.com Disclaimer: I am built that.
mtrimpe 5 days ago 0 replies      
Once you're no longer closed beta Museum of Modern Beta's is another option: http://momb.socio-kybernetics.net/

Technology showcases also work, like e.g. builtwithbackbonejs.com

johns 5 days ago 0 replies      
davidbarker 5 days ago 0 replies      
http://startupli.st is one I often look at.
scottmcleod 5 days ago 1 reply      
By picking up the phone
sparrish 5 days ago 0 replies      
Contact non-profits directly and offer them a free beta account. It worked for us.
adinb 5 days ago 0 replies      
Centercode is a good, for-pay beta service provider. (Centercode.com
Ask HN: How do you do accounting for your startup?
6 points by manas2004  1 day ago   20 comments top 7
rahimnathwani 20 hours ago 0 replies      
It's worth thinking about which of these services you need:

- Book-keeping: Keeping track of paperwork, and movements in cash/bank. Ideally these are entered into accounting software monthly (or more frequently). Some small, cash-based businesses just put paperwork (receipts, and copies of issued invoices) in a shoe box, and give that box to their accountant once per quarter or once per year.

- Statutory accounts/tax filings: If you were a Limited company in the UK, these might include (i) annual accounts filed with Companies House, (ii) annual Company Tax Return filed with HMRC, (iii) quarterly VAT return filed with HMRC, (iv) PAYE (payroll tax) filings with HMRC.

- Monthly management accounts (for you and your investors)

- Planning and advice: at a minimum this would include planning to minimise tax (you can't leave it until compliance time) but may also include cash flow planning or broader business planning

There's more detail around each of these things. I'd be happy to go into more detail about any of these as it relates to UK-based companies.

(I am a qualified accountant but the above is general information and not advice.)

DanBC 1 day ago 1 reply      
I've heard UK contractors forming a co-operative and employing an accountant. The co-op is purely for the accountant, everything else is kept separate from it.

Not sure about the US but in the UK accountants are trained, qualified, registered professionals. The tax and legal systems are complex so it's usually a good spend of the money. You either save money by knowing what is tax deductible (for example) or you avoid fines by not claiming for things that you shouldn't. It allows you to concentrate on the fun other bits of the business.

27182818284 1 day ago 0 replies      
Hired an accountant that specializes in startups so you don't get accidentally hit with a surprise $30K tax bill like another startup I know just did :(
batoure 1 day ago 2 replies      
Hire a book keeper as a contractor. We went through this with our startup we spent time researching various platforms considered automating some of our processes our selves and then ultimately hooked up with a book keeper quite accidentally. It changed our whole perspective on the process. Think of it this way if you were a group of front end developers who turned out to need a high powered backend database solution and hit a wall with internal implementation you would immediately go out and find a dba to be part of or advise your company on the path forward. Think about your books in the same way. Accounting has purposeful redundancy built into it and many constructs that will make a logical programmer want to cry. Getting setup in the right way from the beginning will help you later.
kirillzubovsky 1 day ago 0 replies      
Might not help you this season, but we use inDinero for all our accounting, and as a perk of a full-year subscription, they also do our taxes. It's quite convenient not to have to think about any paperwork.
NAFV_P 1 day ago 1 reply      
In the UK accountancy courses are subsidised, it might also be the case in the US. This could be an option regarding a long term strategy.

At my accountancy course I learned that when Sage goes belly up, you resort to double entry.

malfario 1 day ago 1 reply      
Which country do you live in?
And this, too, shall pass away ...
14 points by ColinWright  2 days ago   7 comments top 5
ACow_Adonis 1 day ago 0 replies      
Just be glad that Facebook didn't buy Flappy Bird for 16 billion bitcoin...

I'm pretty sure when it happens the universe is supposed to end or something.

raquo 1 day ago 0 replies      
Well, least I can do is offer you my RSS filter for the current surge of WhatsApp news:http://hnapp.com/filter/e5237959afa774367c913e349eb075b7
tostitos1979 2 days ago 0 replies      
At least this is better than the months where 19 of 30 entries on the front page were about bitcoin.

I'm not going to comment on the quality of posts. What brings me to HN is the user base. It is the people who make stuff.

jordsmi 2 days ago 0 replies      
Not this again. I get the latest news on Hacker "News". That includes one of current biggest apps selling for $16B or whatever it was.

It is also a way to pass the time. Instead of playing video games, I can waste my time reading things that have some sort of relevance to technology and such.

emocakes 2 days ago 2 replies      
Not so much these days, this place is getting filled with liberals who seem to have majored in the arts, not computer science of engineering.
Ask HN: What keeps you off of Postgres?
11 points by moron4hire  1 day ago   14 comments top 7
sheff 1 day ago 1 reply      
Postgres is a fantastic database.

That said, I've also used Oracle quite extensively in the past when clients have needed it and it has some features that would be great to have in Postgres - as well as some features which we won't see in Postgres as they don't match the Postgres philosophy. Lack of one or more of the features below have driven the choice for various clients to use Oracle despite the cost, so having them would help grow the Postgres ecosystem.

Features in Oracle I'd like to see in Postgres :

1) Flashback. This name encompasses lots of ways to see data as it existed at a previous point in time.

If you drop a table, make a big (wrong) change etc, being able to flashback to just before it is brilliant. Or if you have a multi-terabyte sized performance test database, running a test and then a flashback to before the test is much quicker than restoring from a backup.

2) More robust partitioning - Postgres is quite lacking in comparison here.

3) Better backup options. PG really needs an in core incremental backup to start with, with something like Oracles block change tracking for backups thrown in to do quick incremental backups of a large database.

4) Replication - the lack of something like Oracles switchover which is used in a lot of architectures where you have a application and DB replicated across two sites, with one site being the active one at a point in time. When you need to take one site down for whatever reason, in Oracle you can just do a planned "switchover" to the replica DB and then switch back whenever you want without having to do anything as the DB knows it was a clean switch.

5) The diagnostic and performance monitoring built into Oracle are more extensive than those in Postgres.

The one other really useful feature Oracle has which will likely never be in Postgres is RAC (Real Application Clusters) which lets you create a multi-node active-active DB cluster quite easily.

staunch 1 day ago 1 reply      
For a number of use-cases Linux is technically and practically superior to Windows and OSX. For servers there is essentially no viable competition. Postgres by comparison has a hundred viable competitors and very few exclusive killer features. It's a free Oracle alternative in an age where people don't even want Oracle.
dventimi 1 day ago 3 replies      
Breaking the question down into parts, so that Postgres is compared one-on-one with each of its potential competitors, consider Postgres-vs.-MySQL. After all, it's plausible that one of the first decisions you make is whether to use a proprietary database or an open-source database. If the former, then you're probably deciding among Oracle, Microsoft, and maybe IBM. If the latter, you're probably deciding between MySQL and Postgres. So let's concentrate on the latter for a moment.

Why do people choose MySQL over Postgres?

I don't know the answer to that, but I was TOLD by a DBA colleague of mine who believes Postgres to be technically superior that the reason companies choose MySQL is because of the commercial support. Though it's open-source, MySQL evidently is in some sense "owned" or at least "sponsored" by Oracle, and if you go to www.mysql.com you'll find that you can purchase various services (support, training, etc.) directly from Oracle. Contrast that with PostgreSQL which even today appears to be more a house divided. At www.postgresql.org, you're presented with a list of third-party consulting organizations. I'm not positive, but I would be unsurprised if that made corporate managers a little nervous. "No one was ever fired for buying IBM." as the saying goes.

Of course, this is just conjecture on my part. Perhaps someone with better intel can comment.

ohsnap 1 day ago 0 replies      
To do a clean sweep you really need a 'order of magnitude' type of justification ... some benefit that completely justifies the risk and time of changing platforms.

Postgres does a lot of things better than Mysql, but unless you have a really unique data problem to solve (perhaps say a robust spatial database) it's hard to switch midstream.

allendoerfer 1 day ago 0 replies      
MySQL works for me and switching to Postgres would cost time and energy, which I like to spend on things actually making money.

That said, I have encountered some shortcomings of MySQL here and there (Constraints) and I can totally see how Postgres would be "nice to have", but I feel, that I am just not operating at a scale, where it really matters.

Edit: Typo

AznHisoka 1 day ago 0 replies      
What keeps me off Postgres is hopefully something they just fixed today: http://www.postgresql.org/about/news/1506/

Binary replications to slave had a very nasty bug that would make your replica data corrupt at random moments of time. Apparently I was one of the unlucky few that encountered this issue time after time.

maxharris 23 hours ago 0 replies      
Postgres doesn't work out of the box with Meteor.
Ask HN: Is it worth to start a Startup in the USA for a foreigner?
4 points by eliah-lakhin  1 day ago   2 comments top
[Ask HN] Is Threema Secure?
4 points by rydl  1 day ago   discuss
Ask HN: What U.S. tech/developer conferences have you enjoyed?
3 points by jawns  16 hours ago   4 comments top 4
fuzzythinker 10 hours ago 0 replies      
HTML5 Conf - reason:

- cost is extremely fair < $99 for 2 days if got in on early bird.

- famo.us intro - mind blown https://www.youtube.com/watch?v=wxBxsLl9ViE

- react.js - very nice talk by Pete Hunt - video not recorded, but here's his past talks on it https://www.google.com/search?q=pete+hunt+react+video

- continuous delivery - learned how to give a great speech, aside from the topic https://www.youtube.com/watch?v=OXk3aUoZ7AQ

May's session just opened for tickets, although I'm probably going to pass it this time. Will probably attend Fall's session though.

strangeloop is the other one I would like to attend one day, but will need to save up money for it since it's slightly more expensive and requires a flight for me.

CHI and TEI is another ones I like to attend, but really need to save lots of money for.

caballosinombre 13 minutes ago 0 replies      
pdevr 15 hours ago 0 replies      
(Disclaimer: I don't know how good any of these are)

* PyCon

* Cloud Slam

* Strata

* O'Reilly Fluent Conference

* JSConf

thecrumb 15 hours ago 0 replies      

  * NCDevCon (http://ncdevcon.com)  * cfObjective (http://www.cfobjective.com/)
Both these started out as small ColdFusion (it's not dead) conferences but have grown into great general web development conferences.

Ask HN: What are some alternatives to HN?
182 points by sdegutis  4 days ago   183 comments top 40
ColinWright 4 days ago 11 replies      
wwwwwwwwww 4 days ago 1 reply      
Mandatum 4 days ago 1 reply      
http://lesswrong.org"Less Wrong is an online community for people who want to apply the discovery of biases like the conjunction fallacy, the affect heuristic, and scope insensitivity.."
excitom 4 days ago 1 reply      
The old classic: http://slashdot.org/
swordswinger12 4 days ago 0 replies      
Not quite what you were looking for, but a damned interesting site nonetheless - http://www.aldaily.com/
srik 4 days ago 2 replies      
Subreddits aside, I have taken a liking towards Designer News -


SeanDav 3 days ago 0 replies      
http://boingboing.net is a rather interesting, if somewhat alternate, source of tech and other news.
krogsgard 4 days ago 2 replies      
The Digg technology tag is actually pretty good.


IvyMike 3 days ago 1 reply      
This isn't an existing site, but it's an idea for a new site.

It always seemed to me like the list of up/downvotes forms a graph not unlike hyperlinks the web; I'd be curious to see a site that tried to apply a PageRank-like algorithm to that graph rather than a pure "one vote = one point" system like reddit.

Of course this would probably lead to SEO-like techniques and attempts to game the system, and high-karma accounts would probably end up being sold for cash, it might encourage groupthink, etc, but it still would be interesting to see how it rolled out.

lucaspiller 4 days ago 0 replies      
Lifestyle / small business stuff:

http://lifestyle.io/ - Appears to be down though :(

http://www.reddit.com/r/entrepreneur - People who have made it complaining about people who haven't

http://www.reddit.com/r/smallbusiness - More brick and mortar

http://www.reddit.com/r/startups - Lots of 'startups' where people have built a website, with the occasional actual business

3rd3 4 days ago 1 reply      
Going outside.
GamblersFallacy 3 days ago 0 replies      
Simple python scraper for all the links:

import requests

import lxml.html

dom = lxml.html.fromstring(requests.get('https://news.ycombinator.com/item?id=7254884').content)

[x for x in dom.xpath('//a/@href') if '//' in x and 'ycombinator.com' not in x]

dotBen 4 days ago 1 reply      
Are you compiling a seed list for an aggregator/machine learning type project?
kindlez 4 days ago 0 replies      
You should check out http://business.snapzu.com or http://tech.snapzu.com same service, different categories)

It's a more visual approach, and new submissions start small and get bigger as they get more popular (amount of votes) on the grid.

MichaelMoser123 3 days ago 0 replies      
Work, doing something productive instead of hanging out in all these places (that's intended for my own self, hear that?
pmcpinto 3 days ago 0 replies      
A few weeks ago I launched http://thecurrency.io/, which is like a HN for cryptocurrencies and the future of money.

Feel free to give me some suggestions.

wahnfrieden 4 days ago 0 replies      
lowglow 4 days ago 0 replies      
supplemental, not an alternative to: http://techendo.co/
serkanyersen 4 days ago 1 reply      
http://www.echojs.com/ is Hacker news for Javascript
tdk 1 day ago 0 replies      
news:comp.misc is active and interestinghttp://squte.com provides a moderated interface to newsgroups (it will be familiar if you have ever been to slashdot.org)http://soylentnews.org
gtmtg 4 days ago 0 replies      
freetonik 3 days ago 0 replies      
For Russian-speaking crowd there is https://develop.re/
rudexpunx 3 days ago 0 replies      
https://techpost.com early dev. version
jordsmi 4 days ago 1 reply      
Reddit is my go to since there is a subreddit for almost any topic.
iamdanfox 4 days ago 0 replies      
http://www.echojs.com/ - a JS-related Hacker News
ionwake 4 days ago 0 replies      
Are there any Newsgroups recommendations?

For instance - comp.misc ?

gangster_dave 4 days ago 0 replies      
Quora is great for finding interesting startup and tech tidbits.
tohash 4 days ago 0 replies      
lingben 4 days ago 0 replies      
flibertgibit 4 days ago 1 reply      

Get off your computer. Go outside. Read a fucking book.

mergy 4 days ago 1 reply      
stcredzero 4 days ago 0 replies      
Alternatives are irrelevant. Resistance is futile.
       cached 22 February 2014 05:05:01 GMT