Why isn't Haskell popular in industry? - <AUTHOR> http://www.palgorithm.co.uk/2010/05/why-isnt-haskell-popular-in-industry/ <comment><USER2> I think there are a couple reason.

Haskell is a significant departure from most other languages commonly used by industrial programmers. It's a relatively shallow learning curve from Java to Python to JavaScript, but making the leap to a pure functional language is very difficult. Path-dependence plays a huge part here. This isn't just a matter of "people being afraid of what's different" as the article suggests; there are very rational reasons for a profit-seeking firm to exploit the fact that their developers (and those available to hire) are already relatively proficient at writing procedural code.

Another, more important reason, is that Haskell is too intellectually demanding for most industrial programmers. I consider myself an enthusiast of functional programming, but achieving anything practical using purely functional code remains extremely difficult for me, even though I regularly dabble in it during my free time. The Haskell IRC channel can be helpful, but it's very difficult to square "Haskell is easy enough for anyone to learn" with the inevitable "you are too stupid/impatient/incompetent to use Haskell effectively" taunts you're likely to hear, when you're asking for help to perform a simple task. Many Haskell evangelists don't understand that most developers aren't nearly as smart or dedicated as they are.

I'd be curious to know where most Haskell users believe they lie on the distribution of programming ability. I'd estimate most of them lie at the 99% percentile, and that any of them arguing otherwise are doing so out of modesty. (Note that I'd include dedication and curiosity in with intelligence in this metric.) I believe the most likely explanation for this is that Haskell is a particularly difficult language to use effectively.

<comment><USER3> _Another, more important reason, is that Haskell is too intellectually demanding for most industrial programmers. t_

While that's often stated as a reason, I don't believe it myself, simply on the grounds that anyone smart enough to use C++ "in anger" is smart enough to learn any language.

The reason that Haskell isn't popular (IMHO) is that a lot of programming isn't clever algorithms, it's forms (interfaces for getting data into databases) and reports (interfaces for getting data out of databases). A lot more is glue (connecting the output of one program to another). Haskell just isn't a good fit here.

I am very excited by F#; here we have an ML dialect that has minimal impedance mismatch with the OO/imperative world (and C# with LINQ has minimal impedance mismatch with the declarative world of relational databases). This is where Haskell types should look for work...

<comment><USER4> Why is Haskell not a good fit for glue? That's what I use it for, and it works great -- my programs are short, efficient, and easy to write and test.

My first Haskell project for work was initially a C++ project, but it was too hard to use C++ as a glue language, so I switched to Haskell. I would have used Perl, but Haskell works better on Windows and has an easier-to-use FFI.

I actually ended up spending more time trying to get some old version of Visual Studio to link against my super-old-proprietary-C-library that was the core of my project than I did writing the whole Haskell FFI binding to that library and writing the first version of the Haskell-based program.

This turned out to be the most trouble-free program I ever wrote. It had to operate on large datasets, and never died in the middle (like I'm used to with Perl). The only bug that the program ever had was where one of my data validation rules was too strict, and rejected some valid date. (The validation rule said that the dates in the time series had to be increasing. But one series only had one point, and hence wasn't strictly increasing. The bug resulted in "Warning: bad data", though, not "Prelude.(!!): index too large", as the implementation was with fold.)

Incidentally, as a result of this project, c2hs supports Windows DLL calling conventions :)

<comment><USER3> After having written that, I realized it was more nuanced than that. Haskell's good for parsers, for example. I am actually working on one for a proprietary logfile format right now (it will "convert" said logfiles into SQLite .dbs). But if you have preexisting libraries for system A in Java and system B is CORBA then you would be mad to put Haskell in the middle, the impedance mismatch is too great.

<comment><USER4> This is a software-engineering-in-general problem, though, not a Haskell problem. If you have a bunch of components that can only communicate in a very specific way, then all the components have to communicate in that very specific way. This limits flexibility and "working with the system" becomes the main engineering problem. I think this is why most software dev teams explode to needing 10 teams of managers to manage a million developers -- because so many "irreversible" decisions were made that the application becomes workarounds on top of workarounds. Haskell is not going to magically eliminate bad planning and the fear of refactoring. And similarly, it's not going to make it easy to keep adding shit on top of the shit pile, like Scala or Clojure would. (Not to dis on Scala or Clojure specifically. I've actually never seen anyone do this; they just add more Java 1.4.2 on top of their existing Java 1.4.2-only mess. It would be me that added the Scala or Clojure :)

I actually have a problem like this right now; I'm starting re-development on an application whose components talk via CORBA over an ultra-expensive and ultra-overengineered proprietary message bus. My plan is to write a bridge between the proprietary message bus and JSON-RPC (or something like that) in Scala, and make the rewritten components only talk JSON-RPC. Then, when everything is rewritten, there is no more super-expensive-message-bus requirements, and we shut it off. Now we have the ability to write components in any language.

