Kotlin: A Language with a Bright Future - <AUTHOR> http://www.venturi-group.com/blog/getting-started-kotlin/ <comment><USER2> As a Scala programmer, Kotlin always feels like a language that frustratingly _almost_ gets it, but is infuriatingly unwilling to listen to experience of what works in large codebases. Look at the examples on [https://philipnilsson.github.io/Badness10k/escaping-hell- wit...](https://philipnilsson.github.io/Badness10k/escaping-hell-with-monads/) \- I think Kotlin has literally every one of those ad hoc solutions built into the language, but stubbornly avoids making the generalisation. In small examples ad hoc solutions look great, but to succeed in large codebases a language needs a generality and consistency that Kotlin lacks.

E.g. already there's no way to reuse logic between code paths that operate on Kotlin nullable types, Java Options (needed for compatibility with Java streams or more generally other JVM libraries), or rust-style Result types (for which there are several Kotlin libraries already, because it's a very useful concept and the language mostly has the facilities to support it), even though all three behave almost identically and you would often want to do the same thing in all three cases. But since the language won't let you represent what these types have in common, your only option is to copy/paste the code.

<comment><USER3> Some of those examples trade development hell with debugging hell (e.g. list comprehensions). While working with Python's list comprehensions, I often find myself writing loops instead of super-complicated incomprehensible list comprehensions. So hijacking your statement, those ways work well for simple use cases, not so much for real-world ones.

<comment><USER2> I find Python's list comprehensions unusable because they're backwards from how I'd expect. Thankfully in Scala the syntax is almost exactly the same; you write

        for {
          a <- list1
          b <- list2
        } { do something}

for an imperative for loop, and

        for {
          a <- whatever1
          b <- whatever2
        } yield { ... }

for the general comprehension. In Python you have to put the equivalent of the yield right at the start, which is just so different from how everything else in the language works.

<comment><USER4> Whoever designed the comprehension syntax for Python was perhaps enamored of the "such that" math notation { _expr-with-vars_ | _constraint-predicates_ }.

