Announcing Rust 1.18 - <AUTHOR> https://blog.rust-lang.org/2017/06/08/Rust-1.18.html <comment><USER2> Looking ahead to 1.19 (currently in beta, which you can try out easily via rustup), the RFC for unsafe (C-style) unions recently stabilized, which closes IMO the biggest remaining hole in Rust's FFI story. By removing the need for various manual hacks to interoperate with unions from C libraries, this should help bring greater safety to C code bound to Rust (or vice versa). Along with `pub(crate)` discussed in the OP and the `?` operator from 1.15, this makes for the third real language-level "feature" that Rust has added in the past two years, though I'd say these are more quality-of-life improvements than anything earth-shaking. Now, when `impl Trait` lands (recently accepted, but yet unimplemented), _that_ will be a big deal. :P

<comment><USER3> What will `impl Trait` do, for us Rust-interested onlookers?

<comment><AUTHOR>
      fn foo() -> impl Trait {

means "this function returns something that implements the Trait trait, but I'm not gonna tell you what that concrete type is."

This is primarily useful in two cases: first, in an effort for static dispatch, some types can get really long. For example, imagine you wanted to return an iterator of some kind, like this:

        foo.iter().map(|x| x + 1).filter(|x| x % 2 == 0)

the type of this is something like

        Filter<Map<Iter<'_, {integer}>, [closure@<anon>:2:27: 2:36]>, [closure@<anon>:2:45: 2:59]>

which is pretty gross. First of all, you'll notice the type `Filter<Map<Iter`, as you keep adapting the iterator, you get more types. With iterators it's normally not huge, but if you're using Tokio or Diesel, it can get very bad. Here's a type error I ran into recently with Diesel [https://pbs.twimg.com/media/C6l_OwSXAAA_Fmo.jpg:large](https://pbs.twimg.com/media/C6l_OwSXAAA_Fmo.jpg:large)

So, we could write

        fn foo() -> impl Iterator<Item=i32> {

and be done, no matter how many adapters we use. In current Rust, you can do this:

        fn foo() -> Box<Iterator<Item=i32>> {

but now you've introduced a heap allocation and dynamic dispatch; impl Trait has no allocations and statically dispatches.

The second bit is also present in that type, which is this bit

      [closure@<anon>:2:27: 2:36]

Closures have an anonymous type in Rust, and so you cannot write a function that returns a closure without using a Box like above. impl Trait will fix that, by letting you write

        fn foo() -> impl Fn(i32) -> i32 {

or whatever the type of the closure is.

<comment><USER4> Would that be related to an existential type of the form

        foo :: a -> (forall b. Show b => b)

from Haskell?

<comment><AUTHOR> Yes, it is. Generics are universals and impl Trait is extisentials. For more, the RFC gets into it [https://github.com/rust- lang/rfcs/blob/master/text/1951-expa...](https://github.com/rust- lang/rfcs/blob/master/text/1951-expand-impl-trait.md#universals-any-versus- existentials-some)

</comment></comment></comment></comment></comment><comment><USER5> _" compiling rustc itself is now 15%-20% faster. Each commit message in this PR goes over the details; there were some inefficiencies, and now they've been cleaned up."_

Good to hear work is being done to speed up the compiler. It's the only reason I haven't tried Rust out yet, as it often comes up as a problem when others review the language.

<comment><AUTHOR> We've been putting in a massive amount of work, and are continuing to do so. Each release gets a little faster. Incremental recompilation is on the way. It's something we care about a lot.

To be clear though, this PR is about improving the speed of compiling the compiler, not for using the compiler on other programs.

<comment><USER2> Which isn't to say that the compiler itself (not counting incremental compilation here) isn't getting faster, but the improvements are gradual rather than the dramatic numbers seen in the OP. We have a website for tracking general compiler perf on a few representative programs: [http://perf.rust-lang.org/](http://perf.rust-lang.org/) . In the benchmarks there it looks like we've shaved off about half a second from the compilation time on most benchmarks since March, though some have improved by multiple seconds and others have remained the same. In the long-term, we're looking at improvements to typechecking (via Chalk: [http://smallcultfollowing.com/babysteps/blog/2017/01/26/lowe...](http://smallcultfollowing.com/babysteps/blog/2017/01/26/lowering- rust-traits-to-logic/) ), improvements to linking (via LLD), improvements to debug codegen (via Cretonne: [https://internals.rust-lang.org/t/possible- alternative-compi...](https://internals.rust-lang.org/t/possible-alternative- compiler-backend-cretonne/4275) ), and of course incremental recompilation.

<comment><USER6> What's that jump at Apr 22 [1]?

[1]: [https://github.com/rust- lang/rust/compare/cb4065b9ce4e2bb2c3...](https://github.com/rust- lang/rust/compare/cb4065b9ce4e2bb2c37994762462da76272d6907...252d3da8a6c715ccafcf77d83b826f6fb899cfe5)

<comment><USER7> [https://github.com/rust-lang/rust/pull/41469](https://github.com/rust- lang/rust/pull/41469)

Whole bunch of perf fixes at once.

</comment></comment></comment></comment></comment><comment><USER8> > Finally, Cargo now supports Haiku and Android!

Does this mean you can now build Android targets without a standalone NDK? That part wasn't quite clear from the PR.

<comment><AUTHOR> Cargo now runs on an Android host. I'm not an Android dev so I don't know what that means regarding the NDK.

[https://github.com/rust- lang/cargo/pull/3885/files#diff-27a1...](https://github.com/rust- lang/cargo/pull/3885/files#diff-27a1525c20fcb2ec7c4c41e750113a93R18) would imply to me that oyu still need an NDK.

<comment><USER8> Ah, gotcha.

Yeah, the Standalone NDK is a bit of a pain since the .cargo/config requires absolute paths to the linker/ar. It makes it hard to commit a common config file for multiple people working in one repo.

<comment><USER9> I use the executable name in the config and tell people to add $STANDALONE_NDK/bin to $PATH.

      [target.arm-linux-androideabi]
      ar = "arm-linux-androideabi-ar"
      linker = "arm-linux-androideabi-gcc"

<comment><USER8> Yeah, it'd be cleaner if you could include env vars in the config since I'm not a huge fan of polluting my PATH and usually NDK_HOME or similar is already defined.

</comment></comment></comment></comment></comment><comment><USER10> Any update on the progress of the language ergonomics?

<comment><USER2> The ergonomics initiative is composed of many independent tasks. I don't know if these are all tracked centrally somewhere, but e.g. there's currently an RFC in its final comment period regarding improving the ergonomics of matching references: [https://github.com/rust- lang/rfcs/pull/2005](https://github.com/rust-lang/rfcs/pull/2005)

<comment><USER11> There seems to be something here: [https://github.com/rust-lang/rust- roadmap/issues/17](https://github.com/rust-lang/rust-roadmap/issues/17) ?

</comment></comment></comment><comment><USER12> Rust is another language which gives us the kitchen sink, allows anyone to do anything when they are in a bind.

\- quoting Jon Carmack -

whatever the compiler allows in, will eventually be included in your codebase

It's an improvement over C. But where were the hard decisions? Where is the line in the sand on safety? (I am hopingg to bbe educatted! ; ))

It's not the future, just more of the past.</comment>


Narayana Murthy's success mantras for entrepreneurs - <AUTHOR> http://specials.rediff.com/money/2009/apr/27slde5-narayana-murthy-interview-part-3.htm

<comment><USER2> _1\. You must have an idea whose value to the market should be expressible in a simple sentence, not a complex or a compound sentence_

From <http://www.infosys.com/about/what-we-do/default.asp>

Six paragraphs, tiny font. This is the second paragraph:

"Infosys defines, designs and delivers technology-enabled business solutions that help Global 2000 companies win in a Flat World. Infosys also provides a complete range of services by leveraging our domain and business expertise and strategic alliances with leading technology providers."

</comment><comment><USER3> This is a poorly written article, typical of rediff.

Read this recent interview of NRN by Tehelka (Apr/25 ed.) [http://www.tehelka.com/story_main41.asp?filename=Bu250409the...](http://www.tehelka.com/story_main41.asp?filename=Bu250409the_rich.asp)

instead, if you are interested in hearing what he has to say.

However, the interview does not have a "entrepreneurship" only focus.

</comment><comment><USER4> [Due Disclosure - I am Indian and live in Bangalore and have friends who work in Infosys]

Mr Murthy started a body shopping company. Entrepreneur? certainly, by definition of the word.

But not along the lines of the startup founders discussed here on HN. At best the analogy would be to someone who starts a consulting company.

PS: I say "body shop" Infosys says it "provides a complete range of services by leveraging our domain and business expertise and strategic alliances with leading technology providers"

;-)

<comment><USER5> One of your older comments might be worth adding: <http://news.ycombinator.com/item?id=62993>

_Most of his speeches (and Nandan Nilekani's for that matter) are ghost written, by a small team of smart MBA s from local elite schools like IIMs(Indian Institute Of Management). One of my school buddies is on that team that's how I know._

<comment><USER6> plinkplonk nailed it!!!

In Infosys, they make people slog for 12hrs a day + extra work hours per day if the project isn't completed by time. People complain of tight schedules that are almost impossible and no time to learn new tech.

Also the 6-month maternity leave for women has been reduced to 3 months now. A friend's wife who recently gave birth to a child, was told a strict "no", even when she said she would take the 3-month maternity leave and work at home for the another 3-months after which she would get back to her normal work schedule. (she then quit her job).

So where does Narayan Murthy's easy-work-schedule for women, "we support women empowerment" mean? He recently wrote a guest column on how Infosys supports women and told abt all the facilities they weren't even providing on paper.

Also another funny thing, just a couple weeks ago, I read an interview by Nandan Nilekani in which he said that Infosys won't be laying of any of their workforce (article headlined in the newspaper's business page). 3 days later they layoff 2600 and it's in a small column in the newspaper's business page.

People should rather look for some stuff from people like Guy Kawasaki, Sam Altman or whoever's done it. I often listen/read abt people who do it for their first time and talk abt their experience and how they did it. Each have their own way of doing it and the business is different and it's fun to know how the other guy did it.

[full disclosure: I'm from Bangalore too. And also have a couple of relatives and a lot of friends who work at Infosys]

P.S: I respect Murthy for what he's done/achieved, but not for what he talks (all the common stuff and total bullshit).

</comment></comment></comment><comment><USER7> You need bread... but that is easy, or else you just eat cake.

</comment><comment><USER8> _You need funds. . . but that is easy, finance is not a problem._

Yeah, if you're Murthy funds are no problem at all.

<comment><USER9> No really, money is one of the easiest resource to get (as compared to other things needed to succeed).</comment></comment>


Ask HN: Starting a company with tech you don't know fully - <AUTHOR>

I was trying to build this product over weekend.I know a little bit of Ruby on Rails ( really small ) have to search for almost everything on internet. The main mistake I did was with Ruby on Rails I started with lots of plugin twitter bootstrap , haml , devise , cancan ]. Now after 12 hours I analysed where am I, I didn't find it quite encourage.
I thought its better to stick with tech, you know I know a little bit of PHP , Mysql, JQuery so started writing this in PHP CodeIgniter . Although I was able to get better than ROR application in next 12 hours and it was easy to understand and I was able to followup quite easily. But I am writing lots of stuff is which available for free better designed solution in ROR in PHP from ground zero.
In long term I think it would make more sense to use ROR, not only from building the product. But if the current product fail I would be able to produce more app faster.
What you think, do you have any piece of advice for me. <comment><USER2> Use what you know, but that said, some tools can produce a better product, faster.

Building products is a marathon so you might as well learn Rails. Purchase some begineer screencasts and don't worry (right now) about anything advanced like testing. Forget about haml and sass initially. Just learn Ruby and Rails. A solid understanding of Ruby is very important.

Rails, like anything, takes much longer than 12 hours to learn. Familiarity with CodeIgnighter can reduce the initial Rails learning curve.

<comment><AUTHOR> Yes reducing the dependence on plugin / library and following upon learning as I am building is my motto. Sticking to rails.

<comment><USER2> Over time there are plenty of gems that can save a significant amount of time. Struggle first, learn, and then start using some of the gems in the future.

</comment></comment></comment><comment><USER3> Learn to crawl before you walk, but don't bog yourself down in textbooks.

Try to find tutorials on the specific things you need to do rather than general courses, complete those, see where you're at and give it another crack. If you still are having trouble, rinse and repeat.

<comment><AUTHOR> Do you mean I should stick with Ruby on Rails.</comment></comment>


Ask HN: Pure Lisp / Lisp syntax without parentheses? - <AUTHOR>

I just had a very confusing conversation with a new acquaintance.  He's a bit of a Microsoft-head, and works in finance.  So far so good.<p>Then he goes off to say stuff like "I love Pure Lisp... after starting with Common Lisp but hating all the brackets, then Pure Lisp is great", which left my brain so confused I didn't know what to say.  I'm pretty much sure he meant 'parentheses', not "brackets".  But is there a single 'something' in the Microsoft world that's called Pure Lisp?  And does it have a syntax that isn't s-expressions? <comment><AUTHOR> Oh, I sure hope he didn't mean F#, sure it's functional, but neither is it very pure, nor is it very lisp-like.

On the other hand there was a second part to the conversation that /also/ confused me due to comments about OCaml. So, maybe he's even more confused than I imagined.

There's no 'single true' lisp in the Windows big iron world then?

</comment><comment><USER2> It could be Forth, then :)

</comment><comment><USER3> It's because River Song refused to kill the Doctor....</comment>


Vitamin C kills tumor cells with hard-to-treat mutation in mice - <AUTHOR> http://news.sciencemag.org/chemistry/2015/11/vitamin-c-kills-tumor-cells-hard-treat-mutation <comment><USER2> While it is easy to criticize any animal model study, especially when targeting cancer, we should be HIGHLY skeptical of any mouse study that uses vitamin C. Why?

Mice synthesize their own vitamin C; humans do not (hence, it should properly be called ascorbic acid in mice, not vitamin c). The biological pathways involving this compound are very different between species, and deserve special consideration.

<comment><USER3> The dose makes the poison (or the cure). According to the article they gave daily injections containing 300 oranges worth of vitamin C (which google tells me is over 15 grams of vitamin C, an order of magnitude larger than the daily recommended dose for adult humans).

Certainly being skeptical is still warranted, as OP is correct, there are significant differences in how this particular compound is handled species to species. However, simply that mice produce ascorbic acid does not imply that they produce it in quantity great enough to impact this kind of tumor.

<comment><USER4> Isn't it dangerous for a human to take that much in a day? What about for a month every day?

<comment><USER5> Not at all.

I experimented 5+ years with it and took on several occasions 100+g per day with regular input between 10-15g per day.

The only problem I had after 5 years is slight pain in esophagus immediately after taking C, but it passed after I switched to taking C on full stomach.

Note: you MUST use pure AA powder, nothing else. Timing of C is essential - you must do it right, or the effects are minimal (you basically have to simulate the liver ancestral production now disabled in humans).

Vitamin C is a miracle thing IMO, especially 4 kids. My daughter was taking 1g since age 1 (now has 5) and she has remarkable health (she is sick once or twice per year for 2-4 days without any complications with being in kindergarten with 30+ kids since age 1, although the non-vitamin-c factors are contributing to this picture quite a bit).

Vitamin C is the most effective virus killer in large doses if you time it right. It is poor antibiotic but you have many options in plant world for that.

<comment><USER6> These are fairly typical anecdotal comments made by people pushing Vitamin C cures / treatment, often in conjunction with mention of 'miracles'. Oblig xkcd: [https://xkcd.com/1217/](https://xkcd.com/1217/)

<comment><USER5> What can I say, it works for me and few more people I know.

But the argument you are giving is quite pointless - vitamin C has no side effects and it is dead cheap so there is no harm in trying it out for several months and deciding on your own if its good or not for you.

<comment><USER7> > vitamin C has no side effects

I'm not aware of evidence that this is true for megadoses (e.g. 10g per day, as you mentioned).

Given that you are making a claim not supported by mainstream medical consensus (that megadoses of vitamin C have positive health effects), you are essentially arguing that megadoses of Vitamin C have a different effect than regular doses. Given that you admit that megadoses have a different effect to regular doses, what is your evidence that megadoses have no side effects?

<comment><USER8> Toxicity of vit-c is very low. Death by vit-c overdose is un-heard of. Intaking enough vit-c to cause death, could be due to sheer weight of substance intaken rather than bio-chemical function of vit-c. [https://en.wikipedia.org/wiki/Vitamin_C#Overdose](https://en.wikipedia.org/wiki/Vitamin_C#Overdose)

Also studies conducted on animals (especially primates) that cannot synthesize vit-c on their own, show that they intake about upto 80x the RDA value of vitamin-c. So, humans intake as low as 1.25% of vit-c levels that monkeys eat. [https://en.wikipedia.org/wiki/Vitamin_C#Daily_requirements](https://en.wikipedia.org/wiki/Vitamin_C#Daily_requirements)

Most often than not, RDA values are a joke and should be treated as bare minimum levels to prevent diseases such as scurvy and not as the optimum level. Sub-clinical deficiency in essential vitamins and minerals always happen.

<comment><USER5> Correcrt. Primates take vit. C in grams naturally for example.

<comment><USER8> Do you have any comprehensive resource on timing Vit-C supplements? Also what form of supplement & which brand did you intake? Liposomal vit-c?

Do you also have any comprehensive resources that explains if vit-c supplements can affect recovery from lifting weights or general exercise?

<comment><USER5> > Do you have any comprehensive resource on timing Vit-C supplements?

There isn't any that I am aware of except bowel tolerance method. IMO, timing during healthy state is relaxed - twice per day is probably enough for most people; during stress however individual dose shouldn't be higher but should be taken more frequently (until bowel starts to complain, which means C is not absorbed any more and passes to colon where it causes diarrhea trough osmosis). What is remarkable here is the difference between bowel tolerance in healthy (low) and disease (high) state which suggests that vitamin C absorption increases.

See my answer here: [http://www.paleohacks.com/vitamins/vitamin-c- supplementation...](http://www.paleohacks.com/vitamins/vitamin-c- supplementation-9354#axzz1dTP3TGk6)

> Also what form of supplement & which brand did you intake? Liposomal vit-c?

I take pure synthetic AA with sodium bicarbonate half of the time (3-5g x2). I don't have experience with liposomal vit-c but I am sure it is way better then regular C, altho far more expensive.

> Do you also have any comprehensive resources that explains if vit-c > supplements can affect recovery from lifting weights or general exercise?

I don't have one at hand now. Some people think it prevents adaptation during exercise and don't take it. I personaly think it reduces stress so it simply gives you an option to work more. Since exercise can actually reduce your immune system if you overdo it or have concurrent stressor, AA intake will certainly be more beneficial on the long run then any supposed adaptation shortcomings.

<comment><USER8> Awesome, thanks a lot.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> On a side note, Linus Pauling was notorious for, late in life, after winning all his Nobels and other such prizes, pushing the idea that megadoses of Vitamin C would cure all cancers: [https://en.wikipedia.org/wiki/Linus_Pauling#Medical_research...](https://en.wikipedia.org/wiki/Linus_Pauling#Medical_research_and_vitamin_C_advocacy)

[https://www.sciencebasedmedicine.org/high-dose-vitamin-c- and...](https://www.sciencebasedmedicine.org/high-dose-vitamin-c-and-cancer- has-linus-pauling-been-vindicated/)

He died in 1994, of cancer.

<comment><USER10> >He died in 1994, of cancer.

Why is this brought out in such a dismissing and ironic way? He claimed that there may be some treatments with Vitamin C, not that if you take a little a day you'll be immortal. Hell, there are so many different types of cancer, that even if megadosing C helped with one it probably wouldn't help with all.

He lived to his 90s. At that point it was either cancer or heart disease that kills people. That fact that he lived to 93 is pretty impressive in itself.

As someone who recently went on Vitamin D supplements due to low D in my bloodstream, I find it incredibly interesting how medicine is always changing. This knee-jerk skeptic idea about how everything but the current accepted status quo is "quackery" and mocking guys like Pauling is reprehensible. Just a few years ago, no one was checking Vitamin D levels. Now my depression and lethargy have been turned way down as my Vitamin D increases.

Hell, I remember being a teen with ulcers and being told to lay off the spicy foods. I tried to explain to the doctor that I never eat that and he shrugged and wrote me a script for Zantac, it being prescription-only at the time. A few years later H. pylori's role in ulcer creation was revealed and now the standard treatment isn't large doses of zantac, but two weeks of amoxicillin. My ulcers magically went away after that treatment.

Medicine is one of things that moves fast and the jury is still out on a lot of marginalized treatments, concepts, and research. I wouldn't be surprised if Pauling's research eventually fleshed out into some kind of cancer treatment, or at least as a supplemental treatment.

<comment><USER11> I never understood the mocking, either, especially since he's been proven extremely right about the ill-effects of consuming processed sugars. I suspect it's rooted in his anti-nuclear and anti-war views and it just grew from there. His views on Vitamin C were just a convenient target.

It's uncomfortable to those with analytical minds to accept the fact that we know so little about the human body and how it works. Studies are always contradicting each other because the scientific method dictates that studies must be reduced to the minimum of variables. But the body is far too complex for that. Most of what I was taught nutritionally in school as a kid was wrong. Most of the health advice was wrong. We were told butter is evil and we should eat margerine. We were told fat was evil and that cholesterol causes heart disease despite no evidence other than correlation. We don't know how or even if consumed cholesterol gets turned into cholesterol in the bloodstream. It's virtually universally believed that salt is bad despite it being an essential nutrient. It's universally believed that sun is bad and we must slather ourselves with sunscreen and now we all have Vitamin D deficiencies. Read the literature that comes with any prescription drug and there will be a paragraph explaining that they have no idea how the drug works. Many are no more effective than a placebo. There's a perception that has persisted most of my life that we are always at a point where we have these things figured out, but ten years later they are proven wrong, but we don't seem to notice that.

There is an almost religious fervor surrounding science when it comes to our health and nutrition. Lots of research in the past few years surrounds gut bacteria, something that wasn't even on the charts even 10 years ago. Now we are realizing that we not only know nothing, we know less than nothing.

I don't think Pauling will be vindicated on Vitamin C because this came from a time when it was universally thought that there was a pill or an injecton for anything and we just had to discover it. If you read Pauling's books, you'll realize that he never advocated it as a panacea, but part of a complete dietary and mental regimen. His research is compelling and it's not hard to see how he came to the conclusions that he did.

It's good to hear I'm not the only one learning from history and realizing the uncomfortable fact that we know so little and this treatment of ulcers is the exception rather than the rule. How did we not discover this was bacterial for so long? It's not like this is the 19th century after all.

<comment><USER12> Nutrition has changed far less over the last 50 years than you might think. The real issue is condensing it into sound bytes.

In a sound bite X More! vs. X Less! has a lot to do with peoples eating habits and overall health not just how good or bad X is.

Especially when it often breaks down as Benefits A, B, C vs. problems X, Y, Z. Yes, sometimes we add a benefit or risk to the list and or change the risk weights slightly, but rarely do things change all that much from one decade to the next.

<comment><USER13> I'm not very knowledgeable in this topic, but I think it's changed a lot. The way food is processed changes the way we're absorbing it.

Today's bread, milk, cheese, veggies, fruits are a bit different than 50 years ago - they last longer, taste different, probably because of how they're processed.

That lack of bacteria that makes things go bad faster should have a different effect on our bodies, no?

<comment><USER12> That's got little to do with what I meant.

Replace "Nutrition", with "Nutrition Science" or "Our understanding of the body's need for Nutrition" in my comment.

</comment></comment></comment></comment></comment></comment><comment><USER14> This seems to contradict another recent study [1] that found that Vitamin C promoted cancer (melanoma) growth.

[1] [https://www.washingtonpost.com/news/to-your- health/wp/2015/1...](https://www.washingtonpost.com/news/to-your- health/wp/2015/10/14/antioxidants-may-give-a-boost-to-cancer-cells-making- them-spread-faster-study-suggests/)

<comment><USER15> That's the nasty thing about cancerous cells, they can adapt to "feed" (via blood) on a wide range of macro- (glucose, protein, fatty acids, even ketones for some rare types) and micro-nutrients (vitamins, "antioxidants") just like "healthy" cells.

What baffles me is that even autophagy either doesn't seem to always work (easy to induce by water-fasting for a couple of weeks) --else every sufferer would do so until in remission-- or that we still don't seem to have pharmaceutical ways of jumpstarting/forcing "99% effective" autophagy..

</comment></comment><comment><USER16> Is this why taking Vitamin C is good when you start to get a cold?

<comment><USER17> Vitamin C has been proven to not have an effect on viral colds either way.[1] Vitamin D on the other hand has been proven to be an immune system modulator.[2] Unlike Vitamin C, most people develop Vitamin D deficiency.[3] I strongly advice you and everybody based on these studies to get yearly blood work and talk to a doctor about taking 4000IU daily supplement of Vitamin D. Also massive doses of Vitamin D can have negative effects.

As for Vitimin C, just because someone is a Noble Prize winner or brain surgeon doesn't mean they are an authority on all things. Ben Carson makes my point.

[1] [http://www.ncbi.nlm.nih.gov/pubmed/23440782](http://www.ncbi.nlm.nih.gov/pubmed/23440782)

[2][https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2870528/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2870528/)

[3][http://www.scientificamerican.com/article/vitamin-d- deficien...](http://www.scientificamerican.com/article/vitamin-d-deficiency- united-states/)

<comment><USER5> Vitamin C doesn't cure common cold, but it sure as hell a) shortens it b) prevents complications (which may rise to be chronic).

What vitamin C does is prevent common cold, if taken the right way.

Pauling cure for common cold was never really tested. All papers on common cold used very small doses, almost all bellow 1g. Paulling advocated 1-2g every hour. I tried it and it works for me, but timing is crucial - it must be taken on first signs of disease, it wont do much if you delay that.

<comment><USER18> Did you try taking zinc right after an onset of symptoms? I experimented with that one and had like 50% probability of getting over some common viroses within one day.

<comment><USER5> Yes i did. Alone it isnt that effective as C. Cobination is the best. Must be megadoze zinc too - 50 to 100 mg.

</comment></comment></comment></comment></comment><comment><USER19> Lots of mice studies don't translate well into humans. This one is highly specific -- a specific mutation. It's unlikely to have much bearing on real world cancer.

<comment><USER20> >[Supp Methods:]

"To test the effect of vitamin C, two million HCT116 or VACO432 cells were injected subcutaneously into the flank of 6 to 8-week-old female athymic nude mice (Harlan, Indianapolis, IN). After 7-10 days, mice with tumors of 40-60 mm3 were randomly divided into two groups. One group was treated with freshly prepared vitamin C (sodium ascorbate in 400 ul PBS, 4 g per kilogram of body weight) by intraperitoneal (IP) injection twice a day (HCT116: n=6, VACO432: n=6). Control group mice were treated with PBS instead of vitamin C with the same dosing schedule (HCT116: n=4, VACO432: n=7)."

[...]

[Caption Fig 2:]

"Tumor sizes were measured 2-3 times per week in an unblinded manner."

[http://www.sciencemag.org/lookup/doi/10.1126/science.aaa5004](http://www.sciencemag.org/lookup/doi/10.1126/science.aaa5004)

Not only are they mice, but they have no immune system[1]. Also, the dose of vitamin C is like consuming an entire bottle twice a day (~240 g)[2]. They are honest about the lack of blinding, which is good, but obviously that should make us wary of these findings. Also, they do not report tumor size before splitting into treatment vs control groups (only saying mice with 40-60 mm^3 tumors were used). Put the larger ones in the control group and you can easily appear to be slowing tumor growth for totally artefactual reasons.

For example, start with low initial (40) and high initial (60) cells in two different mice. If the cells all divide every day how many do you expect after 1:3 days. Low: 40,80,160; High: 60,120,240; Difference: 20,40,80. The difference seems to grow just due to the starting conditions, growth rates were the same. So these results are uninterpretable without knowing the starting tumor sizes.

[1] [https://en.wikipedia.org/wiki/Nude_mouse](https://en.wikipedia.org/wiki/Nude_mouse)

[2] [http://www.allergyresearchgroup.com/buffered- vitamin-c-240-g...](http://www.allergyresearchgroup.com/buffered- vitamin-c-240-grams-8.5-oz-powder)

<comment><USER20> >"Vitamin C treatment significantly reduced tumor growth compared to vehicle control treatment (Fig. 2B)."

This is a perfect example of what is wrong with biomed research. Just because the null hypothesis of no difference is rejected does not mean it is for your favorite reason. There are other reasons for this difference. For example, as mentioned above, perhaps the initial tumor size was different (which we cannot see since the size of the points in figure 2 correspond to ~50 mm^3 on the y axis).

</comment></comment></comment><comment><USER21> Kind of depressing that the study to investigate vitamin c injections won't get funded because drug companies can't sell it.

<comment><USER22> Well, it won't get funded by a _company_ unless there's a profit incentive, however there's other funding avenues for clinical trials like this. Besides applying for grants (which is extremely slow and extremely time consuming), research institutions often have small amounts of funds for running a trial in house, especially for something like this which only involves a few gene tests and an inexpensive treatment.

</comment></comment><comment><USER23> Vitamin C correlated with dead of tumor cells with hard-to-treat mutation in mice</comment>


This email may be worth millions of dollars in sales - <AUTHOR> http://josephwalla.com/this-email-may-be-worth-millions-of-dollars-in-sales <comment><USER2> I do this all the time, and it always works. Just today someone asked for a discount, and I wrote a similar email to this one, explaining why we don't give discounts, our products are great value, etc. I did offer them an extra 1 month trial for free, as they were just starting a new business, and they were very happy with that and will probably become a long-term customer.

I think people are just programmed to ask for discounts. However unless there is another product which gives them all the features they want for a lower price, they will almost certainly buy your product even if you don't give them a discount (as long as you're nice about it). The only time I would give a discount is if the person genuinely can't afford it, but that very rarely happens (as my prices are pretty reasonable).

<comment><USER3> I would like to swap "people" in your sentence for "americans". It's a cultural thing, not a human thing.

<comment><USER4> Seriously? Bargaining, or discounts, in this example is very, very common all over the world. I have found Americans do less of it than in most parts of the world, such as China, Turkey, Thailand, Morocco, etc.

<comment><USER5> I've assumed that my experience is accurate and that it is more common in rural areas (where ad-hoc/informal barter systems still prevail) and poor areas that see significant numbers of (relatively) richer visitors (i.e. tourists).

In the latter case the price starts high (to catch the people who will just pay anyway) then the price goes down, or there is a bait & switch (the bargain item advertised in the window is sold out, could we interest you in this instead?), or both. Perhaps the poster above is conflating "loud, brash, confident tourists bargaining" with "American tourists" \- a pair of populations that certainly do intersect though not as much as commonly held stereotypes would suggest.

</comment></comment></comment></comment><comment><USER6> Seem like pretty vanilla sales tactics to me. Even if choosing the more expensive company was the better investment, this is just rationalisation.

Some really good tips (I thought) for selling at a higher price than your competition: [http://everyonenegotiates.com/selling-high- price.php](http://everyonenegotiates.com/selling-high-price.php)

</comment><comment><USER7> You should also write to the cheaper company. Or was the lesson supposed to be that writing meaningless platitudes like 'race to the bottom' is good marketing? Perhaps it is, but personally, I would feel insulted.

There's no worse assumption that cheaper product is worse, especially when it comes to SaaS. What if FooCorp has automated much more than Acme, and even with lower prices actually has both better profits per sale and better functionality?

Sure, FooCorp should work on their marketing, but that's in their interest, not yours. A perfect company from the customer's PoV is one that is almost unknown, provides the best value per money unit, and has just enough customers to be alive. Then you have a competitive advantage over competition using popular and expensive solutions.

<comment><USER8> "Just enough customers to be alive"? Would you really trust a SaaS that is about to lose money and go bankrupt at any time?

Furthermore, if the company has just enough customers to be alive then there's a pretty big chance that their founders or employees are working over time in order to keep costs low. They might get sick any time, making the company fall over. Not a sustainable situation. Would you really trust your data with that?

<comment><USER7> >Would you really trust a SaaS that is about to lose money and go bankrupt at any time?

I meant a company that has just a bit more profit and revenue than that. Perhaps I should have written that in some other way.

</comment></comment></comment><comment><USER9> If I got an e-mail like this, I'd most likely go with the competitor.

> _The FooCorps 's of the world have spent a couple decades now in a the race > to the bottom and it shows. I have no doubt you can get their product (or a > whole raft of others) for a few bucks cheaper than us._

AKA. "Our competition suck and it shows."

> _Our product, Acme, is different._

Of course.

> _Look, FooCorp 's customers are switching to Acme in droves because we're > investing heavily in great customer service and innovation._

Yeah? I'd like to see data that supports it. This is one of the most common blatant lies in marketing (sure, it is true for some specific values of _customers_ , _switching_ and _in droves_ ) and I see no reason to trust it at face value; the sole inclusion of this sentence feels like evidence against company quality.

The same e-mail could be sent by FooCorp or any other competitor in that space. There's no Acme-product-specific information here, just universal marketing slogans.

<comment><USER10> It sounds like you don't like that the email is part of the company's marketing. But wouldn't it be crazy if they sent such an email without making it part of their marketing?

Also, there is differentiation, and explanation of why that's valuable. "We're designed to help improve your'e company's performance in the critical area of XYZ. The ROI on doing that is enormous."

Yes, any competitor could have sent such an email outlining their USP / positioning. But most of them won't, and that's what makes this an excellent example.

<comment><USER9> No, I get that the e-mail is part of company's marketing. But I don't like that marketing. The e-mail is pretty much empty of content.

> _Yes, any competitor could have sent such an email outlining their USP / > positioning. But most of them won't, and that's what makes this an excellent > example._

Sure. The act of sending that e-mail is a plus for the company. Still, you could replace their company name with any of their competitors and get an equally valid e-mail - which suggests that there isn't much more than buzzwords in it.

</comment></comment></comment><comment><USER11> Sales 101 is being able to take the conversation away from "price" and change it to "value". 20 years ago, my friend was selling IBM desktops and servers to educational institutes and I learned this from him. There was no way IBM could compete against the prices of those small computer stores, so he had to actively show how buying IBM would save money over the long run, etc. He was a very good salesman so it worked pretty well.

<comment><USER12> And yet, eventually IBM pulled out of the consumer PC business.

<comment><USER13> That was a proactive move that turned out quite well for them. They saw that the consumer PC business was going to shrink significantly over the next 10 years, so they sold off while the price was still high.

I don't think anyone in their right mind is second guessing IBM's decision to get out of the PC business. In hindsight, it was a great move executed with perfect timing.

<comment><USER12> Completely agree.

But they took this decision because they saw that the superior quality of their product(which having owned older Thinkpads I can say it's true) wasn't profitable enough when competing with lower cost "good enough" alternatives.

<comment><USER13> IBM's core strategy is one of technological differentiation through R&D; not price leadership. It's absolutely part of that strategy to exit commoditizing markets (which is why they got out of x86 servers as well) where product differentiation is difficult.

</comment></comment></comment></comment></comment><comment><USER14> This blog post may have been worth millions of dollars in sales for Acme if we knew the actual context.

Acme has chosen to provide a better value prop. They use this to justify their additional cost 100 times a day. The CEO noted that the value prop was subjective (does your company value XYZ?), and simply justified the gap. It's not magic, its logic.

<comment><AUTHOR> Would have loved to give the name, but the founder asked not to be named. Sorry about that. It was his email, so I deferred to his judgement.

<comment><USER15> Thank you for respecting their choice, though I'm concerned they've done themselves a disservice somewhat by missing out on free publicity, especially for something as glowing as this.

If the author of that email reads this I do hope you claim ownership so that I can reward your company with my patronage.

<comment><USER16> Maybe Acme is afraid of exploding into too much volume, and not being able to provide that aforementioned exceptional customer service.

Maybe they just choose to be humble and let their actions do the talking!

Either way, this to me is speaking volumes to the type of company this is, but I do share your desire to know what the name of the company is.

<comment><USER17> Or maybe Acme is afraid that FooCorp will refute their argument about a so- called "race to the bottom"... Maybe, just maybe, Acme is lying about "customers [...] switching to Acme in droves "...

I am not really impressed when a potential supplier is bad mouthing competition to get ahead of the pack. I would have a hard time trusting them, and being confident that at some stage they wouldn't bad mouth my company if I was no longer a client for XYZ reason later on....

</comment></comment></comment></comment></comment><comment><USER18> Maybe this is due to lack of context, but with all that "designed to improve your company performance in the critical area" and "investing heavily in great customer service and innovation" that email sounds terribly enterpriesey to me. It all could be boiled down to a one-liner in spirit of "Sorry, but we can't offer our services any cheaper. Our prices are indeed higher, but the services are better than competitors and we actually provide more value per price unit. Please, take this into consideration."

And maybe that's just my tastes, but negative commenting on competitors with all that "race to the bottom" and "customers are switching in droves" stuff doesn't sound any good to me. Even if competitor is really a complete shit.

Just my opinion. I'm not a businessman.

<comment><USER13> > Just my opinion. I'm not a businessman.

It shows :) No offense, but this is an engineer's mindset. Great for building products; terrible for selling them.

A businessperson's mindset is "if they don't understand their value proposition well enough to explain it to me, their product likely isn't any better than the competition and they know it." Better still, by explaining your value proposition in terms of a prospective client's problems, you are showing them that 1) you understand their problems 2) your product addresses their problems and 3) that you are committed to a long-term, mutually beneficial business relationship, not just a sale.

OP's link is a great example of good business communication. It's obvious that many of the flaws are due to the anonymization; I've written these e-mails before and the main goal is building a business relationship based on trust. If you have built a relationship with your customer, you get a little bit of leeway to badmouth the competition if it's relevant.

<comment><USER19> > A businessperson's mindset is "if they don't understand their value > proposition well enough to explain it to me, their product likely isn't any > better than the competition and they know it."

You'd think a consequentialist businessman would be _more_ interested in buying good things that go unrecognized/undervalued/un-understood by those who have them for sale. He can use the information asymmetry to make a profit, after all.

<comment><USER13> Maybe if you're buying widgets, but not services. Just like you may be ok with buying a car from a person who doesn't understand the value of his product, but would be more leery of hiring an accountant who didn't understand the value of his services. SaaS solutions are truly a service in this regard.

<comment><USER19> I guess I'm thinking of things like "Internet companies who don't realize that they're providing SLA-ed synchronous links with their IP video-conferencing service." They're selling you one thing, but you're getting most of the benefit from a part of it they don't even realize is worth anything.

</comment></comment></comment></comment></comment><comment><USER20> I've worked in enterprise SASS, salesman know not a lot about their own product, ROIs are plucked from asses and often it's all fibs.

Bear in mind I thought our sales guys were great, our product pretty good vs the field.

But basing your purchase on an email like this?

You're a complete sucker. All that happened was that a salesman just called their bluff. And they were impressed by it!

<comment><USER21> A good salesman will get you to take a bad or mediocre deal while at the same time convincing you you've gotten a great deal. Always question "facts" thrown out by someone trying to sell you something.

"instead of doing a price cut, it may be worth explaining why your product is worth more." This is news?

</comment></comment><comment><USER22> Terrible grammar aside, I don't get it. Perhaps due to the lack of context and purposeful obfuscation for the blog post.

If you've already evaluated both offerings and found Acme's to be significantly better independently then this sort of works as a justification for the higher price, but I don't see the part where it shows it is any better than FooCorp's thing. Yeah, sure, a bad transaction will cost you money... how do I know FooCorp's thing is more or less likely to generate a bad transaction?

Out of context it reads like "if brand X fails you'll be in deep shit, and we're not brand X, so buy our thing which costs more than brand X's thing".

Who says brand X fails more often than brand Y? Maybe it does, maybe it doesn't, but the logic train bumped off the rails a bit in the middle for me.

</comment><comment><USER23> A common technique when challenged with lower quote. If OP humors us with the actual context, then it might get more interesting.

</comment><comment><USER24> Great mail, but the line "...is one of the most leveraged investments you can make" makes my skin itch.

</comment><comment><USER25> Well that is what everyone says. The thing is that more money does not equal more value.

In "IT" I find that it is actually more common for the best product to be the ones that are in the mid price ranges. Not counting open source stuff ofc.

<comment><USER26> yes, but sometimes things cost money.

for a technical example think of a CDN.

sure you can go with Fast.ly and get a pretty ok CDN which is mostly automated and pretty cheap, or cloudflare which is similar. but they leverage systems controlled by other people a little too much, as such they can't be held accountable for networking fuck ups.

usually costs are human time related, good customer service means paying your helpdesk staff a living wage and retaining charismatic and talented communicators, rather than running them through a sweatshop and having a high turnover.

</comment></comment><comment><USER27> The only fly in this sales-technique ointment are the customers whom you convince, then in-turn expect the world from you because they chose "value" over "price". When customers pay a premium, their expectations are much higher, and unhappiness can set in if you don't manage these well.

This might not be something sales can control, but be careful in the claims you make during the sales process as some customers are listening and will be holding you to your promises.

</comment><comment><USER28> I love it, pure business speak ans number from the hat, zero technical details. Use it when the buyer is boss of the buyer.

When the user pays, send screen caps and detailed explanations.

</comment><comment><USER29> "We're designed to help improve your'e company's performance in the critical area of XYZ."

\- your'e

\- company's

If it is worth millions of dollars do a spellcheck.

<comment><USER30> You're right that taking the time to proofread and grammar/spell check is good, but in this particular case the performance is that of your company. Thus, "company's" is correct. :-)

The other is probably a typo, which might lend authenticity to it having been actually typed out by the CEO, rather than pasted from an archive.

<comment><AUTHOR> I've heard that misspellings can actually improve the response rate. I'd believe that - felt more personal to me.

</comment></comment></comment><comment><USER31> Lots of companies pay a premium for receiving the 'best'.

He should put whatever in his email in his normal pitch(website, or whatever), instead of trying to compete against the bottom dwellers of the world

<comment><USER14> I suppose if the marketing was 100% effective they wouldn't have to answer pre-customer e-mails like this. That said, its always good PR to have the CEO go out and "bump" a typical customer scenario who is almost to the purchase choice.

</comment></comment><comment><USER32> I've never had anyone ask for discount for my SaaS (BugMuncher), nor has anyone ever complained about the pricing. Should I take this as a sign to put my prices up?

<comment><USER33> Careful there. Read about Netflix:

[http://www.forbes.com/sites/theyec/2011/12/28/5-business- les...](http://www.forbes.com/sites/theyec/2011/12/28/5-business-lessons-from- the-netflix-pricing-debacle/)

<comment><USER32> I've just skimmed that article, but I seem to remember Netflix attempted to force the price hike on current users. I would always grandfather existing users, keeping them at their current price. Hell, I've still got people paying just $10 / month from when I first launched.

</comment></comment></comment><comment><USER34> This thread is really interesting. You can see a bunch of engineering types doing their best to slice and dice this from a million logical angles. I would have done the same 20 years ago when I launched my product and went out there to sell it.

The difference? I was honest enough to recognize I was going to approach sales as an engineer. I got help in the form of experienced non-engineer sales people tutoring me by going on sales calls with me and doing review sessions after every sales call.

The first two quarters sucked. It took me about three months to truly stop thinking as an engineer and another three to optimize my style, delivery and approach. We closed the third quarter with over $600K in sales, most of which I was responsible for.

I would eventually hire sales and marketing people so I could devote more time to engineering. I felt it was important to understand the sales process by becoming a sales and marketing person myself (for about two years on and off) before staffing thise positions. I have always been glad I took that approach. We engineers are great about building products but absolutely suck at selling.

The letter that is the subject of this thread isn't fantastic. That said, it achieved several things all the engineers on HN are ignoring:

\- Made a sale! Do not underestimate the importance and power of cash in the bank!

\- It deprived a competitor of revenue. Every dollar you take away from your competition is a dollar that goes towards potentially taking them out of the race, particularly with low price sellers.

\- It was compelling enough to take someone who was on the fence and flip him to the point of having him write a blog post about the experience

\- It probably created a long term believer and evangelist for their brand, product and price model

\- It confirmed that this tactic works. They can use it with new potential customers, evolve and fine tune it. They might also consider integrating aspects of this message in other marketing efforts.

\- It revealed that the competitor's low price position is tenuous at best

\- It started a relationship with a new customer in a very positive tone. If nurtured this could lead to more sales from word of mouth

\- Because of some of the above their cost of customer aquisition is likely to reduce over time

I could probably add to this. The point is that most of the criticism here is misplaced. This letter isn't genius. It doesn't have to be. It only has to be effective. That, it is.

I don't expect everyone to get this. In typical engineer/HN fashion this will be sliced, diced and down-voted from a million of irrelevant angles. That's OK. I get it. The interesting thing is, regardless of what is said here, that letter still made a sale and accomplished all I have highlighted and more.

</comment><comment><USER33> The best sign I have seen related to this topic is from my mechanic shop:

"If you think a good mechanic is expensive, try a bad one!"

</comment><comment><USER35> "You're product/service seems expensive."

"As compared to what?"

Sales 101.

</comment><comment><USER36> The cognitive dissonance here is striking, "the difference in price is peanuts" vs. "I won't lower my price."

How exactly did you find this compelling again?

<comment><USER37> "Peanuts" in terms of value to the customer, but not in terms of value to the service provider. There's more than one perspective here.

</comment></comment><comment><USER38> One day Pablo Picasso was sketching on a park bench. A woman recognized him as the famous artist, and asked him for a portrait sketch. Picasso flipped to a blank page, looked at the woman for a moment, and with a few strokes of the pencil drew her abstract portrait.

The woman looks at the drawing and is ecstatic. As she reaches for it, she asks how much it will cost her. "Five thousand," he says. "Five thousand?! But that drawing took you less than a minute!" Picasso replies, "No, madame, it took a lifetime."

* * *

The point being: The email is worth nothing; the value is in the person writing the email, and their knowing what to say.

</comment><comment><USER39> I think I might need to raise prices after reading this.</comment>


Pre-Proposal Paper for Graphnet: A System for Peer-To-Peer Packet Networking - <AUTHOR> https://docs.google.com/document/d/e/2PACX-1vS8PCIVcwLTJZQC3uUstnksBbNfGAcWfWrp13IZkNp5G5uezRL3ABB5ZghoOwYBAUak4XBZ9Q6Aldg7/pub <comment><AUTHOR> I would like to propose a decentralized cryptocurrency, market and transfer protocol for a self-organizing, peer-to-peer packet network.

This is a pre-proposal, and as such there are no technical specifications, only a discussion over a hypothetical system which can allow achieving this.

I am publishing it to gather feedback, mainly I want to see if I missed anything for which no obvious solution exist. I am also open to find others who would like to contribute to help fill in the voids for the eventual technical paper and implementation.

Before you ask, there will not be an ICO, as it is a distracting process which I don't see providing benefits for the establishment of a successful network. If you would like to contribute to the development of this project, you can contribute intellectually or make a personal donation to one of my wallets addresses bellow. Provided there are regular contributors, a nonprofit foundation will be setup to support the ongoing development of the project.

BTC: 1E48iBFm98B3hqjAhPeEDdCVQHYVPFjXQK ETH: 0xc0bFe51cF2c25b8121DDBa80b3E49f7c985f4Efb LTC: LXn8JxbsixHU3oLm66DZHuFDRZykQmi6rk</comment>


Kindle Development Kit - <AUTHOR> http://www.amazon.com/gp/feature.html/?ie=UTF8&docId=1000476231 <comment><USER2> So yet another platform and market - which I think is great news for developers.

I kind of have an insane dream where maybe instead of going for the usual platform candidate of say, a C derived language, Java platform or some kind of Web derived platform (widgets, WebOS et al), maybe someone will take a risk on doing something different.

Imagine if the Kindle platform was say, Scheme or Lua based? With a very simple (shallow not deep) set of libraries to access the screen, storage and network facilities.

It will never happen of course. But I wish someone would do it.

<comment><USER3> Or, you could hope for Java and use Clojure :)

<comment><USER2> Yeah you can embed various languages into C-based and Java-based platforms. It's not quite the same thing as the official platform being based on such languages.

The official platform will always have more mindshare, and thus support, in the way of things like:

\- open source code

\- developer support/discussion

\- systems libraries designed with the strengths/weaknesses of the platform in mind

<comment><USER3> Play with Clojure's Java interop facilities. You'll find you get all three of those points for free.

</comment></comment></comment></comment><comment><USER4> Text driven apps are an interesting idea. It doesn't exactly put the Kindle in competition with Apple's products which is probably a smart move. It's building on the Kindle's strength. Anyone who is choosing e-ink over a more general purpose LCD/OLED tablet is definitely in it for the text. For developers it seems like potentially a very easy platform to work with if your primary concern is simply formatting & displaying text. As a result I bet we'll see an entirely different set of applications making the Kindle a unique platform. It's a very smart move by Amazon. Sell books on paper, sell them on the iPhone, sell them on PCs, sell them on tablets -- but keep the e-ink market of serious readers locked up for themselves.

</comment><comment><USER5> Easy prediction: this will be big even if range of applications is limited to low bandwidth network apps.

</comment><comment><USER6> I like the idea that they're releasing a SDK for it. But there's a big limitation of all Kindle's currently on the market, and that's the slow refresh speed of the screen. If you have one, flipping pages in a book is fine, but browsing a page on the web seems awfully slow (could be due to an un-optimized browser).

I'm not sure what full-screen frame rate it supports, but my hunch is in the 2-3 FPS range or less (someone please correct me if I'm wrong - I'm guessing). AFAIK there's not even a Doom port to hacked Kindle's yet, which is usually a badge of honor saying "this device can play games and has some power to it".

Any apps developed for it would likely be staticly-displayed on screen. Board games would work well, email clients, IM clients, to name a few. Amazon would have to release a new model with a better screen to, say, address what Apple appears to be doing with their upcoming tablet, and allow for applications which require refresh rates which can display motion.

</comment><comment><USER7> what's the technology? is it java based? i can't see any relevant details on that page... [edit: i've searched around and can find no answer, although the underlying os is apparently linux] [edit2: see <http://news.ycombinator.com/item?id=1066942>]

<comment><USER8> It could be Java. The IDE in the picture up top looks very similar to Eclipse (although Eclipse handles more than just Java).

<comment><USER9> Java is a safe bet for this kind of thing: you can sandbox things up pretty well and keep people from doing Evil Things. Also, it's pretty popular with Big Companies, so it's a likely bet for that reason as well.

<comment><USER10> _Kindle Simulator... on Mac, PC, and Linux desktops._

Simultaneous release? It could be another VM, but it smells like Java to me.

</comment></comment></comment></comment><comment><USER11> _In addition, active content must meet all Amazon technical requirements, not be a generic reader, and not contain malicious code._

"Not be a generic reader"? That shoots my goals down, as well as shooting down the goals of anyone interested in really making the Kindle an open platform for reading. I'd be willing to bet that will be arbitrarily extended to nearly any "reader" application that they perceive as threatening _any_ of their market.

</comment><comment><USER9> There's no real information on that page:-/

</comment><comment><USER12> This will probably spur B&N to do the same thing for the Nook. Or maybe Amazon saw that coming since the Nook is an Android device and that seems like an obvious advantage for developing apps.

<comment><USER13> I believe Android-based devices will play important roles in this ecosystem, specially if devices with animation-friendly displays become the norm.

</comment></comment><comment><USER14> Personally, I like the Kindle because it's simple. Does it really _need_ an SDK? How is this making the kindle a better product?

</comment><comment><USER15> The big question for me is whether apps would have access to whispernet and how limited this access would be.

<comment><USER16> It seems that as long as your app is doing < 100KB/user/month of wireless data then it is free. Once you do more than that, you have to start charging a monthly fee. So you can use as much Whispernet as you want but be prepared to have that change your price point.

</comment></comment><comment><USER17> Lame attempt to get some attention before the Kindle gets killed by the impending Tablet?

<comment><USER13> It will take some magic for Apple to convince book publishers the Newton ][ is a better proposition than Amazon's. Amazon sells the paper versions too.

But I won't risk a prediction here. With OLED, PixelQi and that other Qualcomm color display competing, there is too much noise to predict what will happen to any individual product. The ecosystem will thrive, but who will inhabit is is a mistery to me.

<comment><USER18> _It will take some magic for Apple to convince book publishers the Newton ][ is a better proposition than Amazon's._

No need. Apple could just run the upcoming OS X version of Kindle (perhaps virtualized) on their tablet. Amazon could respond by detecting this and disabling their software, but I doubt they'd do it.

<comment><USER13> As ianferrel and ableal explained, the day Kindle software becomes the obvious way to read e-books on the Newton ][ (I love that name - too bad it won't be), Amazon wins.

Apple will do whatever it takes to prevent Amazon from controlling the ecosystem.

<comment><USER18> My point is that Apple doesn't have to "win" in this way. Why does Apple care if Amazon "controls the ecosystem," when they can still sell high margin hardware? Does Apple have to control the Web because they publish Safari? Safari was a play to assure the continued viability of OS X. Apple doesn't necessarily want to "win". They want to make money. "Winning" isn't necessary in every case for that.</comment></comment></comment></comment></comment>


Designing Headers for HTTP Compression - <AUTHOR> https://www.mnot.net/blog/2018/11/27/header_compression <comment><USER2> HTTP Headers can do amazing things, it's unfortunate they are so overlooked. I would say in security, where I work, good headers are the backbone of good web application security.

They are:

X-XSS-Protection

X-Frame-Options

Content-Security-Policy

Strict-Transport-Security (HSTS)

X-Frame-Options

Expect-CT

Feature-Policy

All of these can be set very quickly in your Apache2.conf.

</comment><comment><USER3> As much as I like using netcat and friends to interact with HTTP servers, I've always found the text-based protocols to be needlessly verbose and oriented towards a minority use-case. Something like ASN.1, which is very widely used in the telecommunications industry for protocols like GSM and such, does not have the same bloat problem yet remains extensible.

<comment><USER4> Isn't it notoriously difficult to write a sane, not exploitable asn.1 parser? The openssh didn't want to use x.509 certs for say because they considered asn.1 too risky and difficult iirc.

<comment><USER5> It is notoriously difficult, but to be fair a big part of that notoriety arises in the era when you'd have written this in C, as indeed OpenSSH is written in C. You obviously should not write such software in a language as unsafe as C today.

The Distinguished Encoding (DER) used for X.509 forces everything to be unambiguous, so in principle in a language where you can translate that lack of ambiguity into code and not inadvertently have it execute the raw data if you have an off-by-one error this seems no more dangerous than the present use of ASCII. It's just that C has fewer obvious sharp corners when it comes to parsing ASCII and programmers who work mostly in C knew where they were.

On the other hand, X.509 is also a scary choice because it's a thicket of options. One of the biggest pieces of work done in the Web PKI has been telling Certificate Authorities not to issue stuff with random options filled out, because that's yet more code surface area to either cause interoperability issues or worse, security problems. For the former, an example is Let's Encrypt. You may notice today your Let's Encrypt intermediate is named X3. What happened to X1 and X2? Well they are created in pairs, so that's why there were more, but it doesn't explain why we're not still using X1. The answer there is that X1 contains a feature called a negative (prohibitive) Name Constraint. This is a way to say in X.509 that the issuer (in this case "DST Root CA X3" operated by Identrust) does not permit this intermediate CA to issue for specific names. Let's Encrypt had a constraint forbidding the US military TLD .mil

But Windows XP doesn't understand this optional X.509 feature, if it sees any name constraint that it doesn't understand it concludes that all names are forbidden. So having this constraint meant Let's Encrypt was useless for Win XP clients. Identrust agreed to have Let's Encrypt simply obey this as a policy (and then they subsequently abandoned the policy) to enable XP compatibility.

So, avoiding X.509 might have been a sensible choice in OpenSSH but that doesn't necessarily mean using ASN.1 DER would necessarily be a bad choice in new systems today. I don't see any reason to use BER or other encodings of ASN.1 in new systems.

<comment><USER6> With ASN.1 there are also [the relatively new] OER, whose encoding rules seem significantly simpler than the previous ones (but may require transmitting one or the other bit more).

W.r.t. parser security, I don't think that has been a success, historically, regardless of format. Few if any parsers for moderately complex formats have had zero vulnerabilities. If you think of a web server, or an XML library, or something similar, chances are pretty good it had at the very least one critical vulnerability related to parsing.

</comment></comment></comment></comment><comment><USER7> Am I the only one that thinks 1k of HTTP headers per request is absolutely bananas? As somebody who traces requests regularly (as part of AJAX or REST API debugging) I would be hard pressed to see even half that on a request.

Please let me know if there some spec or framework that I'm not thinking of that passes that much data in the HTTP headers.

<comment><USER8> Open dev tools and browse around a bit and look at the request sizes. For me, on the request side, User-Agent and Accept-* headers already are ~200 bytes. Add a long referrer, another 100 bytes. Cache-control/ETag, cookies, ... get it up to around 1k fairly easily.

<comment><USER9>
      > cookies

This is the real culprit right here. This very page on HN that I'm reading right now, the cookie field is 415 bytes and there's really not much there. New York Times homepage has 988 bytes and I don't even visit that site. Reddit? 2055. Boom, that's twice your 1k right there in one field.

</comment></comment></comment><comment><USER10> It's all fun and games until we realize our web designers put a four megabyte jpeg on the index page.

<comment><USER11> I think this is a really good point. While I like the article's focus on depth, and thinking about the small stuff is important, saving a few bytes on headers is going to be blown out of the water by all the images, JS, CSS, and 3rd-party pixels being loaded. "Profile before optimizing" applies here too.

<comment><USER12> 1\. Images are transferred once, not with every request.

2\. Most requests and many responses are all or mostly headers.

3\. Intermediaries.

4\. Header compression is at the protocol level; if it's done wrong, the best js/css/whatever policy can't do anything to improve it.

</comment></comment></comment><comment><USER13> I think it's really sad that we have to use sub-par compression because we can't trust TLS to keep our data secure when we use good compression, since TLS leaks the compressed size to attackers, and when compressed, the size can depend on the content.

I don't have a solution to that issue, but it seems really fundamental, and something we should all be on the lookout for ways to solve.

<comment><USER5> > I don't have a solution to that issue

You don't have a solution because there isn't a solution.

It's your definition of "good compression" which is leaking the data, not TLS, if you're willing to let Bill guess what your phone number is, while you agree to just tell him which digits he gets wrong, Bill can guess your phone number in no more than ten tries (the tenth will be correct if none of the others were).

TLS doesn't actually leak the compressed size, it's just that in practice you will stop the TLS session after transmitting the compressed data, because to do otherwise is wasteful and if you didn't care about waste you would not use compression. If you want, you can run TLS with padding to always hit, say, a multiple of 4 kilobytes per transaction. Now say your "compression" took you from 3.84kB to 2.16kB and then you padded it to 4kB anyway and oh, wait, this was worse, why did we bother with compression?

If you have a system with an explicit range of sizes and can tolerate always transmitting the maximum size, TLS absolutely will mask out the actual size with padding.</comment></comment>


The Toxoplasma of Online Rage - <AUTHOR> http://slatestarcodex.com/2014/12/17/the-toxoplasma-of-rage/

<comment><AUTHOR> After reading the article, I realized it's a repost of an article originally published here. [1]

If I could, I would edit the submission url to point to the source article.

[1] [http://slatestarcodex.com/2014/12/17/the-toxoplasma-of- rage/](http://slatestarcodex.com/2014/12/17/the-toxoplasma-of-rage/)

<comment><USER2> Ok, url changed from [http://www.newstatesman.com/sci-tech/2015/01/peta- ferguson-j...](http://www.newstatesman.com/sci-tech/2015/01/peta-ferguson- jihad-doctor-who-rape-and-kitten-pics-toxoplasma-online-rage).</comment></comment>


How Hacker Democracy Works in India - <AUTHOR> http://hackerstreet.in/item?id=13431 http://imgur.com/HRuWz <comment><AUTHOR> Check this: <http://hackerstreet.in/item?id=13431> And today, <http://imgur.com/HRuWz>

If you didn't know HackerStreet India is HackerNews wannabe for India.

The issue is on HackerStreet India, I have been now and then raising my voice against arbitrary down votes for disagreement, editing of submission titles by editors <http://hackerstreet.in/item?id=13218> and communication by some members via backchannels on what I should post or not to post (since I have good Karma)

Today I received a threat email from one of the moderators asking me plainly to keep quiet because they were running it much before I was a member and that they will "hell" ban me if I continue such "violations" and challenging me to start a new community like HackerStreet. This is after I posted an Ask question on How to fight spam which the moderator said was off-topic and I countered him as you will see in the disccusion.

I really wanted to show you guys in America and rest of the World how democracy in India works with this example. When you go to vote, you will be told by Thugs whom to vote. If you raise a voice against the mafia with deep political connections, you will be threatened at your door for your life. And if you don't play along with seniors, powerfuls and others, whatever your business may be, you will be outcast and made to repent!</comment>


O'Reilly Ebooks: Buy One Get One Free (through tomorrow) - <AUTHOR> http://oreilly.com/store/ebooks-complete.html#

<comment><AUTHOR> Any suggestions on what would be the best deals? I'm thinking "Beautiful Code" and "Beautiful Visualizations" (at least).</comment>


Ask HN: Who got rejected in earlier cycles of YC application and made it anyway? - <AUTHOR> Daniel just wrote he got rejected and someone else chimed in they had been too, but were definitely not going to let it make a difference.<p>So, my question is what is the biggest success that YC missed out on, some group that pitched during one of the cycles and that was rejected, manned up and made it without the YC funding and the access to the network? <comment><USER2> My company was rejected from YC W09, but raised $1.5M in VC 2 months later.

We just buckled down, and launched anyways (ahead of schedule!). Once you get users and have some promising data, raising money is definitely doable.

<comment><USER3> We totally blew it that time. IIRC you did fix the thing we were most worried about when we were talking to you.

<comment><USER2> Well, I think it's still a little too early to tell if you blew it ;-) Raising capital != successful company, so we'll have to wait a few more years to see if I can make something of the opportunity.

There were some significant problems with the company/idea when we applied. Hopefully, we're fixing things quickly enough to win in the end (I think we are!) :-D And thanks to PG's advice, I have a new-found appreciation for some aspects of the business that I'd overlooked before.

</comment></comment></comment><comment><USER3> We've definitely missed good startups. But one advantage of having so many competitors is that we're much more likely now to learn when we screw up. When a startup from one of the other YC-like organizations does well, I often check their YC application to see how we missed them. Usually it's because they were good guys but working on a terrible idea, which they later changed. So in response to that we now make a conscious effort to pay less attention to the idea and more to the people when we read applications.

<comment><USER4> Ok, what about if the opposite was true?

How do you handle situations where the idea is (in your opinion) great but the person is perhaps lacking for whatever reason?

Is this a situation where you pass or do you take a proverbial punt? Have you done so in the past (don't need to name names to save someone's ego)

<comment><USER3> We wouldn't fund a group if the founders were really lacking, e.g. if they seemed uncommitted, or not smart enough to build whatever they were planning to.

<comment><USER5>
        we now make a conscious effort to pay less
        attention to the idea and more to the people
        ...
        We wouldn't fund [people who were] not smart
        enough to build whatever they were planning to

These comments don't seem entirely non-contradictory. Wouldn't you ever say "I don't think you're smart enough to make that work, but how about working on a less ambitious problem"?

</comment></comment></comment></comment><comment><USER6> We were rejected, with some recommendations on what to work on next; we changed our application for our technology when we heard that twice, then after nine months we raised money from a top green VC at a multimillion dollar valuation. We just made it through series B, and we're going to power the developing world before coal can get its pants on.

<comment><AUTHOR> That sounds like a very interesting project, I've read a bit on your pages and I figure Vuilleumier heat pumps or the Stirling cycle figure in there somewhere.

I wish you much good luck with this, one reason why I'm really happy someone is looking in to this is because coal causes more radioactivity released in to the atmosphere than nuclear plants even would.

</comment></comment><comment><USER7> "My question is what is the biggest success that YC missed out on"

There is a company that makes iPhone software that was rejected by YC, and they recently turned down a buyout offer of 10M. I can't really give more details than that since obviously it's not public.

</comment><comment><USER8> AfterTheDeadline was rejected, and got acquired last year by Automattic (WordPress). [http://blog.afterthedeadline.com/2009/09/08/after-the- deadli...](http://blog.afterthedeadline.com/2009/09/08/after-the-deadline- acquired/)

Edit: I should note that Paul Graham mentioned in his interview on Mixergy that picking companies is one area where they are weak. That may be true, but I'd wager the YC batting average would be higher than typical Angels/VCs.

<comment><USER9> Hmm don't know. With all due respect to PG and crew, VCs and angels seem to do their homework as well. Actually their initial filters are probably much more restrictive so I guess it would depend on how you calculate the batting avgs.

<comment><USER10> VCs do months of due diligence before they'll write you a check. We review an application from and write a check after speaking with you for 10 minutes.

<comment><AUTHOR> > VCs do months of due diligence before they'll write you a check.

That just simply isn't true. Early stage is _much_ quicker. The only time a VC needs 'months' to do dd is when there is a substantial company already, so when you're doing a late-stage investment, usually in the millions.

</comment></comment></comment></comment><comment><USER11> I don't have a "YC missed out on investing in our insanely profitable company" story, but I did get rejected before finding myself at a YC company anyways.

Evan Miller (emiller) and I applied for Summer 06. Evan had to do most of the work on our application because I had deadlines with my publisher on my Ruby book. I was proud that I was writing a book, so I mentioned it in my bio.

In retrospect, I wonder if that doomed us. Sorry, Evan. If I was reading applications, I'd have been like, "This guy thinks he's writing a book and starting a company? Fuggedaboutit."

But another one of my friends got into Winter 07 and he's very persuasive. A year after their session ended he convinced me to leave the corporate world and join him and his cofounder.

Wish I could finish the story by saying we're insanely profitable already, but hey, we're still alive, we've got a great product, and that's awesome.

There are a ton of ways to get a business off the ground, so one rejection from one incubator is really just the beginning. To everyone in that situation, don't give up. And if this one doesn't pan out, maybe you'll go even further with the next one!

<comment><AUTHOR> That's a hell of a story. I can't imagine that the book thing is what blew the application though, after all that could have been discussed in the interview if it would come to that.

Good to see you're still going!

<comment><USER11> Haha, well, we were also in a pool with a ton of other brilliant, driven applicants! That might have had something to do with it too. =)

</comment></comment></comment><comment><USER12> My company is a YC-reject, we're doing ok. With that being said, I still love YC and it makes sense for a lot of companies and I agree with pg that it just wasn't right for mine.

Here are a couple things I have learned about funding in my last 2 years building my startup:

1\. Funding is mostly a security blanket. An expensive and usually unnecessary one. I think most startups do worse with funding because they lose that fight or flight mechanism that drives entrepreneurs to do mind-blowing things. I don't think most ideas require funding exceeding the seed stage, which is usually a lot cheaper if you can find it elsewhere. For example, I launched my company to profitability with just 3 laptops + servers, which you can usually dump onto credit cards if you're growing way faster than your cash-flow (which makes your startup cost almost $0 to start).

2\. You cannot base your startup's success on whether or not one person (pg) believes you can make it. If nothing else, pg cannot possibly be an expert in every field.

3\. Money is EVERYWHERE in the valley. It is absurd how many different VCs there are, and how much money they're obligated to deploy in behalf of their LPs. There are definitely less opportunities than the money out there to fund them. Getting funding is pretty easy. It's all about building models that you can plug a # into and get a bigger # out, which if anyone needs help with please feel free to email me.

4\. Lastly, if you believe you can make it, no one can stop you. Go be a tiger.

</comment><comment><USER13> CouchDB is a pretty well-known "didn't get accepted, but kept going anyway" project. Not really a business success story, but it is a project that has had an impact on web technology, and on a scale that many YC companies have not. It's an Apache Foundation project now, but I don't know what that means for its business case.

And, of course, several teams have been rejected once or twice and then gotten in later. A few have even blogged about it; notably wheels of Directed Edge.

<comment><USER14> Actually, the authors of couchdb did eventually start a company around it: <http://is.gd/aEdvW> . I think it's still in stealth mode, though.

<comment><USER15> it's up and running at <http://www.couch.io/>

funny how TC called it "stealth mode". i don't recall the couchdb guys ever being very secretive about it. they are too relaxed for that :)

</comment></comment></comment><comment><USER16> I was rejected the first time, got in the second time, but dropped out a week later to run a different company. We were profitable at 32 employees and got acquired by Zynga last month.

<comment><USER3> It is probably not an accident that this is phrased in such an odd way, with the subjects of the sentences missing. It should read " _we_ got in the second time, but _I_ dropped out a week later." What happened is that Siqi and a cofounder started YC, then a week in Siqi bailed and left his cofounder in the lurch because a side project of his had unexpectedly taken off. We suggested making the side project be the focus of the startup they were doing, but Siqi didn't want to share it with his cofounder. His poor cofounder kept going and managed to recruit someone new, but the startup limped along without Siqi and didn't live much past demo day. It was probably the most treacherous thing one cofounder has done to another in YC so far.

I would never have said anything publicly about the matter, but I can't stand to hear it described in this misleading way.

<comment><USER16> Wow, this really stings coming from someone I respect so much. This is what happens when you leave without an explanation from YC I suppose.

Paul, I agree I should have said "we got in the second time, but I dropped out a week later". I apologize for not being clear but I don't accept that there was anything wrong with what I said.

To be clear, the side project of mine which took off was co-owned 50% by my another founder who was not involved in YC and didn't want to join, so it wasn't mine to simply share with my YC team.

There were 3 cofounders who went to the YC interview - there were 2 cofounders remaining after I left. I was transparent with both of my cofounders and we remain friends to this day - they had zero involvement in the side project from beginning to end. I specifically asked each of them if they felt I was behaving unethically - they responded that they don't believe so and would have done the same in my shoes.

<comment><USER17> I created another account just so I could get around my noprocrast settings.

Out of the 2 cofounders in YC, one I later hired to run network operations at my company and the other I am very close friends with and regularly have beers. We left on good terms. Why don't you ask the two of them what they think of me?

You're the reason why I'm an entrepreneur today and I respect you immensely. To hear you describe what I did as treachery is hurtful but worse it's just factually wrong. It was an incredibly difficult ethical decision for me at the time, but I truly believe that I behaved in a transparent and above the board way.

I take responsibility for not talking to you before or after I left - I didn't realize you felt this way about it and I'm happy to have the chance to bring this out into the open.

<comment><USER3> I'm glad they don't blame you. But what bothered me so much about what you did was that you were the leader of that group. You'd recruited them as cofounders to apply to YC with. IIRC you were the CEO. So it was like an officer deserting his men, not just one of three guys dropping out of a three person startup.

<comment><USER16> It was far from an easy decision and I never felt great about it. This is fair criticism and I accept it.

However, I don't feel the same way about your original response. The side project wasn't mine to share, and calling it "treacherous" takes it way too far.

</comment></comment></comment></comment></comment></comment><comment><USER18> I believe Directed Edge got rejected, kept going anyway, and got accepted a year later. They had already done a bunch of work and had customers in the pipeline, which let them make great use of the network once they were there.

</comment><comment><USER9> I definitely intend on continuing development on my projects. If you're a YC reject and want to join the community of rejects in moving forward, I'm putting together a group (in SF).

<http://news.ycombinator.com/item?id=1191553>

<comment><USER19> It would be good/fun to see a little competition develop between YC funded companies and the YC rejects. The empire Vs the rebellion if you will. I'll leave it up to you to decide which is which.

</comment></comment><comment><USER20> The guys from MyFit are doing well, (by well I mean raised a series A) and they were rejected from YC. But, In my opinion, if you get rejected by YC, it doesn't mean your idea is awful. From my experience, it seems PG likes ideas that with a ton of hard work in 3 months can go from concept to market. Some ideas, such as MyFit, were going to to take too long to get a proof of concept ready and thus it's not exemplary of the program.

If you are thinking about applying, or re-applying, keep your idea simple and concise. Let PG and all the amazing YC contacts help you figure out what the killer feature is of your app that will turn it into the multi-million dollar idea.</comment>


Why I'm Walking Away From CouchDB - <AUTHOR> http://donpark.org/blog/2012/06/01/why-i-m-walking-away-from-couchdb

<comment><USER2> After reading the article, I'm convinced that the author has something really, really, REALLY wrong with their data format, or their view code.

20,000 new documents per _day_ (from the article) is absolutely nothing for CouchDB. Our dataset in Couch is 28 million records, takes up 13GB of data, and we can create a brand new view against those records and have it run the first time in less than ten minutes. Adding 20k records to this dataset might cause the view to take a couple of seconds to update. One update to the view, which is what the article complains about, takes one or two milliseconds to be added.

But let's hypothetically say that the author has the most complex data format in history, and the most complex view code in history, and ten writes to the database actually cause minutes worth of view index updating. Adding the "&stale=update_after" request parameter to your view query returns instantly, with the last-generated view. After the query is issued, the view is automatically updated. No cron jobs necessary-- it is (and should be) a drop- in addition for all of your view queries.

Now, about the append-only database file. We've been playing with autocompaction from CouchDB 1.2, and it seems to be working quite well, but again, at the scale the author is talking about, 20k records per day is a very predictable delta in disk space. Even running CouchDB off a 32GB compact flash card (and it is possible!) will give ample room for the size of his dataset. We run off a 120GB fibre channel mount and haven't needed to increase the partition size yet.

From the article:

"The system in question does a lot of writes of temporary data that is followed up by deletes a few days later. There is also a lot of permanent storage that hardly gets used."

That, to me, speaks to two separate databases, one for the temporary data, one for long-term storage. The temporary database can be compacted once per day, and the permanent storage could be compacted once per week/month/never.

<comment><USER3> The documents are simple and small. Maybe 15 keys and short string values like datetime and latitude/longitude. 20,000 documents should be nothing but adding that much then doing a read triggers a view reindexing that was taking _minutes_. There are 2 million records taking about 1.6GB of disk. Doing on order of 100,000 deletes was bring disk usage up to 1.8GB or higher.

stale=update_after is not useful in my case. the client reads the database for the latest geographical position. it must return the lastest data in the database. update_after means its ready 'next time' but there wont be a next time, the client will simply have stale data. What the site needs is view updating after every write. If couchdb were to add that, I'd be excited.

I was excited about auto-compaction in 1.2 but the core problem remains that rewriting every single record to a new spot on disk at every compaction is a tremendous waste of I/O and write cycles on a (SSD) disk. Splitting the data in two sounds untenable for even simple queries (every search done twice, merging answer sets, etc).

<comment><USER2> You have something extremely wrong. Maybe it's at the hardware level. Maybe you have a crap SSD. Something. I just created a test database on my workstation, with a spinning disk, with the same type of data, and a temporary view against 50k documents takes 10 seconds to establish. Saving the view, re- running, then adding 10k documents and re-running the view takes 4 seconds to update. The 60k records take up 110MB.

"What the site needs is view updating after every write."

So why not build that into your application? For every write that you want to be consistently shown in the very next client view, ensure that you spawn a thread to immediately issue a query to the view after the write. Remember, CouchDB does not try to be an ACID-level database, substituting the C for raw speed. In fact, you can't be guaranteed that a client won't get the view while a new record is being added, and with no blocking on write, your client now has out of date data. With such a small amount of database traffic, you don't really notice this side-effect of Couch.

"I was excited about auto-compaction in 1.2 but the core problem remains that rewriting every single record to a new spot on disk at every compaction is a tremendous waste of I/O and write cycles on a (SSD) disk."

With the number of IOPS that we're talking about here, your SSD will last for years and years and years, even if you ran compaction once every minute. A 256GB SSD costs $200 at Amazon, and with your Couch instance taking 1.8GB, I'd be more worried about the heat death of the Universe before worrying about running out of disk space or SSD write operations.

<comment><USER3> Thanks for doing a quick benchmark. In my frustration I may have misremembered the amount of time the indexing takes, but the number of seconds really a distraction from the post. Its the principle that the next read operation time is so wildly unpredictable. Slowing down based on the size of the database makes some sense but slowing down based on the number of inserts since the last read is downright irrational to someone used to rdbms.

The number of write cycles on an SSD is also a distraction. Its the principle that gigs and gigs of records that are essentially read only are physically moved to another spot on the disk every six hours (thats how often a cron job kicks off compaction) is still a tremendous waste of effort/bandwidth/whathave-you.

</comment></comment></comment></comment><comment><USER4> While the blog is mostly down, here is a summary of the problems pointed out by the author:

1\. View index updates - "Every write sets up a trap for the first reader to come along after the write"

2\. Append-only database file - "Create(s) a huge operational headache", disk utilization, compaction, etc

CouchDB has always been a poor choice for write-heavy applications. Sounds to me like a case of selecting the wrong tool for the job.

Though I'm a big CouchDB fan myself, I wonder why the author didn't go with a traditional RDBMS for this application.

<comment><USER5> In the next article, titled "What I look for", he mentions that he'd never use a stored proc to access data through SQL.

To me it sounds like he is almost refusing to use an RDBMS to its fullest.

<comment><USER3> Using map/reduce has taught me where RDBMS systems excel and what I've taken for granted. Its the simple master/master replication feature that is very attractive. RDMBS emphasises perfect consistency when eventual consistency is a better tradeoff for most webapps (IMHO).

</comment></comment></comment><comment><USER6> I really like using ElasticSearch to index the couchdb database[1]. It allows you to scale out the data store and the search index separately, since they actually have separate concerns.

You can also do a lot of really complex queries with the elasticsearch query- dsl[2].

[1] <http://daemon.co.za/2012/05/elasticsearch-5-minutes/> [2] <http://www.elasticsearch.org/guide/reference/query-dsl>

</comment><comment><USER7> Given that it's only 20k new documents a day my immediate thoughts were of PostgreSQL. In particular thinking of use of things like the XML storage capabilities (XQuery is not yet supported but that's something folks are working on, but you can do a lot of processing with XML parsing/SQL if you like) or the new JSON type in 9.2 beta, particularly with Javascript as a stored procedure language....

</comment><comment><USER8> Don: I don't doubt that you had problems with you particular project, but I have issues with your article because the tone is that you want to warn everyone off of CouchDB.

Sweeping generalizations usually are wrong. Also, 20K writes a day are nothing.

</comment><comment><USER9> I'm just walking into CouchDB, specially with the couchsync mobile part of it, and about to submit my first iOS app with CouchMobile to the AppStore. It's good to read these kinds of informed posts and comments. Thanks guys.

</comment><comment><USER10> Unfortunately it's getting hammered enough that the content is offline.

Maybe that's why he's walking away from CouchDB?

<comment><USER11> I just tried googling for the cached version, hoping that they were able to grab it, but interestingly they have only a screenshot of the article. It's even clear enough to read all the text, but there's no cached version. Surely the page itself would have been easier to store than an image?

<comment><USER12> [https://webcache.googleusercontent.com/search?strip=1&q=...](https://webcache.googleusercontent.com/search?strip=1&q=cache:http%3A%2F%2Fdonpark.org%2Fblog%2F2012%2F06%2F01%2Fwhy- i-m-walking-away-from-couchdb%23commentform)</comment></comment></comment>


Codecademy and the Future of (Not) Learning to Code - <AUTHOR> http://www.hackeducation.com/2011/10/28/codecademy-and-the-future-of-not-learning-to-code

<comment><AUTHOR> This blog post makes me wonder if Codecademy will end up dealing with the setup type issues that plague beginning coders - i.e. setting up a web server, getting the right Ruby package installed, how to debug and find the missing semicolon, etc.

In my estimation, those barriers are all a lot higher than the actual logic or syntax of programming.</comment>