(Also, the reason this doesn't count as adding shit on top of shit is because eventually the ugly bridge will go away. That only exists to make the rewrite into a refactor. You have to have a scaffolding, or all the shit will collapse on top of you and make a big mess. :)

Now I know the reply is going to be, "well, not everyone can just replace their proprietary crap with something simpler and more generic", but again, that's not a Haskell problem.

</comment></comment></comment></comment></comment><comment><USER5> Haskell is not popular because to be popular you must cater to the average Joe. And to cater to average Joe your foremost goal must be not making him uncomfortable about himself. Never forget this.

And since most average Joes just work to pay their bills, they don't give a damn about technical superiority, you know.

<comment><USER6> Speaking as a very experienced average Joe, all I need to see is a use case that shows how learning all of the weirdness discussed in the other comments in this thread will help me do my job.

I can't remember the last time I had trouble getting something done in C because it didn't support Kleisli arrows, or whatever.

<comment><USER5> Thanks for pointing this out, too.

Indeed Haskell lacks a proof of concept of its superiority. And you can't provide such a proof with a few lines of code.

When I studied Erlang, I was flabbergasted by both code size reduction and expressiveness thanks to pattern matching, by its fault tolerant capabilities, by its hot-code swapping... then reading how Yaws was alive and kicking long after Apache died under heavy load.

</comment></comment></comment><comment><USER7> I think the main issues are that lazy evaluation makes it more difficult to reason about the performance of your code, both in terms of what actually gets computed in which thread / on which core, and in terms of space requirements (lazy evaluation can force the runtime to keep things referenced longer than you might expect offhand). I'm not saying a good Haskell programmer can't overcome these obstacles, just that this is definitely a perceived barrier to commercial Haskell development.

Check out this paper for a discussion of these issues in a real world Haskell application:

<http://www.starling-software.com/misc/icfp-2009-cjs.pdf>

</comment><comment><USER8> Failing to work on Windows is a much bigger problem than I think most people realize. You can write Java on Windows and (mostly) have it run on Linux or Solaris with no problem. And Windows has a 95%+ share in the corporate OS market. Ruby on Rails has a similar problem (though it's got better on Windows recently), and so does Django, which is a nightmare to get working in a Windows environment.

<comment><USER9> I'm not sure that these are really the same market share segments. Django, Rails and all that server side stuff is best run on servers, which more often than not, are going to be running a *nix.

Windows has C# and all that, and it works nicely for them.

Perhaps this leads to a wider question of who the Haskell audience really is and what problems they think they solve. Lots of languages have pigeon-holes, Ruby has its super dynamism, Python is an excellent scripting environment, C is fast, etc etc. Haskell is... mathsy. Mathsy applications already have Matlab and such.

I think at the end of the day, Haskell will probably remain a language from which other languages learn from, and that's OK, and that doesn't mean it's unimportant (I think even SPJ has said similar).

<comment><USER10> I think the issue here is buy in from management. If I work at a Windows- centric shop, it's much easier to sell a different platform if it doesn't require building new servers for it. It's much harder to pitch a project when your requirements include new OSes and servers.

For example, I work at a Windows-centric shop, but if I could make a compelling case to build a tool/product on a different platform, I could get my boss to approve it _if_ it didn't require a new piece of hardware. We have written tools in other languages besides C#, but we stick to languages that are easy to deploy on our current servers.

</comment></comment></comment><comment><USER11> As someone who has been learning Haskell recently I think I can bring up a point that no one else has. Record syntax in Haskell sucks. Most business programming revolves around a form of DDD, where each of your business entities are fairly well defined. Creating records that match these business entities is fairly simple, working with them is not. None of the web frameworks I've seen follow a model based approach where you bind directly to your form representation of a model. I've been trying to figure out a way to do this in Haskell, but it looks like I have to learn Template Haskell and Generics on top of the already steep learning curve of Haskell, for something that would be simple in almost any other language. So far I haven't given up, but I don't see mainstream programmers getting into Haskell until they can describe their processes in a model focused fashion (and no, I don't mean with OOP).

</comment><comment><USER12> Even thought I don't agree on this argument, I would add:

\- Because it's not OO.

<comment><USER13> Why doesn't Haskell support objects? Seems like that would be quite useful. They don't need to be mutable or anything. They could be like records, that scale.

<comment><USER14> Because it has typeclasses, which solve the same problems without creating the new problems that conventional objects do.

Why doesn't Java support pattern matching?

<comment><USER15> Typeclasses don't solve the same problems as objects do. Typeclasses are a way of getting access to more operations in polymorphic code, which in functional languages is a compile time feature; they're also a way to implement overloading.

Objects are a way of implementing protocols without needing to know the details of the object that implements the protocol, even at runtime. Polymorphic code in OO systems is a runtime feature, not a compile time one; objects may be loaded dynamically and almost always are at some level in any large OO system, for configurability and testing if nothing else.

<comment> loup-vaillant Because two features are different doesn't mean they don't solve the same problem. Here, most of the time, class polymorphism is used to solve problem best solved with parametric polymorphism (sometimes called genericness).

        class Base
          Base(int i_init)         -- constructor
          virtual int f(int param) --  a method

        class Inherit1 (extends Base)
          int f(int param) -- reimplementation 1

        class Inherit2 (extends Base)
          int f(int param)  -- reimplementation 2

        class Inherit3 … (ad nauseam)

We don't need class polymorphism with inheritance, here. We can do simpler:

        class Base
           Base(int i_init, int f_init(int)) { f =: f_init; … }
           int f(int)

Or even simpler:

        int f(int i_init, int f_init(int)) // C-like syntax
        f: int -> (int -> int) -> int      -- Haskell syntax

(And don't tell me that passing function as parameters is weird, or complicated. Functions are typically way simpler than "Objects".)

</comment></comment></comment></comment></comment><comment><USER16> Every language has a catalyst that pushes it from obscurity into mainstream use. Whether it be a project (Ruby on Rails), a programmer (Linus Torvalds -> C), a company (Google -> Python), or a library (Boost -> C++), there is always a _force_ behind adoption.

Most languages undergo a "fad period", where it's hip and cool to write in it and people just do it because other people do it. Clojure is going through this right now, as are Scala and (arguably) Haskell.

We'll just have to see. I honestly hope Haskell becomes popular. Judging by <http://shootout.alioth.debian.org/u32/haskell.php>, performance really isn't an issue. It's more of just an issue of programmer adoption and a willingness to throw yourself out there to spend some time to learn how to think outside of the imperative programming box.

<comment><USER17> This reddit post tells me why Haskell isn't that popular.

[http://www.reddit.com/r/haskell/comments/cs54i/how_would_you...](http://www.reddit.com/r/haskell/comments/cs54i/how_would_you_write_du_in_haskell/)

Writing a quick directory traversal function should be a no-brainer in any reasonably general-purpose language. The fact that the above reddit thread is jam-packed with the ins-and-outs of doing this simple task in Haskell tells me that Haskell may be great for some things, but it's probably not general- purpose, or a great fit for anything close to the heavy I/O, streaming, processing sorts of code I write.

I actually own Real World Haskell, and have tried off and on to get into it, but I found that Clojure 'took' in my brain 1000x more easily than Haskell. It's a real bitch, because I'd love to be able to say I can write Haskell, but gosh-darn it, I just can't. Grrr. Sigh.

quick edit: in answer to your point about a 'killer app' for Haskell, the parsec parser-combinator library looks bloody brilliant. Maybe if I run across a parsing need, maybe it'll help me get something useful out of Haskell, but I suspect my brain just doesn't get on with the Haskelly/MLy languages.

<comment><USER18> To illustrate this point, a choice snippet from that Reddit thread, explaining part of what seems to be considered 'the proper solution'. Please note that my intention is not to make fun of this, but to illustrate that the terminology in which people in the Haskell community communicate makes it impenetrable for someone just trying to pick up the language and do stuff with it.

      it's a straightforward lifting of the non-monadic version. You can almost get
      it from g_hylo by using the identity comonad, it's distributivity law, the
      identity natural transformation, and using T.sequence as the monad's
      distributivity law[1]. But this doesn't quite get us there because it requires
      that we can refactor the monadic parts of the coalgebra into the algebra.

[http://www.reddit.com/r/haskell/comments/cs54i/how_would_you...](http://www.reddit.com/r/haskell/comments/cs54i/how_would_you_write_du_in_haskell/c0uxleq)

<comment><USER19> I think you are being misled by the seemingly simple headline "how would you write du...". The question was not straightforwardly practical but deep in the territory of so-called 'recursion schemes:

       The natural way to do this is to use an unfold to
       generate a list or tree of all the files in the
       directory tree, map over them to get the sizes,
       and do a fold to get the total.

\-- And similarly elsewhere, more explicitly, as he makes clear why he isn't interested in the 'obvious' solutions, e.g.:

       Yep, this is a good practical approach if I just want
       to "du". I'm looking specifically for the fold . map .
       unfold approach ...

The interventions of doliorules and then winterkoninkje (whom you quote) were in fact the ones that spoke to his condition.

</comment></comment></comment></comment><comment><USER20> Well I've read comments so far and I did not see anyone mentioning this.

I program both on desktop and on web.

On desktop I program C# which is mediocre and recently I have started using C++ with Qt. Qt has huge advantages over C# (QtCreator is IDE that is going to be better in time than Visual Studio, currently it lacks few features, but still I find it usable). On both languages I have my set of libraries which you can't find everywhere else and make my life easier.

On web I use php and sometimes I use Rails. Each has advantages, I use php cause I've used it since php3 so a lot of historical baggage. On each I have my set of code and libraries I use the most.

So lately there's a whole new languages and frameworks coming out. Why should I spend my time porting my libraries to Haskell? Do I get significant advantage coding in it? No, because I use mostly my own libraries.

</comment><comment><USER21> Because it doesn't run on the JVM.

For a variety of reasons — including critical third-party libraries — anything that doesn't run on the JVM and interoperate with legacy Java code is just a non starter for my company. I suspect many other organizations are in a similar situation. It looks like someone is working on a JVM port now so hopefully we'll see something usable in a few years.

<comment> loup-vaillant Just to be sure: do (or would) your company use Clojure?

<comment><USER21> It's under consideration, among other options.

</comment></comment></comment><comment><USER22> Haskell's motto is "Avoid success at all costs!"

It succeeded.

I appreciate the fact that Haskell's designers don't look down on "average" programmers like the Java designers did but I think it's sad that they don't look at all.

</comment><comment><USER23> Most code just doesn't need to be guaranteed correct, plain and simple. If more code did, then Haskell would be more popular.

</comment><comment><USER24> Haskell's a statically compiled language. Wouldn't the "embeddable Haskell" the author proposes essentially be a library?

<comment><USER25> Only to the extent that Firefox is a JavaScript library. I think the major idea is that there is some application whose operation is very broadly directed by the embedded language, in a sandbox-like environment designed for the embedded language. For instance, you could write a video game whose graphics and collision detection and whatnot are all C++, but have Haskell bindings so that all the high-level game code would be Haskell. This isn't all that different from the usage of the much more C-like UnrealScript, which is used for exactly this purpose and is both statically typed and compiled, if I recall correctly.

</comment></comment><comment><USER26> Actually a decent post and discussion.

</comment><comment><USER27> Not to answer the question, but I can provide some reasons why I am not going to learn Haskell. I must say up front that I know next to nothing about the language, and my reason my sound very irrational, superficial and plain silly, however: it just looks ugly. That's it. I cannot imagine myself sitting all day and staring (or writing) something that looks like explosion on a regexp factory with ruins of Perl fallen through. True, the beauty is in the eye of the beholder, however even if I believe there are beautiful thing which may need considerable effort and understanding to appreciate the true elegance of it I cannot imagine such thing being ugly at the first sight. For me it just looks like a lot of effort went just to make it look different. _Maybe_ it makes perfect sense once you learn it, but it just does not look elegant and thus kills all the motivation to try. This all of course is IMVHO.

<comment><USER28> Really? How beautiful it is is exactly what keeps drawing me to Haskell even though I have more invested in the dynamic language camp.

>max = head . sort

Due to the laziness, the above will find the max entry in O(n) time, just like your hand written loop would. How can you _not_ find that beautiful?

Now I do agree that they often seem to use too many symbols that look like other symbols but the few times I've investigated it actually ended up making sense (e.g. Arrows).

<comment><USER29> I love haskell and understand your point. Laziness is beautiful and allows to express things in a simple way and also improve the reusability of the code etc.

However I think that you didn't pick the best example.

I tried out:

>head $ sort [1 .. 10000000]

6 secs, using ~2g of heap! (actually is should be a reverse sort)

and the "hand coded loop":

>let mx (x:xs) m = if x > m then mx xs x else mx xs m; mx [] m = m >mx [1 .. 10000000] 0

3 secs, heap usage stays negligible low and constant.

Something is clearly not behaving as you depicted.

(of course my 'loop' code is not the exact equivalent of the last.sort composition, since it requires a 'minimum' parameter to be passed in advance, which not all types have. On the other hand it works also for the empty list)

I also have the feeling that, unless special compiler optimization (a very 'specific' one, I fear), the simple application of the 'head' function to a sorted list would stop when the first result element is produced, which is not after O(n). Granted, you don't have to wait for a full sort, since the sorting algorithm could guarantee that the rest of the list contain 'lesser/bigger' elements only and thus stop. But keeping track of all this should be space consuming, in respect to a simple linear scan.

Anyway the space problem of the "lazy" solution is a bigger issue than the number of comparisons.

I'm not a haskell master, but if I got it right, one of the mayor problems of lazy programming is that in some situations it can degenerate to a huge amounts of "unevaluated thunks", which are frozen computations yet to be performed, but which require some state to be held in memory (like function arguments, I guess).

(<http://www.haskell.org/haskellwiki/Thunk>)

or in this case, the space usage is caused simply because the list has to be materialized in memory instead of be simply traversed and generated on the fly. (but 2g seems slightly too much).

Anyway, the point here is that the two methods are not equivalent.

I think that understanding the impact of laziness on space is an issue that certainly increases the learning curve, as it requires time to master this and other optimization techniques if you want to get predictable performances from haskell.

(BTW, I actually use haskell for work, perhaps in a slightly conterintuitive way. I use haskell for quick prototyping ideas and solutions. Sometimes I get inspired by the solution I end up with haskell and translate it in clojure or java (work requirement), or at other times I have to rewrite it completely, but the possibility to quickly prototype in haskell really helps me a lot. I would love a stable ghc JVM backend.... it would change my life)

<comment><USER29> I found this article referencing the O(n) complexity for the 'head . sort'

<http://apfelmus.nfshost.com/articles/quicksearch.html>

As far as I can understand from the blog and and the cited mailing lists, it works but it requires a carefully coded sorting method, otherwise O(n log n) as expected.

<comment><USER4> Yes, you have to pick algorithms carefully in any programming language. Haskell is a tool, not a magician.

</comment></comment></comment></comment></comment><comment><USER30> I outlined some of the problems a while ago:

[http://www.codexon.com/posts/why-arent-functional- languages-...](http://www.codexon.com/posts/why-arent-functional-languages- like-haskell-and-ocaml-popular)

Short version: Haskell is harder than C while being slower and uses more memory. The main implementation GHC, comes with GPL concerns.

<comment><USER31> GPL concerns? Its BSD licensed. Haskell's library system is perhaps uniquely BSD-friendly, with over 75% of libraries BSD licensed.

And as pointed out at the time, commercial users already funded the -dynamic flag, along with the ability to swap out libgmp.

So that's FUD. As was pointed out in this forum at the time: <http://news.ycombinator.com/item?id=847120>

<comment><USER30> The default behavior was to statically link to libgmp. I don't know about you, but making people's programs GPL by default doesn't exactly inspire confidence in the industry.

<comment><USER31> Whether or not libgmp was ever statically linked by default depended on your distribution. Were you shipping apps on Windows prior to the -dynamic flag's introduction? If so, then you were watching what libraries you were using, and following these instructions: <http://haskell.forkio.com/gmpwindows>

These days you can just run "cabal license-check" (IIRC) which will type check all the libraries you use for compliance.

Have a nice day.

<comment><USER30> Dons, I know you are devoted to Haskell and will not take any criticism of it lightly. But I am not your enemy. I am willing to praise it myself when it is more suitable. Not when you try to spin it.

You and your supporters succeeded in bombarding every article that even mentions Haskell the wrong way with snide comments, and probably won over a few hobbyists. At the end of the day though, the managers making the decisions will not think "Don Stewart said so, it must be true". They will find the same conclusions that Jon Harrop, myself, and other people you have ostracized have found. And this will continue until it even if you succeed in suppressing all negative feedback on Haskell.

Have a nice day.

<comment> loup-vaillant The only thing I ever saw Don Stewart "bombing" were factual evidence. And what he destroys by truth should be annihilated anyway (P. C. Hodgell).

"Don Stewart said so, it must be true" actually isn't such a bad heuristic (as far as Haskell is concerned). From what I've seen, Don is quite cautious.

<comment><USER30> _The only thing I ever saw Don Stewart "bombing" were factual evidence._

This is not surprising coming from someone involved with Haskell. Do I really need to point to you the bug ticket that it was only 8 months ago that you could use something other than GMP? <http://hackage.haskell.org/trac/ghc/ticket/601>

Even with the option to dynamically link, it still doesn't change the fact that it was the __default__. And what a scary default that was. Company lawyers don't like to touch anything related to GPL with a 10-foot pole, for the reason that it is really up to the jury to decide what is a "derivative work" even if you only link dynamically! Maybe if you live in France, or have a 5 person company, this is an acceptable state.

Anyway I am done, you and Dons win, are you happy? I simply have no ulterior motive or incentive to defend my findings against organized groups who have their livelihoods and PhDs based on Haskell.

<comment> loup-vaillant Err, I was only objecting to your attack on Don's on-line behaviour. Actually I'm (still) an outsider. Consider "what I ever saw" as anecdotal evidence.

Now it's a pity that companies are scared of the GPL. As far as I know, most software is custom or private, is never released[1], and thus can't possibly infringe the GPL.

I think the real problem here is corporate culture. No company would object using the glibc in a proprietary program. So why would they be scared of any other LGPL library? When they don't even release the software? That's plainly irrational.

Now our choice is hard, but simple: get rid of the "GPL == we can't use it" line of thinking, or get rid of restrictive licences.

[1]: Many custom software actually belong to the company that wrote it, rather than to the company (or government) that purchased it. In this case GPL infringement could happen. But really, I can't fathom why some customers still don't demand complete ownership (including source code) for their custom software. That strikes me as either wildly misinformed or incredibly silly.

<comment><USER30> Why do you object? I just proved to you the legitimacy of my arguments while you still stand by Don's complete denial?I think it is very off-putting that anything remotely negative about Haskell is usually met with snide comments questioning their intelligence or being labeled as a troll. It also doesn't help that my comment was upvoted a few times, and when Dons & Co. replies, it drops to -3. I've also observed this type of behavior on Reddit.

You aren't really an outsider considering your participation in the Haskell Cafe mailing list and being credited in Real World Haskell.

And companies do object to using glibc in a proprietary program obviously. You are probably thinking of the GCC runtime which has an explicit exception for commercial programs that prevents them from turning GPL.

<http://www.gnu.org/licenses/gcc-exception.html>

You also don't have any proof that most software is custom or private. Even if it is the majority, you cannot deny that the shrink-wrap industry is huge, especially during most of Haskell's existence. The answer is to avoid GPL code in the language which is what I was saying the whole time. You don't put the foundation of your business at risk just so you can use a cool new language.

<comment> loup-vaillant > _It also doesn't help that my comment was upvoted a few times, and when Dons > & Co. replies, it drops to -3._

Interestingly, I saw it happen almost everywhere. It looks like people are more likely to down-vote comments which are contradicted by a recognized authority. This is of course not a good thing.

> _You aren't really an outsider considering your participation in the Haskell > Cafe mailing list and being credited in Real World Haskell._

I didn't post more than a few messages, 2 years ago, and I posted about 3 minor comments in Real World Haskell. I've read a few papers, but seldom have written anything (except <http://www.loup-vaillant.fr/articles/assignment> of course). I'm not an outsider, but hardly what I consider to be an Insider.

> _You also don't have any proof that most software is custom or private._

I don't. But in this (huge) niche, my point still stand: being afraid of the GPL is silly. Corporations that are should stop being.

> _you cannot deny that the shrink-wrap industry is huge_

I cannot and I won't.

> _The answer is to avoid GPL code in the language […]_

Yes, assuming you want the (proprietary) shrink-wrap industry to use Haskell. _I_ want it gone. Therefore, I see the GPL as the solution.</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


Ask HN: Good app ideas to learn a new platform - <AUTHOR>

So I wanted to start learning iPhone development last night and I didn't really know what to build. I thought it would be nice to have a list of little projects in order of increasing difficulty for learning mobile development, web development, game development, and desktop development.
Got any ideas?
If we get a good list, I'll put them up on a website or something like that.
Here are mine:
For game development:
1) Blackjack (console)
2) Tetris
For web development
1) todo list <comment><USER2> I am using the public transportation to get to work and every time I need to make a trip I have to look up the time of the next bus either in a paper schedule or on the site.

I would love to have an app that just shows the time left to the next bus for my special route right away. One can use google maps api to get the schedules and make it possible to set up a route once and for all.

There is a nice site for one specific subway route for a russian university that is a good illustration of this idea <http://tutu.mipt.ru/>

</comment><comment><USER3> Conway's Game of Life because it has a simple backend and a simple grid-based GUI

<comment><AUTHOR> For which category?

<comment><USER3> either, really. not much of a stateful backend but it's a nice toy in javascript.

</comment></comment></comment><comment><USER4> for web development, i feel like creating twitter is a nice small beginner project. anything that has a one to one, one to many, and many to many relationship would do the trick.

</comment><comment><USER5> How about something for Hackruiter? Using your API? Plot all companies on a map? Contact form to sign up to meet you guys? Some type of programming- challenge checker?

<comment><AUTHOR> I love it. Don't know why I didn't think of this. nicholasbs started riffing off of this idea and I have some good ideas.

I still think a more general list is probably worth it, but I'm going to start by building this :)

<comment><USER5> Nice. Looking forward to seeing the prototype next time we meet up :)

</comment></comment></comment><comment><USER6> some sort of poll?

for iPhone:

1) thats what she said app(or some other phrase to play on command, and record audio)

2) location-based scavenger hunt

</comment><comment><USER7> And a good old blogging tool :)

</comment><comment><USER8> web browser

<comment><AUTHOR> With embedded browser views (a la webkit), this is actually pretty doable.</comment></comment>


A Non-Programmer's Apology - <AUTHOR> http://www.aaronsw.com/weblog/nonapology

<comment><USER3> This is from 2006, five years ago. Aaron Swartz's latest posts have been about decentralizing DNS, and his Twitter viewer.

I'm going to guess that political writing hasn't totally worked out either. I think it was plain from this piece that he thought writing was important, but it wasn't something that he was passionate about. If you're going to make a career of writing, you have to be unable to NOT write.

Anyway, when Aaron wrote that, he was 20, and now he's 25. At this point in his life he should be allowed to try and abandon different philosophies without censure. Actually, maybe we all should be. ;)

On the overall point, I think picking what you do based on "importance" is a fallacy. We don't often see it in comp-sci, but this happens all the time to graduates of law school or med school who have tremendous discipline but little self-knowledge. Almost a decade later they find they hate practicing law or that sick people just make them depressed.

Importance is good. But you also have to pick the thing you're suited for and that gives you some pleasure. Otherwise you will get burned out. I can't help feeling that this also had something to do with Aaron burning out on programming; instead of seeking things that he just likes, he's been drawn into doing "important" things, and judging his own work that way. I wonder if, given his history, it is hard to escape the feeling that he has to work at some world-class scale or do mega-important things. It must be hard to just try something with beginner's mind again.

<comment><USER4> I've been developing a theory for my life called "Decades". Do something for ten years then move on by turning the last decade into a hobby and the new one into a profession. It helps to realize that 5-10 years is the right amount of time for the vaunted 10 to 20,000 hours (50 weeks x 20-40 hours/week x 5-10 years). It helps me set expectations too when deciding what to work on: Is this something I would give five years of my life towards? If I enjoyed it enough would I give ten years or more?

That was the best outcome of graduate school for me. I worked for four years to get in and another four years to complete the degree. By the end of my post-doc (another two years) I had an appreciation of difficult problems with unknown boundaries. I also had an understanding of how my life would turn out if I exclusively followed that path.

I worry today that the focus on rapid iteration leaves aside the challenge of selecting important problems that can truly sustain us long-term. Projects are hard. Sticking with projects is even harder. For me, that has been a whole new lesson in my thirties as I try to develop technologies even as I learned that lesson during my twenties. I hope my forties can start out to be just as confusing as I slowly get a sense of the challenges around me. If not, I'm afraid I'll stagnate and die from the inside out.

<comment><USER5> <http://en.wikipedia.org/wiki/Individuation> Jungian theory of personality, career, social divergences at ~10 year marks, "mid-life" crisis'.

</comment></comment></comment><comment><USER6> Aaron. I promise, it is all love with me and this comment. But, get over yourself. You are the 100 zillionth programmer to discover they are sick of programming and of the programming "scene". One programmer I knew became a roofer. Another became a trader. I know programmers who became doctors and lawyers. I haven't read Hardy, but you make him sound like a jerk.

<comment><USER7> "I haven't read Hardy, but you make him sound like a jerk."

Hardy wrote of Srinivasa Ramanujan's untimely death that it was "not a great tragedy" that he died at the age of thirty-two, as he was already too old to do serious mathematics.

"A Mathematician's Apology" is the bitter rant of a man who only valued one thing in his life and had largely lost the ability to do it in his old age. If I had read it and believed it ten years ago, I never would have gone for my Ph.D. in mathematics.

<comment><USER8> >"A Mathematician's Apology" is the bitter rant of a man who only valued one thing in his life and had largely lost the ability to do it in his old age.

It's been a while since I've read it, but isn't it mostly a theory on what makes something beautiful and worth doing? It's always struck me as being probably one of the most important essays of all time.

I find it interesting that what Aaron and you took from the essay has essentially zero overlap with my take.

<comment><USER4> I thought AMA was incredibly sad. Both for what he thought was important, what he didn't, and how that changed. As a huge baseball fan, I also loved that the one constant were the daily scores.

</comment></comment></comment></comment><comment><USER9> > "I fear, this decision deprives society of one great programmer in favor of > one mediocre writer...And for that, I apologize."

Please, the world will not tumble, it wont even remember you (except those of us that loved using web.py :P). There are many others just like you, please get over yourself. This post was hard to read without context. It must have been intended for someone specifically who depended on him because if he is really talking to the world and apologizing to the world, man is that an ego. Narcissism much?

<comment><USER10> It's meant to be in the style of _A Mathematician's Apology_ , which is an essay that explains the motivations of a mathematician.

> Narcissism much?

It's not narcissism at all. It's a frank look at a programmer struggling with his own understanding of his craft. Narcissism is something that is self- centered and smug -- this is none of those, and it's a frank look at his failings _and_ his greatness.

> There are many others just like you, please get over yourself.

Of course there are! That's who he's writing it for, and there are many, many more who aren't like him and that's also who he's writing it for.

> This post was hard to read without context.

The context for this post is: _The writer is a (great?) programmer and the reader possesses, or wants to possess, some understanding of human beings that is not derived from TV and comic books._

</comment></comment><comment><USER11> As for responsibility, Ricardo's comparative advantage says you should do what you are best at (even if it's crappy compared to everyone else):

 _England may be so circumstanced, that to produce the cloth may require the labour of 100 men for one year; and if she attempted to make the wine, it might require the labour of 120 men for the same time. England would therefore find it her interest to import wine, and to purchase it by the exportation of cloth._

 _To produce the wine in Portugal, might require only the labour of 80 men for one year, and to produce the cloth in the same country, might require the labour of 90 men for the same time. It would therefore be advantageous for her to export wine in exchange for cloth. This exchange might even take place, notwithstanding that the commodity imported by Portugal could be produced there with less labour than in England._ <http://faculty.washington.edu/krumme/readings/ricardo7.html> [I know this from _The Rational Optimist_ ]

And, as Aaron concludes, you get better at whatever you do. So you might as well do what you love. Most of success is staying the distance - which is easier if you love it. The thing is, most people happen to "love" what they do well at; which I suspect means that it's not intrinsic love, but it makes us feel good about ourselves (a sense of mastery, objectively confirmed by others).

You can turn this around by lowering your standards, so that you feel good about any level of success - the smallest possible measurable improvement. This happens automatically in school - you're only competing with your peers, who (let's face it) are pretty crappy compared with ordinary adults. Yet you feel good if you do well compared with them. See also the time of year of birth, of hockey players: [http://sports.espn.go.com/espn/page2/story?page=merron/08120...](http://sports.espn.go.com/espn/page2/story?page=merron/081208)

</comment><comment><USER12> A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.

-Robert A. Heinlein

</comment><comment><USER13> Just do what you love. Period. I've had times in my life when that was programming - and it got me a long way, and I loved doing it while I did it. Then I felt the challenge of learning how to build a business. So I made a choice, and stepped away from coding, and started pursuing my passion of building businesses. There's nothing wrong with your passions changing - <USER2> of it as opportunities to learn new skills.

One of the funny (paradoxical?) results of this is that I've had my eyes opened on things that I'd love to code. So, I've gotten passionate about programming again. Ain't life funny?

You don't need to apologize for being honest and self-examining - you only need to apologize if you aren't following your love and passion.

<comment><USER14> "you only need to apologize if you aren't following your love and passion."

Or maybe you are trying to stay alive in a war torn country, or figure out how to keep your family from starving.

Let's all keep in mind that the possibility of "following your love and passion" is only available to a privileged minority of human beings on this planet.

(Not directed specifically at you, but to point out an unstated premise behind the article and many of the comments here.)

<comment><USER13> Of course, that's completely true - and all the more reason to follow your love and passion if you happen to be privileged by luck of birth, family, and genetics. I think that this is true of many HN readers and certainly describes me. I'm incredibly grateful for being born into that lucky circumstance.

And I don't mean to put down people who can't do that because they have to figure out how to stay alive in a war torn country, or figure out how to keep your family from starving.

Thanks for your excellent point.

</comment></comment></comment><comment><USER4> A Mathematician's Apology is a must read as a great insight into opportunity costs and life choices. I found it by accident but it left a deep groove in my psyche.

[http://web.njit.edu/~akansu/PAPERS/GHHardy- AMathematiciansAp...](http://web.njit.edu/~akansu/PAPERS/GHHardy- AMathematiciansApology.pdf)

</comment><comment><USER15> I find Aaron's essays pretty difficult to read because they tend to come straight from the navel.

On the other hand, he's a young guy. When I look at stuff I wrote when I was in my early twenties, I was pretty far up my own asshole too. Now that I'm in my late twenties, of course, I'm a worldly old sage who has a keen sense of perspective on the world and my place in it. :P

I'm interested to see if Aaron gets some perspective too, or if perhaps his very young success will have permanently warped his worldview.

<comment><USER16> In my defense, it was written 5 years ago, when I was an even younger guy. Technically, I think I was still a teenager.

</comment></comment><comment><USER17> _At first it was small steps — discussing programming instead of doing it, then discussing things for programmers, and then discussing other topics altogether._

This is the trap of "programmers' communities", including HN. For many years, I was a programmer by day and a civilian by night. There really wasn't much social life for programmers together. Then when I starting socializing with other programmers over beer, coffee, or on-line, my first thought was, "Finally! A group I belong in." My second thought was, "Be careful. Talking about work is not work. Have fun, but get back to work!"

 _...the only responsible way to live my life would be to do something that would only be done by someone who knew this thing..._

That's the main reason I'm a programmer: What I write is needed and doesn't already exist. If it did, I'd probably be doing something else.

 _...it went amazingly well and I have since become convinced that I'm a pretty good programmer_

Here's a dirty little elusive secret: It doesn't matter how good a programmer you are. All that really matters is whether or not what you build is _good enough_.

 _I don't want to be a programmer. When I look at programming books, I am more tempted to mock them than to read them. When I go to programmer conferences, I'd rather skip out and talk politics than programming. And writing code, although it can be enjoyable, is hardly something I want to spend my life doing._

LookingAtProgrammingBooks != Programming

GoingToProgrammingConferences != Programming

WritingCode != Programming (well maybe a little)

My definition of Programming: "rejoicing in someone else's delivery of value with something I built for them". With a definition like that, I can't imagine doing anything else. I bet if we all focused on that, those many speed bumps wouldn't seem so high.

 _The writing is too important, the programming too unenjoyable._

You found your voice in prose, not syntax. Many spend their entire lives searching for their voice without ever finding it. Good for you.

<comment><USER18> "rejoicing in someone else's delivery of value with something I built for them"

I think that's kind of a weird definition of programming. I don't know why it rubs me the wrong way. I find tremendous joy in writing and reading code which does something cool, even if those somethings don't provide value to the outside world.

Of course, programming means different things for different people, and there's nothing inherently wrong with your definition. I just think it's a bit broad and maybe misses the mark for a lot of people who really enjoy programming itself, rather than as a means to some end.

<comment><USER19> "I think that's kind of a weird definition of programming. I don't know why it rubs me the wrong way."

Because a marketer can use it with a straight face to say that when they created a successful marketing campaign they have "programmed". I think you still need some concept of coding in there, even though I would also agree some idea of value delivered to somebody is also important.

<comment><USER18> I also definitely think delivering value is important! But wrapping that up in definition of programming itself is mixing things up. I think it makes more sense to include delivering value as part of the bigger context of programming as a career and a job.

<comment><USER20> For me at least "programming" refers to coding whilst "development" refers to the process of adding value _using_ "programming".

</comment></comment></comment></comment></comment><comment><USER14> "A man who is always asking 'Is what I do worthwhile?' and 'Am I the right person to do it?' will always be ineffective himself and a discouragement to others."

I disagree.

Such a person might have the makings of an outstanding leader. For example, the company founder who understands her weaknesses and recruits outstanding people to do those things for her company probably has a better chance of success. If she can also frequently ask "is what we are doing worthwhile?" the company can quickly adapt to the market and other changing circumstances.

</comment><comment><USER21> Totally relate. What I've always loved about programming was the satisfaction of creating something that people like and find useful, the craft of great design and implementation, and the time I spent in flow. After lot of learning and practice, I've gotten my writing skills to that point as well -- which means a lot less time trying to understand obscure error messages, fighting tools, working around bugs.

So I still enjoy programming when I do it, but spend much much more time writing these days. And I'm a lot happier, too!

</comment><comment><USER22> My understanding is that there is no innate talent for programming, math, art, or anything else. It's just a question of how hard you're willing to work at learning how to become the best. (This is the thesis of Talent is Overrated, which I highly recommend. Alternatively you can Google "deliberate practice".)

The kicker is that even if this isn't true, people who live their life as if it is will be better off.

<comment><USER23> >My understanding is that there is no innate talent for programming, math, art, or anything else.

Your understanding is completely wrong. Many, many genes have been linked with specific talents.

Music: <http://news.bbc.co.uk/2/hi/health/1209186.stm>

Athletics: <https://www.23andme.com/health/Muscle-Performance/>

Art: [http://www.timesonline.co.uk/tol/news/world/article880132.ec...](http://www.timesonline.co.uk/tol/news/world/article880132.ece)

Also this from a geneticist: <http://www.thetech.org/genetics/ask.php?id=91>

I realize claims that there is no such thing as talent are very popular and will sell a lot of books. That doesn't make them true. I'm afraid the way things are and the way people wish they were are not the same.

<comment><USER22> Let's take this point by point.

Athletics: There are genetic components for physical abilities, this is well established in the literature.

Art: Of course our cognitive abilities that set us apart from other species is genetic. The article you link to makes no claim as to whether the best artists are better than the rest of us because of their genes.

Music: There's a gene which makes 1 in 20 tone deaf and it looks like perfect pitch has a basis in genetics (either way, it's something you can't train). Far, far more important to being a successful musician are three components (which the article cites): support from parents and mentors, instruction by experts, and dedicated practice. Variation between ability in people comes overwhelmingly from those three things and genetics plays a tiny role, if any at all.

I think the overarching point is that if the OP prefers politics to programming, then he shouldn't feel sorry for wasting his programming "talent", as there's no such thing. He can be just as good at politics if he's willing to put in the time to learn.

<comment><USER24> Just to take the musician example:

>far more important to being a successful musician are three components

I agree that these are necessary traits to be a successful musician, but they are not sufficient. There are (apparently) many "tiger moms" out there pushing their children with the same amount of relentlessness to excel with a musical instrument. Yet only a handful of them play at Carnagie Hall at 10. I find it hard to believe that those that achieve that level of proficiency were simply "pushed harder" by their parents. This is a poor explanation for the outcome. A better explanation is that the intersection of tiger mom's and genetic aptitude for music is extremely rare.

>then he shouldn't feel sorry for wasting his programming "talent", as there's no such thing

Again, I don't think the evidence bares this out. Taking myself as an example: I've always taken to math extremely easily. I always "got" it with little effort. This even through periods where I cared none about schoolwork and thus didn't do any of it (my report cards reflected this). It was the same with programming. I took my first class in high school and it came extremely easy to me and I've excelled at it ever since. I find it _very_ hard to believe that talent isn't a huge factor in these things.

</comment></comment></comment></comment><comment><USER25> _"deprives society of one great programmer in favor of one mediocre writer"_

I'd say since you care about writing you will eventually excel at it. Of course, society will be the ultimate judge. But you have passion for writing and that matters more than society's perception about what you should be doing.

</comment><comment><USER26> It is usually a pleasure to be able to do something well. But I have come to believe society is not "owed" one's (supposed) "best" talents. I have come to believe that the common social message that "if you are good at something, it is a Gift and you have an obligation to better society with your Gifts" is incredibly sick. I think it does enormous harm, to both individuals and society.

<comment><USER4> Who decides "best"?

</comment></comment><comment><USER27> Wank on, you crazy diamond.

</comment><comment><USER28> It would have been a much better article if he did it with HTML 5 and Canvas.</comment>


The South Park Commons Fills a Hole in the Tech Landscape - <AUTHOR> https://www.nytimes.com/2017/07/02/business/tech-scene-south-park-commons-san-francisco.html <comment> awinter-py Okay, I clicked on this expecting it to be about using the south park disclaimer as an open source license. ('all celebrity voices impersonated poorly -- and due to its content should not be viewed by anybody').</comment>


Have an idea I believe can change the world, can I get advice on how to fund? - <AUTHOR>

I started the idea back in 08'. In a nutshell it uses one of the educational content management systems (online courseware) and makes educational content free. About 2 weeks ago I saw someone on TV that reinvigorated me on the idea.
I start in prisons and jails. Not only do we provide educational materials so that these people can get a top education but more importantly, the system is secure so that persons on the inside can have access to select professionals on the outside to help them. Some would be mental health professionals, others mentors. And it would allow them to do job interviews just before release. And the system will have materials specifically for that demo like domestic violence courses, drug addiction and so on.
And what really sets this apart is that I had a business man from Sarasota that was willing to turn one of his motels into transitional housing. While there the people would still have access to this program. In meetings with corrections officials they said that the biggest problem is that a lot of the people they see are not bad people, they just have nothing else to go back to so within 3 years 70% are back in prison.
Now how can this change the world? Because once we get the thing set up and running I want to develop a tablet like the $100 laptop and make it like a $50 tablet. These can then be distributed to any population that needs education. Here in the US it can be any low income or rural area. If we can get them into the hands of say young Afghan or Iranian women they can study from anywhere and get educated. All they need is a wifi connection that can be part of what we do in partnering with other companies to provide that. In one generation we can change the fabric of that society. Mothers will raise educated children and so on.
I tried to get it done back then, I got a couple people interested but couldn't get anyone that knew how to raise funds. Have Business plan and all. <comment><USER2> The potential in free e-learning software has always been close to my heart as well. Have you checked out sites like: <https://www.coursera.org/> <http://www.udacity.com/> <https://www.edx.org/>

<comment><AUTHOR> Yes I have and been trying to contact Coursera. I had that in my original post but the 2000 character limit made me chop it down. They are building what I wanted and couldn't get to the right people.

</comment></comment><comment><USER3> Where would you get the course material to distribute to the students?

<comment><AUTHOR> Like the person above suggested, there are already sites like Coursera that are well advanced into offering free courses from top universities. A lot of this is now free. When I started the idea the start up budget was 3.5 million because of all the licensing needed for content. Much of it is freely available now.</comment></comment>


Distant 'waterworld' is confirmed - <AUTHOR> http://www.bbc.co.uk/news/science-environment-17117030

<comment><USER2> It never ceases to amaze me what information we can glean about things so far away from us.

Zach Berta in the article is my friend, so it's neat to see this article here on HN. :-) When the article was accepted for publication we all watched Waterworld and he gave a high level overview of the research to me (as a non- astrophysicist).

How I understood it is: When the orbiting planet crosses between its star and us, it blocks some of the light, and the decrease in brightness can be used to calculate the diameter of the planet. In addition, the planet orbiting the star makes it wobble a bit, and from that you can calculate its mass. These two things limit the possibilities of the planet's composition, and a watergiant is the most likely scenario. In the papers on the Arxiv[1], it looks like there's finer grained observations than those, though, so maybe that was just what caused them to give it a closer look.

[1] [http://arxiv.org/find/all/1/all:+AND+berta+gj1214b/0/1/0/all...](http://arxiv.org/find/all/1/all:+AND+berta+gj1214b/0/1/0/all/0/1)

</comment><comment><USER3> I'm kinda surprised that it's 2012 and humanity still hasn't created a space station on the moon, Mars or some other planet.

<comment><USER4> To what end?

<comment><USER5> 1) Building out sufficient solar power collectors to solve the Earth's energy problems forever.

2) Manufacturing medicines, alloys, and materials that can only be produced in micro-gravity.

3) Protecting humanity against social breakdown and/or extinction in case of massive asteroid strike / global pandemic / etc.

4) Because every dollar that has been spent on space development in the US has put $7 back into the economy by way of spinoffs, technical advances, etc.