[https://en.wikipedia.org/wiki/Set- builder_notation#Sets_defi...](https://en.wikipedia.org/wiki/Set- builder_notation#Sets_defined_by_a_predicate)

<comment><USER5> That's because Python's list comprehensions were derived from Haskell's implementation: [https://wiki.python.org/moin/PythonVsHaskell#List_Comprehens...](https://wiki.python.org/moin/PythonVsHaskell#List_Comprehension_Syntax):

<comment><USER2> As per [https://wiki.haskell.org/List_comprehension](https://wiki.haskell.org/List_comprehension) , many Haskell users prefer to use do syntax (indeed I wasn't aware that the list comprehension syntax existed).

<comment><USER5> Agreed, I never use list comprehensions in Haskell. I feel like they're almost always harder to read.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> I agree 100%. Kotlin compiles to JVM, JS and very soon also to native via LLVM. That means you can ship a web app (both backend & frontend) and mobile clients (for android and soon iOS) in one language. This is unprecedented.

For JS, you can use all you favorite front-end frameworks like react (here's an example by JetBrains themselves [https://github.com/Kotlin/kotlin- fullstack-sample](https://github.com/Kotlin/kotlin-fullstack-sample)) or cycle. And you can import typescript definitions.

Also first class IDE integration.

So yeah, bright future is an understatement.

I guess clojure/clojurescript and scala.js are somewhat similar however I feel like Kotlin has an insane amount of momentum behind it right now.

<comment><USER7> You could also do this with JavaScript correct? Node.js back end with whatever front end framework and then use something like react native for mobile?

<comment><USER6> But then you'd be writing JavaScript and who wants that. TypeScript is maybe ok-ish but TS is just putting a lipstick on a pig. Like, ignoring other issues, JVM at least has decent concurrency and with quasar, you get processes similar to erlang.

<comment><USER8> What about the other side of that coin. Does a small amount of idiomatic Kotlin compile down to a small amount of JS, or a large amount (in bytes, after gzip)?

<comment><USER6> I don't have extensive experience with it but it's not too bad compared with other JS transpilers.

</comment></comment></comment></comment></comment><comment><USER9> I'm neither pro nor con with Kotlin, but let's look at history and parallels.

At its peak, Eclipse released Xtend. At that point, Eclipse was the IntelliJ of today, everyone assumed Xtend would be the next Java with full support of Eclipse tooling. Today, well, anyone remembers it? But its still there, check the features: [http://www.eclipse.org/xtend/documentation/index.html](http://www.eclipse.org/xtend/documentation/index.html).

You will see thousands of articles on kotlin vs java, but only a handful on kotlin vs xtend, because of the cycle.

Groovy. Same cycle, same result.

Javascript has a large share of syntactic forks. All of them had this hype- cycle. Coffeescript was "de-facto way" to write cross-browser eloquent javascript at one point.

There are few lessons from history: Syntactic language forks are what they are - forks. It takes equal amount of tooling and expertise to maintain them. When the next two versions of Java releases, the hype cycle will again turn tides. "X is the better Y", "Groovy is the better Java" \- never, there is only one Java, there is no better Java.

The best approach is to make the language itself extensible. Look at ES-next and babel. Every language addition is a proposal, and proposals can be implemented as language plugins with stages 3/2/1/0\. This effectively rendered most syntactic forks almost meaningless and unnecessary. Have an idea? Extend to the language directly! The most important part - tooling - which is eslint, AST parsing, intermediate representations, code formatting, etc - have been shifted to work on top of language plugins. Now some of you will talk against babel, and how different projects use different babel settings - but given all the history, babel is the best way to pragmatically evolve a language we've ever had so far.

Java has a longer mature JSR and language proposal process, just like ES. I really regret that Jetbrains decided to create yet another language fork, while being in the position to create the next babel for java.

Will Kotlin be different from all the previous cycles? Only real 2020 will tell, but until then, the only reference available is history.

</comment><comment><USER10> Cached: [http://webcache.googleusercontent.com/search?q=cache:http://...](http://webcache.googleusercontent.com/search?q=cache:http://www.venturi- group.com/blog/getting-started-kotlin/)

</comment><comment><USER11> Honest question. I have been checking Kotlin since a while but haven't found a compelling case for me to start using it. All the features I have seen so far are syntactic sugar.

Even the article quote something around those lines: "The syntax for Kotlin, like Apple's Swift, is clean and modern. The reaction amongst developers learning Kotlin is not dissimilar to the initial experiences with Ruby years ago. The syntax is so intuitively designed that even without any previous exposure it's almost possible to guess it."

The question would be: Am I missing something? Is syntax the only reason that makes people excited about it? or are there any new abstractions/ideas that are exclusive for Kotlin?

<comment><USER2> To have a clean/nice/familiar syntax in a language with a semi-decent type system is actually a pretty big deal. What're the other options? Java and C# are pretty cumbersome, Haskell and OCaml (and to a certain extent F# and Rust) look weird, Swift/C#/F# are to a certain extent tied to proprietary platforms, and while Scala actually has a nice core syntax the culture of its libraries tended to hide that away under a pile of sigils.

<comment><USER12> I can't really pinpoint it, but somehow C# dosen't seem so cumbersome as Java. Perhaps it's the libraries.

<comment><USER13> C# isn't as cumbersome as Java.

</comment></comment></comment></comment><comment><USER14> I love Kotlin. It's the sweet spot between Java and Scala. Been using it for backend stuff since it went 1.0. Coroutines are a game changer for a lot of the work I do.

Really excited to see how Native progresses as well. I've got a handful of projects what would benefit from having the 90% core written in Kotlin with some JVM and Native portions plugged in, ultimately meaning the library is available on both JVM and Native.

</comment><comment><USER15> This may not be the most educated opinion, but I tend to think of "languages" that compile to the JVM as just elaborate macros. My reasoning is that in order to use Kotlin (or Scala, Groovy, etc.), you will inevitably have to know Java very well, as most of the language is just syntactic sugar, and you'll almost always have to interact with standard libraries and SDKs written for use with Java.

A language isn't a "real" language unless you can live in it and be blissfully ignorant of anything else. I don't need to know C in order to use Go, or Python. I don't need to know Ruby in order to use JavaScript. But it'll be relatively impossible to write code in Kotlin without interacting with Java constantly. Which means context switching and maybe even bugs.

</comment><comment><USER16> I have been using Kotlin in the backend (along with Python) since late 2015 at Datawire.io and it is a pleasure to work with.

<comment><USER17> May I ask you what frameworks and everything are you working with? I've been enjoying django for a while now but I am really looking for new excuses to use more kotlin

<comment><USER16> I like to keep it simple. I've never been a big fan of most big "mainstream" JVM frameworks like Spring. I much prefer using libraries and writing a small amount of glue code to keep it understandable rather than making others become framework competent before hopping on a project.

For web services I use Sparkjava but I'm thinking of moving to Javalin or http4k because Sparkjava has really slow release cycles.

JSON is either Gson or Jackson. I prefer Jackson just because I know it better but they're both great.

I use JDBI for database work but I don't have too much of that in my backend right now. GRPC for cross service communication.

Back in 2015/2016 I used Vert.x a bunch but I really didn't like the async programming model. YMMV.

Generally I stick to using well known / common libraries written for Java and then later look for a Kotlin version if I have time to dick around a bit. I think this is what I love the most about Kotlin is the great interop with existing Java libraries.

</comment></comment></comment><comment><USER18> As a Python and Java programmer, Kotlin hits the sweet spot for me with the type safety of Java (+ ecosystem) together with a clean and modern syntax.

All whilst avoiding adding clever/stupid things (cf. Scala, Go, Rust).

</comment><comment><AUTHOR> Hi all, thanks for commenting on our recent blog post. We share and discuss all our content on Venturi's Voice Slack group. Seeing as you know quite a bit about this topic it would be great if you joined the conversation on there. We're a new community based around the blogs and podcasts we release everyday at Venturi. We aim to consistently deliver valuable content to our candidates - but we know there is always room for improvement, so your feedback would really help us out!

The group's pretty quiet at the moment whilst we're building up the community but stick with us as we're aiming to grow it rapidly.

[https://publicslack.com/slacks/https-venturisvoice-slack- com...](https://publicslack.com/slacks/https-venturisvoice-slack- com/invites/new)

</comment><comment><USER19> Is the link broken?

<comment><USER20> Mirror:

[https://web.archive.org/web/20171120143056/http://www.ventur...](https://web.archive.org/web/20171120143056/http://www.venturi- group.com/blog/getting-started-kotlin/)

or:

[http://webcache.googleusercontent.com/search?q=cache%3Ahttp:...](http://webcache.googleusercontent.com/search?q=cache%3Ahttp://www.venturi- group.com/blog/getting-started-kotlin/)

</comment></comment><comment><USER21> I like Kotlin, but I'm thinking of just concentrating on Java and giving up on Scala and Kotlin.

Scala was much better than Java but now the gap has closed and while its still nice to work with, I feel most applications would be better to stick to mainstream Java.

Kotlin is interesting but after Scala experience I'm reluctant to invest all over again. Is it worth it?

<comment><USER22> May I ask where you invested your time in learning Scala (e.g. reading the red book, studying type theory, syntax + stdlib + collections, etc.)? I found I could read simple Kotlin in a couple afternoons, and after a couple weekends, I felt pretty comfortable with it. The only difficult concepts to wrap your head around, I'd say, are type safe builders [1] and coroutines [2], but you certainly don't need to know those to be productive in the language.

To answer your specific question, however, if you're doing Android development it's worth it :) otherwise, it's up to you/your specific situation.

[1]: [https://kotlinlang.org/docs/reference/type-safe- builders.htm...](https://kotlinlang.org/docs/reference/type-safe- builders.html)

[2]: [https://kotlinlang.org/docs/reference/coroutines.html](https://kotlinlang.org/docs/reference/coroutines.html)

</comment></comment><comment><USER23> I skimmed through the comments, looked at code examples - they hurt my eyes. Read arguments of Scala people. Read about C# vs Java. For the life of me I don't get it. Why people simply wouldn't use Clojure?

</comment><comment><USER24> Does anyone remember Groovy this is just a fad Kotlin would be forgotten with time, i fail to see the real technical innovation in Kotlin.

<comment><USER25> Since you seem to have some technical expertise in this area and strong opinions, it would be nice if you explained why you felt that way, for the benefit of us who are not experts. AFAIK Groovy is currently in use at lots of very major companies.

</comment></comment><comment><USER26> Could someone tell me if Kotlin and TypeScript are similar solutions? I put both on my "next reads" list.

<comment><USER2> TypeScript has a marginally weaker type system (it's structural and has soundness issues with variance) and is more focused on being close to JS; it has very good ecosystem penetration (e.g. a lot of libraries publish typescript definitions even if they're not written in typescript). Kotlin is intended as a general-purpose language that can also compile to JS. So I'd say it depends on how web-oriented you are.

<comment><USER26> Got it, thanks for your summary.

</comment></comment></comment><comment><USER27> Woops 404 on the link.

<comment><AUTHOR> Hey sorry about that annoyingly our website went down not long after I posted the link, it's working again now though if you wanna dive back in

</comment></comment><comment><USER24> To me Kotlin feels like the most overrated copy of Scala.</comment>


Interns' Job Prospects Constrained by Noncompete Agreements - <AUTHOR> https://www.wsj.com/articles/interns-job-prospects-constrained-by-noncompete-agreements-11561800600?mod=rsswn <comment><USER2> Luckily noncompetes are illegal in California. The Bay Area/Silicon Valley wouldn't be what it is today without the freedom to move between different companies and/or start your own company yourself.

Edit: _illegal_ should be replaced with _non-enforceable_ as mentioned below. Initially I didn't see any difference between the two words, but I can appreciate the nuance in meaning now based on hedora's provided example.

<comment><USER3> Non-competes are unenforceable in California, not illegal.

By reading this message, you agree not to accept employment in technology- related firms for the next 25 years.

(This comment doesn't violate the law, it just isn't worth the electrons it's written in in a court of law.)

<comment><USER4> There are situations in which non-competes are enforceable in CA, just not for regular employees. For instance, if you sell a company you own in part or whole, a non-compete with the acquirer is enforceable.

<comment><USER4> Idk why anyone is down voting me. I consult on lawsuits for a living and recently worked on one where all the parties, lawyers, and the judge agreed that the non-compete was both valid and enforceable in exactly this situation.

<comment> your-nanny because voting on HN is broken.

<comment> your-nanny -2 I should be proud. hn's voting system is trash and they do their best to make everyone look the other way. kind of dystopian.

<comment><USER5> Would you please stop this? It's strictly noise, and we're trying for better signal/noise, not worse.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> In Germany non-competes are legal but restricted by law as follows:

\- max 2 years

\- employer has to continue to pay at least 50% of the salary the employee last earned for the duration of the non-compete.

\- cannot non-compete minors

\- must provide reasonable argument for the non-compete (hard for interns)

I think this is a good balance.

<comment><USER7> Do you work in HR? not sure max of 2 years is a Good Balance.

Especially if you can stop some one after leaving there first low payed job to not work for 2 years on 50% of their starting salary - do you not see the potential to abuse young workers here

<comment><USER6> The 2 years is a good balance for highly skilled employees who carry competitive information such as customer contacts or technology. After that time the information is likely mostly worthless anyway.

I agree that for interns the situation is not good but believe the "reasonable" provision is most likely to make a non-compete with an intern worthless in court.

<comment><USER7> You do know that non competes are not for protecting trade secrets right?

You wouldn't get a 2 year non compete for a FSTE 100 CEO in the UK to stand up in court.

A

</comment></comment></comment></comment><comment><USER8> It is really to the detriment of the states that allow it. I constantly feel as though due to noncompetes I will be forced to make a move to California in order to further my career on any reasonable timeline. I can't actually know that I will want to stay at a company many years until after I sign the noncompete, but then it is much too late and the noncompete is in effect. If I don't want to be chained to a specific company possibly killing my career progression, I have to be extremely careful.

It is things like this that are severely slowing tech growth outside of the bay. Since there are no noncompetes, the chains have to be crafted with positive incentives instead of negative incentives, causing developer salaries and benefits to go up rapidly.

<comment><USER9> It really is a tragedy of selfishness. The economy would be better overall but the vested interests want non-competes. The best thing federally that would draw heavy backlash would be to abolish non-competes federally.

</comment></comment><comment><USER10> I wish that someone would put up a website where interns can share what company they slave for, how much/if they get paid, and whether stuff like this goes on. I can't speak for anyone else, but I would prefer not giving money to companies that do things like this.

<comment><USER11> The cscq intern salary sharing thread is pretty good for that

<comment><USER12> you mean the _Brag About My FAANG TC_ threads?

<comment><USER2> The values are generally accurate at least.

</comment></comment></comment></comment><comment><USER13> a summer internship I did had a 1 year noncompete and we own your IP contract; when I asked about it, they basically said it would be too inconvenient for them to change it at all, and it was fine, all the other interns were fine with it, just sign...

I did, of course, since it was too late for me to have any leverage and I really needed it for my resume.

<comment><USER14> Cross out the terms you disagree with, initial the changes, and then sign.

</comment></comment><comment><USER15> In Canada, I had to sign a noncompete for my internship. Also couldn't have side projects. Made me pretty uncomfortable.

<comment><USER16> Did you challenge that, before you signed?

Edit: When my employer tried to retrospectively claim ownership of side projects through a change of policy I got the wording changed to concern work projects or projects during work time. I doubt the original wording would have been enforceable in my jurisdiction, though.

<comment><USER17> Where do you live, and what was your employer?

<comment><USER3> A non-CA startup once tried to get me to sign a non compete for an internship. It would have forced me to resign a position at the university that was the reason they wanted to hire me in the first place. I pointed that out, and they immediately escalated to the founder, and replaced the internship contract. The old one was boilerplate that they cut and pasted from some other document.

They were pretty apologetic, actually.

</comment></comment></comment></comment><comment><USER18> Wow I had no idea interns were being forced to sign noncompetes.

That is exceptionally unreasonable and unconscionable.

<comment><USER19> I'm in QC/Canada and I signed a non-compete for my 4 (paid) internships. This is pretty normal here.

<comment><USER20> So your internships were all with the same company? Or you violated them in taking subsequent internships?

<comment><USER19> The non-competes were limited to a specific industry.

</comment></comment></comment></comment><comment><USER21> From a practical standpoint, does anyone actually enforce the noncompetes against regular employees? It never struck me as worth the money and bad press to enforce something like this against an intern or regular line engineer or manager.

<comment><USER22> For small tech companies it is a nuclear option. Unless everyone hates the employee it will only go badly.

For instance: a tech company I used to work for, a well liked employee left to go work for a company he used to consult for. The owner threatened hard to sue. It made the papers, the lawsuit alone would have ended us, but now local companies didn't want to sign either because our reputation tanked, and many of the employees threatened to quit.

<comment><USER21> That's kind of my point. It seems like it will on backfire, thus leaving it at a lot of bluster, but no one actually enforcing it, which then just encourages everyone else to leave as well, and then the threat is revealed to be a paper tiger.

</comment></comment></comment><comment><USER7> Tek mountains hr seem incompetent. You don't stop disclosure of trade secrets with a non compete agreement.

<comment><USER23> And now they're famous as well.

</comment></comment><comment><USER24> > Ms. Dunne said she was given the agreement on her first day. "I had no idea > what I signed, they didn't explain it to me."

Found the problem.

<comment><USER25> Absolutely agreed - contracts you're asked to sign without the opportunity for a lawyer to review should be considered invalid/under duress. They're basically like EULAs you only see after you've opened the package and forfeited the right to return the software.

<comment><AUTHOR> I don't think having to retain a lawyer just to sign an internship offer is ideal either. There should be some guardrails that some things are simply unenforceable and you don't need to get a lawyer involved.

<comment><USER25> If there are millions of college kids who all need contract review within the span of a few days in the spring, I would expect the market to adapt in some way. The most likely, I think, is that employers (at least employers within an industry) would settle on some boilerplate contract, and law firms would let you upload a contract to their website, have a script run a diff, and come back "Yes, this is in fact the boilerplate contract, here is our plain-English summary" or "No, here's how it differs, you can retain us at normal rates to explain the diff or you can push back on your employer." (They could charge you a few bucks, or they could just have the cost of reviewing this year's boilerplate contract be paid by the employers, who are incentivized to successfully and legally hire interns.)

The more interesting question is whether if everyone knows there's a non- compete and it's the industry standard, there will be any more effective pushback... now that I think of it, I worry there may be _less_ if contracts get mechanically standardized.</comment></comment></comment></comment>


Ethereum miners are renting Boeing 747s to ship graphics cards - <AUTHOR> https://qz.com/1039809/amd-shares-are-soaring-ethereum-miners-are-renting-boeing-747s-to-ship-graphics-cards-to-mines/ <comment><USER2> Can we discuss the negative externality that cryptominers are throwing off into the world unchecked?</comment>


Delete the Save Button - <AUTHOR> http://www.slate.com/articles/technology/technology/2012/07/microsoft_office_2013_and_the_save_button_come_on_computers_are_smart_enough_to_preserve_everything_i_type_without_me_hitting_a_stupid_disk_icon_.single.html

<comment><USER2> There is a behavioral impact to the Save button. We are conditioned to think that the changes we make in a file do not apply until we hit 'Save', so it's okay to just close a file if you do not intend to 'commit' those changes.

Auto-save for recovery purposes is one thing, but when completely replacing the 'Commit when I tell you' to 'Save everything in real time' can have unintended consequences.

<comment><USER3> I keep getting caught by this on Google Docs. I whip in, accidentally change something while scrolling or copying and pasting, then close the doc. Bingo, I've lost information, sometimes entire paragraphs. What a pain. I should have the option to persist my changes when and how I want to.

<comment><USER4> It's not exactly what you want, but it may help you. Google Docs provides File > "historical revisions".

<comment><USER3> Good point, but it's linear. It mixes accidental changes with intentional all in one stack. I don't want to have to undo good stuff just to get back to the stuff I lost. Visual stacks, comparison of versions, all of these are helpful... but at the end of the day, the tool should let me decide what version and changes I want to persist, and which I don't.

</comment></comment></comment></comment><comment><USER5> "Save" -----> "Mark Version"

I think the save button more or less provides a way to save a version or "mark" one. I don't want to see the button disappear, but rather change into a "mark version" button that allows auto-saving to happen, but gives the user the opportunity to set their own points of reference in a document's history. In software that auto-saves, I often feel a bit disoriented. It makes it harder to jump back to a certain state of a document.

</comment><comment><USER6> Jeff Atwood made a similar argument back on 2004: [http://www.codinghorror.com/blog/2004/09/do-you-want-to- save...](http://www.codinghorror.com/blog/2004/09/do-you-want-to-save.html)

I think autosave has a significant impact on versioning, and while it certainly has some pros, it's not by any means an absolute improvement.

</comment><comment><USER7> It actually does an auto-save for you, silently in the background. But there would be an uproar if they got rid of the save button entirely - people like to feel in control of their important data.

</comment><comment><USER8> Wow, I don't say this very often, but tl;dr. Every single argument made in the article has been made elsewhere, but more concise. By the end, I was saying "Yes! I get it already! Enough!"

In summary:

Computers are smart enough to autosave. The save button is an anachronism. We should think about retiring it.

</comment><comment><USER9> This might make sense in office programs, but I'd hate this for program code at least.

I think saving should not be needed except when you want to send the file to someone. Work already creates temp files which autosave? Part of me likes the idea of saving being option... just making word autorestore without being prompted. However, that would obviously be a significant, and prohibitively confusing, change in workflow for users.

Once you save, you've lost the previous version, especially if the program dies and you lose undo history.

In software development specifically, there's quite few tools that automatically pickup/use files when they're saved... Meaning you'll try to compile or use invalid files.

tldr; don't do this. word already guards against losing changes anyway.

</comment><comment><USER10> If one's going to get rid of the save button, then the program should sure as well give me feedback about when the last time it's saved. Often times, when I want to close something that autosaves, I'm not sure if now's a good time or not.

When it comes to version control, you do actually want to control when a version is saved, because there's meaning behind the different save points, conveyed to others that might want to fork and merge. Wading through a history of meaningless changes is no one's idea of fun, because the intention of the version isn't conveyed well only through the changeset.

</comment><comment><USER11> While this article makes some good points about modern design borrowing far too much from the past, I fail to see how this is a pressing issue in software today as the author would like me to believe.

</comment><comment><USER12> Why not have auto-save and, almost git-like, have a way to add tags or branches to points in time where you did something significant to a document?</comment>


Earth to Mozilla: Come back home - <AUTHOR> http://blogs.law.harvard.edu/doc/2014/04/12/earth-to-mozilla-come-back-to-us/ <comment><USER2> As much as I identify with the motivations behind this post, it's utterly out of touch. The author complains about the realities of ad-supported business when the truth is that the for-pay browser market died out over a decade ago because it simply was not a sustainable way to operate a business. Even if Microsoft hadn't begun giving IE away for free, someone else would have eventually - they'd swoop in with their VC money, demolish the browser market entirely with a pricing race-to-the-bottom, and then explode like all startups do and leave us screwed. At least when Microsoft did this, they kept shipping their browser afterwards (other than that IE development pause... sigh.)

Ideas like intentionally fragmenting the userbase (with some absurd idea like 'PrivateFox') merely contribute to the issues he highlights; if revenue to fund development is scarce, why would you actively undermine your revenue base _and_ waste resources on the product that is destroying your revenue? It's absurd, no sane organizational leader - moral imperative or not - would ever do this. Mozilla cannot do this.

Hypothetical revenue sources like crowdfunding and intentcasting are great, but it would be utterly irrational for Mozilla to switch wholesale to some new unproven revenue model. Even if it works for a while, eventually they run the risk of scorching the earth (like how Zynga and co completely obliterated viral pathways on Facebook, effectively destroying their revenue streams).

If you want Mozilla to adopt a new business model, you'll need to find a new business model that will actually work at their scale, then prove it works. They can't afford to undermine their extremely important efforts (on Firefox, etc.) just to satisfy your curiosity and desires for an ideal world.

<comment><USER3> How much can I up vote this? There has been actual research into how much people value their online information (clicks and so forth). The result from one study is a median of 7 Euros (about USD10; [http://arxiv.org/pdf/1112.6098.pdf](http://arxiv.org/pdf/1112.6098.pdf)). Not much to build a business on.

</comment></comment><comment><USER4> It is indeed disturbing that Mozilla's finances depend so much on advertising. No matter how well-intentioned the folks at Mozilla Foundation/Corporation might be, it's difficult for human beings to avoid getting side-tracked when their wallet are running thin and there's easy money up for grabs out there.

But I don't think the author's suggestions are compatible what what we (or at least, I) want Firefox to be, either.

1\. Spinning off a variant named PrivateFox just sends the message that the regular Firefox will no longer respect your privacy. It will also make regular, free, not-private Firefox users second-class citizens of the Internet. People deserve to have their privacy protected, regardless of whether they can pay or not. In fact, people who can't pay (minors, the poor, citizens of oppressive third-world regimes, etc.) are often in need of the most protection. Moreover, even if you can afford PrivateFox, the payment creates a paper trail that might negate the benefit of using PrivateFox.

2\. Crowdsourcing sounds cool, but only if everyone benefits. There's no point in creating "The World's First Fully Private Browser" and keeping it proprietary. If there exists technology to improve everyone's privacy, it should be included in every copy of Firefox by default.

3\. Intentcasting is an interesting concept, but in the context of a web browser it sounds like just another "Ubuntu sends my searches to Amazon" debacle waiting to happen. If I want good privacy, I probably don't want to tell faceless multinational corporations what I want to buy, either.

Unfortunately, the only alternative that I can think of is a variant of Wikimedia Foundation's annual donation drive. As a long-time Firefox fan, I would certainly donate as much as I can. (Is there someone at Mozilla who can give creepy stares in a banner ad as well as Jimmy Wales does?) But again there's a problem: Mozilla's budget is several times the size of Wikimedia's (300MM vs. 80MM), and I'm not sure that the moral value of Firefox, although significant, exceeds that of Wikipedia. Mozilla needs to be seriously trimmed down if they're ever going to be supported by donations.

<comment><USER5> > No matter how well-intentioned the folks at Mozilla Foundation/Corporation > might be, it's difficult for human beings to avoid getting side-tracked when > their wallet are running thin and there's easy money up for grabs out there.

As a former Mozillian, I can't begin to describe how inaccurate this is. Discussion of money, or revenue, were relatively rare compared to the things that Mozillians actually care about. Here's a list of things that were discussed about 100x more than advertising revenue:

\- building the mozilla community \- open source \- rust and servo \- where to go for lunch \- javascript performance \- keeping the web open \- making firefox builds fast \- firefox memory usage \- proprietary codecs vs vp8

<comment><USER6> The lack of interest in pushing Persona forward has made me wildly change my stance on Mozilla. Third party authentication is an important building block of the web which is currently dominated and virtually owned by Google and Facebook.

Persona does everything right, yet it is not being pushed forward anymore; I have my doubt as to whether it ever was. In "keeping the web open", it is such a low hanging fruit I simply don't understand the complete disinterest behind Persona - is Mozilla just waiting to see if a protocol with a cuter name comes along?

<comment><USER2> They pushed Persona pretty hard (and integrated it into their properties) for quite a while. Nobody cared; everyone prefers privacy-compromising login services like Facebook Login. The battle's lost.

<comment><USER7> They didn't push it hard enough. Persona leveraged nothing from Mozilla, save brand-by-association, and even that feebly.

Imagine Mozilla Persona being named Mozilla Login (recognition barrier down), being an integral part of the browser, just like Chrome does with Google Login (first use barrier down) and integrating seamlessly with Google and Facebook logins (registration barrier down).

I'd wager the user counts would be a significant percentage of Firefox users, making Mozilla Login a first-class citizen of Web Authentication APIs and breaking the chicken-and-egg problem. From there on, it'd be expectable that technical superiority could carry it to the top.

<comment><USER8> > Imagine Mozilla Persona being named Mozilla Login (recognition barrier down)

We actually did some testing along those lines, and it came back pretty negative. When "Mozilla" was too prominent, people did not expect it to work with other browsers, and wouldn't even attempt to use Persona.

<comment><USER7> Thanks for the enlightenment. Did you not consider going for adoption by regular Mozilla users, and only then try expanding to the wide open internet? I have the feeling that by trying to tackle everyone at once you ran into brand recognition problems.

For reference, I pulled this login screen from an image search on google: [http://raygun.io/blog/2013/08/mozilla-persona- support/](http://raygun.io/blog/2013/08/mozilla-persona-support/)

The question must be asked: Does Persona have any chance of being used, in that context?

This branding issue can be compensated by having the browser pull out a dedicated login interface, or by really leveraging the known Mozilla brand (accepting the negative aspect you presented, which is inescapable). Without compensation, it is indeed a lost cause.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> I am the author of Javelin Browser (javelinbrowser.com , for Android), and I think I founded a business model (that works) that is entirely opposite of Firefox's and Chrome's, VPN services. In fact, Javelin is so pro-consumer that it has Ad-Block built-in.

In less than a month, I'm edging close to 50k downloads with a good retention rate (installed users), and with revenue coming in from Pro accounts and VPN subscriptions.

The long term plan is to grab the market share by focusing on a Pro-Consumer experience, all whilst enabling a better secure and decentralised internet.

<comment><USER10> Want to really gain some "pro-consumer" points? Open source it.

<comment><USER11> I think that "some" points is mostly negligible.

</comment></comment></comment><comment><USER12> The moment they start to integrate somekind of ads (yes, I heard the rumor/plans) in Firefox they are dead. It doesn't even matter if they don't track, aren't intrusive or whatever. The users will run away.

<comment><USER2> Run away to what? An ad-supported, privacy-undermining browser like Chrome? A constantly outdated and insecure browser like IE? _Safari_? Don't be ridiculous.

<comment><USER13> I'm with sleepyhead - what exactly is wrong with Safari? I'm a web developer and I use Safari almost exclusively. Hardware-accelerated (on OSX, anyway), good performance, accurate rendering, no privacy intrusions.

<comment><USER14> Does it run on Linux? Or Windows for starters?

<comment><USER15> No, it currently ships only on iOS and OSX.

<comment><USER14> That was kinda the point. It has no presence outside of Apple products. Even Opera uses Blink as base.

<comment><USER16> Why is it a problem that you cannot use Safari on other platforms? The web was made to be used from many clients. I don't see the problem here.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> I don't know the details of Mozilla's finances, but they should be treating their current income as a windfall, not as a reliable future income stream. i.e. their expenses should be significantly less than their revenue, and they should invest the balance, and attempt to create a trust which is capable of financing itself in perpetuity, in the same way as medical research charities like the Wellcome Trust.

</comment><comment><USER18> I was kind of nodding until I read "Apple clearly cares about customers (witness the success of their stores, and customer service that beats all the competition's"

Hahahaha/

<comment><USER19> Well... While they certainly focus their care on some kinds of users, I have nothing but stellar things to say about their customer service. All my Apple machines have longer productive lives than my other computers.

</comment></comment><comment><USER20> Hmm. Here's another business-model idea for Mozilla, just off the top of my head: allow people to set a price on their privacy, and take a cut.

\- People who are really worried get to set the price to a level no-one will pay; other people maximise revenue,

\- Mozilla's incentives are aligned with users rather than advertisers (because they have to work to prevent giving away private information for free if they want to sell it).

</comment><comment><USER21> Is this the same fellow who has called for the end of "calf-cow"?

I like his thinking.

I do the majority of my "web surfing" without a graphical web browser.

This makes reading much faster and easier. The www is a sewer of advertising.

Users need "garbage filters" to be able to "surf the web".

Sadly they are trying to rely on browsers to do the cleanup for them. But mainstream browsers are on the side of advertising. Conflict of interest.

</comment><comment><USER22> I share the anxiety with the author, but what else one can choose if no Firefox?

Chrome now pushes Google Now down every throat, Opera has Google set as a default search engine and doesn't allow to change that, Safari is Mac only, IE is hard to customize and lacks addons. Others are often unusable/unstable or lack crucial features (codecs, synchronization).

<comment><USER23> > Opera has Google set as a default search engine and doesn't allow to change > that

You mean the search bar when opening a new tab? True, that's always Google. But if you go to settings, the third thing from the top is managing search engines, and setting the default to use for things entered in the address bar :)

</comment></comment><comment><USER24> Another red flag Doc doesn't mention here is the fact that Mozilla now requires extraordinary knowledge to disable JavaScript in Firefox.

There are broadly useful reasons to have this available as a toggle in the common UI (such as when you want to save an image from a site that uses JavaScript to prevent right clicks), yet it's hidden inside of the cryptic (to most users) about:config.

And why might this be? There could be several reasons all in play at once, including an attempt to protect users from themselves (think: The Nanny Browser), but I would just point out that the advertising infrastructure Mozilla increasingly relies on, with its cross-site user tracking, leans heavily on JavaScript.

It would appear that with that as a counter incentive, Mozilla has chosen to side with the ad networks, instead of with the users, in choosing which options to expose for easy control.

<comment><USER25> Ordinary users do not want to disable JavaScript. Hell, they don't even know what it is. Advanced users like you can still use NoScript or about:config.

<comment><USER26> This was exactly the explanation from Mozilla side and it makes sense. The reason for the decision was people telling "my internet stopped working" (white pages) once they've disabled JS by accident.

<comment><USER27> It's an interesting thought: should we be dumbing down everything or just engaging in a bit of education instead and helping people understand what JavaScript does and its use on web pages?

The manual for my car mentions things that must be done for maintenance. They don't dumb it down. Meanwhile in computer land we hide all options and dumb everything down to "protect" the user.

There is a difference between being easy to use and molly-coddling. It is a difficult balance to get it seems!

<comment><USER28> >The manual for my car mentions things that must be done for maintenance.

Your car has a manual that describes maintenance. It doesn't have a button next to the radio that ejects the engine.

</comment></comment></comment></comment></comment><comment><USER14> While I disagree with article, I do wonder, what should Mozilla do to not suffer the shrinkage further?

On other side there is Google which can advertise their own browser on their site, plus there is IE which ship their browser with Windows. How do you compete with those?

<comment><USER29> Up to now, they competed with "those" by being better.

<comment><USER14> Right, but in my opinion lately they have gotten a lot of better, but their userbase isn't following suit.

Right now their only slight fault is probably their dev tools aren't as sharp as Chrome, but performance wise it starts, and works equally or better than Chrome.

<comment><USER29> I guess equally or better than isn't good enough.

It was a _lot_ better than IE6/7 when I started using it. It was still a log slog to make 1% gains in market share. People didn't even think of browsers as an application you can replace. It was just the internet.

Firefox won by being good enough that users nagged other users into replacing IE. They definitely were and I think we have FF to thank for a lot of the improvements to the web. I love it when companies compete simply on being better. It's probably more controversial, but I appreciate Apple for the same reason. They don't use "crutches" like corporate support, lock-ins or cheap prices. For the most part they set out to make something people will want to buy with their own money even though its more expensive.

I think Apple are losing mobile phone market share for the same reason. That strategy sets a high quality bar. You need to be substantially better than the competition. When it works, it pushes the whole bar up and everyone benefits, even consumers who choose the easiest/cheapest option.

Maybe Firefox's smartest strategy isn't 'make the best browser' anymore. I'm not going to call on them to abandon it though. I say try to make the best browser and if they fail, c'est la vie.

<comment><USER14> > I love it when companies compete simply on being better. It's probably more > controversial, but I appreciate Apple for the same reason. . They don't use > "crutches" like corporate support, lock-ins or cheap prices.

These sentences kinda don't add together. You're telling me that Apple with their walled garden was without lock-in and that they won on quality?

What you're describing are large leaps. Large leaps can't happen constantly. I feel there is quite literally a hard limit to what leaps you can make, in one domain (basically low hanging versus high hanging fruits). Compare Chrome to Firefox to when it was when it came out, and compare it now. The difference has evaporated. On the other hand Chrome has steadily gained user base at a very high rate. It's delusional to thing it was only made on basis of having a good product. Eich was right, winning against net super powers will be THE TEST for Mozilla.

Anyway, I think Mozilla is working towards that goal, but Mozilla can't make make that leap if we don't support it now.

<comment><USER29> Apple has lot of products and subsequent strategies, hence controversy. :)

I didn't mean it in a very wide sense. I'm not sure how the walled gardens fit into my story/observation. I don't like walled gardens, but I think it is tangental. I mean it in the context of a person buying a gadget (ipods and/or ipads make a good example)

The other hardware companies will tweak a product to be have the biggest screen, RAM or HDD (whatever feature retailers are highlighting ) at some price-point and they'll do it at the expense of the battery or some feature shoppers are not looking at as closely right now. They'll create a product just tailored to buying managers' checklists. Apple don't do this. They won't compete on price or checklist features.

I don't want to idealize them too much, but I think Apple do a lot less of the above than most. They generally win by making some something people will want enough to pay for with their own money at a price that gives Apple their fat profit margin. Sometimes it's by "inventing" a category like the last big string of big wins. But, for a long time people have been buying Apple laptops at a premium price. No major category invention just consistently good quality of software and hardware.

I hope I'm not drinking kool-aid. I'm not even mush of an Apple consumer (more of a windows avoider) but I think they do keep and artistic integrity like a Jazz band that chooses not to make a trendy pop record. Mot people prefer (by definition) poppier music. But, from a certain perspective there is a greeter victory in making a popular Jazz song than a popular pop song, if you're a jazz band.

I'm not sure if that's the optimal strategy for being successful (though it obviously serves Apple) but I think that's the kind of competition that improves a market.

Back to FF. I really appreciate them. They won by being awesome and making using the web better. Faster, prettier. They had tabs. They had awesome plugins like firebug that helped developers and helped a lot of non developers understand how the web worked. They had lots of plugins that showed people they could customize their web experience. They proved that OSS could be awesome for users.

My perspective is that of a fan. From that perspective, I'd like to see FF succeed or fail by trying to be the best browser. If that conflicts with being a more popular browser or more profitable one, I'd like them to choose "best browser." If they are handicapped because Chrome has better access to users, I still want them to compete on being the best. I would rather see them die trying then surviving because they figured out a way to get more ad revenue at the expense of user experience. That's obviously different to the investor/owner/employee perspective.

As for support, I don't think they can raise the kind of money from donations they can make in advertising. I like the PrivatefFox crowdsourcing idea.

</comment></comment></comment></comment></comment></comment><comment><USER30> Here's an open letter from me: fuck you and your cancerous spyware. Advertising ruined TV, and businesses like yours are hell bent on ruining the web, too.

Here's a novel idea: build something people want to use, not something that helps scamming people into buying something they don't need.

<comment><USER31> Then please be constructive and explain Mozilla how else they'll get their 300 millions operating budget each year

<comment><USER30> > Then please be constructive and explain Mozilla how else they'll get their > 300 millions operating budget each year

They should probably start with dropping their yak shaving shenanigans (Rust, Persona et. al.), nice toys as their are.

<comment><USER32> > They should probably start with dropping their yak shaving shenanigans > (Rust, Persona et. al.), nice toys as their are.

So, you are saying that Mozilla should stop having long-focus technical efforts to develop technologies to support the future of the open web, and leave long-focus technical development to the commercial browser vendors? Seems to me that might help the balance sheet in the short-term, at the expense of Mozilla permanently -- and quite likely distantly -- trailing the commercial vendors as the latters' long-focus efforts come to fruition and Mozilla is forced to play catch-up, but Mozilla lacks such innovation of their own.

</comment></comment></comment></comment><comment><USER33> Can Firefox fall at this stage?

</comment><comment><USER34> I use Firefox, mainly because I like it and it allows me to create my own browser with addons. I don't use Chrome, mainly because I don't like it, and it doesn't allow as much customization as Firefox; it also seems to try to prevent me from doing things that Google doesn't like, like downloading Youtube videos.

I sympathize with people's suspicion of advertising worming its way into Firefox. And as the worms bore, there's a danger that Firefox as we know it could disappear in place. If Mozilla allows its survival to depend on advertising, it will be difficult for Mozilla to oppose advertisers.

But my greater fear is that Firefox could disappear altogether. I really don't see how such a large organization of paid people (and I do _not_ begrudge them their livelihood) can exist without either advertising, paid use, or some kind of consulting. Paid use isn't looking good. I suppose it helps that Firefox is vaguely an anti-trust antidote for Chrome.

Years ago I felt uneasy about gmail's increasing awareness of me as me. As that unease grew over the years I thought about alternatives. Eventually I chose a paid alternative, and I've been happy with it for a few years.

I'm feeling uneasy about Firefox now. Not so much about the danger of it pimping for advertisers, but about its very viability. And I'm thinking about alternatives, because as much as I'd like to, say, pay for some version of Firefox that ensures its survival, I have zero control over whether that will ever be on offer.

PrivateFox, from the article, is interesting, despite its problems, but it still depends on Mozilla's survival.

What I've been gravitating toward is uzbl (which is ironically _un_ usable for most web users today), or something like it. [https://en.wikipedia.org/wiki/Uzbl](https://en.wikipedia.org/wiki/Uzbl) [http://www.uzbl.org/](http://www.uzbl.org/)

It has its own existential issues, being mainly today lack of users, which would matter later when the uzbl devs run out of interest and retire or otherwise move on. What I like about the idea of it is that it's minimal and composable, a la the Unix philosophy. The composable part would take much more work on my part than merely installing a Firefox addon. But in the end it would be _possible_ (if difficult) to create my own browser, which Firefox and its addons make easy.

uzbl as is will never be an alternative for most web users (although some packaging of common features could appeal to a slightly larger group). But small niche projects do live on, and I'm hopeful for uzbl.

My other alternatives are along the lines of text browsers like lynx or links2, but those are options for a true, advertising/surveillance dominated web dystopia. Still, they're on the list. (And you web developers should be using them now, to see what happens for users with accessibility issues, or who just can't or won't use javascript.) [https://en.wikipedia.org/wiki/Lynx_%28web_browser%29](https://en.wikipedia.org/wiki/Lynx_%28web_browser%29) [https://en.wikipedia.org/wiki/Links_%28web_browser%29](https://en.wikipedia.org/wiki/Links_%28web_browser%29)

<comment><USER6> > it also seems to try to prevent me from doing things that Google doesn't > like, like downloading Youtube videos.

Can you elaborate? The Chrome Web Store probably does that, but Chrome itself?

<comment><USER34> I vaguely remember (it's been a couple years) installing an addon to download videos, then trying to download a yt video and being told "no." Sorry, that's the best I can remember.

<comment><USER6> That sounds like a problem with the addon, not chrome. Or the addon forcefully limited itself due to the web store's policies.

I'll give you that the chrome web store is a lot less open than mozilla addons but chrome's infrastructure certainly doesn't prevent you from doing what you want. (Source: I do it)

<comment><USER34> Which addon do you use? I do occasionally use Chrome.

<comment><USER6> Youtube Options. It's not available on the web store though for the reasons I highlighted.

But really I mostly use the wonderful youtube-dl tool. [http://rg3.github.io/youtube-dl/](http://rg3.github.io/youtube-dl/)

</comment></comment></comment></comment></comment></comment><comment><USER35> Two things:

1\. Reinventing the wheel

Does anyone here remember how Firefox started? It was one guy who was sick to death of how bloated the Mozilla browser had gotten, and just wanted something that worked. PrivateFox is essentially the same thing, except instead of a bloated browser platform, we have a bloated world-wide web, and we're trying to "thin it down".

What Doc is suggesting is not only spinning up yet-another-Firefox, but that we should have to _pay_ for the privilege of having a browser experience which isn't incredibly annoying and frustrating. I'm from the Open Source community. We don't pay for our code, we download it for free and give it away, because it's just what you do as a good person. It's given away by people on their personal hosting or by university mirrors and other donated resources. What we don't do is try to extort cash from users so that they can have a half-decent experience getting and using our content.

2\. The web is not consumer culture

It seems that Doc is certain that the way we currently consume content on the web is good, and permanent, and we have to work _around_ what's on the web and how business is done today. Doc shows many examples of how we should pay for our web content - either in a proprietary browser, or crowdfunding, or 'direct consumerism' \- consumer culture without the need for advertising, essentially.

I didn't get on the internet to _pay_ for a _web browser_ that gives me the _privilege_ of _non-annoying content_. I got on the internet because somebody paid to provide me a service, either out of generosity, or after being paid by me for some other good or service. Game servers funded by game sales. Journals funded by the top 1% of power users. Chat servers hosted by donations or for free. Porn sites funded by member subscriptions (yes, I went there).

There are many ways to get paid for the services or content you provide. Advertising is the most annoying, most deceptive and most harmful way to do it. There is no reason we have to put up with the status quo and accept ridiculous websites with shitty content and a bad user experience just because they're "free". I say fuck the ad industry. I really don't need most of what's on the web. If I really needed it, I would pay for it, same as with everything else in my real life.

I don't live in a home with "featured content by name brands". I pay my rent. I don't drive a free car "featuring new technology by ZomboCom Inc"; I pay off a loan. I don't drink free sodas with e-ink wifi-enabled rolling banner ads; I pay the $1 for my damn soda. There is no need to support everything you consume with advertisements.

\--

Paying for a browser that specifically gives me a non-shitty browsing experience is the equivalent of telling the ad industry you love them so much you're willing to _pay them off to stop the onslaught of ads_. I have another way of telling the ad industry what I think: by boycotting all websites with advertising. I'm not going to miss the lack of content, either; because you can't miss what you don't know exists.

I propose a browser add-on that disables all hyperlinks to sites that are funded by advertising. This would create a smaller, more intimate, more content-oriented internet. It would encourage community and sharing, and increase the quality of content. It would reduce unnecessary noise and distraction. And it would force content producers to actually find out what users find worthwhile, and if they really want to pay for it, in one way or another.</comment>


Ask HN: Will a per issue based crowdfunding platform be useful? - <AUTHOR> I often find myself submit issues on Github but get no response, either maintainer of the repo does not care or too busy because too many people filing too many issues, but not enough people fixing them. So I built https://www.issuereward.com/ and a Github bot https://github.com/apps/issue-reward-beta to go with it. Allowing people to crowdfund on a specific issue. Do you think this is useful? Could this extend to other areas? How should I promote this? I tried several things, not working very well. <comment><USER2> AFAIK none of the previous attempts at this have done that much. What's different about yours?

There's also lots of open questions your site doesn't answer:

When does one have to pay when posting a bounty? Where's the money kept? Who decides that someone, and who that someone is, gets to claim a reward?

<comment><AUTHOR> I forgot to ask, could you point me to some previous attempts? So I can check what difference I have. I did not find much myself except one thing at [http://freedomsponsors.org](http://freedomsponsors.org) . The difference from that I think is I have a Github bot that tightly integrated with Github

<comment><USER2> BountySource, GitCoin, FreedomSponsors, BeerPay</comment></comment></comment>


IPhone and iPad Users Held to Ransom by Hacker in Australia - <AUTHOR> http://www.ibtimes.co.uk/iphone-ipad-users-held-ransom-by-hacker-australia-1450096

<comment><AUTHOR> If the passwords were obtained from other sources, then it's a great example of why you should never reuse passwords. If the passwords were obtained from Apple, that's another story.</comment>


Amazon's Fire Phone is currently selling for £99 in the UK - <AUTHOR> http://www.amazon.co.uk/Amazon-Fire-Phone-32-GB/dp/B00IFQ56PU/?ie=UTF8&transaction=device_only

<comment><USER2> they have massive problems selling them and then they don't even allow shipping to anywhere but US or UK really, when they price their phone that cheaply it's just pure evil..</comment>


1 year of Bitcoin values (USD) using polar coordinates - <AUTHOR> http://imgur.com/r1pFOLE

<comment><USER2> I think this is clever.. what software you use to plot the coordinates?

<comment><AUTHOR> The creator used gnuplot with its 'set polar' option.

Original Reddit post: [http://www.reddit.com/r/Bitcoin/comments/1roerc/i_decided_to...](http://www.reddit.com/r/Bitcoin/comments/1roerc/i_decided_to_plot_1_year_of_bitcoin_values_usd/)

<comment><USER2> thanks!</comment></comment></comment>


Does GPL hurt free software? - <AUTHOR> http://www.250bpm.com/blog:7

<comment><USER2> This blog post was obviously done without even a few minutes of research. Developers have different and valid reasons for choosing BSD vs GPL/LGPL. BSD lets the developer give up any and all control and lets everyone do whatever they want with code/software. The GPL lets the developer share but enforce that the code/software will remain Free/open. Lots of folks who develop in their spare time like contributing but don't want someone taking their work and closing it up, commercializing it and making money off of it without contributing back to the overall community. There's a reason GPL/LGPL is the most popular software license.

<comment><USER3> Yup. The "spite" motivation. The question is how strong an incentive spite is. Things like money or fame are better in motivating people IMO.

<comment><USER4> It's not about spite. It's about preserving the motivation to continue developing free software. It's nice thinking that the fruits of my labor will benefit everyone and that derivative efforts will as well.

The GPL gets an awful lot of flack from a community that owes it so much and I truly don't understand why.

<comment><USER2> Greed and selfishness play a role. Some folks like being able to take things without having to give in return. And they get frustrated when they find an awesome library that does what they want but they can't use it in their paid/closed product because it is GPLed. And there isn't an equivalent BSD/MIT licensed library. There are equivalent commercial libraries, but they cost money. So the dev winds up complaining about the GPL.

<comment><USER4> While I suspected as much, I figure it's worth asking in case there is a nobler reason that I'm simply unaware of. I don't want to presume too much.

</comment></comment></comment></comment></comment><comment><USER5> This is more thinking out loud - stumbling out loud - than a definitive understanding.

The blogger should blog again when the confusion has cleared.</comment>


The First MBA Course on the Longevity Economy - <AUTHOR> https://www.nextavenue.org/first-mba-class-longevity-economy/ <comment><USER2> I was excited to read this because based on the title I was interested to see what an MBA take on "how to build an economy for Longevity", however that would've been defined.

Unfortunately it's a take on how to tune businesses to focus on the 50+ demo, and yeah I stopped reading.

<comment><USER3> Quality @savedyouaclick comment. Thank you

</comment></comment><comment><USER4> The last thing our world needs is more MBAs to optimize the soul (and every penny) out of every business that hires one in the name of broken metrics and short term profitability.

Arguably one reason we're in this current economic mess comes down to MBA style thinking - out entire economy is basically run with little in the way of reserve capacity, no doubt in part because MBA metrics don't measure for things like "responsibility" and "social good."

<comment><USER5> I feel the same way about debt. Financial advisers, business and personal, often push you to take on higher levels of debt. It looks great on a spreadsheet, showing how you can make free money with clever financial instruments, but it washes the risk under the carpet.

I've been under pressure at various times in the past year or two to take on debt and increase burn rate in order to 'grow the company', and I'm overwhelmingly glad now that I did not. My empire is tiny but it's solvent and can stay so.

<comment><USER4> I hear you. I feel like the entire VC culture right now is built on bullshit. You simply cannot be honest about deadlines or realities with these people. It's a terrible culture and I think it's symptomatic of a greater sickness in America. We desperately need to return to a time where people with merit were recognized and respected. The way money is awarded now really seems like it's optimizing for buzzwords and bullshit.

<comment><USER6> > You simply cannot be honest about deadlines or realities with these people.

This hits home.

PE: Our investment thesis says x, y, z. Why aren't you achieving goals?

ME: That was a spreadsheet built 3 years ago, by you, 2 years before a CFO was hired. Do I really have to remind you of every false assumption you guys made when you built that model each month when I deliver financial results?

These jokers built a long range plan (complicated back of envelope), with no industry experience, made up growth rates, and expect reality to match up.

</comment></comment></comment></comment><comment><USER7> I haven't passed the captcha and got "access denied" forever. Cloudflare protects you from visitors ;)

</comment><comment><USER8> > explored why business executives and entrepreneurs should focus on the 50+ > demographic.

if people want longevity they should start before 50. Cue stuff by david sinclar, aubrey degrey et al. People may debate their specific science, but they have the right philosophies like "Aging is damage accumulation" and "Consider aging a disease that kills 100% of the population" etc.

<comment><USER9> This article has nothing to do with _increasing_ longevity. It's about creating products and services targeted at people over 50.</comment></comment>


LinkedIn files for $1 billion stock offering - <AUTHOR> http://www.sec.gov/Archives/edgar/data/1271024/000104746913008826/a2216551zs-3asr.htm <comment><AUTHOR> On an offering like this I always like to look at the use of proceeds, which is the argument (investment thesis) used with investors to try and convince them to subscribe to the offering. In this case they are pretty vague: "increase our financial flexibility and to further strengthen our balance sheet".

Still, "international expansion" and "acquisition[s]" are mentioned. Nonetheless I believe they will be a bit more explicit when meeting funds and investors during bookbuilding.

One final thought: LinkedIn's share price is an all time high, with no fundamentals to support it. This to me is a signal that management believes that share price has peaked (or is about to) and now is the right time to fill the coffers with cash with minimal shareholder dilution. Good move, lets see how the market plays it.

<comment><USER2> Well then, management is acting totally rationally and are being good stewards of capital. Hopefully they will be as diligent with share buybacks if the situation ever reverses itself.</comment></comment>


The Uncropped "Tank Man" Photograph from Tiananmen Square. June 4th 1989 - <AUTHOR> https://i.redd.it/kuadka7dpw131.png <comment><USER2> Wow, this gave me a nostalgic flash-back to my BBS days when I would download a JPG and watch it appear line by line on my screen.</comment>


Ask HN: Cheap Linux VM hosting for running small personal cron jobs? - <AUTHOR> Need something cheap (< $20/month?) to upload some code and schedule cron jobs. Any recommendations? <comment><USER2> Digital Ocean and Linode are good services. Scaleway started with ARM servers but now offers x86-based servers at a very low price point. Unlimited bandwidth too. I've also used vultr.com. As @eulid55 says, lowendbox.com is a good resource, but some would consider offerings there a bit TOO low-end. Your mileage may vary.

Others that come to mind are OVH and online.net. If you really just need shell access, sdf.org is a possibility.

</comment><comment><USER3> Try [https://lowendbox.com/](https://lowendbox.com/)

</comment><comment><USER4> At vultr.com you can get $2.5 VPS. Pretty cheap.

</comment><comment><USER5> GCE has a free tier.</comment>


Every Cyclist Who Was Killed by a Driver in 2020 - <AUTHOR> https://www.outsideonline.com/2409749/outside-cycling-deaths-2020 <comment><USER3> Interestingly, there's some parallels between bicycle deaths and motorcycle fatalities. 126 male deaths, 16 female deaths (out of >800 total? I guess the deaths identified by gender are a smaller subset). The figures are similar for motorcycles, about an order of magnitude larger for men than women [1]. In part this is due to the larger share of riders being men. But even when we compare the rates, there are significant differences. This disparity typically indicates behavior-based risks. In aggregate, the majority of motorcycle- automobile collisions are the fault of the latter, but fatalities often result from risky behavior on part of the former - hence the gender disparity, since said behavior is much more prevalent among men.

Some of the purported reasons don't measure up. This article claims that the prevalence of larger SUVs and trucks are resulting in more bicyclist deaths, and compares SUV and truck sales in 2019 vs 1994. But the fatality rates among bicyclists are not substantially different in 1994 than 2019. There's actually an overall downward trend the in rate of bicyclist deaths [2]. The same applies to the rising speed limits and greater prevalent of phones - <USER2> don't seem to correlate with any increase in fatalities. The overall trend from 1975 to the latest data is a downward trend from a fatality rate of ~0.4 per 100k people to 0.3 to 0.2.

1\. [https://www.iihs.org/topics/fatality- statistics/detail/gende...](https://www.iihs.org/topics/fatality- statistics/detail/gender)

2\. [https://www.iihs.org/topics/fatality- statistics/detail/yearl...](https://www.iihs.org/topics/fatality- statistics/detail/yearly-snapshot)

<comment><USER4> I can't find the study, but I remember hearing about it on NPR when the author was interviewed years ago. Basically, the authors tried biking with varyous appearances and measured how close cars typically got while passing. The findings were that if you wore a helmet, cars actually got closer to you. Cars also kept their distance when the author, a male, donned a blonde female wig. I think there are a lot of factors at play, part of it is risk behavior, but part of it is certainly subconscious perception by drivers.

</comment></comment><comment><USER5> This made me really sad.

Donovan Oxendine Age: 14 Date: 4/9 Location: Red Springs, NC

Aiden Christopher Manning Caldwell Age: 13 Date: 4/9 Location: Red Springs, NC

The news article doesn't mention that they were brothers, but I found obituaries that link each other.

</comment><comment><USER6> Tesla's cyclist detection is awesome:

[https://youtu.be/Dg2MqMJo-uk](https://youtu.be/Dg2MqMJo-uk)

I really want to buy a Tesla as soon as I have the money for it to be a safer driver, as it's generally really hard to spot cyclists and pedestrians sometimes, and I'm more worried about hitting somebody than getting killed in an accident.

</comment><comment><USER7> This seems like a very one-sided article. For example, it could have easily been titled "Every Cyclist who died in a motor vehicle crash in 2020". The current title directly states that it was the drivers fault in every case, which is certainly not true.

</comment><comment><USER8> …in the US

</comment><comment><USER9> > What's Causing the Death Toll?

What about more bicyclists treating roads as an exercise machine? It may be uncomfortable to consider that perhaps going 5 mph up a hill that cars are going 35 mph on a narrow two-lane road is eventually going to end up with dead bicyclists.

</comment><comment><USER10> Do they provide the dataset?</comment>


Let Game Theory Tell You When It's Time to Go Shopping - <AUTHOR> http://nautil.us/blog/let-game-theory-tell-you-when-its-time-to-go-shopping <comment><USER2> My experience of grocery shopping around 5pm and 9pm has led to the observation that people haven't shifted their habits due to pandemic.

There's a post-work rush and it's not busy in the evening.</comment>


Banning Tablets Is Best for Children - <AUTHOR> http://www.wsj.com/articles/banning-tablets-is-best-for-children-1477245370 <comment><USER2> Not sure if they can enforce such a ban, maybe, but I think parents need to do a better job of keeping their kids activities from being so unhealthy.

</comment><comment><AUTHOR> \</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>---

FROM THE ARTICLE

"A funny thing happened when I banned tablets in my house on weekdays and curtailed their use on weekends. My children, ages 6 and 4, became less cantankerous. They also became happier, more responsive and engaged in more imaginative play. They rediscovered their toys. Outside the home, they became less demanding and better at self-regulating.

Friday, the American Academy of Pediatrics validated my experiment, recommending that children younger than 18 months get zero screen time, and those ages 2 to 5 be limited to one hour a day—half of its prior recommendation. The group recommended that the hour be "high quality programming" that parents watch with their children.

The academy doesn't set limits for older children, but suggests curtailing screen time before bedtime and when it conflicts with healthy activities.

Most parents haven't been listening. Mobile devices—tablets, smartphones and the like—in the hands of children are a big business. Time spent in apps from the "family" category on the Google Play store doubled in the past year, according to app-tracker App Annie. Children ages 2 to 11 watch an average of 4 ½ hours a day of recorded programming. And more than 50% of Netflix Inc. accounts world-wide watch some form of children's content, a spokeswoman says.

We have been conducting a social experiment on our children since the arrival of the smartphone a decade ago and the tablet soon after. A rich library links too much television for children to ill effects ranging from obesity to attention disorders. But there are few studies examining children using tablets and smartphones.

Such research is "in its infancy," says Dr. Dimitri Christakis, director of the Center for Child Health, Behavior and Development at Seattle Children's Hospital and a co-author of the American Academy of Pediatrics guidelines. But we know that screens' effects on young children depend on what they are looking at and how they are used..."

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>---

btw, our team is working on a solution to help parents with this issue :)

SmartMadre helps parents manage internet addiction by directing their children to educational sites while online. Internet access to time wasting websites is blocked until measurable progress is made on over 40 educational sites. The software leverages internet addiction and uses it as a motivator for online learning.

Currently we have a working product online that supports all major operating systems. We have identified many amazing free and low-cost education websites that parents can connect to SmartMadre allowing them to see their child's learning progress across all sites in one place.

Our mission is to provide affordable, easy to use tools to help parents reduce the time their children spend on time wasting websites and increase the time children spend on education websites.</comment>


It's not a bug, it's a subtle unsupported corner case - <AUTHOR> http://blog.reverberate.org/2012/04/09/its-not-a-bug-its-a-subtle-unsupported-corner-case/

<comment><USER2> One of the Lua authors responded to your Lua bug request now: <http://thread.gmane.org/gmane.comp.lang.lua.general/90101>

The response gives me faith that the problems you discuss do not plague all projects :).

It may be that other responders, not being directly involved in development, were trying to help you find a workaround to unblock you. For other end-users trying to be helpful, the most helpful thing they can often do is post a workaround, given that they don't maintain the project either. Perhaps these responses could be worded more eloquently (admitting you might have found a bug), but that doesn't necessarily mean they're malicious.

</comment><comment><USER3> One solution to these kinds of social situations is to have the person filing the issue to close it in the end. This way the issuer is empowered to verify that either there was no issue in the first place, or that the proposed fix by a developer in fact actually fixes the person's real issue.</comment>


C++ Impossibly Fast Delegates: Library Version - <AUTHOR> https://github.com/marcmo/delegates <comment><AUTHOR> Inspired by the post: [https://www.codeproject.com/articles/11015/the- impossibly-fa...](https://www.codeproject.com/articles/11015/the-impossibly- fast-c-delegates)

<comment><USER2> I remember reading that article a long time ago. More recently though there is a discussion on SG14 (the game dev / low latency C++ working group) about basic_function, which is another similar concept.

[https://groups.google.com/a/isocpp.org/d/topic/sg14/1Sw_qEdI...](https://groups.google.com/a/isocpp.org/d/topic/sg14/1Sw_qEdIYes/discussion)</comment></comment>


Work on SQLite4 has concluded - <AUTHOR> https://sqlite.org/src4/info/c0b7f14c0976ed5e <comment><USER2> The relevant change:

> This directory contains source code to an experimental "version 4" of SQLite > that was being developed between 2012 and 2014.

> All development work on SQLite4 has ended. The experiment has concluded.

> Lessons learned from SQLite4 have been folded into SQLite3 which continues > to be actively maintained and developed. This repository exists as an > historical record. There are no plans at this time to resume development of > SQLite4.

[https://sqlite.org/src4/artifact/56683d66cbd41c2e](https://sqlite.org/src4/artifact/56683d66cbd41c2e)

</comment><comment><USER3> For context, SQLite4 explored reimplementing SQLite using a key-value store on log-structured merge trees, like RocksDB and Cassandra.

I'd be interested to hear why they stopped. Presumably reimplementing SQL on a KV store was seen as not worth it, when applications that are satisfied with an embedded KV store backend (which is much faster and simpler to write!) already have many options.

<comment><USER4> Everything I hear about SQLite3 always suggests that, essentially, it is considered "done". It does what it is supposed to do with great performance. There is nothing major left to do. If it doesn't meet your needs, pick a different SQL database.

Which, while a totally alien concept in the modern software world, is actually a pretty cool thought.

(I'm sure under the hood bugs are getting fixed and all)

<comment><USER5> Well, obviously they should rewrite it in Rust.

<comment><USER6> From the canonical source (as in, [Richard Hipp]([https://en.wikipedia.org/wiki/D._Richard_Hipp)](https://en.wikipedia.org/wiki/D._Richard_Hipp\))):

Rewriting SQLite in Rust, or some other trendy "safe" language, would not help. In fact it might hurt.

Prof. Regehr did not find problems with SQLite. He found constructs in the SQLite source code which under a strict reading of the C standards have "undefined behaviour", which means that the compiler can generate whatever machine code it wants without it being called a compiler bug. That's an important finding. But as it happens, no modern compilers that we know of actually interpret any of the SQLite source code in an unexpected or harmful way. We know this, because we have tested the SQLite machine code – every single instruction – using many different compilers, on many different CPU architectures and operating systems and with many different compile-time options. So there is nothing wrong with the sqlite3.so or sqlite3.dylib or winsqlite3.dll library that is happily running on your computer. Those files contain no source code, and hence no UB.

The point of Prof. Regehr's post (as I understand it) is the the C programming language as evolved to contain such byzantine rules that even experts find it difficult to write complex programs that do not contain UB.

The rules of rust are less byzantine (so far – give it time :-)) and so in theory it should be easier to write programs in rust that do not contain UB. That's all well and good. But it does not relieve the programmer of the responsibility of testing the machine code to make sure it really does work as intended. The rust compiler contains bugs. (I don't know what they are but I feel sure there must be some.) Some well-formed rust programs will generate machine code that behaves differently from what the programmer expected. In the case of rust we get to call these "compiler bugs" whereas in the C-language world such occurrences are more often labeled "undefined behavior". But whatever you call it, the outcome is the same: the program does not work. And the only way to find these problems is to thoroughly test the actual machine code.

And that is where rust falls down. Because it is a newer language, it does not have (afaik) tools like gcov that are so helpful for doing machine-code testing. Nor are there multiple independently-developed rust compilers for diversity testing. Perhaps that situation will change as rust becomes more popular, but that is the situation for now.

[https://blog.regehr.org/archives/1292#comment-18452](https://blog.regehr.org/archives/1292#comment-18452)

<comment><USER7> Even if Rust is at parity with C in terms of tooling and ecosystem (which it probably will be in a few short years), SQLite is probably not high on the list of software to rewrite in Rust, given its fairly high quality. Let's rewrite the vulnerability-ridden ones first.

</comment></comment></comment></comment></comment><comment><USER8> I have to say I learned more about databases from just studying SQLite code than any book on the subject. I've bought a bunch of books on DB's, some very expensive ones, but I wish someone pointed me to SQLite source early on.

To internalize it better I invented a "project" for myself - [http://thredis.org/](http://thredis.org/) which was (and is, but I'm not maintaining it) a Redis/SQLite hybrid. It was fun to hack on.

Another invaluable source of DB internals information is PostgreSQL. Both projects have amazingly well written and detailed comments.

</comment><comment><USER9> SQLite is one of those awesome things that's the exact opposite of magic. It's beautiful, jaw dropping, engineering that exercises so many technical muscles.

The number of oddball, often critical, places where I've found SQLite being used would defy belief. As far as I can tell, the "expected" place for SQLite to work seems to be almost anything that's not your normal dB driving some web-based CRUD app...all kinds of embedded systems, easy to manipulate in- memory scratch pads for bioinformatics, lots of data analysis tools in mobile communications.

It's so good, and so obvious, that I think sometimes it makes other tools that might be simpler fits for many use-cases less likely to be used, like leveldb.

<comment><USER10> > your normal dB driving some web-based CRUD app

That can totally be handled with SQLite.

<comment><USER11> I have several crud apps running sql. With moderate write load and a good concurrency write error handling code it works very well. Good when the product size is not worth a postgres full blown setup.

<comment><USER12> I backup this. I've been using SQLite for some low to moderate load CRUD apps, and this always worked like a charm. SQLite also make backuping, testing and moving apps so much easier.

<comment><USER13> How do you workaround the fact that SQLite only supports a single writer? For example, your app could be blocked when you run a long operation like creating an index.

<comment><USER11> For moderate load: just catch the exception and try again. It will rarely happen, and when it does, you can easily recover from it since your site is not hammered.

For bigger load, have a worker that does the writes with a queue.

<comment><USER13> Hello Sam and/or Max,

I'm French too and I read your blog sometimes ;-)

Is the following what you suggest:

You create an index, and the index creation takes 30 seconds. Then instead of writing directly to SQLite (which won't work since the index creation blocks other writers) you suggest to store the write in a queue (for example another SQLite database for durability), and have a worker apply the write to the main database when the index creation is done?

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> Richard Hipp has said that they have signed contracts to support SQLite3 for 35 years. SQLite4 is never going to happen.

<comment><USER15> What kind of companies sign 35 year support contracts?

<comment><USER16> I read somewhere the other day that sqlite is used somewhere in Airbus A380 passenger jets, and Airbus have a support contract for it.

<comment><USER17> It's the A350: [https://sqlite.org/famous.html](https://sqlite.org/famous.html) And a video: [https://twitter.com/copiousfreetime/status/67583454330408140...](https://twitter.com/copiousfreetime/status/675834543304081409)

</comment></comment></comment></comment><comment><USER18> Every time I see something about sqlite, I become sad. It reminds me of the failure of the w3 standards comittee to accept it as web standard. They rejected sqlite because no competing implementation existed. Furthermore, "public domain" license of the software was also a hurdle, iirc.

<comment><USER19> We literally lost several years for web app advancement because of that. Reading the decision making, it seemed like overly-legalistic engineers, but I'm open to conspiracy theories that this decision enhanced mobile app store adoption.

<comment><USER20> No, it was Mozilla who killed it[1] over Apple and Google's strong objections.

[1] For pretty much complete nonsense NIH and standards-lawyering reasons.

<comment><USER21> I too am so disappointed SQLite isn't available in modern browsers (esp. since it was, for a time). But can't it be resurrected? Couldn't we set up a petition somewhere to bring it back?

<comment><USER22> It is a bit of a "would you really do that in production?" type hack, but there is a pure JS compile of SQLite3 that you could use: [https://github.com/kripken/sql.js/](https://github.com/kripken/sql.js/)

Possible problems:

* Nearly half an MB of library to add to your project which might be a concern on mobile (~2.1MB uncompressed.

* It handles the whole DB in memory rather than trying to use any sort of local storage as a block store, which pumps up memory use (again, mobile user may particularly find this an issue) and to persist data you have to pickle the whole DB as a single array (which could be a significant performance issue if the data changes regularly and is not very small) and reload it upon new visit.

* Concurrency between multiple tabs/windows is going to be an issue for the same reason.

</comment></comment></comment></comment></comment><comment><USER23> The biggest thorn I found working with sqlite was the lack of ability to modify columns with ALTER TABLE which was a real pain.

Doesn't look like this is fixed in sqlite4 though...

<comment><USER24> Same here. Had to switch to dockerized mariadb for local tests, because migrations wouldn't work.

<comment><USER25> Wouldn't you want your tests to be run against the same DB family (and version) as production anyway?

<comment><USER26> Depending on the situation, it can be well worth it to have your test suite run against SQLite while doing active development to be able to iterate faster and then run it again against the target database before pushing the branch.

Where possible I much prefer to spin up a version of my target database in a tempdir but "faster test cycles" is sometimes worth accepting the trade-offs.

</comment></comment></comment></comment><comment><USER27> Would love to hear some of the lessons learned...

<comment><USER28> Their main idea was that B-Trees are slow and LSMs are fast.

This was a partially right assumption, but only for writes.

If you write something in a DB you check some constraints and those checks are reads.

So most DB writes come with a bunch of reads.

The reads were slower with the LSMs, so the B-Trees performed better in "real world" writes (which come with reads) and LSMs only performed better in "artificial" writes (without reads).

</comment></comment><comment><USER29> There's an excellent ~80 minute podcast interview with the sqlite author here: [https://changelog.com/podcast/201](https://changelog.com/podcast/201)

</comment><comment><USER30> SQLite is great. For an unusual application see actordb.com - a server side database that uses a large number of independent SQLite databases.

<comment><USER9> Woah, that's awesome! Any performance information anywhere?

</comment></comment><comment><USER31> Interesting and I saw title and thought to my self hmmmm... may be SQLite4 is just around the corner. This is a good case study to show people look sometimes classic works better and NoSQL coined terms and techniques might work in limited scenarios. Still makes me wonder if LSM would have been faster for mobile devices though, I know it might not work well for embedded devices; but with modern mobile devices (1+ GB of RAM) it might have some speed benefits.

Shameless plug [https://github.com/maxpert/lsm- windows](https://github.com/maxpert/lsm-windows) (I did port the LSM storage to windows).

</comment><comment><USER32> Anyone know how sqlite makes money?

<comment><USER33> [http://www.hwaci.com/sw/sqlite/prosupport.html](http://www.hwaci.com/sw/sqlite/prosupport.html)

<comment><USER34> >SQLite License. Warranty of title and perpetual right-to-use for the SQLite source code.

<from more info>

Obtaining A License To Use SQLite

Even though SQLite is in the public domain and does not require a license, some users want to obtain a license anyway. Some reasons for obtaining a license include:

        Your company desires warranty of title and/or indemnity against claims of copyright infringement.
        You are using SQLite in a jurisdiction that does not recognize the public domain.
        You are using SQLite in a jurisdiction that does not recognize the right of an author to dedicate their work to the public domain.
        You want to hold a tangible legal document as evidence that you have the legal right to use and distribute SQLite.
        Your legal department tells you that you have to purchase a license.

If you feel like you really need to purchase a license for SQLite, Hwaci, the company that employs all the developers of SQLite, will sell you one. All proceeds from the sale of SQLite licenses are used to fund continuing improvement and support of SQLite.

</from more info>

How is it possible that they can sell licenses to the code that was put into the public domain by other contributors?

A contributor must attach the following declaration[1] to contribute. So now their contributions are in public domain. Now in a place where the law doesn't recognize public domain, doesn't the code belong to the original authors? How can an unaffiliated company license it as if they wrote the code?

[1]: "The author or authors of this code dedicate any and all copyright interest in this code to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this code under copyright law."

<comment><USER35> >How is it possible that they can sell licenses to the code that was put into the public domain by other contributors?

"Public domain" does not mean: this has to be free, nobody can ask for money.

"Public domain" means: noone has the right to stop anyone else from doing what they want.

The same is true for things like the Mona Lisa. You can snap a photo of it (that photo may or may not be copyrightable, depends on the country, meaning you may also "steal" someone elses photo if applicable), print posters and sell them. This is possible because the intellectual property is in the public domain. It doesn't mean you have to give your posters away for free. You can even charge people to look at your photo -- disregarding the fact that noone probably would pay.

<comment><USER34> My question was the assertion of the ability of granting licenses in a place which doesn't recognize public domain. If the place doesn't recognize public domain, then in that place, the copyright of the code contributed by a user is still the users. So where does the company get the authority to license it?

Couldn't the person who put in into public domain go to the country and sue them saying the company is licensing their code? How can the company defend itself? We all know how it should go but that might not be what actually might happen.

<comment><USER35> >So where does the company get the authority to license it?

The company doesn't need any authority because anyone can "license" public domain software, just like I can sell you a star in the sky. It's a worthless piece of paper, its a gimmick and a way of making a donation to a cause you appreciate.

>Couldn't the person who put in into public domain go to the country and sue them saying the company is licensing their code?

Again, you're misunderstanding what public domain means. "The person" you mention has no right to sue anyone because the thing being discussed has been released into the public domain. Nobody owns it.

To illustrate: when you say (paraphrased); "The author could sue you for misusing what he/she put in the public domain" the logic doesn't hold, because if the author could to that it wouldn't be released into the public domain.

</comment></comment></comment></comment></comment></comment><comment><USER36> The title of this post, a true statement removed from its context, attracts readers like me because its implied meaning has considerable shock value. Of course, Dr. Hipp didn't help matters by naming his experimental fork "SQLite4".

</comment><comment><USER37> I'm surprised there wasn't more investigation of SQLite and LMDB:

[https://github.com/LMDB/sqlightning](https://github.com/LMDB/sqlightning)

The performance there shows either little to no performance difference, up to substantial speed increases.

</comment><comment><USER38> The source tree for sqlite3 now contains an extension named lsm1 that contains both the standalone lsm kv database as well as a virtual table extension which allows you to use it directly from sqlite3. Some info on python integration can be found here:

[http://charlesleifer.com/blog/using-sqlite4-s-lsm-storage- en...](http://charlesleifer.com/blog/using-sqlite4-s-lsm-storage-engine-as-a- stand-alone-nosql-database-with-python/)

In peewee 3.0a I've also added built-in support for using the lsm1 virtual table if you're interested.

</comment><comment><USER39> instead of pretending to release a new version, it might be better to just call this fork sqlite-failed.

</comment><comment><USER40> Doubt still exists... Does this mean 'concluded' as in "We've finished polishing the pre production code and are close to releasing it" or 'concluded' as in "We have thrown our hands up in the air and won't be working on this thing any more to bring it to production" ??!!??

 _EDIT_ Seeing as I am getting slammed by downvotes, my comment here was simply pointing out that the headline I saw on HN could be read in multiple ways. As a long time user of SQLite3, I was initially excited when I read the title as I had thought it meant something good coming from the SQLite team. Turns out not to be. That, to me, still entails doubt.

<comment><USER41> " Lessons learned from SQLite4 have been folded into SQLite3 which continues to be actively maintained and developed. This repository exists as an historical record. There are no plans at this time to resume development of SQLite4."

Right there on the web page. Highlighted in green even.

<comment><USER40> Below the fold even, after about 1000 other words of text. Would be better if the title had used 'cancelled' or 'terminated' instead of 'concluded' to explain the situation at the outset?

<comment><USER42> It's a code revision, not an article. If you're a programmer the change is super obvious.</comment></comment></comment></comment>