Solid – Re-decentralizing the web - <AUTHOR> https://github.com/solid/solid <comment><USER2> I enjoyed hearing about Solid and other "de-centralizing technologies" at the Decentralized Web Conference last June in SF.

That said, I think that there is a less elegant but far simpler approach that I use: I write articles for my own blog and often I decide to license my books using a Creative Commons license. I then use traditional social media (Gnu Social, FB, Twitter, G+) to link to my own content.

It bothers me (a little) when I see people putting a large amount of effort into generating content for platforms they don't own. I personally think that social media is OK for posting vacation pictures and simple stuff, but for anything you work hard on, why not have your own content on your own domain?

<comment><USER3> I run my own blog and link to it with Twitter too. Why don't more people do it? It's more work to do so. Medium, Facebook, etc. actually do a fair amount of work for you, for better or worse. That is, they do provide value in exchange for what you give up.

I see two kinds of people for which it make sense economically to own their own site:

(1) Technical people like programmers. Because of their skills, the cost to owning a site is low.

(2) Business owners. They can afford to pay a high price because it contributes to the business. That said, many small businesses choose to use Facebook or Squarespace as their presence. I guess with Squarespace you own the domain (?), but migrating out is still a pain.

That probably accounts for 5% of people with a web presence... for the other 95%, getting the tools for free is apparently more important than owning the site.

</comment></comment><comment><USER4> There are a lot of efforts to "re-decentralize the web" and none of them seem successful. In my opinion, that's because their authors are trying to implement some elves fantasies.

1\. Has anyone of the "redecentralizers" ever thought about how developers would monetize their software? The web as we know it is popular because there is financial incentive. Current web makes it possible to implement any monetization model out of existing 12: product, service, Subscription, Resale, Audience Aggregation, etc. Why would you want to limit that?

2\. Has anyone considered compatibility with the existing applications? Yeah, that's non-trivial, but wouldn't it be cool if with minimal effort we could move existing software to a more decentralized model?

3\. Don't tell me which stack of technology to use. Not everybody wants to build JS SPAs.

4\. Has anyone ever built a useful and successful decentralized service. I mean the one that would be popular even if it's centralized, not just like "Facebook but federated". How about starting with this step instead of creating an abstract protocol?

<comment><USER5> The web came to be because people could freely express themselves, share their hobbys, interests and works with a global audience. Monetisation played a minor role for a very very long time. I miss that old web.

<comment><USER6> Has this old web really disappeared or us it just dwarfed by the new web today?

<comment><USER7> The old web is still there but it is definitely dwarfed by the new web. Search results are gamed, comment sections are spammed, product placement and paid reviews are rampant, fake neutral information websites erode trust. Because there is money involved and access to the Internet is not controlled, some people chasing the dollars ruin the experience for everyone. They keep generating noise in their chase of money so that eventually the old web is impossible to find because most links lead to the new web.

<comment><USER6> It sounds like an interesting technical problem at first. A search engine for hobbyists. Use AI or whatever to filter out commercial interests.

The problem is that nobody will pay you by definition and you are in an arms race against commercial interests. Does not sound sustainable.

<comment><USER8> Remove the cause and not the symptoms!

<comment><USER6> Remove capitalism?

<comment><USER9> Yes!

<comment><USER10> haha, stop capitalism - it took GeoCities away from us! Very compelling.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> The web decentralization movement hasn't gotten very far as far as adoption goes. But that is because it is pretty new and the technology is still being worked out.

There is a real question, however, as to what would motivate the vast majority of current web users to switch off of centralized services and on to decentralized ones. What I am hoping is that once the tech gets solid, one or more people who are good at thinking about ordinary users will come up with some ways to win them over.

My own thought is to figure out what it is that people value that centralized services, by their very nature, cannot provide, but that decentralized services can.

Along these lines, maybe what will happen is Facebook will get hacked, millions of people will suffer as a consequence, and then people will be in a frame of mind to listen to arguments for decentralization.

<comment><USER12> > There is a real question, however, as to what would motivate the vast > majority of current web users to switch off of centralized services and on > to decentralized ones.

I imagine decentralized tech would creep into everyone's lives by accident, service by service, rather than happening all at once. I don't think people care (yet) about how their bits are pushed around, but they'll jump into a decentralized service if needed to keep up with the latest craze.

</comment></comment><comment><USER13> I think WebDAV would be a much more natural fit for this problem. When people think WebDAV they usually think Microsoft, but it's actually a very mature, open HTTP extension standard.

RDF has a high barrier to entry, and it's going to take a lot of work to get this REST API to even come close to what WebDAV already does-

      * Locking
      * Versioning
      * Expressive ACLs
      * Expressive search
      * Quotas
      * Simple distributed data structures

Granted, some of those features use an equally arcane XML syntax, but at least there's already tooling.

<comment><USER14> From what I understand, Tim Berners-Lee is really passionate about RDF because it helps build an interoperable semantic web. Unlock the data, which makes sense.

Also, these days LD-JSON exists and is totally compatible with RDF. And in fact Facebook's Open Graph and Google's schemas.org are RDF!

</comment></comment><comment><USER15> The web already is decentralized. It's literally possible for anyone to create their own content, platform etc.

It seems to me that these re-decentralizing attempts are really just marketing in open-source wolf-clothes.

Furthermore you don't re-decentralize the web my making a tool whos value proposition is just that. Create something which has value, which people want to use instead of something else. Thats decentralization in reality.

<comment><USER16> People have been conditioned now for a decade to attach value to their like/retweet/view/karma counts.

It's the core piece of the architecture producing the instant gratification high that everyone is addicted too.

It really is the biggest factor that forces centralization of our social networks. Any decentralization scheme that produces value needs to address it. Most that get proposed don't.

<comment><USER14> That's because the current "social" web is really about announcements and talking at crowds.

Real social activities are decentralized local things like:

      * Going to dinner
      * Taking a trip together
      * Chipping in for a gift
      * Attending an event
      * Dating
      * Interacting with one another
      * Forums and communities
      * Group driving
      * Meetups
      * Volunteering in community
      * Helping after a disaster
      * Buying and selling furniture

That's the stuff you don't need global singletons for.

You don't need your signal to go to facebook or even AT&T to invite friends for dinner.

Centralized social networks and governments cause perverse feelings in local communities where eg democrats and republicans living next to each other increasingly hate each other.