<comment><USER4> If bullet number 4 is correct, it sounds like a good idea. I would have to see proof that bullets 2 and 4 are correct in order for me to agree though.

3) is far fetched and would be catastrophic regardless, and 1) may not be viable because the 15 days of the month where the far side of the moon is facing the sun, it isn't facing the earth. If placed on the other side, 50% of the month, earth would be blocking out the sun on the moon's surface, and the other 50% of the month, the near side of the moon wouldn't be facing the sun.

</comment></comment></comment></comment><comment><USER6> > _It is about 2.7 times the Earth's diameter, but weighs almost seven times > as much._

2.7^3 = 20 times the volume. But only 7 times the mass. So its density would be only 35% of Earth's density. Earth's density is 5.5g/cm^3. That makes this planet's density 1.9g/cm^3, which looks about right for an object that is partially rock and partially water.

But this ain't a waterworld, it's a steamworld. Imagine the greenhouse effect from all that water vapor!

<comment><USER7> Does the density & mass calculation affect what the surface gravity would be? If the planet is more massive than Earth, but less dense, would someone standing on the surface experience a greater weight than we do here?

<comment><USER8> Gravity depends on m/r^2 where m is the mass of the planet and r its radius. Compared to Earth's, m = 7 m_earth and r = 2.7 r_earth, which gives you a gravity 0.96 times the gravity on Earth. Remarkably similar... But I wonder, if the temperature is 200 degrees, there must be a massive pressure, in order to have liquid water. Where does the pressure come from? Heavy atmosphere?

