The Price of Free  - <AUTHOR> http://www.nytimes.com/2009/11/15/magazine/15FOB-Phenomenon-t.html?ref=technology <comment><USER2> I'm getting a little bit annoyed with the argument that 'Internet taking over these businesses is BAD because it's replacing quality with quantity! You won't get quality anymore because people are flocking to quantity and we can't afford to subsidize it anymore!'

On one hand, I am somewhat sympathetic to the argument (Research seems to be funded at least partially in the same way at universities), but overall, if the great masses lack taste and are satisfied with their reality TV, books like Twilight, and Windows PCs, why should they be taxed to pay for the few aristocrats that demand literature?

Or, if the value of such things is great enough, then the demand will be there to pay for it.

Disclaimer: My OS is Vista, I like watching CSI, and I've liked books that are as empty as Twilight is rumored to be.

<comment><USER3> Well, there's at least one perspective (accurate or not) from which your point doesn't hold.

As a hypothetical, assume that perception of quality within a domain is actually a trained skill, improved by incremental refinement via new experiences within the domain. Further, assume that highly-trained individuals can perceive greater detail, and from that can derive greater enjoyment. That is, a novice is overwhelmed by a few of the most obvious features, whereas an expert picks out subtleties and contrasts and has a richer, more enjoyable experience (there may be a parallel here to the blub paradox).

Under such a scenario, most novices (being unable to perceive subtleties) would tend to congregate around only a few examples in the domain that happen to provide the best experience at the broad, obvious level; a local maximum of enjoyment. However, by persuading a novice to experience additional examples that at the obvious levels may seem less appealing, they will gain both expertise and a deeper enjoyment of the domain, at the expense of growing bored with the simpler examples that lack subtleties.

New creations in the domain seeking to maximize exposure would tend to the minimum complexity level needed to appeal to a sufficiently large portion of the population. Lower complexity means fewer people expanding their experiences, reducing the overall level of expertise, lowering the minimum, and so on. Given the assumption earlier that experts obtain greater enjoyment from the domain, this results in a globally suboptimal outcome from individually sensible choices.

Of course, a fair number of people would disagree with one or both of the assumptions above (myself included). But I suspect many people who bemoan loss of quality would to some extent agree with the scenario I described, wherein quality is indeed valuable without there being demand for it.

<comment><USER4> _wherein quality is indeed valuable without there being demand for it_

Value is derived from demand and supply. If there is _no_ demand, there can be no value. If there is demand, there will be value (per supplied unit) if the supply isn't too plentiful.

This should mean that, in your example, entry level content should be plentiful and cheap, while the advanced content should be scarce and expensive. Hopefully for the producers of advanced content, the advanced audience will get so much more enjoyment per unit of content that they feel the higher price is justified.

To say that more people "should" go through the effort of learning to like the advanced content is pretty elitist, but most of all it doesn't take into consideration everything that they are doing in their lives. Just because some college students think it's worthwhile to learn the intricacies of some obscure tv series it doesn't mean that it's worthwhile for everyone else.

<comment><USER5> _Value is derived from demand and supply._

I suspect that the post you are responding to disagrees with this (at least hypothetically). They contend that value is a more-or-less innate quality that the skilled are best at recognizing. Stating your position baldly isn't a particularly strong counterargument.

 _To say that more people "should" go through the effort of learning to like the advanced content is pretty elitist_

Doesn't matter whether it's elitist, in the same way that it doesn't matter whether Darwin caused the Holocaust. The fact that the consequences are unpleasant does not mean that the assertion is untrue.

<comment><USER4> _They contend that value is a more-or-less innate quality that the skilled are best at recognizing. Stating your position baldly isn't a particularly strong counterargument._

Value, in the money sense, is what someone is prepared to pay. That's the kind of value I was referring to.

 _Doesn't matter whether it's elitist, in the same way that it doesn't matter whether Darwin caused the Holocaust._

Godwin's law.

 _The fact that the consequences are unpleasant does not mean that the assertion is untrue._

You ignored the second part of my conclusion: everyone has limited time, and they have to select a subset of what is possible that they will actually do.

Also: the post I was responding to was talking about trying to maximize global enjoyment, and proposed that if everyone decided to become experts in a single narrow field of content everyone would be better off. This, however, is also unlikely to find the global maximum. How will everyone know _which_ tiny subfield has the biggest potential for enjoyment? Without trying a lot of different routes to enjoyment, it's very unlikely that they will choose the best one by pure chance. Compare this to genetic algorithms; you need randomness to escape a local maximum.

Another problem with the proposed solution is that different people have different personalities and it's very unlikely that a single narrow field will appeal to everyone. Some subset of the population will get lots of enjoyment, while another subset will be bored to tears. That's not going to improve average enjoyment.

<comment><USER3> _Value, in the money sense, is what someone is prepared to pay. That's the kind of value I was referring to._

Which is indeed one possible definition of the word, but not the most _useful_ one in a world where rational economic agents don't exist. The average person's intuitive sense of how much they value something doesn't necessarily bear any relation to how much they'd pay for it.

For instance, in memetichazard's post above: "Or, if the value of such things is great enough, then the demand will be there to pay for it." Under the economic definition of value this can be loosely paraphrased as "If people are willing to pay enough for these things, there will be enough to demand to pay for it", a statement which is tautological and rather inane, allowing us to infer that memetichazard probably intended some other meaning for "value".

Under any other definition of "value", including most common use, it's entirely possible (or even likely) for something to have a value unrelated to its price or market demand.