I talk about it here: [https://www.youtube.com/watch?v=WzMm7-j7yIY](https://www.youtube.com/watch?v=WzMm7-j7yIY)

<comment><USER17> Even 'real' social activities are increasingly reliant on multinationals that economically dominate their spaces. You don't HAVE to use them, but it is rarer and rarer to not roll up to a multinational. That is still a form of centralization.

</comment></comment></comment></comment><comment><USER18> I suppose this is hot on the front page because of the corresponding Tim- Berners Lee story. In any case, I'll state again that decentralization is really a _" game-theory-economics"_ puzzle and not a "protocol" or "node software stack" problem. Most software projects and essays on this subject keep analyzing the situation in terms of the software tech.

That limited lens of software is fine if one has modest ambitions for the decentralization to only spread to a small group of tech-minded enthusiasts. (E.g. a decentralized-StackOverflow could be successful.) However, that framework won't be enough for a billion non-techies to choose decentralized social over something like Facebook.

In a previous comment I wrote: Thinking in terms of technology & software like the "fathers of Internet"[1] have done to try and "solve" the adoption of decentralized ecosystem is misguided. Instead of thinking in terms of the "software stack", think about the _economics_. Yes, luminaries like Vint Cerf and Tim Berners-Lee are smart but they don't seem to ever address the economics of why a billion people won't choose to run a decentralized stack from home computers. Not just economics of bandwidth and harddrives but also economics of diffused trust, security updates, etc.

My theory on why those scientists don't put economics at the forefront of their pleas for a decentralized internet: their formative years of the internet happened when the entire Internet was _sponsored by the government and universities_. So to them, it just seems like today's problem can be solved with "technology".

As another example of how "protocols" & "specifications" don't really solve decentralization, take a look at the old SMTP RFC 821[2] from 1982. As you read through it, notice that it talks about how fields are sequenced, etc. _The technical stuff._ But there is nothing about how people _pay_ for pushing SMTP bytes around and storing it on harddrives. To be fair, the "economics" are out of scope for a RFC. But knowing what we know now, you can see that a computer scientist can read that RFC 821 and _not predict_ that centralized email like Gmail/Hotmail emerges from it by way of aggregate human behavior. (E.g. the word "spam" is not found anywhere in RFC 821 and yet that is one of the primary drivers of the economics and why ISPs block port 25 on residential internet.)

[1] [http://spectrum.ieee.org/view-from-the- valley/telecom/intern...](http://spectrum.ieee.org/view-from-the- valley/telecom/internet/the-fathers-of-the-internet-revolution-urge-todays- pioneers-to-reinvent-the-web)

[2] [https://tools.ietf.org/html/rfc821](https://tools.ietf.org/html/rfc821)

<comment><USER19> The reason these things aren't discussed is because they shouldn't have to be discussed.

> their formative years of the internet happened when the entire Internet was > sponsored by the government and universities. So to them, it just seems like > today's problem can be solved with "technology".

As it should be.

The internet mirrors our reality, and our reality mirrors the internet. If we let corporations control either, we've already lost. We have to ensure all data is owned by the people, or cooperatives, governments, etc they formed democratically.

If we let corporations control data, and access to it, and use it, then we have already lost.

I'll mention at this point Bundesdatenschutzgesetz §34, allowing a user to get the canonical representation of all data stored about them from any entity that has data on them, plus a list of all entities they gave data about the user to, plus info what data they gave to which entity, plus all data derived from this users data (including probabilistic models trained from the user's behaviour or choices, for example models for credit scores).

<comment><USER18> _> The reason these things aren't discussed is because they shouldn't have to be discussed._

Whether one chooses to analyze the economics or ignore it, the fabric of monetary incentives _is always there_ because harddrives and bandwidth are not $0.00. Even ephemeral things like "trust" and "reputation" are not zero cost to implement. Maintenance tasks such as "software installs" and "upgrades" are also not free.

If those costs (which are never specified -- and can't be specified) in the technical protocols are not mentally accounted for, it will seem like "centralization" is some weird illogical phenomenon. One would _incorrectly_ believe that the masses haven't adopted distributed protocol stacks like IPFS, sandstorm.io, Diaspora, GNUSocial etc because the "technology" is a problem. If you focus on technology like that, you'll just end up inventing _another distributed protocol that non-geeks will not use_.

Put another way, you can write a paper specification that such & such protocol is designed for decentralized deployment. You can also draw out an architecture diagram that illustrates how peer-2-peer nodes can be federated, etc. However, all those intentions still have to be executed in the _real world_ and the real world _costs money_. That is why decentralized protocols/tools like SMTP and Git coalesce into centralized entities like Gmail/Hotmail and Github.

E.g. the Git specification about BLOBs, sha1 hashes, etc _does not include a free $10 /month VPS server_. Therefore, if I want to post a public repo without having to use my credit-card to pay for bandwidth, I can just put it on Github. Thousands of people making that similar _economic decision_ leads to a centralized Github.

<comment><USER19> But this can not be solved.

The only way to solve this is having a rich entity subsidize it.

And those can only be either companies trying to abuse your data for their own profit, corporate and noncorporate entities that try to do good (foundations, NGOs, etc), universities, or governments.

That's why I said what I said. The web can only work if we get rid of the corporations, or massively regulate them while subsidizing the independent projects.

That's why the Prototype Fund exists [https://news.ycombinator.com/item?id=12200777](https://news.ycombinator.com/item?id=12200777), why the German government has previously funded GPG, why the German government and the EU have funded work on KDE several times [https://www.cnet.com/news/germany-funded-linux-software- arri...](https://www.cnet.com/news/germany-funded-linux-software-arriving/), why universities fund open source work often, etc.

</comment></comment></comment></comment><comment><USER20> Rule of thumb: if you want people to do X, make people to have economic incentives to do so.

If you want to make the web decentralized again, then think about how would you pitch it to consumers and companies, no tech guys like us.

</comment><comment><USER21> I guess everyone has their own take on how to do this. (Here's mine: [https://github.com/electron/electron/issues/6697#issuecommen...](https://github.com/electron/electron/issues/6697#issuecomment-280750050))

What's missing from many of these projects is the ability to remix / mashup people's peice of this goal. Imo, these efforts often seem to attract grand visions instead of utilitarians. I talked to one guy and he was pretty hostile about me using his _open source_ code in a way he didn't approve.

<comment><USER22> You may be excited about your project, but this really isn't doing the same thing as SOLID at all.

"within a few months I'll release an open source ML powered browser that speeds up their web browsing experience by something between 10X-100X" sounds more grand than utilitarian to me.

Nobody has to change their code to support whatever odd thing you want to do with it, or even to think that what you want to do is worthwhile. It's open source, change it yourself. Or don't, but remember that other people have the right to say "no, I'm not doing that."

<comment><USER21> If you load stuff from disk vs the web, I'm pretty sure those numbers bear out. BTW I was happy to write the code, but he wasn't happy to take the pull request. That's fair enough but it changed my calculations on where to spend my hobby time so I wrote my own version of his code.

</comment></comment></comment><comment><USER23> At first I thought this was just reinventing the wheel, but now I realize what they're really doing: taking what was formally an incompatible, proprietary set of enterprise solutions and turning it into a set of standards that can sit on top of any platform.

The big win is actually cross-platform compatibility for user, system & network management protocols. I don't think the goals they want to achieve matter to users, and are antithetical to corporate interests. But it'll be neat to have these protocols work with so many existing systems.

This is going to be a fucking security nightmare, though.

</comment><comment><USER24> I view a centralised web as a similar to à biological system of clones. A few large cloud actors are running similar systems that are essentially copy pasted blueprints. Such a system in the analogy of an biological immune system is vulnerable to diseases. A decentralized web is more resilient because each node is slightly different.

"Monocrop agricultural systems provide an ideal environment for pathogen evolution, because they offer a high density of target specimens with similar/identical genotype" source: Wikipedia

</comment><comment><USER25> We developing [https://bubblehunt.com](https://bubblehunt.com) \- it's search platform, where every user can create own search system without coding. And main idea - web decentralization, you can get information by users, where every become independent information provider, like miniGoogle. Maybe you can give us advice, how we can using Solid on our platform?

</comment><comment><USER11> Anybody know how this relates to ipfs? Is it an alternative, or something that could be built on top of ipfs, or what?

</comment><comment><USER26> > Solid (derived from "social linked data") is a proposed set of conventions > and tools for building decentralized social applications based on Linked > Data principles.

Try to imagine a set of proposed conventions and tools for building decentralized (or distributed) digital cryptocurrencies written _before_ the Bitcoin whitepaper. All the hard problems-- consensus, reducing trust in third parties, defending against Sybil, etc.-- are outside of the scope of this proposal.

What are the chances that such a proposal would be not only relevant but also significantly improve the design of future distributed cryptocurrencies?

This is relevant because many of the same hard problems are still outstanding when it comes to building secure social applications where the user has some semblance of control over their data.

</comment><comment><USER27> Related to [https://news.ycombinator.com/item?id=14125090](https://news.ycombinator.com/item?id=14125090).

</comment><comment><USER28> Where can one find a simple "Hello world" example of an app built upon Solid?

<comment><USER29> linked in the repo: [https://github.com/solid/solid-tutorial- angular/blob/master/...](https://github.com/solid/solid-tutorial- angular/blob/master/README.md)

<comment><USER30> WebID-TLS authentication failed. is all i get from [https://melvincarvalho.github.io/helloworld/](https://melvincarvalho.github.io/helloworld/)

</comment></comment></comment><comment> m-j-fox Sell this to me as a user.

<comment><USER31> No.

Selling is what got us into this mess.

<comment><USER9> Exactly. People harping that this is not "commercializable" miss the point that selling out of the web is the very thing this fights against.

The creators of personal computing and internet like Licklider were idealists who envisoned the computer being a tool to expand human intellect.

>"In a few years humans will be able to think as no humans have thought before"

See the scope of their thinking and that of sellouts who want to commercialize personal data to squeeze dollars.

The crass selling out of the ideals by the later "entrepreneurs" who claim to make the world better but have no such ideals other than profits has resulted in complete mess.

</comment></comment></comment><comment><USER32> How about, instead of trying to come up with protocols, just make forums and blogging sure that are so good that people prefer them to other mediums like facebook/reddit/twitter?

Make them available to install (like traditional forums) instead of a good service. And build into them methods for users to liberate their data and/cross-link their identities from one software to another?

<comment><USER33> Could take a step back down the technology chain and use email, newsgroups, and XMPP hidden behind a great GUI.

Not very sexy, but it would be ridiculously decentralized.

Throw in GPG for some behind-the-scenes encryption and authentication if you really want to knock it out of the park.

<comment><USER34> GPG would not guarantee Forward Secrecy. OMEMO [0] is better if XMPP would be considered.

[0]: [https://conversations.im/omemo/](https://conversations.im/omemo/)</comment></comment></comment>


Effect of Acute Exercise on Prostate Cancer Cell Growth (2013) - <AUTHOR> http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0067579 <comment><USER2> Hi, pathology resident here, studying prostate cancer, and apoptosis in particular. This is an interesting study, and I'm glad to have seen it. I submit that growing a line of cells in culture has relatively little the natural progression of those cells in vivo. Indeed, any cell line that can be propogated in definitely ex vivo surely has some funky stuff going on inside. So, if you're inclined to say that we should be skeptical of mouse models, we should be _really_ skeptical of cell lines. For example, the modal number of chromosomes in these cells is something like 85 (normal is 46).

That said, interesting idea. I noted in the methods that the cells were not grown in low-oxygen conditions, and I'm wondering, if the authors are listening, why they didn't do that.

<comment><USER3> check those who are citing them with the keyword 'oxygen': [https://scholar.google.com/scholar?q=oxygen&cites=1233997312...](https://scholar.google.com/scholar?q=oxygen&cites=12339973123494715706&scipsc=1) (or without it: [https://scholar.google.com/scholar?&cites=123399731234947157...](https://scholar.google.com/scholar?&cites=12339973123494715706) )

<comment><USER2> If you're referring to the results about VO2max, please bear in mind that growing cells in culture has nothing to do with that. The issue is that cells generally accumulate far less oxidative damage when grown at 3% oxygen, as compared to atmospheric (21%). So, perhaps they did grow them at low oxygen tension, but it doesn't seem like that's the case from their methods.

</comment></comment></comment><comment><USER4> > _Long-term exercise_ is known to reduce serum levels of growth stimulating > hormones. In contrast, the endocrine effects of _acute endurance exercise_ > include increased levels of mitogenic factors such as GH and IGF-1.

Two points:

1\. how to best understand "long-term exercise" vs "acute endurance exercise" in lay terms here roughly?

2\. how mitogenic is growth hormone vs IGF-1? Raised GH seems to raise IGF-1 "usually", but for example during fasts for more than a day or couple of days, GH weirdly seems to go up very drastically while of course IGF-1, insulin, mTOR, leptin all trend ever-lower

Always wondered whether the bodybuilders tried to raise GH for its own sake primarily or just in order to initiate the cascade of other "growth & proliferation" pathways..

</comment><comment><USER5> So they can partially block some effects of the exercise serum with rEGF, but I hope they (or someone else) figures out what all of the other active components are.

It might be interesting to make an exercise cocktail.

<comment><USER6> Imagine if all gyms were replaced with cocktail bars. Has science fiction done this yet?

<comment><USER7> I work in a pharma company and it comes up every time a marketing person comes to a science meeting in a particular department. The short version is that it's very very hard, even if we can profile all of the changes during exercise (which we can't), you can't just use that to know what to administer to someone.

<comment><USER8> Thanks for this reply -- it's so interesting to hear about what happens in other disciplines. One reason HN is so cool!

</comment></comment></comment></comment><comment><USER9> Shouldn't there be replication of a 2013 preliminary finding by now? Where is it?

<comment><USER10> No money in peer review?

<comment><USER11> bet you could kickstarter that

</comment></comment></comment><comment><USER12> Exercise on a bicycle for an hour? This instead: [http://www.menshealth.com/health/ejaculation-and-prostate- ca...](http://www.menshealth.com/health/ejaculation-and-prostate-cancer-risk)

</comment><comment><USER13> Abstract

Physical activity is associated with reduced risk of several cancers, including aggressive prostate cancer. The mechanisms mediating the effects are not yet understood; among the candidates are modifications of endogenous hormone levels. Long-term exercise is known to reduce serum levels of growth stimulating hormones. In contrast, the endocrine effects of acute endurance exercise include increased levels of mitogenic factors such as GH and IGF-1. It can be speculated that the elevation of serum growth factors may be detrimental to prostate cancer progression into malignancy. The incentive of the current study is to evaluate the effect of acute exercise serum on prostate cancer cell growth. We designed an exercise intervention where 10 male individuals performed 60 minutes of bicycle exercise at increasing intensity. Serum samples were obtained before (rest serum) and after completed exercise (exercise serum). The established prostate cancer cell line LNCaP was exposed to exercise or rest serum. Exercise serum from 9 out of 10 individuals had a growth inhibitory effect on LNCaP cells. Incubation with pooled exercise serum resulted in a 31% inhibition of LNCaP growth and pre-incubation before subcutaneous injection into SCID mice caused a delay in tumor formation. Serum analyses indicated two possible candidates for the effect; increased levels of IGFBP-1 and reduced levels of EGF. In conclusion, despite the fear of possible detrimental effects of acute exercise serum on tumor cell growth, we show that even the short-term effects seem to add to the overall beneficial influence of exercise on neoplasia.</comment>


Examining Children's Online Privacy Protection Act compliance [pdf] - <AUTHOR> https://petsymposium.org/2018/files/papers/issue3/popets-2018-0021.pdf <comment><USER2> The sentiment behind COPPA is understandable, but the practical logistics never made sense to me. It basically makes every website that has any kind of account feature add a box that says "Are you over 13?" and if you click "No," then you get redirected to a page that says "Sorry you can't use this website" or a search engine.

So it takes about two seconds for a kid to realize, "Hey, if I tell the truth, I can't use this website. But if I lie about my age, I'll get in and nobody'll be the wiser."

Maybe it works for babies, but I'm pretty sure kids are smart enough to figure out how to get past it by the time they're 7 or 8.

<comment><USER3> Imagine the children can't read the book for age restriction so they can't learn a new things, or they can't write a letter or make a phone call for age restriction so they can't inform the world they are abused. There is no human right for the children.

The book publishers, the paper letter manufacturers, or telephone company has no obligation for the cause of book-reading, letter-writing or phone-calling by the children.

But it happens for the medium of computer and the Internet.

Because, we failed to decentralize the computer and the Internet, most of the computations currently requires the aid of remote servers from commercial entities and they act according to the incentives.

The children doesn't pay much and so many laws make them responsible for the cause of children reading books, writing letters, making a phone call IF the medium is the computer and the Internet.

So banning the children from using the web service is the cheapest solution for the Web service providers.

The result is, the children can't read book, write letters, or making a phone call.

We're heading straight to the dystopia where there is no human right for the children.

Who's to say?, "The road to hell is paved with good intentions".

</comment></comment><comment><USER4> This is a general HN policy question.

When I first opened this post it was a link to the Gizmodo article talking about the study. It, in turn, linked to the Endgadget article and the source PDF. Why was this HN post hijacked to remove the Gizmodo, and by extension Endgaget, article(s) and point directly to the PDF instead? Is there no value in the content of those two articles reporting on the study?

<comment><USER5> HN Guidelines: [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

Section "In Submissions," third paragraph:

      Please submit the original source. If a post reports on
      something found on another site, submit the latter.

I don't know about the particular links in this specific context, but in general many "science news" articles tend to have low or no value added (in some cases negative, if they mislead or distort). HN prefers discussion center around the study itself, not on some journalist's opinions or summary of the study.

There are exceptions, this is a broad over-generalization, I don't speak for HN, etc.

<comment><USER4> I this case it went from a link I would click and then perhaps choose to D/L the PDF, to a link I won't knowingly click since it's a direct PDF link. So, while I understand the reasoning, I disagree with it's application in this instance.</comment></comment></comment>


Sachs: Mobile devices "most transformative technology of economic development of our time" - <AUTHOR> http://www.project-syndicate.org/commentary/sachs144

<comment><USER2> "On the fully commercial side, the mobile revolution is creating a logistics revolution in farm-to-retail marketing. Farmers and food retailers can connect directly through mobile phones and distribution hubs, enabling farmers to sell their crops at higher "farm-gate" prices and without delay, while buyers can move those crops to markets with minimum spoilage and lower prices for final consumers. "

They must leverage basic cellular technology in pretty creative ways. I can't imagine these farmers would have advanced smart phones with data plans. Is this all done through sms? Does anybody know more about this system?

Android could potentially have a large impact in developing countries. It could provide open source location based services on cheaper handsets. All it needs is a good distribution system (like app store).

<comment><USER3> It is really all based on SMS. You can treat SMS input as command lines on remote server and returns a very short list of the stuffs. The creative part here is how to train users to use it. But at one hand, they will learn it because they have to. So a formatted text input is pretty good for server side to parse.

I saw a video about how a Beijing company use voice and text for translation on cellular phone. A tourist type what he wants to say in English and send the sms to system. The system returns a Chinese text for taxi driver to see. Another system also leave a voice message for listening if it is inconvenient for reading.

At the other hand. unless data plan and smart phone becomes much cheaper in developing world. Android may not influence the current market in short term.</comment></comment>


The single most overlooked report in Google Analytics. Yet most powerful - <AUTHOR> https://medium.com/the-data-dynasty/the-single-most-overlooked-report-in-google-analytics-yet-most-powerful-6ec90eba243a <comment><AUTHOR> Feedback is very welcome!</comment>


A deep dive into ClojureScript reagent - <AUTHOR> http://timothypratley.blogspot.com/2017/01/reagent-deep-dive-part-1.html <comment><USER2> I used Reagent for a fairly significant frontend project last year. It was a real joy to work with. The maintainer, yogthos, is very responsive to feedback and is doing a great job shepherding the project. I'm looking forward to the opportunity to use it again soon. Simplicity at its finest.

<comment><USER3> Yogthos (Dimitri) is the best, he's always helping people out on Reddit and Slack and his books and blogs are pretty helpful as well.

He's actually fairly representative of the clojure community in that respect, which is just another reason it's a pleasure to develop in.

</comment></comment><comment><USER4> As a very nice complement to reagent, I'd also like to mention re-frame: A Reagent Framework For Writing SPAs, in Clojurescript.

[https://github.com/Day8/re-frame](https://github.com/Day8/re-frame)

<comment><USER5> I have used reframe to great success, as well as vanilla reagent. I've currently switched to om-next for a variety of reasons.

I have my concerns about om-next, but overall since I'm writing a complex side-project, it's worth it. If I had to ship something tomorrow, I'd go with reagent still, but for longer projects where you can spend more time and get over some learning curve and alpha/beta type bugs, om-next is a good fit for large projects. I found reframe to be generally the best way of working with reagent, but not as good when I had lots of chained events and complex queries. I spent a lot of time optimizing around some ways that reagent/reframe does things where as in om-next, I could tweak things more to my needs. Om-next also offers some additional features many people don't need, but fit my use-cases well (ex: server-story, pulling only what you need, normalizing client app db data).

To summarize, reframe is a nice framework and really great for small projects or projects that need to ship today. It works and is the best approach I've seen on top of reagent (and react). Om-next is good for people that can afford to take some risks and have complex requirements but still want a proper framework on top of react. Om-next will make you do a lot more work up-front and has a lot more ceremony, but there is a reason it exists. Generally, I have found om-next powerful once you are able to grasp the way it wants you to do things. For people who want something like reframe like om-next, there is the "untangled" framework. Anyway, I wouldn't recommend om-next or reframe/reagent over the other, rather I'd suggest either and match your requirements accordingly.

<comment><USER6> What backend are you using with om/next? How are you making those api calls?

<comment><USER5> I started a prototype project first to try it out and used Datomic. With Datomic, most things are entierly automatic.

In the second, I'm using a bit of Datomic mainly to save UI-related and small bits of user state. Mainly I use Cassandra, Redis, Kafka, and Elasticsearch. I should add in this project, I'm also using untangled.

I communicate a lot over websockets as well, so between that and Cassandra I have to do a lot of mapping and transformations on my own, however once you get it setup the rest is mostly magic. Most of my reads and writes over the socket are happening with consumers and producers to Kafka so mapping om-next data here is just standard Clojure, nothing fancy.

When I do query Cassandra directly, the queries in particular by nature need to be somewhat restrictive which it turns out play nicely with om-next since mostly for reads I just need to worry about the "select" columns. Redis I just use for LRU caching and to buffer some video-like blocks of data before the user tries to access them. Elasticsearch is just used for searches and some type of filtering, but gets populated through Cassandra data anyway so again no problem with om-next.

I'd say the most annoying thing here was as I hinted, getting it all setup. Things are clearly built for Datomic, but there are integration points all over the place and just using standard functions in Clojure to manipulate vectors and maps is easy. If you're not experienced with datalog or datomic pull syntax, things might be a bit harder at the start for some people.

Regarding API calls, I should add since I am using untangled, I use the default websocket lib which is just sente. I have rigged things up with aleph and yada, but also played around with standard compojure api and other offerings. Long-term I'd like to stick with yada, but I've encountered some documented bugs that are annoying so I've put my focus elsewhere in the short- term when needed.

</comment></comment></comment></comment><comment><USER7> I'm the author of the klipse[1] plugin. Timothy impressed me with the quality of his klipse interactive snippets in this mind-blowing article.

1: [https://github.com/viebel/klipse](https://github.com/viebel/klipse)

<comment><USER8> Never heard of klipse, amazing thing.

<comment><USER9> Saw the presentation in ClojuTre in Tampere last year. It's a great idea, but a tad slow when injected a lot onto the page.

</comment></comment></comment><comment><USER10> if I may ask a dumb question : do experienced javascript programmers become more or less productive when they switch to Clojurescript or ELM or other js transpiling languages ?

<comment><USER11> I think it depends on what your expectations are as well as what you are willing to put into learning them. Both Clojurescript and Elm have their place.

Elm is very nice but definitely has a learning curve. You can try Elm in a low impact way by making a small component with it and using it alongside either React or Angular ( or in other scenarios as well ). It can also work as a state management solution for parts of your front end app. On the other hand building an entire SPA in Elm is a monumental task and requires significant investment. As the Elm experts say Elm is not really a good solution for quick one offs or prototyping. It may require you to reinvent the wheel for many widgets for which you could find relatively high quality open source options in React or Angular. Also, Elms JS interop is a bit tedious at times but works relatively well.

Clojurescript has been around longer then Elm and for most has less of a learning curve, but for some the JVM tooling may be a turn off. Nonetheless it is fun to use and there are several Clojurescript UI libraries (Rum, Reagent, Om, Hoplon/Javelin) all of which are used in production at various places.

I would say for an experienced javascript developer there is something to gain by delving into either Elm or Clojurescript and though both are very different the strong functional emphasis of both imparts habits of code organization and thinking that you might not develop as easily by staying in pure Javascript territory.

</comment></comment><comment><USER12> Respo is in ClojureScript too. I do hope I can get more attractions. [http://respo.site/](http://respo.site/)

</comment><comment><USER8> I tried looking into reagent just two days ago. Couldn't be more timely.</comment>


Back to Waterfall Isn't Quite the Right Answer - <AUTHOR> http://xprogramming.com/articles/back-to-waterfall-isnt-quite-the-right-answer/

<comment><USER2> Is this article by the guy who couldn't write Sudoku solver in his favorite TDD way?</comment>


Ask HN: What are the best courses you've taken? - <AUTHOR> <comment><USER2> Machine Learning by Andrew ng for sure and by far the best.</comment>


What its like to be judged as a total douche. - <AUTHOR> http://elliotnash.me/what-its-like-to-be-a-judged-as-a-total-douche

<comment><USER2> I think knowing you're a douche makes you less of a douche. You know, or not.</comment>


Making Use of IPv4 240/4 Netblock - <AUTHOR> https://www.avinta.com/ <comment><AUTHOR> Dear Colleagues:

You may like to have a look at the feasibility demonstration report below about our proposal for expanding IPv4 address pool, etc.:

[https://www.avinta.com/phoenix-1/home/RegionalAreaNetworkArc...](https://www.avinta.com/phoenix-1/home/RegionalAreaNetworkArchitecture.pdf)

It should provide some material for furthering the dialog.

Abe (2020-08-29 15:54 EDT)</comment>


Which Wrist Watches Do Fighter Pilots Wear in Real Life? - <AUTHOR> https://theaviationist.com/2019/10/18/which-wrist-watches-do-fighter-pilots-actually-wear-in-real-life/ <comment><USER2> I'm surprised that so many of them were wearing watches at all. It's not something that I've seen people wearing for a long time - even in the settings were they were previously ubiqutous, such as when I'm at sailing races or at meetings.

Obviously the smartphone has taken a lot of the utility of them away, but for fighter pilots I'd have thought that would go doubly. They presumably all wear pagers on the ground, and while they aren't going to be checking the time in the air, the cockpit must have readouts of anything their watch is likely to show them.

<comment><AUTHOR> Pilots have been famous for wearing big, complex watches for as long as there have been pilots. In the old days, an accurate timepiece was critical for things like dead reckoning navigation. Tools for those tasks eventually got built into the planes themselves, but by that point the watch had become a part of the image of being an aviator, in the same way that leather jackets (originally worn for warmth at high altitude) and mirrored sunglasses (originally worn to improve visibility when flying sunward) did.

<comment><USER3> The larger size does make it easier to read at night. Mine's got an analog dial and also a digital screen. Nice to have a stopwatch as well as a clock in zulu time, as most people you talk to will want time in that zone. The pure software based smart watches give some interesting options. I keep meaning to pick one up just to code with.

There are certainly gimmicks. I can't think of anyone who has actually used an E6B flight computer watch to do any real calculation -- just a prop. :)

</comment></comment></comment><comment><USER4> > Marketing Aside, We Take a Look at The Most Popular Watches Among Fighter > Pilots At MCAS Miramar.

That's a base name that didn't age well.</comment>


Ask HN: Review My WebApp - <AUTHOR> http://www.chemsink.com/?

<comment><USER2> This is a really interesting/fascinating webapp. A few suggestions. 1\. Improve the design / User Interface. It's a bit clunky and diminishes the experience. 2\. Make the search field auto-complete. Use jQuery and you could have it done in a few minutes. I am not a chemist, so I don't know the exact spelling of most chemicals or elements. [http://jetlogs.org/2007/10/22/jquery- auto-suggest-with-keyup...](http://jetlogs.org/2007/10/22/jquery-auto-suggest- with-keyup-event/)

<comment><USER3> He uses jQuery.

The site doesn't work (Windows, Chrome).

</comment></comment><comment><USER4> I really like the idea of being able to search for a molecule just by drawing it! It's a fantastic and intuitive idea, if it works...

Which it doesn't, at least for me. When I click the draw link, all I see is an empty white popup box with Preview and Submit buttons that I can't interact with.

Here's my setup, for debug purposes:

Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:188.8.131.52) Gecko/2008072820 Firefox/3.0.1

<comment><USER5> I'm also on 64 bit linux & it works. Wish he had made a huge draw button. I read about that feature here before I saw it on the page.

PS 2.5 million reactions really? Why aren't they all listed in /reactions/ hmm? :)

<comment><AUTHOR> The reactions listed in /reactions/ are general types of reaction. There may be 100,000s of individual reaction between each type.

I will definitely be making it more clear that you can draw the compound.

<comment><USER5> So maybe call them reaction classes/types? For what it's worth, the applet didn't quite do it for me. But I'm not a chem guy so I don't know about your target audience. Check with them about usability.

</comment></comment></comment></comment><comment><USER6> I'm not sure if other tools like this exist but man I could've used something like this back in my Organic Chem classes. I like it, I tried to search for a few things and was able to find most of it (couldn't find nitroglycerin). Best of luck!

<comment><USER7> I don't really remember since it was like 4 years ago, but I think in my organic chemistry lab we used something like this. (granted it was an offline version, and the graphics really weren't that much better)

So if that hasn't changed(don't see why it should, since academia is known for using crappy looking software), he can probably sell some subscriptions to different schools chemistry departments. I would make the design a little better, and make the appealing design as one of the features

</comment></comment><comment><USER8> A fascinating WebApp, and really useful to schools and students, I would have thought. I've only tested it for about 2 minutes, but I already found one odd ommission - try searching for Ethene and see what you get.

Also it says that yo can search by common name, which is fabulous, but you might want to open the system up to crowd-sourcing so that people can contribute common names and attch them to molecules.

A search on Deoxyribonucleic acid, for example produces no hits.

</comment><comment><USER9> I have to admit, as a hardcore hacker I'm clueless here. I wanted to type "water", "beer" then out of frustration I end up typing "wtf" lol.

Seriously you should find away to attract the attention of regular guys like me, the potential here is to make sense of chemistry to people by being a bit more talkative on the front page.

Overall it looks like a great tool.

</comment><comment><USER10> Hire a designer and a copywriter because the way it is now tells me absolutely nothing. My first impression was that you could purchase these chemicals from the interface.

Play up the social aspects of it, too. As of now, I don't see what differentiates your site from PubChem (besides speed).

Hooking into a spectroscopy database would not be half bad either.

</comment><comment><USER11> Try to remove your testing pages/comments: <http://www.chemsink.com/reaction_type/19/>

Not sure how close you are to having real visitors, but test comments are never welcoming!

<comment><AUTHOR> thanks, these have been removed

</comment></comment><comment><USER12> Very cool idea. I would suggest linking to chemical suppliers. I don't know if Sigma-Aldrich and the like have online stores, but that would be a very easy way to monetize this idea.

</comment><comment><USER13> Some chemical names are displayed as regexp... Not sure if all chemist understand them :)

ex: 1$l^{6}-thiacycloprop-2-yne 1,1-dioxide

</comment><comment><USER14> Maybe you could write a short description of the app to encourage people to comment?

</comment><comment><USER15> no clue what it is or what it does

</comment><comment><USER16> Very Cool.</comment>


A Crypto Trick That Makes Software Nearly Impossible to Reverse-Engineer - <AUTHOR> http://www.wired.com/2015/02/crypto-trick-makes-software-nearly-impossible-reverse-engineer/?mbid=synd_slate <comment><USER2> [https://news.ycombinator.com/item?id=9037055](https://news.ycombinator.com/item?id=9037055)</comment>


Ask HN: What if drugs were legal? - <AUTHOR> I have always wondered what the world would be like if all drugs were legal and licensed like alcohol with minimal but strict protectionism. Do you guys have any data or thoughts about it? <comment><USER2> Portugal decriminalized all drugs in 2001. Although not quite the same as legalizing completely (drug dealing and manufacturing is still illegal). This is somewhat parallel to alcohol, in the sense that brewing and subsequently distributing your own alcohol is illegal (in most areas, Im not an expert) as well as possession under certain circumstances is an administrative offense.

[https://en.m.wikipedia.org/wiki/Drug_policy_of_Portugal](https://en.m.wikipedia.org/wiki/Drug_policy_of_Portugal)

[https://www.independent.co.uk/news/world/europe/portugal- dec...](https://www.independent.co.uk/news/world/europe/portugal- decriminalised-drugs-14-years-ago-and-now-hardly-anyone-dies-from- overdosing-10301780.html)

[https://www.theguardian.com/news/2017/dec/05/portugals- radic...](https://www.theguardian.com/news/2017/dec/05/portugals-radical- drugs-policy-is-working-why-hasnt-the-world-copied-it)

</comment><comment><USER3> Just take a look at portugal: [https://time.com/longform/portugal-drug-use- decriminalizatio...](https://time.com/longform/portugal-drug-use- decriminalization/)

</comment><comment><USER4> Drugs were legal in the 19th century. It didn't work out so well. Read f.e the history of the Opium Wars in which Britain sold opium to the Chinese. It devastated their country which the European powers then exploited.

</comment><comment><USER5> Illegal drugs seems to be an important part of the economy, but I don't really know for sure. But I think it should be legal to use or to produce (as long as the method you use is not overly damaging to the environment), but illegal to buy and sell it.

</comment><comment><USER6> The BBC made a docu-drama with the same title:

[https://www.youtube.com/watch?v=ZvIhnYGeSN4](https://www.youtube.com/watch?v=ZvIhnYGeSN4)

</comment><comment><USER7> Take the reverse what if coffee was suddenly made illegal? What players would rise and how would they behave given a bag $12 bag of coffee would be $1000?

<comment><USER8> This isn't relevant at all.</comment></comment>


TunSafe: A High Performance WireGuard Client for Windows - <AUTHOR> https://tunsafe.com <comment><USER2> As the author of WireGuard, I'd _STRONGLY_ advise against using this closed- source implementation, which likely has interoperability and security issues.

We'll have an official Windows client coming out shortly, which won't have these same security concerns.

<comment><AUTHOR> As the author of TunSafe and µTorrent, I wonder if you base that statement on facts or is it just an attempt at spreading FUD and general dislike against non open-source applications?

</comment></comment><comment><USER3> Hey ludde, I highly appreciate your work. Especially because there are no real alternative clients at the moment for Windows. Also from knowing the first utorrent versions (not the crap from nowadays) I believe you are able to produce efficient code. However I would agree, that the spirit of Wireguard is to encourage to keep code simple and auditable. That's what Jason highlights in his motivation. Having a closed source implementation on top of that feels a bit wrong and I find it hard to support this.

Why not go the hybrid approach and make it open source so people can understand and audit it. You could still ask for donations or even provide a compiled version for some dollars like [http://www.blink.sh/](http://www.blink.sh/)

<comment><USER4> If I remember correctly, there was an issue that torrent-sites and other pages renamed uTorrent and sold the program after it was released, even though it was free and closed source. That is why it was stated in the about box that it is a free software and that you have to claim the money back if you have paid for it. Regular Windows users seldom research or have an interest about the origin of a software. If you imagine that TunSafe would be released as an open source at a time when the progress is in an experimental stage and the TunSafe name is not established, it would not surprise me if a lot of people and companies quickly release copies of TunSafe with a new name and hard marketing and ads to quickly get users. Without understanding the code or the wireguard protocol, and may not have the knowledge or interest to further develop or have a team that validates the code and fixes bugs. Since the wireguard protocol is officially not yet complete, I believe neither Ludde, Jason nor anyone who is passionate about the future of wireguard would like to see such a development right now.

</comment></comment><comment><USER5> Cool news!

zx2c4: Would it be possible for you to configure the WireGuard demo server so that it detects if there are interoperability issues with other clients?

<comment><USER2> I'm not going to be playing the interoperability game or wasting time with closed-source proprietary garbage. Simply use a real implementation of WireGuard and you'll be fine.

<comment><USER5> zx2c4: I appreciate your software but I think it's good with alternatives, and your attitude is a bit harsh. Why not support alternatives? Isn't the main reason with open-source communication protocols to inspire people to make alternative client/server software? TunSafe seems to be a neat pieace a software and something a lot of people have been waiting for, and Ludvig Strigeus made the best software for the BitTorrent protocol in the early days. Why do you not appreciate that he spend time to make a client that support your protocol? I've been waiting for a wireguard windows client and I would have made one if I had the knowledge. God damn, show a little appreciation?

<comment><USER2> Actually there are a couple open source alternatives around the corner -- one in Rust and another in Go -- fully supported. I agree that software really does thrive with an abundance of alternatives. An important thing is that we can verify the security of these implementations.

<comment><USER5> zx2c4: I've looked at the Go version on your homepage, but the initial text in the git project. "This is not a complete implementation of WireGuard ..... There is no group of users that should use the code in this repository here under any circumstances at the moment, not even beta testers or dare devils.", is this the one that you refer to or do you have a closed git project with a newer version?

Either way. The L2TP/IPSec implementation in Windows 7 I use now is also closed-source proprietary software. So I can't see that TunSafe should be worse since the author is public. I guess TunSafe will not be able to communicate with the wireguard servers if it does not use the correct encryption and protocol scheme?

<comment><USER2> > TunSafe will not be able to communicate with the wireguard servers if it > does not use the correct encryption and protocol scheme

There's a lot more to writing secure software than merely implementing something that appears to speak the protocol some of the time, or merely implementing a protocol at all. As I said, don't rely on TunSafe.

As above, we'll have snapshots of the cross platform implementations shortly. Until then, I'd recommend just waiting patiently.

<comment><USER5> zx2c4: I've been waiting for quite a while, how far away in time is shortly?

"appears to speak the protocol some of the time, or merely implementing a protocol at all"

ludde: Is the wireguard protocol fully implemented or just partially implemented in the version that is on the homepage?

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> Is it implemented in a memory safe language?

<comment><USER2> We've got two official WireGuard open source clients coming in the pipeline for Windows and macOS -- one in Rust and another in Go. (Neither are TunSafe, which is C++.)

<comment><USER5> zx2c4: Which language is the linux version of wireguard written in?

<comment><USER7> the reference implementation is a linux kernel module: [https://git.zx2c4.com/WireGuard/](https://git.zx2c4.com/WireGuard/)

there are currently at least two actively developped open source userspace implementations in different languages. Two examples are Go and Rust:

[https://git.zx2c4.com/wireguard-go/](https://git.zx2c4.com/wireguard-go/) [https://git.zx2c4.com/wireguard-rs/](https://git.zx2c4.com/wireguard-rs/)</comment></comment></comment></comment>


Made $45K in 2020, but the business is in trouble, losing the market share. Help - <AUTHOR> Hello everyone
First of all excuse my bad English as am not a native speaker. I learned a lot from this great community, but now I want to share my story and asking you for help :)
I've started a business in 2019 and it has been doing well until recently , but I see that the future is not doing well as I keep losing market share and a lot of new business getting into my space to compete. Here's a list of question that you might ask, I'll answer it one by one.
I need your help in three things: 1-Increase the market share from %10 to %50 at least 2-Your feedback about the new business model. (See below) 3-How do I implement the new business model that I plan to make the business more efficient.
What is your business? I sell question bank for multiple local exams in my country. The website is doing something like https://www.pastest.com
What is the Market size? I target 7 local exams (One exam is source of 90% of the sales) Market size is tiny ( Max is about <5000 students/y)
Sales vs cost ? In 2019 I made total 123K , total cost about $60k/y This year as you can see $45K (%20 lower than same period of 2020) and the cost is $20K so far
Cost structure ? I use Upwork to outsource content writing (They make practice questions from old test papers)
The issues?
Many student don't want to join they rather review the past papers themselfs via study groups in telegram. (%70 are studying for free via study groups)
I can't increase the market share no matter what I tried as you can see since jan 2020 I got only 500 of them and I tried to increase the market share by offering free demos , self assessment exams , discounts, lowering the pricing above all increasing the content quality.
What is your new business model?
I give away the questions for free and sell analytics and advance filters to go through all questions + ability to view their mistakes and so on.
Please share your feedback and tips Thank you <comment><USER2> I have a long-list of questions that, if you answer them all, could turnaround your business. Contact me if interested, it's free.

Fact/Disclaimer: I use this questionnaire to generate big ideas for clients. When implemented, they see great and measurable results. I do not charge for the questionnaire. It is more of a homework for a client. I decide whether to work for the client upon reviewing the answers.

</comment><comment><USER3> Talk to users, try to see what additional problems they have. For example, if they are taking a test, maybe they need help with applications, or individual tutoring. Whenever you are struggling, talk to users. Figure out how to make the users LOVE you and what you can do for them. Solve their biggest problem.

After that, see if there are similar users in a bigger market.

</comment><comment><USER4> Seems like a market that is in a race to the bottom and consumers that are not really interested in spending money. Sounds like a tough market to be in.

I'd start making Edu games with MRTK (mixed reality toolkit) because I believe this platform will be significant in a few years and AR might be the way to reinvent a broken system that is hard to change.

BTW, if you do XR for something besides games, there is a LOT of money on the table

<comment><AUTHOR> Hi Yes,it is a tough market. What is XR?

<comment><USER4> A catch-all for VR/MR/AR. If you can get yourself a Hololens 2, highly recommended!</comment></comment></comment>


Ask YC: What's your best failure story? - <AUTHOR>

<comment><USER2> Three days into one of my businesses, in the middle of the marketing push while we were signing on lots of (paying) users, my business partner inadvertently deleted all the user passwords while messing around in the SQL console. We had no backup (we'd just launched 3 days earlier and automated backups were still on my todo list). I was in the office at my old job still. On the phone, I talked him through how to reset all the passwords again (to something different per user) and how to send a mail to all existing user with the new password. Brilliant spin: we presented it as a security upgrade. Along the way, I got him to do a database dump just in case we screwed something up while trying to fix things.

Two days later, I came back home from work and started working on the startup. By a stroke of luck, I took a db dump just before I started. A few hours later, I deployed some of my changes. Then, a little bit later, I noticed something strange: the total number of users had gone _down_ over the last few hours. How bizarre.

Turns out my business partner had done the db dump in the one folder that got auto-executed every time I did an SQL deployment. So I'd just overwritten the db with a 2 day old version. I took a dump of the db again, restored the backup from 2 hours earlier, then manually added all the missing users back in.

No one noticed a thing - or said anything about it, anyway.

Morale: even the most stupid, huge screw-ups can be successfully covered up if you keep a cool head!

<comment><USER3> Did you consider getting a new partner? :P

<comment><USER2> I always say, the difference between a master and an apprentice is not that the master doesn't make any mistakes, but that he recovers from them more effectively.

</comment></comment></comment><comment><USER4> My wife and I owned a small software company, 12 employees. It all fell apart when we hired the wrong sales person. He came to us after reading about our company in the paper (We'd just won a World Summit Award). His references checked out, so we took him on on commission only.

4 months later he'd generated almost $4 million in sales. We dropped everything else and threw our whole company behind the new sales. Then he was arrested while crossing the border. Apparently he was indicted in Massachusetts for fraud, for falsifying millions of dollars of sales.

Turns out there were no sales. The people we spoke to on the phone were actors he'd hired. The pages and pages of functional specs from the customer were all made up. And he'd been to jail twice before for doing the same thing.

Moral of the story: Sales people suck. Always check criminal records as well as references.

<comment><USER5> If there were no sales, how was he getting paid? I'm assuming there is also a risk management/compensation moral to this story as well. You paid someone a commission before a customer had written a check. If the customer later changes their mind (or in your case, does not exist), you would have to get the money back. Even if they had been legit customers but later changed their mind, getting money back is never a good thing to do. I presume you don't compensate like that anymore.

<comment><USER4> We never actually paid him a cent. We covered some of his expenses. Where it hurt us was in moral, and in internal resources poured into a dead end pit. At least he's facing 40 years in jail, and 5 years on, we've managed just fine.

<comment><USER5> Thats good to hear. I'm glad you guys are still going after that.

</comment></comment></comment></comment><comment><USER6> Sigh ... to be as brief as possible: I come from a Linux background where programs like mysqldump make it stupid easy to move a database from one place to another. Would that it were so easy with MS SQL Server 2000. I asked an MS- savvy colleague how to take a backup of the finance database in the company I was working at, so I could test some new tools on the backup copy.

He talked me through the whole thing, I just pressed the buttons. Then he got to the fateful words: "now you just press F6 and away we go." In the blizzard of words which whirled across the screen, I could just make out the line "Dropped database 'Finance'" I asked my colleague about this, and we both got that nasty, ice-cold ass-puckering feeling you get when you just f*cked up really badly. We went and bought cakes for the Finance Dept while the DB was restored from backup tape, although half a day's work was lost.

Technically not my fault, but I did press the button and I hate dropping other people in it, so I fell on my sword, so to speak, and took the blame.

</comment><comment><USER7> I left the PhD program after finishing my MSc and passing my qualification exam without trying my candidacy exam due to financial pressures. I could have easily scraped together enough with part-time jobs to solve the immediate pressing problems I had. While I certainly failed to finish my PhD, I would still be there today if I hadn't decided to leave when I did.

Other than the really obvious poor choices, it's hard for me to look back and say - oh yes, obviously that was a mistake and a failure! After all, if it was a choice - how can I predict what may have happened if I made the other decision? If there wasn't a choice, then it's not really a failure.

</comment><comment><USER8> Started a company with a guy with a freaky talent for manipulation. Went to China with said partner for four months. Discovered the freaky talent. Lost almost all hair. Eliminated partner. Allowed remaining two "older, more experienced" partners _back home_ make decisions while I continued to "execute" in China. Progressively lost all sense of control, along with remaining hair. Massively burnt out over the subsequent five months.

The upshot: spent six glorious months recovering -- living, working, and traveling independently in south east asia, learning python while rediscovering why it's worth waking up in the morning.

:)

</comment><comment><USER9> Best technical one... misuse of chmod, which caused the ISP I was working at to be down for a few hours.

Best non-technical one... in the 2nd grade, asking a girl if she wanted to come over for dinner and her rejection being akin to "Hah! Hey everybody... he just asked me to dinner!" That screwed me up for years... fortunately, I've recovered. :)

</comment><comment><USER10> More seriously:

About a decade ago, I helped write this: <http://www.powermedia.com/pilot/index.shtml>

It seemed brilliant at the time and we were recreating something that had already been successful (<http://www.catamount.com/NewtonApps/Aloha2.html>).

There were lots of Palm users AND lots of AOL users, how could we fail?

It turns out that there were very, very few Palm MODEM users. And without the modem, it wasn't going to work at all.

</comment><comment><USER11> 16 years old. Waiting for C64 tape deck to load. Novelty foam basketball hoop (with suction caps) laying nearby. Stick on forehead, pull off. Pop. Repeat. Pop.

Ended up with a massive round love-bite on my forehead that I had to sport to school for two weeks before it faded.

<comment><USER12> Same story. I'll never forget the look on my 8th grade English teacher's face when she saw the shiny, perfect circle in the center of my pasty-white dome.

Her: _What_ did you do?

Me: I stuck a suction cup to my forehead.

Her: Why?

Me: ...

</comment></comment><comment><USER13> Helped a guy who was an acquaintance, who I thought was a friend move into my apt while in grad school with my other roommates, vouched for him, paid his part of the security deposit too. He turns to be of the kind who talks behind the back, borrows without repaying, a general douche.

Long story short, months later, said guy moves out. Lost my money, lost my other roommates, and lost my reputation as a guy who can vouch for others. Lesson learned: takes years to know a person.

</comment><comment><USER14> Years ago I grew a client site from 0 to 30k active users. The client complained about everything that comes with success.... Users calling/emailing, needing more equipment, problems with billing/fraud.

What happened? Emails went unanswered, site got slow, users ran off, spammers took over.

</comment><comment><USER15> Every morning when I wake up

<comment><USER16> rflmao

</comment></comment><comment><USER17> I was the front-end lead on: <http://pirates.yahoo.com> <http://harrypotter.yahoo.com> <http://gta.yahoo.com> <http://starwars.yahoo.com>

While I don't think that I personally failed these sites, there were a lot of very deep problems which I feel I should have raised much earlier in the process.

I came very close to quitting over how those sites were managed. My manager (who was a great asset to the company by any estimation) left to go work at Google. Another talented engineer I knew came close to leaving the company.

In the end, Yahoo gave me a huge raise to keep me here, so that's why I consider it my "best" failure story, since it had a happy ending for me :)

</comment><comment><USER18> My first love affair. She was a married woman (and not to me). Didn't go too well.

</comment><comment><USER19> I wrote a code generation system that put together nice tight little apps, with UI, database interface, batch processing, and a report generator. It came in really handy for the simple apps everyone seems to need every once in a while.

My partner and I sold a few simple apps and then he found an opportunity in a large company for a much more sophisticated app. He quoted based upon the already demonstrated performance of me and my "little tool".

Unfortunately, every single out of the ordinary thing we ran into was not "generatable" by the tool. So I had a choice, hand code or upgrade the tool to generate it.

My choice was my "best failure story". I chose to add funtionality to the tool to generate code needed for an open project already well behind schedule. I didn't stand a chance. Even hard coding everything probably would not have saved the gig.

Lessons learned:

\- Code generators must have hooks for custom code.

\- Don't commit to using a code generator until _after_ you have the customer's requirements and know that the generator can _already_ handle them.

\- Don't build your tools on the job site unless you're really good and _know_ that you can finish on time.

\- Don't let a few early and easy successes let you get a big head. It's never as good as it seems. (It's also rarely as bad as it seems.)

\- Have complete, open, and honest communication with your partner(s). You don't have to know every single thing each is doing, but you better be on the same wavelength.

\- Put _everything_ dealing with external parties (customers) in writing. Commit to nothing until everyone agrees.

\- If there's only 2 of you, you both better be hackers. There's just too much technical work for one to be overwhelmed and the other to be "waiting".

</comment><comment><USER20> look up "faulty capacitors" in google. multiply by 8000. But we got through it. We repaired or replaced each one as my life rode along the bell curve of faulty capacitor failures. Honestly, I don't know how we did it. But we survived.

Failure is far more honest than success. Failure stories are a chance to pass down wisdom, to warn others of your plight, and to prevent them from taking the same steps into darkness.

Failure is also necessary. Starting a company at a young age is amateurish to some degree.. you can make up for a lot with energy and determination. And if your lucky, ever so lucky, you won't make the one failure that puts you out of business.

The failures that don't put you out of business are your only chance at true reflection. You've been slapped in the face, and hopefully it's obvious why. The more issues you encounter early on, the stronger you + your company will be. So savor every failure. It makes you unique, and over time indestructible.

"Now you know. Life is crummy, well now you know.

O.K. Big surprise

People love you and tell you lies

Bricks can fall out of a clear blue sky

Put your dimple down, now you know!"

-Stephen Sondheim, Merrily We Roll Along

I was fortunate that no one mistake took down my company. But they sure came close.

</comment><comment><USER21> The lovely PhpMyAdmin and the convenient Drop button for a database. While multitasking I hit the Drop button on a Production Database because I had two tabs open comparing some configuration parameters between my local install versus the production. Lost few days of data since the automated backup was not quite automated yet.

Lesson learned: make backup scheduler top priority on your to-do list. And check it often.

</comment><comment><USER22> I once deleted the document root on the production website by mistake, multiple terminals, had the wrong terminal, thought I was in a subdirectory of my home dir and typed 'rm *' to blow away some debugging logs, and then wondered why it was taking so long... I had backups and brought it back in fifteen minutes. Ever since I've been much more cautious.

</comment><comment><USER23> Yesterday I was riding my kick scooter home and the front wheel caught on a crack and I fell and got one stitch in my left knee and some minor cuts and bruises on the face and hand.

My lesson: one can't be overprepared for an accident. Also: having huge crowds of people come to your aid is awesome.

</comment><comment><USER24> Today I typed "rm -rf /" on a client computer "/" and "*" are close on the keypad...

</comment><comment><USER25> Three conditions,

1) Late night 2) A (production) Windows system (don't ask!); and 3) C:\WINNT\SYSTEM32>del *.dll

The rest is ... as they say ... history.

</comment><comment><USER16> A server failure which had us working around the clock for three days.

</comment><comment><USER26> Realizing I like the question - because the better the failure story, the closer to success you might have been. Failure is a desirable state when compared to stagnant, anonymity.

Don't have great failure story relating to startups - wishing I did.

<comment><USER27> be careful what you wish for! ;)

</comment></comment><comment><USER10> salmon ravioli

</comment><comment><USER28> I've only ever failed once. It was when I was trying to fail at something and was unable to. But outside of paradoxical situations, I am infallible.</comment>


Ask HN: Why does IBRIX suck? - <AUTHOR>

IBRIX seems to suck as a parallel filesystem for big datasets.  Constant performance issues with it.  Does anybody know of a better solution ? <comment><USER2> I work on the ibrix team at HP and would like to help you. How can I reach you to discuss?

</comment><comment><USER3> If performance is the critical factor you need to look at GPFS.

<comment><AUTHOR> thanks. performance and reliability both</comment></comment>


Douglas Tompkins, 72, North Face Founder, Dies in Kayaking Accident - <AUTHOR> http://nytimes.com/2015/12/09/business/douglas-tompkins-72-north-face-founder-dies-in-kayaking-accident.html <comment><USER2> previously posted from the Guardian: [https://news.ycombinator.com/item?id=10701981](https://news.ycombinator.com/item?id=10701981)</comment>


Don't Let Students Run the University - <AUTHOR> https://www.theatlantic.com/ideas/archive/2019/05/camille-paglia-protests-represent-dangerous-trend/588859/ <comment><USER2> A proper undergraduate program today must counteract a lot of awful cultural nurturing, from contemporary 'news' and 'social media' \-- not coddle students who arrive thinking they know all about learning, thinking, issues, dialogue, and what their role should be.

I actually stopped donating to my (still) favorite university, over a last- straw incident of permissiveness, when some students there were in the news for shouting down a controversial invited speaker, and forcing the talk to end.

Instead of those students appearing to get a good corrective dose of education about the basics of university, marketplace of ideas, critical thinking, etc.... one of the students instead did a media tour, to try to establish themself as an activist leader personality, and solicit funding for their personal career brand.

I'd been donating token amounts to the university, despite money being very tight, as a symbolic show of appreciation for the opportunities and support they'd previously given me. But, when this incident happened, I'd recently happened to be in a position to give a small amount of help to an acquaintance who was a kernel hacker and transgender, and who'd become homeless (and was worried about where their next meal would come from, and then how to do more coding to get another job, when they had to worry about being any laptop being violently taken from them). I asked myself why I was giving any money to posturing university students who, despite their very privileged university opportunity, failed to have basic education smacked into them.

(I'd planned to write a letter to the university president, encouraging education-smacking, and also to resume donations once I had much more funds to apportion to various purposes, but none of that has happened so far.)</comment>


Smart Bookmarks (Browser extension) - <AUTHOR> https://raindrop.io/extension/#en_US

<comment><USER2> I would like to try it, if only there is plan for data in and out. At least, if there is an option to export/import from google bookmarks ?

Not that I like google bookmarks, I really doubt if there was any upgrade to google bookmarks in ages, but broken it may be, it holds all my links at this moment.</comment>


Ask HN: Modern, self-hosted software dev infrastructure - <AUTHOR> I'm looking to setup a self-hosted software development infrastructure, with the following:
- continuos integration, build and delivery (preferably incremental)
- code reviews (preferably pre-, maybe post-commit)
- reports on test coverage, hot spots, code style and potential error checking (per-revision delta, overall, per-code-review-diff)
Most of the tools I've looked at require large amount of work to get integrated. For example, in my Java stack, I have ant, jacoco, junit, pmd, checkstyles, and these produce reports for the current revision, but it looks like integrating these into a comprehensive review + report infrastructure is not something people do (or write blogs about).
Is this really that hard to do? What are you using for these nowadays?
My tech stack is mostly Java, Go, JS and Python, but would be preferable if we could keep it language-agnostic. <comment><USER2> To me, continuous integration/build is a different class of process than the others. I mean that test coverage at 8am on a Monday is going to be pretty much the same as at 2pm the following Wednesday. On a large code base it's going to be hard to move the needle on test coverage in a day and a half.

The second thing I see is the permutation problem. The combination of Java, Go, JS, Python, Ant, jacoco, junit, pmd, and checkstyles means that the odds that there's an existing tool that works across all of them is very low. The odds that there's something that works across all of them the way you want is pretty close to zero.

I think it's going to be hard to get what you want the way you want. To me it looks like a moderate devops project.

Good luck.</comment>


Why I Don't Eat Chipotle - <AUTHOR> https://medium.com/@davefontenot/the-chipotle-rule-193174f4ae70

<comment><USER2> Why I don't eat Chipotle: by adding honey, they put sugar in their chicken and beef.

</comment><comment><USER3> To say something is just 'good' is a pretty lame excuse to stop eating somewhere, and besides one eats at chipotle because it's typically very healthy and economical, esp. if you are feeding a family. Or perhaps you are on the road and given the choices of Subway, or a burger joint, again it's a healthy, better choice.

If you live in Denver then you likely have grown tired of Chipotle since it started here; then you'd choose Illegal Pete's which is by far the best local burrito at the moment.

Either way though, fine stop eating Chipotle, they won't miss you. ;)

<comment><USER4> it's an analogy for life

i'm not saying everyone should stop eating at Chipotle :P

just posing the question

</comment></comment><comment><USER5> I can't believe this is posted on hacker news...?

<comment><USER6> I know, right?

</comment></comment><comment><USER4> tl;dr take risks

Do you think there are too many line breaks in this post?</comment>


My rails ecommerce startup launched: RevZilla.com - <AUTHOR> http://www.RevZilla.com

<comment><AUTHOR> Hey guys, many long days and many long nights but we have finally launched. RevZilla is a motorsports superstore carrying 10's of thousands of different motorcycle, dirtbike and atv related products.

The system it is running off of was built from scratch in Rails, with a PostgreSQL backend. We are also heavily relying on Apache Solr (and the acts_as_solr plugin) to power our product browse / search pages, and use it to provide some very cool faceted search capabilities.

I applied for YC funding two years ago with a different idea and got rejected (for valid reasons). We did not apply for funding with this startup for two reasons, one was we did not need external funding, we have been able to bootstrap this far. The second reason was we wanted to stay in the Philadelphia area, our industry connections are here and we are also opening up a retail store. So since this is not a purely tech startup, the benefits of being in the valley or Boston are a bit less.

Please give us some feedback on what you guys think, and if anyone wants to chat about implementation or other specific details drop me a line, my email is in my profile.

<comment><USER2> how are you guys handling inventory?

<comment><AUTHOR> At the moment most items are drop shipped, eventually we will be moving to create our own fulfillment center

</comment></comment></comment><comment><USER3> I have no idea about the industry or where you can exit with this business so I'm assuming this is going to be a lifestyle business.

But seriously, you're using way too many images!

Total loading time: 8.8 seconds (ed: WOW!)

objects:123 (762.2)

Scripts:3 (142.2KB)

Images:117 (528.6KB) (Ouch!)

<comment><AUTHOR> Yeah there have been many internal debates about this, and much effort has been spent on reducing the number of objects on the page while maintaining the look / feel.

Any suggestions are welcome!

Currently getting an 81 on yslow which isn't terrible for how hefty the site is

<comment><USER3> YSlow isn't weighted properly and offers you a false sense of security.

Your site, in current setup, wouldn't last very long if you had hundreds of concurrent requests since you have so many requests. You do realize that most browsers allow two concurrent downloads per IP? You should distribute all these images across many subdomains (just make up subdomains; they can all point to the same server).

assets1.revzilla.com, assets2.revzilla.com etc.

Also, why aren't you running a real server for static content?! Mongrel ain't gonna cut it. Use Mongrel for dynamic stuff (i.e. Rails pages) and use Nginx (or apache or lighttpd) for static content (css and all these images that you have).

Finally, google for "css sprites" and optimize these images.

PS: Site looks good but it's just horribly assembled. You should replace 90% of those images by using CSS colors.

<comment><AUTHOR> It isn't weighted properly you are correct, however it is a good guideline to cover your bases.

I appreciate the tips, but at the moment we have pretty much all of your points covered

\- We are currently using asset hosts (assets0..assets3.revzilla.com) (Rails provides this functionality out of the box with 2.0)

\- All static content IS served by nginx, only the rails requests are being served by mongrel. All static assets are also sent with the appropriate cache headers

\- css sprites are used sparingly where appropriate, however they are not a silver bullet, and you run into cross browser issues pretty quickly (namely safari)

\- We are working on reducing the number of images at the moment. In general I would rather have a site which is true to the original design and then optimize from there, rather then cutting corners early on.

</comment></comment></comment></comment><comment><USER4> Nice but I think there is too much red, if you put these links in white (or possibly yellow) Track an Order | Checkout | Wish List | Customer Service it might make a big difference.

</comment><comment><USER5> Attractive interface, I like it. Its a little busy, but not to the point where you get lost. I think it works really well, awesome work.

</comment><comment><USER2> i dont really know why, but it reminds me of zappos.

no flashy web two oh shit that gets in the way, just a competently design site based around selling stuff.

the only catch is whether or not the customer service is good, but from the 'why revzilla' sidebar, it looks like the stated goals are at least on track :)

</comment><comment><USER6> Wow - kinda leapfrogs the competition from a visual standpoint doesn't it? Great design.

Be interested to hear about its scalability once it hits its stride and experiences its first seasonal rush. From my experience in that industry, I think this is the slow time if I am not mistaken.

Either way - well executed. Bravo.

Any way I can get a discount? :-)

-Johnny</comment>


How We Built an AI to Play SNES Street Fighter II Turbo - <AUTHOR> https://medium.com/gyroscopesoftware/how-we-built-an-ai-to-play-street-fighter-ii-can-you-beat-it-9542ba43f02b <comment><USER2> I played against this live at a conference: it beat me easily and seemed fairly responsive (some games you can do OK by mashing the fire button, but this was clearly reacting to my tactics.)</comment>


Investigating fraudulent clicks in Google Adwords - <AUTHOR> https://medium.com/@nesovok/investigating-fraudulent-clicks-in-google-adwords-f3c42da0ad62#.5h74rv3k5 <comment><USER2> My company spends hundreds of thousands of dollars every month with Adwords, soon to be in the millions. My business partner and I have spent many nights discussing whether or not we should try and build another company with the sole intent of solving Adwords fraud. It exists on an enormous scale. If someone already has, please send me a PM and we'll happily be a customer.

<comment><USER3> > solving Adwords fraud

Automatically identifying + submitting refund requests for invalid clicks? Or are there other problems that you face as an advertiser that need to be solved?

</comment></comment><comment><USER4> I had a similar experience in a specific retail niche. Even after lots of tweaking, Adwords was a huge net negative ROI.

Others are still paying for ads in the niche though. Makes me curious if they've solved the issue, or are just unaware they are wasting money.</comment>


Ask HN: Transitioning Entire Team to Remote - <AUTHOR> Due to covid19 my team of 8 is switching from fully on-site to fully remote for an undisclosed amount of time. None of has any real experience working remotely. What can we do to make the transition smoother? <comment><USER2> From having a dig around earlier today, [https://coronavirustechhandbook.com/remote](https://coronavirustechhandbook.com/remote) seemed like a good collection of resources and guidelines.

Good luck & please share what you learn with others!</comment>