<comment><USER6> Pressure is nothing other than gravity pulling down everything that lies above you. So if you go deep enough, there will be enough gas above you to create enough pressure to make water liquid, or even solid.

I wonder whether it will be possible to build a floating city somewhere in the middle of that massive atmosphere. Air conditioning will probably take up the majority of the city's energy consumption, but hey, if you've got water, you can get oxygen, and if you've got _boiling_ water, you can make electricity. Actually, it might be easier to live on this planet than to live on Venus (450C, all CO2).

<comment><USER9> Boiling water doesn't give you electricity. A temperature gradient gives you electricity. Having a hot, steamy planet won't help you if the air is just as hot as the water.</comment></comment></comment></comment></comment>


HTML5 W3C conference - Site itself is pretty slick - <AUTHOR> http://www.w3.org/conf/

<comment><USER2> I enjoyed the logo wiggling. Two nits:

* It's only wiggly if your mouse if over that element.

* This groovy dropdown follows you down the page and covers 20% of the text or so at any given time. I appreciate it if it collapsed or moved to the margin.</comment>


Why Epic's Tim Sweeney blasted Microsoft in bid to keep Windows 10 open - <AUTHOR> http://venturebeat.com/2016/03/05/why-epics-tim-sweeney-blasted-micrsooft-in-bid-to-keep-windows-10-open/ <comment><USER2> Here is a good napkin test if a platform is open - do I have root? Can I obtain and run unsigned software? Can I do memory scan and edit of userland running software (cheat engine style).