</comment></comment></comment></comment></comment></comment><comment><USER6> First Off: Many (if not most) film festival winners and even some Oscar winners (Slumdog Millionaire, Japanese's The Departure) don't cost a huge fortune to produce, esp. in relative to Blockbusters.

Certain creative pursuits, like TV shows, might get back to its cheaper, more natural roots. I'm sure the cost of making a good TV show wasn't _this_ high in the past. The cost is getting higher partly because of the competition for talents.

With less money in the system, it's true that some talents will move to another industry, but many will stay and accept a less extravaganza lifestyle (which is not a great thing to emulate for the society at large anyway). People who really love doing the stuff will likely want to do it no matter what.

Of course, certain sorts of movies/shows like those which requires a huge amount of detailed computer graphics will be harder to come by, but that doesn't spell the end of creative works.

 _Lower cost for the whole system could potentially result in better quality (of a different kind)_ because of less focus on techniques and more on the arts and concepts.

</comment><comment><USER7> It is a cycle. Most endeavors start out as labors of love. Invention. Creativity. Internships. Then as the product is developed and there is more demand for it, more customers, more money. The wheat separates from the chaff. The chaff makers lose customers who concentrate among a few vendors who then start charging more and looking for more expensive and talented producers but all the free and cheap stuff is gone.

So then the young bucks come in and say, "I can do this for less!"

Saṃsāra

</comment><comment><USER8> I disagree with the premise that there is a correlation between production cost and quality.

<comment><USER3> Good writers and actors don't usually work for free. Just because there are lots of expensive things that don't really improve quality doesn't mean quality isn't still expensive.

Unless you're suggesting that television shows should all be made on a "work for a share of profits" or "work for free to get recognition" basis (i.e., like a start-up or an open-source project respectively). I don't really see most people being able to do that, though.

<comment><USER9> Youtube seems to be going to this direction.

For example, if you look for the latest hits on Youtube, you will see that most of them started posting videos there, for free.

<comment><USER7> And the quality doesn't compare, that's the point.

</comment></comment></comment></comment><comment><USER10> Once again, this article assumes that the current way of doing things is the only way of doing things. New business models will spring up. They always do, no matter how much people decry progress.

<comment><USER11> The article's not entirely without merit. It's true that new business models will pop up, but will they be as profitable as the current one? Considering the democratizing effect of the internet, I doubt it.

The same thing is happening with the music industry. Just because the record labels see a clear pattern towards electronic consumption doesn't mean that clinging to the old model as long as possible isn't the most profitable strategy.

<comment><USER10> I actually liked the article overall, and did vote it up. It was just that end that left a bad taste in my mouth...

They may not be as profitable for each individual company, but the pie is growing overall. More people than ever before are able to practice music as a profession. Consumer choice has never been greater.

If that comes at the expense of the big four, you'll have to forgive my lack of tears.

<comment><USER11> I agree entirely, I just understand why the established players act the way they do.

<comment><USER10> I get it, I just feel that it's incredibly shortsighted. I'd like to think that if I were a label, I'd be trying to figure out how to survive in this new world rather than trying to just grab as much money as possible before dying in a firey crash.

Then again, I'm a quite different person than record label executives, so I shouldn't expect they'd think anything like me on the issue...

<comment><USER11> I'm willing to be good money that they know exactly what they're going to do in the future. They also know that it's less profitable, so they'll resist as long as possible.

</comment></comment></comment></comment></comment></comment><comment><USER12> Paranormal activity an Pi are dirty cheap, but nonetheless good movies. I mean expensive is not necessarily good.

<comment><USER11> A few exceptions don't negate the rule. Many of the best productions are that way because the best people worked on it using the best available technologies. That comes at a price.

Just look at Youtube. Most of that stuff is utter crap. Just because you find the occasional gem doesn't mean that the site's not full of crap.

<comment><USER13> Most of the stuff on youtube is utter crap, but there's still more interesting stuff than I have time to watch.

<comment><AUTHOR> _"... Most of the stuff on youtube is utter crap, but there's still more interesting stuff than I have time to watch. ..."_

Watching stuff on youtube for me is really like taping radio as a youngster. Now it's going back for old music video clips and tv shows. One persons crap is someone else's scarce resource.</comment></comment></comment></comment>


(UK) One million bank customers found on computer sold on eBay - <AUTHOR> http://www.dailymail.co.uk/news/article-1049121/Government-probe-launched-details-million-bank-customers-sold-eBay.html

<comment><USER2> I know that the type of posts to Hacker News has rather drifted away from topics strictly relevant to hackers and start-ups - indeed we are seeing an increasing quantity of spam postings which are a nuisance.

However posting a link to the UK Daily Mail (the kindest description for this rag would be to call it a comic) is a step too far.</comment>


My experience being a solo maintainer of open-source software in academia - <AUTHOR> http://www.pgbovine.net/python-tutor-ten-years.htm <comment><USER2> Maybe to toss in a counter point here: I occasionally use Python Tutor for my lectures and highly appreciate the fact that this researcher takes time out of his day to a) keep it running and b) has opened the source to the world. While I have not forked it because it runs well enough I looked at the code several times over the years when I wondered about how he implemented some aspects of the system.

This is online since 2010 if I remember correctly, it runs longer than a bunch of FAANG services that came and went. If people want to be snarky, please try a little harder to find a target that deserves it. Not every open source repository out there needs a fancy set of badges and hyper-responsive end-user support forum and the author is pretty clear about his intentions (heck, you're discussing a blog post stating exactly why and how this worked so well for 10 years).

<comment><USER3> Keeping a web application running for 10 years is amazing. How many people here can say they have done that? There's still things to do even if you add 0 new features: there's security updates, supporting new browsers (IE7 was the latest browser in early 2009), upgrading the server and package dependencies that are out of date, renewing the domain name, fixing various disk/memory errors that pop up, and even setting up a downtime notifier.

Mobile apps basically expire in 2-4 years due to new permission models or the everchanging APIs. Web applications keep changing until one day they are bought by another company and either disappear or get redesigned into something unrecognizable. Out of the ones I use, only Craigslist and Reddit have remained relatively unchanged for a long period of time.

I find that even maintaining a website with no backend is time consuming. The links start to rot, you forget how your pages link to each other, new device form factors emerge, the images/js/stylesheets that were hotlinked start to break, and some company you rely on goes out of business or needs to "verify your login" with some forgotten information (a company like your registrar, ssl provider, web host, credit card processor).

I'm starting to think that for a solo maintainer, the less tooling you use the better. For my own pages, now I try to stick with a single index.html page, simple non-minimized html/css and maybe a bit of js but avoid jquery/bootstrap/googleanalytics. I would love to see more web pages optimized for long-term maintainability than aesthetics or fitting some web programming paradigm/toolchain.

</comment></comment><comment> open-source-ux _" In practice, I rarely reply to emails or GitHub issues, even if the sender sounds sincere. I've found that once you start being nice, some people will keep asking for more and then get angry when you don't keep volunteering your time.

Silence is the only scalable solution. I know that not making myself available feels unwelcoming and not inclusive; but I'm paid in my day job to serve students at my own university, not strangers on the internet who are using free software that I maintain in my spare time."_

An interesting comment given past discussions on Hacker News about how demanding some users are about open source software (these users often tend to be other developers too).

<comment><USER4> Warning: Critical remarks coming

"Python Tutor's large international user base provides a unique platform for my research. This work has collectively led to almost a dozen research papers and several major grants so far."

In other words, he wants the (extremely large) benefits of an open source project but doesn't want to waste his time on those that don't have value to him.

He's running a startup with a $0 price tag rather than an open source project. He doesn't deserve to get any credit, it's something he does purely for his own benefit, and he's giving open source projects in general a bad reputation. Nothing that he's said is a justification for ignoring communication.

<comment><USER5> > In other words, he wants the (extremely large) benefits of an open source > project but doesn't want to waste his time on those that don't have value to > him.

No, he benefits millions of users and is intentionally not taking "the (extremely large) benefits of an open source project" by stating he hasn't the time to deal with outside input.

If the source was closed and people could just use the (free) website nobody would care but since its open source he suddenly owes the world something?

<comment><USER4> > No, he benefits millions of users and is intentionally not taking "the > (extremely large) benefits of an open source project" by stating he hasn't > the time to deal with outside input.

I have no idea what this means. _He wrote in his post_ that he does it for his benefit, and that he ignores most people because it doesn't benefit him to respond.

> If the source was closed and people could just use the (free) website nobody > would care but since its open source he suddenly owes the world something?

Ignoring sincere communication has nothing to do with a software license. That's being a jerk. The choice of software license doesn't give you a right to be a jerk.

This is yet another one of those situations where someone is well known in the open source world and his fans think that excuses being an asshole.

<comment><USER6> > He wrote in his post that he does it for his benefit

He benefits from the software existing. He benefits from deriving a paper or two from running the platform. Neither has to do with it being open source.

The open source aspect benefits users only.

> The choice of software license doesn't give you a right to be a jerk.

It doesn't give anybody the right to contact the author, either.

Since "jerk" in this context means "not responding to sincere communication": if you send a sincere email to the CEO of IBM because you have proposals on how to improve SPSS (a tool that, as economist and professor, you're certainly familiar with), do you expect a substantial answer that isn't driven by the CEO's extensive staff and PR department?

Give that man a secretary and PR department and I'm sure he'll answer all communication.

</comment></comment></comment></comment></comment><comment><USER7> It's sounds like a lot of issues could be addressed if the development of Python Tutor was sponsored.

I'm all for open source, but that doesn't have to mean free. If millions of people use something, and get value out of it, they would only be right to return a small amount of that value.

Particularly the point about never responding to issues/emails. Would you if they came from sponsors?

But to counter my own point, this is academia, which is all about doing what the individual wants/deems important. Dr. Guo would probably turn down the money for the same reason he doesn't want to excessively maintain/improve this project.

<comment><USER8> Being sponsored would likely conflict with his real objective which is to get tenure. Someone could forget and perhaps be sponsored; I imagine that might happen down the road when the author becomes too busy to keep it running himself.

</comment></comment><comment><USER9> I don't agree with the parting thought, though. If you, as a PhD student, do make your project open source, document it and make it useful for others, and in so doing, get a bunch of citations, you have an immediate career boost. How likely that is, is another question

I am in a similar position as the author, some software I helped write on the side during my thesis is the only recognized remnant and actually got me my current job (tenured staff scientist)

<comment><USER10> How do you address the issue that publications and citations are a one-and- done "reward", while maintenance can go on forever. Do you publish a new paper every few years ("Marmaduke's Modules 3.0"), so that you can show 'productivity'?

I know that this is a hack to fit software into the usual credit scheme that academia uses. However, being a software maintainer might be more like being a journal editor (another category that gets you some points for tenure/promotion), especially since both having ongoing responsibilities.

<comment><USER11> Because the exchange rate isn't 1 release : 1 paper.

When I worked as a programmer in academia, my lead professor said he'd had some folks from the computer science department over to look at what we were doing, and they commented that there were at least a couple of PhDs and 5 or 6 masters theses in there.

I don't know if that's true (and I didn't stick around long enough to find out) but I know that fully organizing and documenting every bit that I'd done would take many times longer than writing it in the first place.

<comment><USER10> I'm not even sure there _is_ a fixed exchange rate, but if there is, I think it's >> 1 release per paper[0].

I can definitely imagine writing a paper for the first major release. If the software solves an pressing scientific problem (e.g., replacing laborious experiments with accurate simulations) or shows off a new algorithm, the paper itself might be a big deal.

Subsequent versions seem trickier. You could certainly publish big technical advances, like a parallel version of the core algorithm. I'm not sure what you do for more routine maintenance and incremental improvements (e.g., bug fixes, more import/export formats, better UI). There are specialized journals that might take these "reports", like the Journal of Open Source Software, but I'm not sure if a CV of JOSS papers would give you a viable career.

[0] If I had to guess, I'd bet there were multiple PhDs in the _topic_ you were working on. While the code base would be a good start, there's a lot more to a research degree than organizing and documenting some code.

</comment></comment></comment></comment><comment><USER12> Given everything he says, why does he bother to keep it open-source at all?

<comment><USER13> Given the quote "I don't have time to review any outside code contributions or GitHub pull requests. Feel free to fork the code." I'd hazard a guess he's fine with people building atop his work, just doesn't want the time-sink of reviewing + merging those contributions into his tree and maintaining them.

As he states others have indeed done so and built research projects atop it, it would seem to be worth keeping open source.

</comment></comment><comment><USER14> More like a non-maintainer than a maintainer, TBH. It would be far more honest for him to write "this code is being provided in the hope that others will find it helpful, but is otherwise totally unmaintained! You should _not_ expect replies from me to any inquiry, feature suggestion, or possible contribution. Feel free to fork the project and take up maintenance yourself." I mean, it's effectively what he's doing, so why not just say it outright?

<comment><USER15> It's pretty far fetched to claim a web program running for 9 years is unmaintained software. It's maintained in the direction desired by the author to keep working, that's plenty.</comment></comment>


Ask HN: Would you use a check printing service via an API? - <AUTHOR> Assume these checks would be printed with all security features enabled: colored background, coin rub watermark, microprint border, thermo-chromic ink images, magnetic ink character recognition (MICR) technology, and Positive Pay protocol to combat check fraud. <comment><USER2> I'd love to use something like this. I run several API companies, all of which have some form of affiliate program.

Would be really convenient to have a simple API to send affiliate checks every month, instead of handling it manually.

I did a bit of research into this a while back, and there was another option from WellsFargo (I think?), but it was really complicated and required lots of talking with salespeople and the like :(

</comment><comment><USER3> If I were paying out affiliates or similar I could see where this could be useful. However, it'd have to be very simply and easy compared to printing a batch of checks with quickbooks or similar.

</comment><comment><USER4> Here's one that's in BETA: [https://www.lob.com/services/checks](https://www.lob.com/services/checks)

</comment><comment><USER5> Yes, I can think of a lot of uses if it was integrated with the accounting application I work for :)

</comment><comment><USER6> Yes. We did not find a good one when we looked, so we mail a lot of checks manually for now.

</comment><comment><USER7> Yes absolutely. Would it mail them out too?</comment>


Most Expensive Math Paper - <AUTHOR> https://twitter.com/luismbat/status/1153447196852916224 <comment><USER2> If you google the paper (the PDF isn't hard to find), you'll learn it is a bit longer than one sentence (about ⅔ of a page)

You'll also learn how much many maths papers leave "to the reader".</comment>


World's Most Accurate Clock - Accurate To 100 Quadrillionth Of A Second - <AUTHOR> http://www.youtube.com/watch?v=jFyAQkIOkio&feature=youtu.be

<comment><USER2> Discussed: <https://news.ycombinator.com/item?id=5785984></comment>


Wired Deliberately Misleads on Bitcoin: Yellow Journalism? - <AUTHOR> http://btcgeek.com/wired-misleads-everyone-on-bitcoin/ <comment><USER2> Oh no, someone is wrong on the internet. It must be a big conspiracy to bring down Bitcoin by overstating the miniscule amount of money that's paid for clickvertising, because there's no way a math error could creep into a fluff article. Obviously the foes of Bitcoin will never rest until they have made us associate it with homelessness. Or something.

This exemplifies what's wrong with the cult mentality surrounding Bitcoin; what was probably a simple error is recast (absent evidence) as a deliberate untruth, despite the fact that the story was basically positive reporting about Bitcoin.

<comment><USER3> The article never talked about "a big conspiracy to bring down Bitcoin"\--those are entirely _your_ words. Instead, the article talked about a journalist compromising accuracy to gain more pageviews: much more plausible.

If anything, _you 're_ the one twisting facts to discredit the BitCoin community and trying to recast an article about somewhat shoddy journalism as a cultish conspiracy theory.

The fact that the criticized article is pro-BitCoin just further shows how unreasonable your claims are: the community is willing to critically examine press that's _in_ its favor, not just anti-BitCoin articles.

<comment><USER4> "those are entirely your words"

Did he put them in quotes? Well then it's not much of a revelation that those are his words.

 _I emailed her back, with clarification, at 7:21am, telling her that this was wrong. Yes, she knew, for certain, that the facts in her story were wrong, within an hour of it being published._

Isn't it good to know that email of random enthusiast on the internet = TRUTH.

<comment><AUTHOR> Those are verifyable facts, no one needs to rely on me. The article was modified to change the Bitcoin earnings from 0.0004 to 0.00004. The facts were known by everyone, they weren't a secret and you certainly don't need to rely on anyone's testimony for the same - you can do the math yourself as to what 40 micro Bitcoins evaluate to.

<comment><USER2> But how is this misleading on Bitcoin, as you claimed in your headline? If I say that a person earned $6 when they earned $0.60, does that mean I'm making misleading statements about the US dollar? Of course not.

To the extent that the article was misleading (ie trivially) it was misleading about the amount paid out for clicking on videos. The fact that payment was made in BTC rather than USD is wholly incidental to that.

</comment></comment></comment></comment></comment><comment><USER5> I take it that 'BitCoinTapper' is really just a way of collecting human click entropy to feed into a click fraud engine?

<comment><USER4> It's sometimes said that bitcoin is mainly used for money laundering and drug deals. How sad is it that bitcointapper click fraud might improve the median use case?</comment></comment>


Free Shipping - <AUTHOR> https://reallifemag.com/free-shipping/ <comment><USER2> Instead of an Airbnb-style bartering economy, I'd expect a Netflix for household items would be more feasible. No worries about strangers using and breaking your things, no microtransactions to track.

That sounds specially interesting in denser areas. Make it fast and easy for people to request and return stuff, and homes suddenly have a lot of extra space.

<comment><USER3> Of course there are already a lot of rental places for expensive but rarely used tools, party equipment, etc. Perhaps there's the potential to reduce transaction costs but the economics of renting a stand mixer still seem challenging though.

I agree with your basic point that commercializing borrowing a tool from a neighbor has been and will continue to be largely a non-starter.

</comment></comment><comment><USER4> Shopping has always been a tiny rush of happiness in many peoples' lives. I think free shipping only makes this rush more convenient, accessible, and addicting.

<comment><USER5> I guess that's why so many people have Amazon Prime. And also, why they offer multiple 30 day trials to every user...

<comment><USER4> "First one's on the house," said to me once an Amsterdam back-alley coke dealer.

<comment> thraway-burnout I quite often do drugs, multiple types, though admittedly not cocaine. I've never had the luck of getting this seemingly-common "freebie" everyone mentions

<comment><USER6> Maybe if you lived in poverty in a housing project where many dealers are competing with each other and moving heroin, crack, meth, and fentanyl to desperate people who want to escape.

<comment> thraway-burnout I guess

I did grow up in relative poverty, though not in a housing project. The area I grew up in, at the time, had lots of Crack but no Meth/Heroin etc. Still, never heard of it.

I'm quite sure it's an urban myth :-)

</comment></comment></comment></comment></comment></comment><comment><USER7> How about a service to take things OUT of the house. eg I have some metal waste - take that to a metal recycler. Used beverage cans (with deposit) to a charity.

<comment><USER8> In Brazil we have this [http://www.cataki.org/](http://www.cataki.org/) (pt- br) an app that connects waste pickers to people who want to dispose reusable or recyclable materials.

According to this site 800,000 waste pickers in the country and 300 registered on the service.

</comment></comment><comment><USER9> Never knew Snapchat was funding magazines!

"Real Life is made possible by funding from Snapchat, and we operate with editorial independence and without ads

Wonder how that happened.

<comment><USER10> You can read all about it in this article:

[https://www.businessinsider.com/why-snapchat-is-funding- real...](https://www.businessinsider.com/why-snapchat-is-funding-real-life- website-2016-6?international=true&r=US&IR=T)

tl;dr: The editor wrote an interesting essay that caught the attention of Snapchat CEO, which wanted more of this output.

What's interesting is that Real Life is highly critical about technology, while you would expect based on the funding a sort of think tank creating pro- tech fluff pieces.

<comment><USER11> > What's interesting is that Real Life is highly critical about technology, > while you would expect based on the funding a sort of think tank creating > pro-tech fluff pieces.

It's not an uncommon case. Black Mirror even lampooned it back in its second episode (Fifteen Million Merits).

</comment></comment></comment><comment><USER12> Parts of this article resonated strongly with me. At [http://infinite- food.com](http://infinite-food.com) we are attempting to redefine urban food distribution through shared storage and 'just in time' (JIT) production of a wide range of hot or cold meals within a wholly owned and operated network of kiosk-sized self-contained robotic service locations, combined with a managed logistics system. Big wins from less real estate, less waste, less transportation, meaning less costs and less environmental impact, plus of course reduced cognitive and temporal load for the consumer (and optionally kitchenless or applianceless apartments - part of a trend which I call SKINK - _Shared KItchen / No Kitchen_). Big losses for the ritual of the grocery trip. It's looking at food on demand as an urban utility instead of a scarce personally owned resource, and choice and personalization as ever-present instead of having to battle restrictive commercial menus or plan ahead and self cater. I see our company as an early investment in a larger trend of moving industrial processes out of the industrial revolution (central industrial hub plus multi-party distribution to consumers) toward a more distributed model supporting aspects such as personalization. Interesting that the author identifies as an architect. Plus one for cross-domain abstractions! NB. We use a pickup model and target 3 minutes to itch-scratching, but could integrate with delivery (~30-60) if desired: we try to get closer to the consumer with a vastly reduced retail form factor, to enhance the chance for repeated and spontaneous use. Currently taking investment and beginning manufacturing targeting China, HK and Macau!

</comment><comment><USER13> Can someone please summarize this bad take? I tried reading it but got lost halfway.

<comment><USER14> Sounds like the idea of a delivery robot isn't working out in testing, so now focus is shifting to the notion of an Amazon robot associated with each building to fetch packages from a truck. Sort of a mechanical coal chute, except with a bunch of gotchas.

In my mind, this problem was solved a long time ago. We had these mysterious outlets called stores that you went to and exchanged money for product. The root problem here is that people that consumer product companies care about (ie. not poor brown people) are moving to cities, and the belt of suburban shopping centers isn't serving this population well. IMO this is a good thing, as perhaps it will enable a return to smaller scale retail in vital urban communities.

<comment><USER15> I personally don't understand why 'last mile' is such a big deal. Personally I would rather just order on walmart.com, have it ready for me to pick up at the store. If I really want it, I can go get it the moment I get the notification. Otherwise, I'll pick it up on the way home from work, or when I'm out and about.

It's silly, but I don't want my neighbors thinking, "damn, they order a lot of packages" and I don't want to worry about an expensive item getting lifted. Seems to me the simplest answer is not to build a robot, but just to make smaller versions of the big box store that are essentially a small warehouse with a front office.

<comment><USER14> Amazon sees a unique opportunity to capture lots of market share and needs a way to build a sustainable business. (Aka takeover the market and raise prices) Amazon's profit story is all about services.

Big box stores are kind of screwed because they overextended on debt and used financing schemes that front-load tax benefits and create problems down the road unless you always grow.

</comment></comment></comment></comment><comment><USER16> I first heard about this idea in this video from 2014, and have been talking about it ever since: [https://www.youtube.com/watch?v=3xOK2aJ-0Js](https://www.youtube.com/watch?v=3xOK2aJ-0Js)

<comment><USER17> There are tiny traces of truth in that video, but like 90% of it is complete nonsense.

</comment></comment><comment><USER18> "Autonomous Amazon Locker on wheels". Check from mobile the schedule and track the exact location, go to pick up your goods when the vehicle is at your house.

I could imagine using this as a delivery mechanism if the price was right.

</comment><comment><USER19> I really hate the casualness with which returns are assumed to work. Many goods aren't resellable after being returned with the end result being that they simply get thrown away. Its soooo wasteful.

</comment><comment><USER20> Conceptually this reminded me of "The Feed" from Neal Stephenson's Diamond age book (without the nanotechnology)

</comment><comment><USER21> This already exists today in the digital world. The cost to access anything online is virtually zero.</comment>


Ask HN: Do you think you have an actual novel idea? - <AUTHOR> I'm currently working on a side project that I thought was not 'groundbreaking' but I felt was different. As time as passed and I'm still working on it, I've found many implementations of the same concept. Its not actually disheartening but I've since retooled this project to be more of a learning experience for myself (new technologies and such). Since there is nothing new under the sun, how does one deal with not actually having a brand new idea? <comment><USER2> There are multiple types of "uniqueness". Two might be:

        1. Individually unique, i.e. is this new *for you?*
        2. Globally unique, i.e. is it new *for everyone?*

But the only important one is uniqueness within your industry or stategic group (à la Michael Porter)

This is shown in studies that examine how designers reach "creative" solutions. If 10 people are given the same brief, half might propose the same idea, even though they each believe "it's unique" and "no-one else will think of this".

But that's not a bad thing! It's proof of progress with exploring the problem space. What was the core idea they're trying to fix? If you drop all your assumptions, what other solutions can you come up with?

"Creative" and "unique" ideas are _always_ a synthesis of existing technologies or processes. What is stale in one industry may be unique in another, and vice versa.

Your customer segment wants to do something. Your product (whatever it is) will provide value insofar as it helps them achieve this "job". The more value, the better.

Consider the following equation:

       What + How = Value

If you know your customers (and you should!), then you know what "value" they want. You just need to solve for the _what_ and _how_.

Work with "frames". Fix a specific part – like "what" or "how" – and think about what can fill the gap.

        <Directory of dog walker contacts> + How = <Healthy dog>

        What + <an app>  = <Healthy Dog>

This is a form of abductive reasoning. This is how we believe creative people optimise complex systems – there is a combinatorial explosion of possible solutions (when combining existing things), but this gives us a way to work through them.

This is overly simplified, but I hope it gives some direction!

</comment><comment><USER3> It's quite alright to no have a 'brand new idea'. It's near impossible to have something that is a truly novel idea unless it's something that will be discovered or invented far out in the future.

The process of creation is what matters as much as the end creation. During the process, you have had a great learning experience. This will help you go on and build new ideas. In the end, almost everything in the world today is built by stacking on knowledge of the past.

</comment><comment><USER4> One of the questions prospects ask us in meetings is "Company X does this with product Y" when we present our product and talk about a feature.

One question I ask back is: "What is your experience with product Y? Do you use it?"

The answer is invariably: "We don't use product Y." Many prospects tell us about products they don't use, and these prospects are in _pain_ which would make you think that they'd use _anything_ to relieve that pain but they don't.

That's an important point. Many implementations surely exist and people are aware of them, but these implementations do not obliterate an important, costly, problem to dust.

Does your implementation obliterate an important problem to dust?

I disagree that there's nothing new under the sun. Sure, components may be the same, but so is guanine, adenine, thymine, and cytosine, yet these components make so very different creatures.

I think your opinion is valuable, but getting more data is required: have you shown that project to your target audience? Do you have a simple use case. Just _one_ thing that helps a user accomplish a task that would otherwise require time, skill, resources, or all of these? Talking with users is _educational_ to say the least.

In the past, we used to spend months on a feature that would go un-noticed, and the prospect would stop us mid-presentation, call colleagues to the room, and ask us about a feature we hacked together in a few hours. Some things matter to you, others matter. An extreme view that is of course nuanced in real life, but it can move the project forward more than ignoring it does.

<comment><AUTHOR> What I'm currently working on is in its earliest stages at the moment, since I've reclassified it as a learning exercise it has been getting less of my time at the moment. Due to this, (potential) user interviews aren't at the top of the list now.

</comment></comment><comment><USER5> I built [https://choremate.co](https://choremate.co) because we needed it ourselves and I couldn't, initially, find something similar. When I applied to YC I did more extensive research and found lots of past and current attempts.

My approach has novel insight but part of why I couldn't find competitors is because the market for coliving tools is weak.

I suspect (from this obviously limited anecdote) the problem with most ideas where competitors aren't apparent is that the market is weak. In such cases, the real competitive advantage is likely in finding a solution to the market weakness. Market might be weak because existing solutions aren't very good but in my case it's more complicated.

Past/current attempts/failures can give you a lot of valuable information about what doesn't work so learning about them gives you a smaller space to search for what will work.

<comment><USER6> Looks interesting, I checked it out.

I'm curious, is your revenue model to keep all those $2 fines that get charged to roommates who don't do the dishes? :)

<comment><USER5> Thanks for giving it a gander!

Right on the money. I think that's the most approachable revenue model; "free unless you don't do your chores" or some such. Perhaps a paid tier with additional features or gated by household size ... I dream of making housing coops (10+ people to a house) much more scalable.

I have high churn ATM though so most of my concern is there.

</comment></comment></comment><comment><USER7> I don't remember the source of these:

a) Few ideas are actually novel.

b) Someone else doing the same idea is validation of your idea.

c) The more time you spend actually developing your idea, the further ahead you will be of anyone else who has the same idea.

<comment><USER8> > Someone else doing the same idea is validation of your idea.

This is one thing that I had recently learned. Though it does not relive you from the pain (that the idea is not unique/novel), but when you keep on continuing with the idea, along the line you will find different ideas get attached to your project which may or may not be the same as how your competitor idea has progressed.

If you give it more thought you will realise that this outcome is generally because different people have different outlook towards the world. Along the line you will choose one scenario over other and solve it, and these choices will make a difference in the long run.

I have not reached that far, but this is how far I think I have understood.

</comment></comment><comment><USER9> * Sometimes other things look similar but a small change you made to the idea is the novel part and makes a big difference

* Many, many ideas live in obscurity. If you can take one and learn how to execute it in a way that gets users, you've done something novel

* Creating is more frequently combining existing ideas into a new thing. There are infinite ways to weave together existing ideas into something new.</comment>


Hey CS Paper writers, please show your code - <AUTHOR> http://jacquesmattheij.com/Hey+CS+Paper+writers+please+show+your+code

<comment><USER2> Unfortunately, Jacques needs to answer a pretty basic question in order to get his wish: why? Why should CS paper writers show Jacques (or anyone else) their code?

We have discussed this topic on HN a number of times, for example:

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

Many of the comments in those threads do a better job summing up than I ever could. However, briefly, literally all of the incentives are aligned against publishing code and data.

If a writer's code is wrong, they are embarrassed (and there is no culture of being embarrassed by not publishing code).

If a writer publishes their code and it is actually good, someone else can scoop their follow-on results.

If a writer does not publish their code, and it is actually any good, they can potentially commercialize it thanks to the Bayh-Dole Act.

If a writer publishes their code and people intend to use it, the writer needs to clean it up, check it for correctness, and handle support requests. These activities are probably more time consuming than writing the code in the first place.

If the writer publishes their code, and other people in the writer's field do not, the writer is usually at a disadvantage. Others will appear to have more publications, the basic currency of academia. (Many people have great reasons for not publishing their code or data, especially researchers embedded at large companies making changes to large proprietary systems.)

So overall, yes, it would be great if CS paper writers gave out their code. What they are doing is not reproducible science in the philosophy of science sense.

But what is Jacques (or anyone else) doing to fix this system of incentives, and what could anyone do?

<comment><USER3> In science, there are still such things are "good manners" and "common scientific practices", not all of which are directly incentivised. For example, every article contains references to other articles that helped create it. Every article credits all authors, usually in a particular order (which differs culturally per discipline). They're all fairly common sense, and there are many more. Some are listed explicitly as rules for journal or conference submissions. Some, however, are considered too obvious for that.

These are rules everyone follows. People get frowned upon when they are not followed.

Unfortunately, when these rules came to be, there wasn't that much code around. You can't print out your physics experiment setup. Additionally, every additional piece of info, be it data, code, or whatever, would need to be printed and shipped. This cost too much, which encouraged a culture in which only the most important parts, findings and a brief story of how they were obtained, were to be included in publications.

But then the internet came. The whole world adapted, but science culture didn't. The internet allows large sets of information to be shipped along with papers. This does not just hold for computer science. Entire data sets of physics experiments could be included. Survey data, code, Matlab models, and so on.

All this data is collected using tax payers' money, done for the greater good of the world. It makes perfect sense to include it all with the publication, online. In fact, it is criminally wasteful to make different teams collect the same data, or do the same work, over and over again.

I think the only change necessary to make this happen is for a few influential publications and conferences to require that all data, code, etc is published online along with the paper. It can start in a niche subject area and expand from there.

What Jacques (or anyone else) is doing to fix this system is yelling on the internet about it, so that conference programme committees and journal reviewers may at some point be swayed to add this little rule.

A rule that makes sense, just like "your paper must contain an abstract" makes sense, just like "you must include references to all works you borrowed from or built upon" makes sense.

<comment><USER4> He's not actually saying they lack incentive so much as that there are significant disincentives. The rest of sience contains an incentive, various types of professional censure, for the behavior you describe. CS does not and in fact contains significant ince tives for secrecy.

</comment></comment></comment><comment><USER5> I _really_ don't think that it's easier to understand algorithm by reading its implementation than by reading its description. It's actually opposite -- frequently the idea behind algorithm is really hard to decipher if you only have access to code and not words. If you don't believe me, take an algorithm you don't know, read sample implementation (there are quite a lot on the internet these days) and try to _understand_ how it works. I suggest trying KMP and Boyer-Moore for text matching, or Miller-Rabin and AKS for primality testing, or even RSA -- RSA is terribly simple in theory, but if you don't have a clue how it's supposed to achieve its goal, and you don't have background in number theory, then your chances of understanding it just by reading the code are infinitesimal.

<comment><USER6> Why can't we have all three when relevant? Description + formulas + code? I understand why some algorithms (AKS, RSA) would not make sense if you just spit out the C code raw but I think it would make the paper much easier to understand if there was some code to go along with the formulas and descriptions, especially if the description is hard to decipher like "analyze the performance of the differencing algorithm on random instances by mapping it to a nonlinear rate equation."

<comment><USER5> In most (if not all) papers I read there was already pseudocode, which is actually better than real programming language, because it lets you express your algorithm in a concise way without all the real world overhead, like initialization, allocation, etc. If you cannot implement algorithm yourself by reading its description and pseudocode, it means that either you don't fully understand what you just read, or your programming skills need some polishing, and you should be rather reading textbooks than research papers for a while.

Also keep in mind that papers are written for the colleagues in the field to read, and not for the laymen, so it's no surprise that authors use the terminology familiar to people in the field. It makes no sense to write research papers with laymen in mind, because 99.999% of them don't care and the remaining 0.001% will learn terminology soon enough.

Also, you really should not expect that reading research papers will be as easy as reading newspapers, don't you agree?

<comment><USER7> Oftentimes, it is easy to overlook whether that real-world overhead affects the asymptotic performance of your algorithm in either an ideal sense or a pragmatic one. If memory allocation were free or memory were infinite, true constant time rather than amortized constant time push back on dynamic arays/vectors would be possible, etc.

Also, initialization often affects correctness, so it's much less frequently skipped even in pseudocode for an algorithm.

</comment></comment></comment></comment><comment><USER8> "Generally, academic software is stapled together on a tight deadline; an expert user has to coerce it into running; and it's not pretty code. Academic code is about "proof of concept." These rough edges make academics reluctant to release their software. But, that doesn't mean they shouldn't. "

From:

<http://matt.might.net/articles/crapl/>

</comment><comment><USER9> Who says that we actually _have_ code? I think it took most of a decade before anyone implemented the algorithm from my first paper.

<comment><USER10> >before anyone implemented the algorithm from my first paper

Link to both please? I am lazy and incapable of basic Googling. I sit in shame, but also hope that you will fulfill my request.

A beer awaits you in SF regardless!

<comment><USER11> His username lent itself to searching, so I doubt he'll mind me posting: <http://www.daemonology.net/papers/>

<comment><USER10> First paper was pi-related.

The bsdiff stuff looks interesting (to me) though.

<comment><USER9> I meant my first published paper: <http://www.daemonology.net/papers/fft.pdf>

</comment></comment></comment></comment></comment><comment><USER12> I agree with the writer, in many ways. But it's going to be a huge uphill battle.

I'm on the other side of this, too, as a researcher in algorithms. Earlier this year, I submitted the first paper I've ever written, in which I would consider some related code to be an essential part of my research. Now, consider what this means.

\- I had some spend a _lot_ of time getting the code into shape. Documentation, general clean-up, etc. This was time I could have spent writing other papers. Publication output is a huge determining factor in academic tenure & promotion decisions. Seriously, the way things are now, you're asking people to risk not getting tenure, in order that you might have their code.

\- The idea of a published paper, is a _permanent_ record of the research. Repositories for code that are of a similar permanent nature, are few & far between. Some journals are starting to allow arbitrary attachments to papers, which can them be obtained online. I submitted my paper -- along with the code -- to such a journal. But this greatly restricted the list of journals I could submit to. And it pretty much left out all of the truly prestigious ones. Again, a problem.

</comment><comment><USER13> Not to be harsh, but the code I've seen taken from "scientific" papers were the worst code I've ever seen. One function of a couple of thousand lines in C++ (But using a mix of C and C++ functions) using variables named with 1 or 2 letters.. without comments, gasp.. I still do nightmare about that (I had to refactor that code.)

 _But_ I do agree with Jacques that I so much prefer a graph with a summary than a couple pages of unreadable mathematical expression. A high-level pseudocode of the general idea might also be great. Sometime, I feel like the paper wasn't written for people to understand.. but as a way to make it seem difficult. It's not rare that I talk with an author of a scientific paper and can easily summarize an entire paragraph with a couple of simple sentences..

<comment><USER5> _Of course_ it wasn't written for people to understand -- it was written for their colleagues in their field, and _all_ they care about are these pages unreadable mathematical expressions.

 _It's not rare that I talk with an author of a scientific paper and can easily summarize an entire paragraph with a couple of simple sentences.._

And when I talk about math with my friends over a lunch, much, much more information can be conveyed than by spending the same amount of time on reading papers. However, it does not prove that papers are written in unintelligible way, only that human-to-human communication is much more effective than paper-to-human.

</comment></comment><comment><USER14> I would be interested to see more CS research happen in a more open source like way, like how we see projects work on github where it is easy for anyone with an interest in an area to get involved, run the code and contribute.

Obviously this wouldn't be possible in all branches of CS research and there is the danger that these kind of projects would get stuck local maximas without a few minds driving the research and the ability to understand it well enough to make large scale changes.

Still a lot of good could probably come out of it, plenty of smart CS minds that while they don't have time to commit to the reading and work required to drive their own research project have the expertise to contribute to small parts of other peoples.

<comment><USER5> That's funny, because, you see, actual research really works like this. Instead of Github you've got journals, and seminars on universities. The smart minds contributing small parts to other people's research are graduate students.

The thing is, actually contributing in the cutting-edge research is _much_ harder than helping FOSS projects. Most researchers I know think of their problems day and night, while to be helpful in community software projects it's enough to spend few hours on weekends.

</comment></comment><comment><USER15> This won't fly in the real world. If an academic writer includes a link to their code in their paper, when it goes through peer review before being published, it will no longer under be a blind review; the reviewer will know who wrote the code by virtue of the github account or domain it's uploaded to. Blind reviews are important, as if you know you're reviewing a paper by someone who rejected your paper, you're more inclined to reject it. That really happens, people are that petty.

Additionally there's the risk that the reviewer will reject the paper, and download the code and publish a paper about it quickly in some other journal/conference.

<comment><USER5> Your counterpoints are irrelevant. You can obviously attach code to the article, so that there's no need to include any link or other similar thing. If a reviewer wants to do the thing you described, the actual possession of the code is not a big help for him -- what actually keeps him from doing that is honesty, decency and the respect he has among his colleagues he would instantenously lose.

</comment></comment><comment><USER16> I would like more code simply to prove the things described in the papers. The exploration just feels incomplete to me if I can't run some code and hack on it to test how it changes behavior.

</comment><comment><USER17> I read a lot of CS papers and am not particularly strong on formal math (that is, I have a lot of gaps) but I'd rather _not_ have actual code to demonstrate concepts. Instead, I prefer it when they use pseudocode because it forces them to boil their implementation down to the simplest parts possible than cut and paste code into a paper.

</comment><comment><USER6> I'd be happy with just pseudo-code.

</comment><comment><USER18> It seems to me like most CS research projects wouldn't necessarily have much code behind them. Obviously, data structures and algorithms could, but implementations are generally trivial once you've got the academic paper.

</comment><comment><USER19> Sorry. A peer-reviewed research paper in computer science is supposed to be an original contribution to knowledge meeting the usual criteria of new, correct, and significant.

Okay, how do we present knowledge? Text? Yes. Text with math as in, say, a book on math or mathematical physics? Yes. Code? Nope! Sorry 'bout that!

Yes, coming from the programming side, many programmers have accepted that code, especially with mnemonic identifers, actually is meaningful and a substitute for good text possibly with good math. Sorry, guys: In principle, it just ain't. In simple terms, the code is meaningless; code with mnemonic identifer names and careful indenting is still meaningless and at best a puzzle problem to solve to identify the intended meaning. Sorry 'bout that. Yes, often in practice, with enough context from outside the code, can get by with just mnemonic names and pretty printing. Still, it's just ain't knowledge.

Really, for being knowledge, the code should be like the math in, say, a physics text, that is, surrounded by text. The math does not, Not, NOT stand alone and by itself is just meaningless. E.g.. F = ma is no more meaningful than a = bc. For either equation, the meaning has to come from surrounding text where the equation becomes just a nice abbreviation for what is in the text. So, for code, the comments play the role of text in a physics book and the code plays the role of the math in a physics book. As in a physics book, the text (comments) are MORE important than the math (code). Again, code just AIN'T knowledge. Sorry guys.

<comment><USER20> I think you are missing the point. The article is not about "give us the code instead of a paper", but instead about "give us the code as a supplement to the paper". The basic argument is that sometimes text alone is not sufficient to explain - a point you concede to by mentioning that the formulae exist in textbooks along with the description. The reason they include those formulae in physics books is because the text is one way of describing something, and the math explains the relationships. Both have their strong points.

Take for instance many protocol standards: they come with a reference implementation, because sometimes the text is harder to understand when you can't compare it to code which actually does what is being described.

<comment><USER19> I was trying to be short and clear.

Your

"The article is not about 'give us the code instead of a paper', but instead about 'give us the code as a supplement to the paper'."

is an appropriate interpretation of the paper. But I can't have much sympathy for that interpretation because the code can be so darned long and obscure.

Some 'pseudo-code' of, say, a dozen lines as a 'figure' is okay. In nearly all cases, any code very close to something that actually runs in practice would tend to be too darned long.

The 'knowledge' of the paper is supposed to be clear just from the paper. Then the code is supposed to be 'routine'.

If the main body of the paper does not make the knowledge clear, then including a few hundred lines of code has little promise of improving the exposition.

There's a good history supporting my point in books by Knuth, Ullman, Sedgewick, the paper

Ronald Fagin, Jurg Nievergelt, Nicholas Pippenger, H. Raymond Strong, 'Extendible hashing—a fast access method for dynamic files', "ACM Transactions on Database Systems", ISSN 0362-5915, Volume 4, Issue 3, September 1979, Pages: 315 - 344.

and more.

For your

"The basic argument is that sometimes text alone is not sufficient to explain - a point you concede to by mentioning that the formulae exist in textbooks along with the description."

I believe you are asking too much of the equations, not a lot too much but too much.

In simple terms, even pure math is, usually is, at best is, is supposed to be written in complete sentences in a natural language, say, English. E.g., in a physics book describing Newton's second law, we discuss force, mass, and acceleration, explain that force is a vector F, mass is a scalar m, and acceleration is a vector a, say that force is the product of mass and acceleration, e.g.,

F = ma

So, by the time get to the equation, almost don't need it. Of course, not ALL writers write this way!

A long sequence of algebraic derivations is supposed to have a start much like what I gave for F = ma and after that is just algebraic derivations, often with not much need for more text.

For

"Take for instance many protocol standards: they come with a reference implementation, because sometimes the text is harder to understand when you can't compare it to code which actually does what is being described."

yes, there is a practical challenge there. Finally the Unix world decided to 'go empirical' and have 'code runoffs' or whatever they were called where people just got together to see if the actual code, say, the TCP/IP stack with SSL, would actually appear to work. Of course, that empirical approach was always risky because it is a long way from a mathematical proof of correctness or even a solid engineering document. And we've seen problems, e.g., with security in DNS.

For more, the AI world decided to f'get about 'theory' or even usual scientific documentation and make the criterion just 'does the code appear to work'. This, too, has proven to be risky and, of course, is a big step back in documentation quality from good applied math, mathematical physics, and engineering of past decades. E.g., how the heck to know that the Manhattan Project was on track before the first test? Sure: There were a LOT of derivations and calculations; that is, the project didn't rely on just the empirical approach. Indeed, the uranium bomb was dropped on Japan as the first 'test'; the engineering was so solid there was no doubt it would explode.

Sure, there is a big role for testing, but, still, the 'knowledge' in a journal is supposed to be able to stand on its own without much help from detailed documentation on code, electronic circuits, mechanical mechanisms, or chemical reactions. In particular, in experimental science, the published paper is supposed to be clear enough to permit others to reproduce the experiment, and to do so without detailed photographs and drawings of apparatus.

When I was an undergrad, one summer I worked in the lab of a famous scientist. He explained to me how a scientist is supposed to keep a good notebook and really good records. Then if another scientist wants to check details or reproduce results, sending the notebooks and data is supposed to be an obligation, and the materials are expected to be handled with great care and then returned.

So, yes, at times, in practice, there can be more that is relevant than just the published paper.

Still, communicating the 'knowledge' of a research paper with a few KLOC of code is a bit much!

<comment><USER20> I really think you are fighting a strawman here. Your argument is all over the place too... Is the math supposed to be clearly explained in text or just the starting conditions from which the rest of the formulae just tell the story for you?

Moving on to DNS having security holes and other problems with protocols made with reference implementations -- how is this relevant? Lots of scientific papers get published that later turn out to be wrong, whole fields of study sometimes look really good and push our understanding of the world but ultimately go away as "the wrong approach". This is just progress, not a fundamental flaw in putting making code available.

When you say the "knowledge of a paper" should stand on its own, without the need for the circuits, code, etc to understand it -- this is true of many fields, but not true when the paper is about the circuit, the code, etc. Then that very thing should indeed be presented, otherwise no amount of text will properly explain it, other than a 1000 words where a picture would suffice.

As for your famous lab scientist -- why is it ok that he wants to make notebooks and other lab stuff available, but when we ask for code to be put in a public repo when reviewing papers we are suddenly breaking knowledge?

An finally, about your last sentence -- supplemental code is not an attempt to transmit the knowledge with the knowledge of a research paper. The word supplemental means "in addition to", the paper should still happen!

A last, slightly tangential thing: No matter what you say about text being the only way to transmit knowledge, there are plenty of occasions where a simple digram transmits much more meaning to me than reams of text, I am visual thinker and learner. Similarly there are times when a few lines of code can tell me as much as paragraphs describing them. There are times when I see an equation and get what the paper is trying to discuss. There are also times when the text is invaluable, and without it I would be lost, no matter how good the diagram or equations or code. The methods of knowledge transmission are many -- to be stuck on a single type as the "true way" is a bit absurd and/or pretentious.

<comment><USER19> The resolution appears to be there are two quite different worlds: First there is the world of peer-reviewed research papers in computer science where the goal is to present knowledge that is new, correct, and significant and that sometimes results in code. And second there is the world of commercial computing that is heavily about just code. But these two worlds are very different. In particular, the research papers are not trying to document or describe code. Moreover, in the knowledge presented in a research paper, that knowledge is supposed to be in the form of text, possibly with some math, but not in code. E.g., the original paper with heap sort didn't need code; Knuth's presentation of heap sort in TACP has only a little code, in his language MIX which few people bother to understand, that is not essential.

"Is the math supposed to be clearly explained in text or just the starting conditions from which the rest of the formulae just tell the story for you?"

Again, you are asking too much from the math. Again, 'math' is supposed to be written in complete sentences. In particular there is no 'new language'. I illustrated with F = ma: You are supposed to get nearly all "the story" from the text and not the equations. Well written math doesn't ask a reader to get "the story" "just" or even primarily from the equations. If you don't want to accept this description of good writing in math, then so be it, and our main difference will be right there and not "all over the place".

Again, yet again, once again, the knowledge is supposed to be in the text, in well written paragraphs, in complete sentences, and there is no 'new language'. For an equation such as F = ma, that is a part of speech, a noun. And again, yet again, the surrounding text is supposed to be so good that the equation is hardly needed. Again, yet again, one more time, please read it this time, you are not supposed to have to dig the meaning out of the equations in more than a peripheral sense.

"Moving on to DNS having security holes and other problems with protocols made with reference implementations -- how is this relevant?"

Because, again, the code, including in a 'reference implementation', doesn't mean anything. We shouldn't ask to determine correctness, or even the quality of the design or engineering, just from the code, not even code with mnemonic identifier names and many in-line comments. The 'relevance' is that we see that the DNS code had security problems, that is, was not high quality design or engineering, and the reason for those problems is that high quality design and engineering are in text and NOT in code. So, with just the code, we have no solid, rational support of the quality of the design or engineering. Instead, about all we have is the code. Then to know if the code has high quality, we just deploy it and wait for the bug reports. Then we study the code, see where the problem is, patch the code, deploy it again, and wait for more bug reports. NOT good. NOT high quality design or engineering.

We do NOT design or engineer airplanes like in a 'reference implementation' of DNS. Instead, before the plane carries passengers, we have a mountain of rock solid engineering, heavily in text, saying that the plane is safe. We do NOT primarily determine the safety of an airplane by putting one million passengers in it. In DNS, we determined the quality of the work primarily by deploying it, using it in real networks, getting the bug reports, and then fixing the bugs. So, the DNS engineering was shoddy work compared with nearly all of the rest of engineering.

Broadly we just cannot expect to have delivered high quality software when what is delivered is mostly just the software. Instead, the quality has to be in a document almost entirely in text. In high quality? Yes. In common commercial practice? No.

Fundamentally it is the text that really matters, NOT the code. Again, yet again, given the text, the code is supposed to be routine. This holds in 'research level' 'knowledge'. Sure, this doesn't hold in routine commercial practice.

"Lots of scientific papers get published that later turn out to be wrong, whole fields of study sometimes look really good and push our understanding of the world but ultimately go away as 'the wrong approach'. This is just progress,"

No, you are not describing "progress" but are describing just mistakes, that are sometimes costly, and are to be avoided strongly.

"When you say the 'knowledge of a paper' should stand on its own, without the need for the circuits, code, etc to understand it -- this is true of many fields, but not true when the paper is about the circuit, the code, etc."

No, not really: We're talking about peer-reviewed research publications of 'knowledge'. That 'knowledge' is not really supposed to be about the circuit or the code. Instead, the circuit or code are supposed to be routine implementations of the knowledge in the paper.

You want to elevate the circuit or code to the level of knowledge, and that is backwards and wrong. Your goal of elevating code to the level of knowledge and what is primary is not promising. In simple, blunt terms, so far without serious exceptions, 'knowledge' is communicated in text, possibly with some math, in a natural language. That's all we've got. There ain't no more.

"Then that very thing should indeed be presented, otherwise no amount of text will properly explain it, other than a 1000 words where a picture would suffice."

In the communication of knowledge, we don't depend primarily on pictures, figures, diagrams, schematics or code. Instead we communicate knowledge in text, possibly with some math. Again, good examples are in books by Knuth, Ullman, Sedgewick, etc.

Again, yet again, once again, please try actually to read it this time, there has been a long tradition in math that there should be no diagrams or pictures at all, not even in vector calculus. Much of the motivation was to have the discipline to make SURE that the content was in text, just text, with some math, and NOT in pictures. Again, we didn't want the content to be in pictures. This point is SERIOUS about keeping up the quality of the material.

For pedagogy, a picture can be terrific, but 100% of the content should also be in the text.

"As for your famous lab scientist -- why is it ok that he wants to make notebooks and other lab stuff available, but when we ask for code to be put in a public repo when reviewing papers we are suddenly breaking knowledge?"

We're not. Put all the code in public repositories you want. Put in 1000 KLOC. Fine with me. But the code in the repository is not going to be part of the paper, e.g., it will not be reviewed in the peer-review process. Moreover, the paper just MUST make sense with no reference at all to the code. Again, the code is NOT the knowledge or the subject of the research paper. Again, the paper is NOT about the code; it is not a paper describing the code; the code is not the 'contribution to knowledge'. Instead, the code is at most a hopefully routine implementation of the knowledge in the research paper.

"No matter what you say about text being the only way to transmit knowledge, there are plenty of occasions where a simple digram transmits much more meaning to me than reams of text, I am visual thinker and learner."

Fine. So are many people. But such ways of 'transmitting knowledge' are NOT what we are talking about. We're talking about peer-reviewed research papers. Tutorial presentations can be very different. Movies are very different. TV is very different, even some of the TV cooking shows that try to be instructional are very different.

Maybe the main point of misunderstanding is, practical computing is nearly all about code, just the code, and, thus, you have accepted that computer science research papers can be about describing code. No. Instead, for such papers, any code is supposed to be just an implementation of the knowledge in the research paper and routine. The knowledge in the research paper is NOT 'code'.

The knowledge in a peer-reviewed research paper is supposed to be rock solid, and, again, yet again, we don't communicate that with pictures or code.

Pictures and code? In tutorials, fine. In commercial work, sure. In research papers, only a few lines of 'pseudo-code' in a picture that is not essential to the paper. Understand now?

</comment></comment></comment></comment></comment><comment><USER21> Most often they don't have any code. Most of the action takes place inside the head and not inside the computer. What they have are proofs of correctness, invariant enforcement, complexity bounds etc. I doubt that reading the code will improve understanding of the algorithm anymore than a thorough description of the algorithm.

</comment><comment><USER22> But... computer scientists don't write code! That's not what they're studying, it's not their job!

Writing code is what women do.

"Computer Science is no more about computers than astronomy is about telescopes."

<comment><USER23> While I do not agree to the fashion in which the above comment was made, I do agree with the sentiment.

I know a few computer scientists who are really good at algorithms and theoretical computer science but will not write/be-willing-to-write code. There are, many times, constraints because of lack of proper representation in the language or because of added complexity in actual code than in pseudo code (because of edge cases - unnecessary boilerplate code to just make the code run etc.).

Additionally, many a times the paper might be presenting part of a larger algorithm/solution and that part in itself might not be useful/compilable.

I think that pseudo code fulfills the need for most of the cases; at times when it doesn't peer reviewers would ask for code and the same will be provided if possible.

[edit: typos]

<comment><USER23> Oh and papers without implementation make up a significant part of a lot of undergraduate course projects. I am actually looking for an interesting research paper to implement for Digital Image Processing.</comment></comment></comment>