If all are true - it is open.</comment>


Ask HN: Demotivated Founder With Lost Passion Seeking Advice - <AUTHOR> Posting this for a friend who is CEO of a startup, but wishes to remain anonymous
The past few weeks, I've been demotivated.  Our product is done and we're ready to launch, but there's a bigger problem, I'm just not passionate anymore.  The current cons:
a) My cofounder doesn't have it.  He's not tech savy at all, doesn't contribute the way he should, and has turned everything into a two person bureaucracy.  Just not a motivating person to work with.  He also hasn't made any real sacrifices.  I've left school, moved across the country, and a lot more for our startup.
b)  It's been close to two years of work, and not a whole lot of momentum.  We've bootstrapped the entire time, with a small amount from a customer.  Bad part is, we don't have any money left for new development.  I've handled a good portion of the tech issues, except for the core programming of the app:  interface design, database design, sys admin/config, some bug fixing,etc. Think of it more as a CTO role, than a lead dev role. At the end of the day it's still 2 of us, that's a troubling sign.  I'm a pretty motivating person, and the fact no one else has really shown interest in helping out or getting involved is scary.
c)  I'm not overly familiar with how to run an enterprise/business software company.  I've done consumer tech, this isn't my first venture, and I know enough (and yet have a shitload to learn).  Consumer web companies seem much more straight forward to me. Business web apps are a different beast to launch.
d) this isn't a question of lack of traction, is it a good company, good product, etc. maybe this is the scary part: the product is awesome, the market were going after is a good one, and there's a lot of opportunity. the problem lies more with the co-founder and the overall energy/excitement of the company.
So my question is:
a) Do I bail out and start something else/ join something else that is in its really early stages?
b) Is there a way to get motivated again/fix these problems?
Many thanks in advance. <comment><USER3> It sounds like you are ready to launch. I can't imagine walking away after your site is ready and before it even launches!

a) See it through the launch. Send your post to your co-founder. Try an forget about "effort" and "sacrifice". Is he adding value at all? Is he going to once you launch (i.e. sales or something?).

b) This sounds to me like a theory/reality problem. I love thinking up ideas and plans. I hate when they get all messy when I try and bring them into the real world. It sounds like you might be interested in the "new development" work and have tired of your less-than-perfect implementation. Once you launch, is there a chance you'll get more funding, another customer to help with funding or anything?

Also, you might try and separate your feelings about the work and the actual changes of the business. Just because you hate it now doesn't mean it won't be successful (not that I'm advising you to do something you hate...).

<comment><USER4> It's also important to note that once people are _using_ your product, it's a different sort of motivation you'll see. People count on you, they'll have feedback, nitpicks, whatever. You will see what needs to be changed and what can work and what can't.

Absolutely launch. Mark it as beta/experimental if you don't think you can afford to adapt it as needed, but you have to put it out the door and see what happens.

I think the original poster is going to find that the questions he's asking will be answered once he launches. Having a product in the field is the best way to see what's viable and what's not. You'll get a "yay"/"nay" answer once that happens and the world will look different than it does today. The cofounder might also step up a bit when he sees there's something out there in people's faces and his name (eventually) is on it.

</comment></comment><comment><USER5> Don't bail when the going gets tough. Launch and give it everything you got for the next 3-6 months. If NOTHING comes back, give up. If it starts trickling in and you see potential, continue pushing. Otherwise, give up.

<comment><USER6> Agreed 100%: Launch, launch, launch. It's easy to get demotivated if you're working on a piece of stale software on your laptops.

Get some ants in your ant farm, watch what they do -- it may be what your co- founder needs to start believing in the product as well. If you quit now, you will _always_ wonder if something could have come from these TWO YEARS of your life.

Seriously, launch. Don't debate, don't discuss, don't send resumes; launch. What's the worst that can happen? If you prove that you can't get traction, at least you will have seen it through.

Again, LAUNCH.

</comment></comment><comment><USER7> (b) Bring in a 3rd Party.

Importantly - Someone you both agree on - Not because they agree with you individually, but because you both recognise they can add value. Someone complimentary to your skills - maybe totally different skills - maybe a customer, or someone who's been in the business for years and can give advice.

They don't need to take a third of the company, or even be full time - <USER2> just need to be another invested person. A hands-on angel investor might suit this bill.

Having a third party with a different perspective will help you smooth over disagreements and deadlocks. As always - absolutely critical who you choose to go into business with, so not a decision to take lightly.

</comment><comment><USER8> You've put in the time, and you haven't seen the rewards yet, so you're naturally discouraged. Tim Ferris covers it well on his blog (link below). Mostly everyone goes through phases where they are unmotivated or feel like they can't win at what they are doing. It's part of life. The important thing is not to give up on it before it has a chance to even take off. You'll hate to be asking "what if" later on if you decide to move on.

[http://www.fourhourworkweek.com/blog/2008/10/03/harnessing-e...](http://www.fourhourworkweek.com/blog/2008/10/03/harnessing- entrepreneurial-manic-depression-making-the-rollercoaster-work-for-you/)

</comment><comment><USER9> Don't bailout. There are always lows and highs in this journey. This is a "low" phase. Try to get over of it. Even if you are thinking about a new idea, there will be a phase with that idea where you will feel "low". It's very frustrating to see afterwards that you left the journey half-way. Let your users/customers decide if this is failure or not. Then it'll be obvious if you should quit or continue. I did this mistake before. I'm going through this situation again, but this time I learned the lesson from past experience. So I'm not quitting when I'm at low phase. I'm pushing my best, and I hope a high phase is ahead. All the best!

</comment><comment><USER10> Two things:

1\. Just launch. You are about to quit anyways - so why not just launch, it obviously couldnt be worse.

2\. Co-founder - I think two highly motivated founders is definitely ideal - but whatever little I have seen I think more often that not one founder is a lot more motivated than the other. This also seems (but again im not sure) to be the case with Apple(jobs vs woznaik) as well as microsoft (gates vs allen). Additionally, I think this arrangement might have some advantages (vis-a-vis leadership issues) also.

</comment><comment><USER11> >> Bad part is, we don't have any money >>left for new development. I've handled >>a good portion of the tech issues, except >>for the core programming of the app: >>interface design, database design, sys admin >> config, some bug fixing,etc. Think of it >> more as a CTO role, than a lead dev role. >> At the end of the day it's still 2 of us, >> that's a troubling sign. I'm a pretty >> motivating person, and the fact no one else >> has really shown interest in helping out or >> getting involved is scary.

Well... it would be unusual for other people to show interest until you're making money or demonstrating how it can be done. Even if you have a great product changing people's patterns of behavior is very difficult.

The upside of this is that once you ARE making money, you'll find it becomes a lot easier.

If you don't think your partner is pulling their weight, the first question you should ask is whether you're being realistic/fair in your expectations of them, or whether you are looking for someone to blame for some perceived failure. Your post suggests that your partner is - in fact - doing most of the core development work. In either case, bestes is dead right - you need to clear your expectations with your co-founder.

If you need money get a part-time job or let one of you focus on trying to get funding while the other continues development work. Marketing is going to take a lot of effort, and if you're complaining about not having money for development it makes me wonder how you're planning on getting the word out to prospective customers.

</comment><comment><USER12> How much do your users/customers love what you have? If there is a glimmer of user joy, that's not worth tossing aside lightly... It's rarer than you think, and having something that customers like enough to pay for is a GREAT thing to have in this market.

In, short... Are you onto something? If not, certainly bail.

If you are, you've got big challenges with your partner. I'd try to find a new one if you can't make him an asset (a good way to separate is to give both partners legal rights to the code and flip a coin for the brand).

This is SUCH a huge problem- you aren't alone. More startups fail due to lack of interest/motivation than anything else, IMO. User happiness is a HUGE motivator and lack of it is a huge de-motivator... So launching would be a good step if you're looking for motivation or a final nail in the coffin.

Read "The Dip: When to Quit and When to Stick" by Seth Godin.

</comment><comment><USER13> i'd say, no matter what you do, wait until you launch and pull in some customers. if your cofounder isn't tech savvy, i would hope that he's the business/marketer type person who's going to be doing the selling of the product. hopefully he'll be the one donating huge time chunks post-launch in order to make it sell, while you don't have much to do.

whichever you decide to do, stay or go, i'd bring it up with your cofounder. bringing up issues instead of letting them fester can help, if they're things that can get resolved.

if the differences are irreconcilable and you're unhappy, jump ship when the fall is comfortable enough for you.

</comment><comment><USER14> You're almost there. Why stop now? It's not all that bad and you've come so far. It's like giving up on a marathon when the finish line is just coming into vision. Suck it up. Put your head down and focus on finishing.

</comment><comment><USER15> If you can, try taking some time off. Travel somewhere. Do not think about your work for a week or two. That gives you really good perspective.

</comment><comment><USER16> Launch... Get feedbacks... Iterate... Launch again... This is a never ending process for a startup with VC-backed.

But, if your company is not VC-backed, then, you have to use this method:

Lauch... Get feedbacks... Iterate.. Bootstrap... Launch again... Get more feedbacks... Iterate more... Bootstrap more... Another never ending process until you are successful... Think of NeXT and Pixar..

</comment><comment><USER17> Try to involve someone with authority. Some angel investor, another co- founder, mentor, advisor...anyone who can hold (both of) you accountable for your efforts and actions (or lack of it).

You should talk to your co-founder about your concerns. You ll need all your efforts after the launch for product improvement.

</comment><comment><USER18> Ask yourself a very simple question. If you were currently making sufficient income from your product and were on your way to growing the company would you still harbor the same feelings towards your cofounder?

</comment><comment><USER19> You are prepared to bail. This is an excellent bargaining position. Put your problems plainly to your cofounder, including your intention to bail if things dont improve on his side. If you dont see the reaction you want, do what you were prepared to do and know that you tried as much as you could.

</comment><comment><USER20> Smile. Breathe. Think.

Life's Good. Enjoy it.

oh.... LAUNCH THE PRODUCT AS IT IS!!!!

-P

</comment><comment><USER21> Bail. You're not happy, and you're putting in more effort than you should / want to. If you carry on it'll make you more and more bitter and that won't help the business. If you have another opportunity, go for it - the novelty will rejuvinate you I'll bet.

<comment><USER22> If he's close to launching, he should just launch. If it clicks with even a few people, that'll be the source of motivation.

Though he should probably get rid of the non-committed cofounder (hoping the equity is properly vested): great cofounder > solo founder > bad cofounder.

<comment><USER23> _"... If he's close to launching, he should just launch. If it clicks with even a few people, that'll be the source of motivation. ..."_

The founder also mentions there is no money for further development. So great co-founder or not, this is a catch-22 situation.

<comment><USER22> I'm assuming more money would be needed only for further development, but the product can launch now (or days from now). If some features are not ready for prime-time, turn them off and launch with what works well.

</comment></comment></comment></comment><comment><USER24> Maybe you need to hook up with this other founder disillusioned with his cofounder: <http://news.ycombinator.com/item?id=325923>

</comment><comment><USER25> If you constantly talk to your users you will bootstrap.

</comment><comment><USER26> reboot

</comment><comment><USER27> move out and do not do that again. this is not beer drinking. if you are making sacrifices, why do you think other needs to do it also? you have to overcome this (personal) issue. the co-founder is not there for no reason - talk to him about your feelings and see if you see reality in the same way.</comment>


The Life and Death of a Fig Wasp - <AUTHOR> https://askabiologist.asu.edu/explore/life-and-death-fig-wasp <comment><USER2> > _Her eggs grow inside the fig flower and hatch several days later. The newly > hatched wasps mate with other wasps that were born in the same fig._

Wouldn't this lead to and extremely shallow gene-pool? Or do figs tend to have multiple wasps in it?

</comment><comment><USER3> What do they do during the winter? I have two fig trees in my yard that collectively product maybe 2000-3000 figs/year. Half they year they aren't flowering or developing fruit.</comment>


San Francisco Subway Muzzles Cell Service During Protest - <AUTHOR> http://news.cnet.com/8301-27080_3-20091822-245/s.f-subway-muzzles-cell-service-during-protest/ <comment><USER2> Am I the only one who doesn't see a problem with this?

They provided a cel phone repeater as an amenity/courtesy to their passengers. It's not part of their charter to provide cel service.

Their goal is to keep their passengers moving efficiently. By no longer providing that cel service, they disrupted the wannabe disrupters.

Their freedom of assembly wasn't interfered with, they just didn't help it.

If the protesters relied on cel phone coverage to perform their demonstration, then their strategy failed, and they'll have to come up with another way.

They increased the presence of police in the area, so the "how will I call for an ambulance" concern is a bit melodramatic; there were emergency personal already on scene, with non-cel communication capabilities.

Personally, I feel the right to assemble/demonstrate has been extended too far into the area of "I demand the right to fuck up everyone else's day", and applaud BART for doing something about it.

<comment><USER3> Freedom of speech implies the freedom to communicate. Given the era of technology has made it such that the communications infrastructure is fundamental to our speech and communication, it could be construed that removing this is violating our constitutional rights.

<comment><USER2> Does it MEAN that, or simply imply it?

I don't think it means that there is a requirement to provide the most convenient method available. Cel phone service isn't even classified as an essential service. Never mind internet access.

They didn't stop communication, they made it less convenient. The protesters had to stay within range of a normal cel tower, rather that use the locally/BART provided repeaters. "Can you hear me now?" "No."

What's next? BART has to provide the paper and photocopying to the protesters for their pamphlets so they can communicate their issues?

<comment><USER3> Well, as IANAL - I used the word implies as I am not 100% positive...

However, I would propose this is one example where the populous needs to start exerting their opinion on how these things should be interpreted. We are far to reticent to express our view and too complacent in accepting the position of the government in matters where it is critical that we remind the government that this is a REPRESENTATIVE democracy and as such, our views must be properly represented.

I am reminded of when I had a dispute with my home owners association about a ridiculous rule whereby I was precluded from putting up anything other than white curtains in my townhome.

The rule stated that the externally facing view of any curtains must be white. Which is what I had.

The complaint came that due to me having gold colored curtains on the interior side of my windows, at night, when the lights were on - they could tell these were not white.

They attempted to fine me. We battled for months. I went to several HOA meetings and was confronted with an opinion that "these are the rules, we do them to uphold the property values of the community" -- I emphatically reminded the HOA that not only was this argument ridiculous that WE were infact the HOA and thus WE should change the rules to not be so "fucking retarded".

I ended up winning - but the lesson was that bureaucratic authority applied unnecessarily begets mediocre minds reaching for abuseable power.

<comment><USER2> I could just as easily say that those same mediocre minds are looking for rights where none exist.

And I won't comment on the mindset it takes to move into a place that is controlled by an HOA in the first place. ;)

Complaining about morons on an HOA is like moving next to an airport and complaining about the aircraft that always seem to be around.

<comment><USER3> Sure, you can claim that assuming you have had prior experience with an HOA or other groups... My problem was that I had no idea this level of ridiculousness existed. So it is not like I entered into that thinking "this time it will be different" :)

Also, Iam trying to point out in my other comments that I am not lokoing for rights where they do not exist, per se, but that I think we as a whole need to be open to the possibility that the framework and definition of said rights need to evolve with the changes in our society, and the expression and level of our civilization.

It appears to me that anyone denouncing those who question the current state refuse to stray from the centuries old definitions.

</comment></comment></comment></comment></comment></comment><comment><USER4> It is not OK for the government to cut off citizen communications in times of civil unrest or any other time. BART, which has its own police force, must be held to constitutional standards. While they can prohibit assembly within their stations, disabling communications infrastructure violates people's basic rights.

<comment><USER5> in this case, legally it is a tricky issue and BART is probably and unfortunately in the clear on this.

BART cut _power_ to the wireless sites in these/tunnels tations - they didn't ask the wireless providers to terminate their services. I suspect that since the wireless sites lease space and consume power from BART operated facilities, BART is well within their rights to terminate power and other services based on existing contractual agreements.

However, that doesn't make what BART did "right." It is downright disgusting and I hope that the wireless providers mount up and put some serious pressure on BART in response. Certainly the providers are paying serious money to BART to lease space to provide service to riders, and the optics of the loss of that will hurt BART far more than it will hurt the wireless providers. At the end of the day, loss of wireless lease would really be a punch in the gut to BART, not to mention the public safety issues.

<comment><USER6> I don't know that the technical details factor into this -- BART admitted that their intent was to prevent speech and to interfere with communications, therefore it's possible they ran afoul of the First Amendment and/or the FCC. I don't know that we'll find the answer unless someone takes it to trial.

<comment><USER5> I'm not condoning what BART did, I think it was wrong.

But, if you decided to use HN to organize a response to an issue and HN deleted your posts, that doesn't make HN's actions a First Amendment issue. The First Amendment does not apply for private institutions that you choose to participate on.

<comment><USER7> HN has a TOS and is a private institution. Further, HN is not part of our public telecom infrastructure - ie if I'm being stabbed during the protest they were trying to thwart, I wouldn't use HN to call an ambulance.

BART shutting down cell service is irresponsible, deplorable and something we're going to see more and more as the first world descends into the kind of place we all see it becoming.

<comment><USER8> _...as the first world descends into the kind of place we all see it becoming._

Which is what?

</comment></comment></comment></comment></comment></comment><comment><USER9> Are they really concerned about public safety?

What if, while the cell sites were powered down, a crazed lunatic with a knife started stabbing people on a BART platform or train? How could anyone call for help?

This is lunacy.

<comment><USER10> From the article: "In addition, numerous BART police officers and other BART personnel were present during the planned protest, and train intercoms and white courtesy telephones remained available for customers seeking assistance or reporting suspicious activity."

So, to answer your question, BART police would have detained him, or someone would have used one of those phones to call for help.

Regarding your first question, what are you implying was their motive for doing this, if not for safety?

<comment><USER11> They address the safety of people on the platform, but what about people that didn't have a few dozen cops nearby?

I have ill family members, and need to be able to be on a plane in a few hours notice. Avoiding some bad PR photos justifies missing that important inbound phone call?

<comment><USER12> Simply put, the primary purpose of bart is to run a train service and maximize availability of that service. Cell service is a non essential (and until a few years ago, nonexistant) enhancement of that service.

The theory here is that if they allowed cell service to continue then protesters would have disrupted train service. So then the more pressing issue becomes getting people to the airport, not cellphone availability.

So yes, you missed your important call, but that's better than others missing their important flight.

<comment><USER13> Your important call would have been cut off as soon as you left the station anyway.

<comment><USER14> BART has continuous cell service even in tunnels.

<comment><USER13> Cell service usually drops between 16th and civic center (I frequently see people get cut off). And 3G service on Verizon seems to drop off for at least 50% of the way between 24th and montgomery (personal experience, iPhone4).

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> As a frequent public transit rider in SF, and the developer of a popular Muni iPhone app, let me say: If you told anyone in SF thought that there was intentionally functioning cell service in the subway tunnels, they would LAUGH.

My application is supposed to tell you when the train is coming, and it doesn't work once you walk down to the platform due to complete lack of cell service.

I chuckle at the ludicrous idea of "disrupting" something that doesn't actually work to begin with. If it worked, perhaps my app would be more useful.

</comment><comment><USER16> Really just seems like they're adding fuel to the fire. Its kind of a boneheaded move, as people will just organize the old fashioned way the next time around.

Just silly.

<comment><USER17> When it does succeed while BART is doing this, affected riders will be w/o rail AND cell service.

And many of them will be angry @ BART for disabling their ability to contact friends / family during delay, look up status and alternate routes on the web, etc.

wide ripple to heavy-handed tactics.

<comment><USER12> You can simply walk upstairs where there's normal cellphone reception, and you're good to go.

Now if you're stuck on a train in a tunnel because protesters are causing the system to shut down, that's a different situation, but still not decidedly evil or foolish for BART to turn off its cell service. In BART's defense, they did tell everyone earlier in the day to make alternate plans and prepare for delays.

</comment></comment></comment><comment><USER18> Was it the underground cell repeaters? Or the cell towers on BART property --for which they lease out the land to telecom providers?

If it's the underground repeaters, that's their business. If it was the towers on Bart property but property of telecoms, then that's problematic -as it interrupts service to non-Bart users.

<comment><USER13> I believe just the underground repeaters - probably just in San Francisco proper. I had one bar on the east end of the embarcadero station (Verizon), probably from outside, but I couldn't successfully send a text or call. After getting on the train, I figured out they'd shut down the cell service on the platforms/tunnel (no signal until I got above ground at 24th). This was around 4:30pm.

I'm guessing the AT&T customers just figured it was service as usual in SF. :)

<comment><USER19> Yeah, on AT&T I pretty much give up on using my phone once the train starts moving, even though we're supposed to have service from Civic Center all the way to the Oakland end of the transbay tube.

</comment></comment></comment><comment><USER20> Additional details on the matter are reported here:

[http://www.baycitizen.org/bart-police-shooting/story/bart- ce...](http://www.baycitizen.org/bart-police-shooting/story/bart-cell-phone- service-legal/)

with BART saying they were within their legal right to shut down the cell service. However, the Electronic Frontier Foundation had this to say:

"It's outrageous that the authorities would resort to the same tactics of the repressive Mubarak regime," said Kevin Bankston, a lawyer for the Electronic Frontier Foundation. "The fact that it was motivated by a desire to stifle free speech raises serious First Amendment problems."

</comment><comment><USER21> Isn't it against FCC regs to intentionally cause cell phones to stop working? I remember some prisons wanted to buy cell jammers to prevent inmates from using smuggled phones, but it's illegal.

<comment><USER22> "Jamming" wireless transmissions does indeed run afoul of FCC regulation; but that's not what they did here.

They disabled the power to the base stations which were deployed in specific locations (locations which are not public property). I assume they argue that they are not under any obligation to provide access to these base stations. I also assume that the base stations in question are either owned by them, or provided by the telcos.

Technically, one of the wireless providers could probably raise a stink that this action made their service look bad, but I seriously doubt they are going to take a stand in this regard.

<comment><USER23> It's actually potentially more interesting than that. AM/FM radio stations on licensed frequencies are _required_ to be transmitting. Dead air has to be reported and justified to the FCC, or they can face fines. I wonder if that sort of thing applies to CDMA/GSM radio towers and repeaters.

<comment><USER22> I'm trying to ascertain that, but so far lost in a maze of twisty little links on the wireless.fcc.gov site, all alike.

I'd actually be surprised if that was the case though.

</comment></comment></comment></comment><comment><USER19> BART exists to transport people safely and efficiently. I think they do a fantastic job of it. They manage to make BART travel reliable, fast and _safe_. The presence of a strong and armed police force is necessary and fundamentally a good thing. If disrupting cell service protects riders, then it is the right course of action.

Or would you all prefer BART to protect people's right to tweet at the cost of lives and injuries?

BART rides trough some extremely violent neighborhoods, and carries all kinds of people, rich and poor. The fact that it works as smoothly as it does is a miracle already. Compare it with some of the trashier public transport options out there. Even some MUNI lines have some really creepy things going on on them.

</comment><comment><USER24> The ability to organize protestations live via cell phones is becoming more popular all around the world.

In response, cell comms are disrupted, of course, by the powers in place.

It is easy to see what the response to _that_ will be... Anonymus showed it brillantly recently at Defcon. Eventually, we will have human-carried miniaturized cell tower repeaters amongst the protesters, insuring local cell coverage.

We live in interesting times...

</comment><comment><USER25> This is why cell phones need the ability to create a transparent mesh network.

</comment><comment><USER26> The issue isn't access, it's injustice. Don't let the topic change to some bland consumer access issue -- Why does BART mandate its officers carry lethal force?

</comment><comment> Anti-Ratfish >Meanwhile, they also released a digital flyer with the words "muBARTek," "Mystery of Lulz,"<

Article misquotes. It said "ministry of lulz".

</comment><comment><USER27> I'm laughing at the fact that BART thinks they can effectively control people with this. This will only make things worse.

</comment><comment><USER28> I'm speechless. This is insane and I fear it will only get worse.

</comment><comment><USER29> Apparently the USA is once again taking notes from China and the middle-east.

</comment><comment><USER30> Wouldn't this effectively be violating freedom of assembly?

<comment><USER31> Most of the "freedoms" people speak of are really freedoms from government interference. For example, "freedom of speech" doesn't apply to a symphony hall that requires its patrons to be silent during performances, but it may restrict a government's ability to enact anti-hate crime legislation.

In this case the more interesting issue is that a private entity disrupted telecommunications on its property without notice or warning. In addition to making it difficult for protesters to coördinate their actions, it also made it difficult for people to make unrelated calls, to report crimes, call 911, and so forth.

It might be legal, but I admit I find the idea very unsettling.

<comment><USER32> Is BART a private entity, or are they state funded/run?

I've never been clear on this in most places I've been; I don't know if New York's MTA is part of the city, or if it's a private corporation entrusted with a public utility - and if it is, what are the ramifications?

<comment><USER27> Most subway systems are actually privately owned/operated, yet state funded entities. Or at least that's my understanding of many of them. The MTA and MBTA are this way I believe.

</comment></comment></comment></comment><comment><USER33> News.com still exists?

It's amazing to me how my primary read for years and years has been totally and utterly eaten alive by tech blogs.

</comment><comment><USER34> I think that when cell-jammers first became available, the FCC said that they were illegal regardless of whether private citizens used them or municipalities. The FCC is the regulatory body that has the last word on radio technology, and since it is a federal agency the whole area is under federal authority; it isn't an area states and cities can enter into.

<comment><USER10> This has nothing to do with cell-jammers. BART normally offers cell phone service underground as signal usually can't travel there. They just flipped the switch.</comment></comment>


Map: The Most Famous Brand From Every State - <AUTHOR> http://www.theatlanticcities.com/jobs-and-economy/2013/06/map-most-famous-brand-every-state/6036/

<comment><USER2> how is Florida not showing up as Disney?</comment>