Ask HN: What's the best way you've found to reach a niche audience online? - <AUTHOR>

<comment><USER2> I nearly flagged your recent submission from adventureplaybook.com:

"Adventure destinations that slip through the cracks"

[https://news.ycombinator.com/item?id=7762095](https://news.ycombinator.com/item?id=7762095)

From the submission title I figured it was just the usual travel spam, but after looking over the site and not finding you selling anything, I left it unflagged. I only visited the site to make sure it was spam before flagging, so it was a close call.

Though adventuring sure sounds like fun, unfortunately, I'm not in your target demographic.

I really don't know how to reach your desired demographic other than the obvious methods (SEO, A-B testing, cross-promotion with related sites/services, contributing to related forums, gathering email addresses of interested people for mailings, ... and just about everything else patio11 regularly tells people to do).

What kinds of things have you tried so far?

<comment><AUTHOR> Thanks for letting me know. The title sounds pretty spammy now that I think about it. I'm still experimenting with various ways to reach an adventure audience but I've tried guest posts, SEO, adventure forums and cross promotion are all the usual suspects. I'm not after big growth, just some ideas for reaching the right people at the right time.

I imagine there are some interesting case-studies from people who frequent HN.

<comment><USER2> Patrick (patio11) has a great blog and covers all sorts of interesting topics, including marketing/targeting:

[http://www.kalzumeus.com](http://www.kalzumeus.com)

[https://news.ycombinator.com/user?id=patio11](https://news.ycombinator.com/user?id=patio11)

Also, there's plenty of previous HN discussions on niche targeting:

[https://hn.algolia.com/?q=niche#!/story/forever/0/niche](https://hn.algolia.com/?q=niche#!/story/forever/0/niche)

As for the cross-over between hikers and hackers, I've seen the OpenBSD developers self-described as "A hiking club with a hacking problem." Nearly all of their main hackathons involve a hike of some sort.

[http://www.openbsd.org/hackathons.html](http://www.openbsd.org/hackathons.html)

</comment></comment></comment><comment><USER3> Blog as honestly as possible about things that matter to your audience.

If you don't know what those things are yet you don't have a niche.

And maybe you don't actually want a 'niche' in the traditional sense — see [http://unicornfree.com/2011/niches-are-for- suckers](http://unicornfree.com/2011/niches-are-for-suckers)

<comment><AUTHOR> Thanks for the link. Good read.

</comment></comment><comment><USER4> I've heard that for small niches, Facebook ads work pretty well.

An acquaintance of mine used this for reaching some pretty specific niche, like males from a specific country, in a specific age range who like some type of cars.

He said that it worked better than other online alternatives, but as always YMMV.

</comment><comment><USER5> Hang out where your audience hangs out. As an example, if they hang out at a forum, participate there, offer value and thereby build your brand.

Best advice ever - Be your own customer!

</comment><comment><USER6> Other than Facebook Ads you can try hashtags on Twitter, Pinterest and Instagram to reach a few more of those audience.

</comment><comment><USER7> Depending on your target niche, well timed post to a subreddit will do plenty.</comment>


Lessons learned teaching data analysis with Python - <AUTHOR> https://www.californiacivicdata.org/2017/07/12/first-python-notebook-at-sdsu/ <comment><USER2> I would love to get started with data analysis. Could anyone point me to a reliable guide that gets me started on the bascis. I'm pretty well versed with Python and have used Pandas before as part of some side projects.

Thanks!

<comment><USER3> Bayesian Methods for Hackers [https://github.com/CamDavidsonPilon/Probabilistic- Programmin...](https://github.com/CamDavidsonPilon/Probabilistic-Programming- and-Bayesian-Methods-for-Hackers/blob/master/README.md) is really fun. But it does not exactly teach the basics of data science.

<comment><USER4> While a really cool approach I would highly discourage a beginner to get started with this. Bayesian methods are not what most people use and the book does not teach any of the necessary basics in terms of analysis of real world data

<comment><USER3> Yeah, you're probably right.</comment></comment></comment></comment>


FRB: Federal Reserve Issues FOMC Statement--September 21, 2016 - <AUTHOR> https://www.federalreserve.gov/newsevents/press/monetary/20160921a.htm <comment><USER2> Rates stayed the same.

How much of this decision would you say is political, and how much is informed by data and analysis of economic factors?</comment>


On the Internet, nobody knows you're a dog - <AUTHOR> http://www.unc.edu/depts/jomc/academics/dri/idog.html <comment><USER2> Nice. I was in middle school 1993 and didn't get the references.</comment>


How the world's health organizations failed to stop the Ebola disaster - <AUTHOR> http://www.washingtonpost.com/sf/national/2014/10/04/how-ebola-sped-out-of-control/ <comment><USER2> According to this article, it seems like a lot of health care workers are catching the disease. Even the westerners who are familiar with the transmission mechanism of the disease. Therefore, isn't possible that we are underestimating how easily the disease can spread?

<comment><USER3> _" isn't it possible that we are underestimating how easily the disease can spread?"_

Yes, though the number of health care workers catching the disease in West Africa is more indicative of the total lack of basic medical supplies there, than anything else. Last that I heard, the MSF has a very low rate of transmission to medical staff because they're properly outfitted and strict about decontamination protocols.

That said, too many people are repeating the _" it isn't airborne"_ line as if it has great significance. Ebola doesn't _need_ to be "airborne" \-- it's contagious enough, simply because it's very difficult for human beings _not_ to come into contact with "bodily fluids", particularly when they're caring for sick people.

The fact that Ebola "isn't airborne" is comforting from the perspective that it isn't likely to spread to large numbers of people in public spaces. But even so, it's more than infectious enough to cause an epidemic.

<comment><USER4> This will be the first time humans have ever underestimated nature

</comment></comment></comment><comment><USER5> Donation pages for Médecins Sans Frontières:

[http://www.msf.org.uk/make-a-donation](http://www.msf.org.uk/make-a-donation)

[https://donate.doctorswithoutborders.org/](https://donate.doctorswithoutborders.org/)

<comment><USER6> MSF are a great organisation - very efficient and clear-headed in what they do - ~"ok, here's how much money we spend, how do we help the most people?"

And in the past they have even said ~"actually, for disaster x, we cannot efficiently help any more people, please stop donating money" \- not many charities would be that honest.

If you want to donate your money, MSF will likely do the most good with it.

</comment></comment><comment><USER7> Sometimes I worry that the epidemics (or potential epidemics, rather) will continue until eventually our incompetence in large-scale organization overtakes all of the 20th century innovations in medicine.

</comment><comment><USER8> I read through the comments here, and read through the article, and I guess it's hard for people who mostly deal with first-world problems to wrap their minds around what it's like to live in a much poorer place. "West Africa was ill-equipped for an Ebola disaster because civil war and chronic poverty had undermined local health systems and there were few doctors and nurses. Health workers in the region had never experienced an Ebola outbreak and didn't know what they were seeing in those first critical months." Yes. The ebola virus had previously appeared in other parts of Africa, and previous outbreaks have always fizzled out. There are so many urgent health problems in west Africa that at first ebola didn't look like it needed an all-hands-on-deck response.

One part of that "there were few doctors and nurses" in west Africa has to do with the brain drain. People with medical training in west Africa are well positioned to emigrate to other countries. In the six years of my late dad's life when he was completely paralyzed from the neck down, one of the long-term care facilities where he stayed for quite a while was staffed mostly by Liberian immigrants, with various job classifications. The Liberian immigrant community here in Minnesota (and the Tibetan immigrant community, and several other groups of immigrants) is mostly employed in hospital and nursing home work, with the more skilled immigrants of course making MUCH better incomes than they could in their home countries. Our gain is another country's loss in the short term. (Eventually, interchange of people through immigration helps both the sending and receiving countries, because ideas and trade ties flow both ways, but those networks take time to build up, and freedom and stability in the developing country to have best effect.)

The stark differences between life in a barely developing country and life in a developed country are hard for people to imagine if they haven't experienced them. Not many participants here on Hacker News have first-hand experience with this.

</comment><comment><USER9> What I want to know is why anyone think this outbreak is going to be brought under controls anytime soon. Looking at the size of the outbreak and with with the R0 well over 2 since August there is nothing that makes me think it is not going to hit the predicted 1.5 million infections by January. Then what?

<comment><USER10> I think we will see an infected person make it out of West Africa at a rate of one per month to one per week. We have one case in Dallas and a case earlier this summer in Nigeria. Both were contained but as the number of infected people goes up in West Africa the pressure to leave is going to be greater.

On July 20 Patrick Sawyer entered Nigeria in an infected state and infected at least 20 people, 8 of whom died. See [http://www.washingtonpost.com/news/to- your-health/wp/2014/09...](http://www.washingtonpost.com/news/to-your- health/wp/2014/09/30/nigerias-ebola-outbreak-may-be-coming-to-an-end/)

On Sept 20 Thomas Duncan arrived in Dallas, and was subsequently diagnosed with Ebola. At least 15 people are at high risk for contracting the disease and another 100 had some risk of exposure.

If you take two cases in two months it's not an unreasonable estimate that at least one person a month will escape the quarantine protocols. The protocols are likely to get better but the number of infected people trying to leave is likely to be substantially higher in each month going forward for at least three to six months. If the numbers hit the upper end the current CDC estimate (1.5 million infected) then it's likely the "escape rate" will be much higher, hence an estimate of one per week.

<comment><USER11> Right now the protocols aren't nearly strong enough, hopefully we will close air travel for anybody who has been in west africa, which should prevent people from escaping.

Right now the excuse is that they can't infect anybody while one the flights, but that is not really the concern - the concern is that they end up infecting others after they land.

<comment><USER12> " hopefully we will close air travel for anybody who has been in west africa" \- CDC advises against this. It does more harm than good, and makes it difficult for supplies, and medical staff to travel in/out of the area. Also, once you put in travel restrictions, you enter an adversarial rather than cooperative phase, and people start to fight you, rather than work with you.

[http://www.politico.com/story/2014/10/ebola-us- border-111581...](http://www.politico.com/story/2014/10/ebola-us- border-111581.html)

What I don't understand, is why don't we enhance screening for anyone who has travelled recently in West Africa? I get pulled into secondary every time I note I've visited a "Farm" \- you would think the impact on the system wouldn't be that great to just ask a few questions (and take a temperature) of people who've visited ebola impacted regions.

<comment><USER11> I read the story and they don't get the problem - the problem isn't saving people in Africa, but making sure the disease doesn't spread via people who travel on airplanes.

<comment><USER12> Speaking from a US centric view, the only way to protect America is to control the disease at it's source. If you prevent air travel, you make it difficult, if not possible to control the disease.

By putting on travel restrictions, you will lose control of the disease and jeopardize the United States.

So, in effect, if you wanted to spread the disease and put the United States in grave danger, you would put travel restrictions in place.

</comment></comment></comment></comment></comment></comment><comment><USER13> There was a good point made in a nother piece that ebola is highly infectious, but not so much readily contagious. Its worth considering the subtle distintion to appreciate how difficult it is to deal with. It spreads somewhat rapidly nonetheless because of the problems that trace amounts of contaminats cause. Not because the cantaminants themselves are necessarily widespred or pervasive in the environment.

[http://www.washingtonpost.com/news/to-your- health/wp/2014/10...](http://www.washingtonpost.com/news/to-your- health/wp/2014/10/03/can-you-catch-ebola-from-an-infected-blanket/)

</comment><comment><USER14> [http://atoday.org/adventist-mission-doctor-speaks-ebola- cris...](http://atoday.org/adventist-mission-doctor-speaks-ebola-crisis- foreign-aid.html)

This doc claims the "health organizations" and aid helped _cause_ of the epidemic. Weird diseases happen so often in that part of the world the west africans know how to deal with it. They quarantine an outbreak village and have the surrounding villages drop off food until the infections burn out. But recently everybody got so excited for the foreign goodies that materialize when you say "ebola," traditional quarantine procedure went out the window.

<comment><USER15> You read other stuff from that website, like this [http://atoday.org/god- create-evolution.html](http://atoday.org/god-create-evolution.html) or that [http://atoday.org/wilson-ii-president-adventist-general- conf...](http://atoday.org/wilson-ii-president-adventist-general-conference- believe-earth-billions-years-old.html), and suddenly you are unsure if you are dealing with trolls or kooks.

<comment><USER16> Maybe, but it's hard to argue logically against the notion that strict quarantine would be effective, if brutal way of containing the outbreak. Building large central makeshift treatment centers only encourages sick people to travel and infect new populations.

<comment><USER15> _strict quarantine would be effective, if brutal way of containing the outbreak_

With a lengthy incubation time, and in an area that's just emerging from several decades of civil war quarantine isn't going to happen. The best hope is that there will soon be a vaccine, preferably before the plague reaches Calcutta, Karachi, Jakarta or Johannesburg. It's not unrealistic, the virus mutates only slowly, and India did get on top of smallpox; there is historical precedent for this approach to work.

Quarantine has never been successful during wartime. The Attic plague happened in the middle of a war.

</comment></comment></comment></comment><comment><USER17> Couple of points: ( If there are any downvotes, please provide reasons for downvote, Thanks.)

1\. I understand this is an article about the impact of Ebola virus. But why does the article highlighted the religious beliefs of the doctors/persons involved? If we remove that religious aspect from the article, how the integrity/message of this article's content will be impacted? I think, there is subtle religious propaganda in the article which is unnecessary to convey the virus, its impact and required global effective response.

2\. Effectiveness of Govt. organizations (excluding armed forces who are trained) in majority of nations, especially in developing countries is doubtful.Organizations like WHO, UN, World bank, IMF also have similar characteristics on effectiveness, unfortunately but with no other alternatives.

3\. I am not sure about testing arrangements at US airports. Since US hosts people from majority of nations who may have travel plans to other nations, i.e. some sort of hub, virus can reach other nations quickly, if US authorities fail to respond properly. Hope arrangements are made to test people who are coming into US. My guess is, testing doctors/nurses, checking customs/security officials ...etc i.e. _all employees_ at the interfaces i.e. shipping ports, airports need to be wearing spacesuit sort of dresses as mentioned in the article so that they themselves won't be infected and become carriers of virus. This applies to all other countries including in Europe, China ...etc. Is it happening?

4\. What about the effectiveness of other forms of medicine like Homeopathy/Ayurveda ...etc on this virus? I think we need to have alternative options of medicines/treatments, given the danger and magnitude of the problem to humanity ...etc.

<comment><USER12> You might be downvoted because your suggestions are a little overboard at this point, in particular, "Hope arrangements are made to test people who are coming into US. My guess is, testing doctors/nurses, checking customs/security officials ...etc i.e. all employees at the interfaces i.e. shipping ports, airports need to be wearing spacesuit sort of dresses as mentioned in the article so that they themselves won't be infected and become carriers of virus."

The Risk/Reward of spending money on hazmat gear for every screener who has to work secondary (presumably you are suggesting that we would only screen people who had just come from an ebola active area) is pretty weak.

<comment><USER17> I agree that I am suggesting screening of only those, who are coming from Ebola active area. As this article mentions, incubation period to see symptoms by other humans is between one week to three weeks after infection. But tests may catch before. Since we are living in globalized world, where people move across borders, I am worried about people carrying virus unknowingly. Many parts of Asia are very dense and it may be overnight catastrophe if this happens. So authorities at the hubs of human activity (US/Europe/China/Japan ...etc) need to be more vigilant than normal humans outside.

Please note that "prevention is better than care". Thanks.

Edit: small grammar change.

<comment><USER12> Vigilant, yes. But full hazmat gear to screen asymptomatic individuals is going overboard.

</comment></comment></comment></comment><comment><USER18> Liberia has a government. It receives vast amounts of foreign aid. So when the article says: _" West Africa was ill-equipped for an Ebola disaster because civil war and chronic poverty had undermined local health systems and there were few doctors and nurses"_, this is missing the point.

 _Corruption_ undermined the health systems, and much more besides.

Those responsible for this disaster are the Liberian officials who collect a _minimum_ of $449 million annually from overseas donors, but somehow can't seem to manage their nation with it. (But their personal bank accounts are probably very healthy.)

There have been previous outbreaks of Ebola in the region, so no one is unfamiliar with it. With a growing and expanding population, it was not a case of 'if', but 'when'; there is no excuse. When this is all over, a number of individuals - from Liberian government _and_ donor nations - should be prosecuted for corruption, negligence, and possibly even crimes against humanity.

<comment><USER19> Liberia population: ~4m

Budget you declare: $449m

UK population: 63m

Budget of the NHS: £109b = $174b

People employed by NHS: 1.35m people

To match the NHS, Liberia would need $11b, almost 25 times the amount of aid it's receiving. Hell, that's 5 times the GDP of Liberia at the moment. It would also need to train 85,000 medical professionals (doctors and nurses mostly) - all that in a country that's just emerging out of war (basically 20 years of civil war ending 9 years ago), has low education levels (60% literacy - 4 in 10 people you meet can't read and write), zero infrastructure, etc.

Let's not forget that the NHS has been receiving that sort of funding for many decades - today's infrastructure builds on yesterday's infrastructure, etc.

I put it to you that the NHS would be brought to its knees by 3000 Ebola cases to deal with. If we ever let it get that bad in the UK, the only way we're getting out of that is through a complete country shutdown (if that's even possible in our supermarket-driven world - people would starve; starving people tend to do stupid things to get food).

Blame corruption all you want (though ironically, Liberia had elections that were widely regarded as fair, and that resulted in electing a highly qualified, female president, in 2005), but I think in Liberia's case it is totally fair to say that with or without corruption this country is extremely ill-equipped to deal with an Ebola epidemic.

Links:

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

[http://www.nhs.uk/NHSEngland/thenhs/about/Pages/overview.asp...](http://www.nhs.uk/NHSEngland/thenhs/about/Pages/overview.aspx)

<comment><USER18> No, this is about basic readiness for a number of contagions that are endemic to the region, which should be prominent on a list of healthcare priorities.

Nine years is a considerable time to be able to fix many of the problems you mention. After all those billions of dollars in aid, where is the infrastructure? Education? Compare to post WWII Japan or Korea...

And a comparison to the NHS behemoth - a model of mismanagement, waste, and inefficiency - is not a good one.

<comment><USER5> Ebola isn't endemic to Liberia and on health outcomes for money spent per head, the NHS is considered to be one of the most efficient health care systems in the world, according to the people who actually measure these things rather than just spouting off stuff they think might be true.

<comment><USER18> The people who measure these things would probably disagree with you. A small, random, selection:

[https://www.openrightsgroup.org/blog/2007/system-failure- pri...](https://www.openrightsgroup.org/blog/2007/system-failure-private-eye- report-into-nhs-it)

[http://www.thesundaytimes.co.uk/sto/news/uk_news/Health/arti...](http://www.thesundaytimes.co.uk/sto/news/uk_news/Health/article1298986.ece)

[http://www.bbc.co.uk/news/health-12338984](http://www.bbc.co.uk/news/health-12338984)

<comment><USER5> One computer system overspend, the opinion of Jeremy Hunt, and a report saying half a percent of the budget could be saved by being more careful when buying stuff like office supplies.

I note that none of those things is a comparison of NHS with other health systems.

These are though:

[http://www.telegraph.co.uk/health/healthnews/8877412/NHS- amo...](http://www.telegraph.co.uk/health/healthnews/8877412/NHS-among-best- health-care-systems-in-the-world.html)

[http://www.washingtonpost.com/news/to-your- health/wp/2014/06...](http://www.washingtonpost.com/news/to-your- health/wp/2014/06/16/once-again-u-s-has-most-expensive-least-effective-health- care-system-in-survey/#)

[http://www.bbc.co.uk/news/10375877](http://www.bbc.co.uk/news/10375877)

[http://eprints.lse.ac.uk/42050/1/How_the_NHS_measures_up_to_...](http://eprints.lse.ac.uk/42050/1/How_the_NHS_measures_up_to_other_health_systems_%28LSERO%29.pdf)

[http://shr.sagepub.com/content/2/7/60.abstract](http://shr.sagepub.com/content/2/7/60.abstract)

The worst recent estimate I could find was Bloomberg, who had the UK as 10th out of 51 countries studied, with the US coming in at 41st.

[http://www.bloomberg.com/visual-data/best-and-worst/most- eff...](http://www.bloomberg.com/visual-data/best-and-worst/most-efficient- health-care-2014-countries)</comment></comment></comment></comment></comment></comment>


Comparisons in C++20 - <AUTHOR> https://brevzin.github.io/c++/2019/07/28/comparisons-cpp20/ <comment><USER2> One of the most frustrating bugs I encountered in a previous job was an incorrect implementation of a "strict weak ordering" that would cause containers and algorithms to just plain _misbehave_. The evil part was that there was a whole range of misbehavior, including "generally working" for most data, while crashing in other cases!

The reality is that most programmers are not experts but they exist on C++ projects. People _will_ try "simple" things like hacking up a less-than operator, and when it seems to "work", they move on (leaving a code time bomb behind).

The C++ compiler needs to provide robust compile-time and run-time checks to tell programmers that things are wrong, like: "your operator does not meet the requirements of the sort algorithm".

Contrast the latest 20-page description of std::whatever_the_heck to, say, Python sorting, which offers "key=..." because _the overwhelmingly common case is to simply state a single field on which to base object ordering_!!!

<comment><USER3> Python is almost as bad as C++ when it comes to making custom classes sortable. In Python 2 there was had __cmp__, which was roughly the same as C++'s new spaceship operator, but Python 3 inexplicably removed it in favor of only having individual comparison operators like __eq__, __lt__, __gt__, etc. Oh, and functools.total_ordering, which lets you "only" define __lt__ and __eq__ and get the rest automatically implemented, but that's still two things to define when __cmp__ was only one.

<comment><USER4> IIRC the reason is that people would regularly screw up __cmp__ (despite the cmp built-in being available), it's harder to fuck up simple boolean results that the any-integer-coerced-to-3-state of cmp.

Python 3 also removed the "everything is comparable" misfeature of P2, providing way lower incentive to implement ordering: if your type is not orderable, a user knows to go with key functions.

<comment><USER5> I don't trust someone who can't implement `__cmp__` to implement `__lt__` either.

<comment><USER4> Experience says you're way wrong, simply because combining a sequence of sub- lt calls is way simpler and shorter than combining a sequence of cmp:

        def __lt__(self, other):
            return self.a < other.a and self.b < other.b and self.c < other.c

meanwhile

        def __cmp__(self, other):
            v = cmp(self.a, other.a)
            if v != 0:
                return v
            v = cmp(self.b, other.b)
            if v != 0:
                return v
            v = cmp(self.c, other.c)
            if v != 0:
                return v
            return 0

Rust (for instance) makes the latter less offensive (and error-prone) by providing built-in combinators: [https://doc.rust- lang.org/std/cmp/enum.Ordering.html](https://doc.rust- lang.org/std/cmp/enum.Ordering.html)

        impl Ord for Thing {
            fn cmp(&self, other: &Self) -> Ordering {
                self.a.cmp(&self.a)
                    .then(self.b.cmp(&other.b))
                    .then(self.c.cmp(&other.c))
            }
        }

<comment><USER6> But that first comparison function is usually _not_ what you want, you want lexicographic ordering. This very example is in fact discussed in the article, as an example to how people often mess this up...

<comment><USER4> > But that first comparison function is usually not what you want

All those functions implement the same comparison, the first is simply not including the similarly trivial implementation for eq:

        def __eq__(self, other):
            return self.a == other.a and self.b == other.b and self.c == other.c

> you want lexicographic ordering

Every word here makes sense but the objection makes none. What are you trying to say exactly?

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Interesting to compare to Haskell. Here you typically implement "compare" which is equivalent to the spaceship operator and get < &c for free, but you can implement "<=" and get compare for free because the defaulting mechanism is general and not built into the compiler. Also "Ord" has to be compatible with "Eq" (which you can also get for free) which is different from C++'s approach. Moreover, the compiler can "derive" implementations for regular data objects.

C# is slightly different: all of the algorithms take an IComparison, which implements the spaceship operator in another class (you can implement the related IComparer in your actual class and it all works via the magic of reflection. This isn't too bad since the reflection only occurs in the constructor.). Comparison operators are basically never used in the standard library and people rarely implement them.

<comment><USER8> > Moreover, the compiler can "derive" implementations for regular data > objects.

When defaulting the spaceship operator, the same happens for C++ (by comparing members). In this special case, the equality operator is also effectively defaulted, so as described in the article

        struct A {
          …
          auto operator<=>(A const& rhs) const = default;
        };

gives you automatic member-wise comparison "derived" by the compiler.

<comment><USER7> Nice, I missed that.

</comment></comment></comment><comment><USER9> > Importantly, there is no language transformation which rewrites one kind of > operator (i.e. Equality or Ordering) in terms of a different kind of > operator. The columns are strictly separate.

Why do we need a primary == operator if we have strong_ordering::equal, weak_ordering::equivalent, and partial_ordering::equivalent? Couldn't the behavior of == and != be inferred from the <=> definition?

I guess I'm asking why a == b can't be rewritten as (a <=> b) == 0.

<comment><USER10> > Why do we need a primary == operator if we have strong_ordering::equal, > weak_ordering::equivalent

Weak orderings are defined as orders that can't distinguish between all members, which is why it is called "equivalent" instead of "equal".

<comment><USER9> > Weak orderings are defined as orders that can't distinguish between all > members

I get that. This wasn't my question.

I want to know why I _need_ to define operator== when reasonable behavior can be inferred from whether or not operator<=> returns strong_ordering::equal (or weak_ordering::equivalent -- the standards committee can decide if this is reasonable -- I don't really care). If I want special behavior, then sure, defining operator== might make sense, and then it should obviously take precedence.

But if the whole point of this new three way compare is to reduce the combinatorial explosion of things that you need to define, I don't understand the need to split the universe into {==, !=} and {<=>, <, <=, >, >=}, and never let them interact with each other.

The part I take issue with is the statement "The columns are strictly separate."

Maybe I've missed something, but I don't see why it needs to be like this. operator<=> seems to be a strict superset of operator==, because it returns information about when equality holds, (or when equivalence holds). Shouldn't that be sufficient? Also, what's going to break if you design a type where a.operator==(b) doesn't return true when a.operator<=>(b) returns strong_ordering::equal, or vice-versa?

Again, maybe I've missed something, but this seems like a mistake. They're removing all of the footguns except this last one. Why?

<comment><USER11> > Again, maybe I've missed something, but this seems like a mistake. They're > removing all of the footguns except this last one. Why?

originally they weren't separated, but the risk for bad performance due to that was too high. The complete rationale is described here : [http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p118...](http://www.open- std.org/jtc1/sc22/wg21/docs/papers/2019/p1185r2.html)

<comment><USER9> Thank you! This answers my original question. I guess all things considered, it's still not too bad. Two functions is better than 6+, and it looks like they'll be a lot harder to get wrong.

<comment><USER11> > and it looks like they'll be a lot harder to get wrong.

especially considering you can ` = default;` them, which should be enough _a lot_ of times.

</comment></comment></comment></comment></comment></comment><comment> iso-8859-1 It's funny how Concepts are not mentioned at all. Given that they are the C++ equivalent of type classes and a common example is the "EqualityConstraint", I can't believe there isn't some interplay. Concepts are also in C++20.

</comment><comment><USER12> I've thought for years that C++ was a sprawling mess of a language with a good and useful subset buried in there somewhere. I'm giving up with C++20. It's time to acknowledge that the language is too big and its virtues too small.

<comment><USER13> This non-sequitur of a reply is getting pretty tired on C++ articles.

Perhaps you could explain how this feature is a sprawling mess exactly?

In my opinion, not only is the feature easy to understand for beginners, but it also :

1) Simplifies code - less code to write means less code to have bugs

2) Prevents people making mistakes - incompatibly defined comparison operators wont happen with <=>

3) Gives a speed boost - in some algorithms it's faster to do a<=>b rather than a < b and b > a.

You could find a deep dive article just as long about the minute details of comparison for practically any language.

<comment><USER14> Well, if you really want to be convinced how hairy C++ has become, just have a look at the implementation of the Boost libraries.

<comment><USER15> With every revision of the C++ standard Boost becomes both less hairy and less necessary.

The direction of the language is towards greater cleanliness and consistency.

<comment><USER14> Yes, but it shows that the problem still exists.

</comment></comment></comment></comment></comment><comment><USER16> The terminology is a little confusing. By "strong" total ordering do they really mean "strict" total ordering? If not, what's the difference?

<comment><USER17> No. The terminology is different because it refers to a different concept. In C++20 "strong" vs "weak" refers to substitutability. When two elements x and y compare to strong_ordering::equal, then it is assumed that f(x) == f(y). This is not assumed if they are just weak_ordering::equivalent. Read section "A new ordering primitive: <=>" of the article for a longer explanation.

<comment><USER16> I did read that section... that's why I said it's confusing...

It seems to me they're using different terminology for concepts that _aren 't_ different in math? In math, "equality" (=) _already means_ the same thing as substitutability. A non-substitutable equality is already called "equivalence" (≡).

So in math we already have these:

[1a] Non-strict partial order: a binary ordering that allows incomparability (≼, ≡, ≽, ?)

[1b] Strict partial order: like [1a], but irreflexive (≺, ≡, ≻, ?)

[2a] Non-strict weak order: like [1a], but with all elements comparable (≼, ≡, ≽)

[2b] Strict weak order: like [1b], but with all elements comparable (≺, ≡, ≻)

[3a] Non-strict total order: like [2a], where the equivalence is equality (≤, =, ≥)

[3b] Strict total order: like [2b], where the equivalence is equality (<, =, >)

If I didn't make a mistake above, then:

\- C++'s "strong total ordering" seems to be what in math we call "strict total ordering"

\- Their "weak total ordering" seems to be what in math we call "strict weak ordering"

\- Partial order is the same thing for both

Am I wrong here? If yes, how? If not, why did they randomly invent their own terminology? I haven't seen their definitions used elsewhere.

<comment><USER18> Huh, this is... not the terminology I am used to, as a mathematician?

My experience is that what C++ is calling a "weak order", and what you are calling a "weak order", is what in math is called a "pre-order" or a "quasi- order".

Meanwhile, the distinction you are making between strict and nonstrict is just ignored (except by constructivists), since they're equivalent ways of talking about the same thing. Indeed I'm not sure why you included both because, well, they're just two ways of talking about the same thing (again, unless you're a constructivist).

Really (assuming classical logic) there's just 4 possibilities here:

1\. Total order (what they're calling a "strong ordering") 2\. Total preorder (what they're calling a "weak ordering") 3\. Partial order (which they are also calling a "partial ordering") 4\. Partial preorder (which they don't account for)

<comment><USER16> You're agreeing with me?

"Preorder" is just a (better-known?) synonym for "non-strict weak order" [1] [2], so we don't disagree there.

"Strict" vs. "non-strict" I merely included because C++ comparisons return strict orders. I thought it was worth including, but feel free to ignore it.

So just as you pointed out in your own list, and just as I've been saying, "strong total order" isn't the terminology (every total order _is_ strong), and neither is "weak total order" (it means "total preorder" which is... just a total order). Like you said, they should say "total" order, "preorder" (or "weak" order as I said), "partial" order. The "strong" and "weak total" stuff is just something they seem to have invented in contradiction with the established mathematical terminology for... no reason/gain?

[1] [https://en.wikipedia.org/wiki/Weak_ordering#Total_preorders](https://en.wikipedia.org/wiki/Weak_ordering#Total_preorders)

[2] [http://fitelson.org/roberts_measurement_theory.pdf#page=56](http://fitelson.org/roberts_measurement_theory.pdf#page=56)

<comment><USER18> Well, I disagree that the article is confusing on this point. They say quite explicitly what they mean. I agree that the terminology is _annoying_ , because they should just match the existing math terminology, and it's also annoying that they didn't account for partial preorders.

I'm not sure whether I agree that the terminology is confusing; on the whole I think it isn't. The reason it's not confusing is that it sufficiently _different_ from usual math terminology so as not to interfere -- i.e., the terminology doesn't actually _disagree_ at any point, it's not incompatible. Like, concepts get reinvented all the time and you just kind of have to get used to things having multiple terms, and be ready to translate unusual terminology into standard terminology, even as of course you should do what you can to reduce this happening. As long as you don't end up in a situation where one word means two different things, there's not really confusion, just different terminology.

And, as I said above, I definitely disagree that the _article_ is confusing on this point, because they're very explicit about what they mean.

<comment><USER16> I said the terminology is confusing, not the article...

> the terminology doesn't actually disagree at any point, it's not > incompatible

It _does_ disagree though? I thought I just explained this... I'll do it again. "Total orders" are by their very definition in math always 'strong' \-- their entire _point_ is to use equality as the equivalence relation. That's what distinguishes them from weak orders, which can have other equivalence classes. So a "weak _total_ order" makes no sense -- if a weak order is total, it's by definition the same as a 'strong' total order. That's in direct contradiction with their terminology.

<comment><USER18> I mean, that's like saying "A ring by definition is always associative, so saying 'a ring without associativity' is contradictory". Neither ordinary language nor technical terminology work that way; not every phrase is compositional in such a straightforward way, including in mathematics. I mean, a "fake X" is not an X.

In mathematics the word "weak" plays a similar role; e.g. in differential equations a weak solution need not be a solution; it's easy to find more examples. Similarly when one talks about a "non-Y X" or a "X without Y" where ordinarily Y is part of the definition of X. The result is _not_ an X, but it's still (usually) clear what's meant, and these are still the terms that get used. Anyway, the point is, new terms someone is defining have to be considered on the whole.

An actual incompatibility, like I said, would be giving an existing phrase a new meaning. E.g. if they had referred to total preorders as partial orders, _that_ would be an incompatibility.

<comment><USER16> > An actual incompatibility, like I said, would be giving an existing phrase a > new meaning. E.g. if they had referred to total preorders as partial orders, > that would be an incompatibility.

This _is_ what they're doing!! They're calling pre-orders "weak total orders". That's a direct incompatibility... "weak total order" _already_ means "total order", just like "total weak order" already means "total pre-order" which already means "total order". "Weak" and "total" are both adjectives, and they're interchangeable. If you asked anyone (who unlike you had already heard of the term "weak order" before) that's exactly how they would interpret it. Nothing in it would be left open for interpretation since everything is defined.

Whereas in your solution example, unlike here, the phrase "weak solution" _didn 't_ already mean something else, and there was no existing term for the concept either. And unlike in "ring without associativity", they use the word "total" in "weak total order" to mean nothing. They could've taken it out and "weak order" would've meant _exactly_ what they meant.

If you want to make a comparison, what they're doing would be like using "a nonnegative positive solution" to mean "a nonnegative solution" (rather than "a positive nonnegative solution"). Or using "an fractional real number" to mean "a fractional complex number" rather than a "real fractional number" (i.e. real fraction). Which would be completely nuts.

<comment><USER18> > This is what they're doing!! They're calling pre-orders "weak total orders".

No. Giving one thing two names is not an incompatibility. Giving two things one name is an incompatibility.

> "weak total order" already means "total order"

Does it? I've never heard it called that. I think anyone on hearing the term "weak total order" would reasonably infer it refers to some notion than a total order.

> "Weak" and "total" are both adjectives, and they're interchangeable.

No. This is completely wrong. Terminology is very frequently _not_ compositional in such a simple way.

I mean, this works perfectly fine with words that convey _additional_ conditions. It does not work with words that convey a _removal_ of conditions, which is what the word "weak" does!

Like, in the phrase "weak order" (meaning total preorder), the word "weak" is not imposing the conditions of reflexivity, transitivity, etc. It is starting from a baseline of "order" meaning "total order", and then _weakening_ this to a preorder. The word "weak" _only_ weakens!

Anyone, on seeing the phrase "weak total order", assuming they know the general usage of the word "weak", can reasonably infer that it refers to something _weaker_ than a total order. (Likely a preorder.)

Yes, this makes "weak total order" something of a ridiculous phrase, given existing terminology. But again, remember that "weak order" is starting from a baseline where "order" means "total order"; in a sense, "weak order" is really something of an abbreviation for "weak total order".

(...of course, all of this highlights the odd way that terminology for orders themselves work. After all, "partial" is also a weakener. I haven't studied the history, but I'd bet you that "order" originally meant "total order" (it's still often used that way), then "partial order" came later as a weakener, then the meaning of "order" shifted as the study of partial orders became more common, then "total order" was coined as a retronym.)

> If you want to make a comparison, what they're doing would be like using "a > nonnegative positive solution" to mean "a nonnegative solution" (rather than > "a positive nonnegative solution"). Or using "an fractional real number" to > mean "a fractional complex number" rather than a "real fractional number" > (i.e. real fraction). Which would be completely nuts.

All of these are examples where you're using two terms that both _impose_ conditions, rather than removing them. The word "weak" simply does not work that way.

<comment><USER16> > All of these are examples where you're using two terms that both impose > conditions, rather than removing them.

All of these? Really? "Fractional" and "real" are 'imposing' conditions on 'number' rather than removing them? Like you said, I'd bet you that 'number' first meant 'natural number' rather than 'complex number'.

And before you tell me how deletion is also commutative just like addition—I could debate you the merits of that in natural language too, but that's beside my point in the last paragraph.

> Does it? I've never heard it called that.

Yes? That's precisely why I just gave you 2 links to people calling it exactly that above!! [https://en.wikipedia.org/wiki/Weak_ordering#Total_preorders](https://en.wikipedia.org/wiki/Weak_ordering#Total_preorders) [http://fitelson.org/roberts_measurement_theory.pdf#page=56](http://fitelson.org/roberts_measurement_theory.pdf#page=56)

And I already asked you how you think a mathematician who unlike you _knows 'weak' already has a definition this context_ would interpret 'weak total order' to mean? and you just ignored me there too. Just like you ignored my links way above where I showed you this is known terminology you're merely not aware of. I don't know why you're not cooperating but I'm tired of continuing.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> A brand new language without backward compatibility would be nice. C+++

<comment><USER20> The whole point is to have backwards compatibility. It's just fascinating how they add or fix things without breaking the code.

Doing without backwards compatibility is easy: take Rust or D.

<comment><USER21> > It's just fascinating how they add or fix things without breaking the code.

In the same way it is fascinating to watch a forest fire from afar.

<comment><USER20> This hostility is tiring.

The ability to avoid rewriting is a practical thing.

</comment></comment></comment></comment><comment><USER22> How do the literal 0 comparisons fit into the language? Are they special purpose syntax or is it possible to write your own operator that only typechecks if the RHS is a literal 0?

<comment><USER23> Are you confusing the implementation of these operator overloads with their signature? The spaceship returns {neg, 0, pos} and that's why the implementations are like that.

<comment><USER22> I'm referring to this bit of the article:

 _The values of these comparison categories can be compared against the literal 0 (not any int, not an int whose value is 0... just the literal) using any of the six comparison operators..._

<comment><USER23> Oh, this is particularly confusing, I agree.

IIUC it's referring to how you can safely evaluate the return value from a spaceship: by comparing against literal zero. (not how you would overload a comparison with literal zero).

</comment></comment></comment></comment><comment><USER24> I really hope a modern language can take over many features of C++ without its added complexity.

Potential candidates: Rust, Julia, Swift.

All three are modern languages with modern concepts. I have high hopes especially for Julia.

<comment> nevi-me Please excuse my lack of knowledge, but is Julia gen-purp enough to replace C++? Can I write a hypothetical kernel with it, or a game?

<comment><USER25> Game? Sure, if you're willing to spend a non trivial amount of time integrating with a graphics API, but that's true of most non C++ languages. Kernel? Probably not, AFAIK there's no subset of Julia that can run without an OS (like for rust and C++).

</comment></comment></comment><comment><USER17> In case someone rushed to cppreference.com to compare, I _think_ that [https://en.cppreference.com/w/cpp/utility/compare/strong_ord...](https://en.cppreference.com/w/cpp/utility/compare/strong_ordering) is slightly wrong, in that it should not list "equivalent" as an alternative. I reported that (putative) mistake.

</comment><comment><USER23> An early c++20 fan gives a tribute to his favorite new operator [1] (indeed so early it was only drafts back then).

[1] [https://youtu.be/ZA6ehndc6co](https://youtu.be/ZA6ehndc6co)

</comment><comment><USER26> This is interesting... As non-C++ developer, I've never thought I needed this. Is this an answer to a question anyone is asking?

<comment><USER20> C++ just has this under-the-hood access to be able to define any comparison operator to do arbitrary things.

C++20 is now more aware that this things are used for comparison, and it helps to make definitions shorter.

Still handles non-totally-ordered cases fine.

</comment></comment><comment><USER27> The default operators are very cool, but I assume that many codebases would ban them.

Imagine, for example, an engineer decided to reorder members in a struct to make it pack better. Now the semantics of default <=> have changed!

Also, as a minor nit, the optional number sample has a possible bug. I would assume that two null optionals would compare equivalently. Or is that part of how <=> should work? Should NaN <=> NaN == partial_ordering::unordered?

<comment><USER28> While I don't know about this specific case, I do know in some languages, like JavaScript, NaN poisons any operation it is part of. So any operation on it is NaN, and comparisons to it are false.

<comment><USER29> This is default IEEE 754 behavior.

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

</comment></comment></comment><comment><USER30> God this is so confusing. Why the $%&* does it take a 17-page 27-minute blog post to explain how to implement comparison operators?

Can someone please write the 3-minute blog post that is easy to understand and follow?

If the answer is "it's too complicated to explain in 3 minutes" then I think that is a telling sign.

<comment><USER31> Here you go: less than 3 minutes to type out!

"The TL;DR is that there's a new operator, <=>, that returns less than 0, 0, or greater than zero, just like, say, strcmp does, but for all sorts of C++ objects. You can define operator<=> and operator== and your compiler will take care of the various other comparators. Doing this speeds up some library functions, doesn't force you to write as much code, and makes comparisons more intuitive.

"There are also a bunch of corner case optimizations but if you don't care about them you don't need to know"

This was written by someone who cares about the corner cases and underlying theory. It's like FP: IEEE743 is full of weirdo cases that some really smart people spent a lot of time worrying about. All most users care about is that "they have a fractional representation and that == doesn't reliably work except against 0.0." Just because there's hundreds of pages in that spec doesn't make it dumb either.

<comment><USER32> I don't think this is right. In order to implement <=> for a class, you have to understand strong_ordering, weak_ordering, and partial_ordering in order to pick one, right?

<comment><USER33> Generally, no. Most of the time you're going to write these functions as defaulted with an auto return type:

        auto operator<=>(const T&) const = default;
        bool operator==(const T&) const = default;

The compiler will implement the function by comparing all the class member variables and will pick the type of the ordering as appropriate. You only need to look into further details about ordering types if you want to do something fancy.

</comment></comment></comment></comment><comment><USER34> A new string type! How exciting!

<comment><USER35> the article doesn't describe a new string type anywhere, only a hypothetical one for the purposes of demonstrating the new operator</comment></comment>


A smaller, cheaper RISC V board - <AUTHOR> https://hackaday.com/2017/09/18/a-smaller-cheaper-risc-v-board/ <comment><USER2> IMO, the first step for people interested in promoting RISC V should be to get it into the hands of the universities' undergrads. Berkeley's EECS 151 lab final semester project was to implement a RISC V CPU at 50 MHz on a FPGA.

If EE/CS departments of colleges adopt RISC V hardware for teaching their students, providing cheap microcontrollers and boards to students at the start of their semester classes, those precocious little buggers are going to build Doom clones and help port their favorite flavor of linux onto them. When you've got a generation of top talent tinkering with an ISA that doesn't suck like x86, you're going to see adoption in actual industry.

<comment><USER3> _When you 've got a generation of top talent tinkering with an ISA that doesn't suck like x86, you're going to see adoption in actual industry._

RISC V is not much more than a slightly tweaked MIPS, the previous "preferred academic architecture", and we all know what happened to that... much to the chagrin of those who thought MIPS would be "the future of computing".

My prediction is that it will probably replace MIPS where it's currently used ( _very_ low-end tablets and phones, and a lot of home routers), but won't really displace ARM or x86. A "pure RISC" like MIPS and now RISC V just doesn't have the "CISCness" that makes successful CPUs beyond the theoretical.

[https://www.extremetech.com/extreme/188396-the-final-isa- sho...](https://www.extremetech.com/extreme/188396-the-final-isa-showdown-is- arm-x86-or-mips-intrinsically-more-power-efficient)

Look at the results for the Loongson. It has at least twice as much cache as the others and 4-way OoO, yet after normalising for clock frequency and process power, it manages to be dead last in efficiency on 3 out of 4 of the benchmarks.

I've been following trends in the industry since the 90s. The "RISC dream" is still very much a dream. Trying to get an overly simple and restrictive ISA to perform well is sheer folly. Things that the RISC proponents thought would matter (decode complexity, number of architectural registers, addressing mode complexity) actually didn't, and what they thought wouldn't matter (memory bandwidth/latency, clock speed, instruction density), did. A denser, more _intel_ -ligent (pun fully intended) ISA is what x86 and ARM is moving toward, while the MIPS/RISC advocates are going backwards.

<comment><USER4> > Look at the results for the Loongson.

This is a processor comparison. The Loongson is the only 90nm chip here. No wonder it has no chance against 32nm and 40nm chips. The 60nm A8 also performs horribly.

<comment><USER3> If you read the linked paper you'll see that they scaled the process size and clock speed accordingly.

</comment></comment></comment></comment><comment><USER5> I think this is very interesting, and certainly consider myself a "fan" of the RISC-V ISA and project. Great to see cheaper/smaller boards coming along.

I'm still hoping they can somehow get access to a flash process, so that they can integrate the CPU core (and peripherals, of course) with the flash in the same chip. This board still uses QSPI to talk to an external flash, which houses the code.

I'm not sure how programming is done, with "traditional" microcontrollers that have their own flash, you use JTAG (or even serial on the older ones) to program the flash directly, then just remove the JTAG lines and reset the board and it runs your code. With this, I guess you have to program the SPI flash directly, or (perhaps?) use JTAG to talk to the microcontroller core and control its SPI that way?

Anyway, my understanding is that flash memory is "deep analog magic" which the people behind RISC-V haven't mastered yet, so they can't design the memory into the same chip as the processor core.

</comment><comment><USER6> Nice. That's a big improvement in price over the previous ones.

I'm still a little unclear on RISC-V's goals - are they looking at the microcontroller market or are they looking more to offer an alternative for ARM and x86 CPUs?

In the microcontroller market there's a lot of competition right now, especially with devices like the ESP32 going for $8 with wifi and bluetooth.

<comment><USER7> > I'm still a little unclear on RISC-V's goals

Maybe a bit cynic, but given their churn in the lower level specifications (supervisor mode and up) my guess is:

Main goal: write lots of theses and papers and obtain degrees.

Secondary goal: have an unencumbered ISA to help with the main goal.

Everything else depends on those who adopt the ISA. If some org is willing to spend the multi-million $$$ necessary to design a high-performance desktop class CPU (and more to make it a reality), it will happen.

Those low-end chips are easier to do, and an easier market to serve: The ISA's license fees are a bigger chunk of the chip's price, so RISC-V dropping that to 0 helps more. You also don't need to build a high-end chip that blasts everything else out of the water before your newcomer is even considered, since in the microcontroller market there are several pockets of "good enough".

If that works out, there might be attempts to scale up later (when they have experience and financial resources to work with).

<comment><USER8> Something I was thinking about the other day was what will happen when we hit mass market process limits, Intel has always stayed ahead of it's competitors outside of x86 land even when their architectures where not competitive by having the best process but when the rest of the world catches up and suddenly I can order a 20bn transistor 3nm (or whatever) chip with RISC-V cores then things start to look a lot different.

Throw in that we already have a mainstream (if you squint) desktop OS that is a compile away (and has driver support for a _lot_ of hardware) and if I where Intel I'd be worried in the mid-term.

Hell for the first time since the first AMD64's came out Chipzilla is looking vulnerable from the AMD direction, a surprise to a lot of people (including myself, I bought a Ryzen 1700 for work back in late May and I've been astounded by the performance per £ on my workloads).

<comment><USER9> Intel has a lot of threats lately. Things seem to be moving towards a small die and MCM strategy to get better yields and move investment towards the package and FSB. AMD made a huge investment in that direction with Zen arch and Infinity Fabric - Threadripper's big package and high core count has opened a new tier of enthusiast desktops - and they may have plans for furthering that on the GPU side of things(Vega is positioned for efficiency at lower wattage, which is poorly reflected in the "hot-and-loud" flagship releases. It's expected to pair well with Zen in the forthcoming Raven Ridge APUs though.)

Intel shares with Nvidia(also currently using large dies) a limited form of performance leadership at the high end that may be eroded in the face of these shifts. Most of the market is going to see more benefit from more cores instead of faster cores with the current conditions. That might be less true once we're talking about a baseline of 16 or 32 cores, but 2 is proving to be too few for current workloads.

And that's just their nearest competitor. ARM SOCs have consumed the mobile market and are creeping upwards. My ARM Chromebook makes a pretty good Linux desktop too, and you can practically trip over RaspPi devices.

<comment><USER8> I'm nothing but happy with my Ryzen 1700, I nearly held off a year buying my new laptop because I wanted to see what their mobile chips where like.

In the end I went with an i7-7700HQ because I simply couldn't make my old laptop last any longer, 8GB ram just wasn't enough for my workflow.

If the mobile Ryzens are amazing I'm going to regret that maybe.

</comment></comment></comment></comment></comment><comment><USER10> Slightly off topic, but are there more-or-less boilerplate RISC-V verilog/VHDL designs available that can deploy to ~$100ish FPGA boards? I'd be super interested in messing with that if so. I took digital design and HDL related courses in university but haven't really had an opportunity to do anything productive with that yet.

<comment><USER11> I have no experience with any of this, but to my knowledge what you're looking for is the Rocket Chip.[0] It's a RISC-V core implemented in Chisel. The primary FPGA target is a bit steep at around $500 [1] but there's a "small" config[2] that targets a more reasonable $190 board [3].

[0] [https://github.com/freechipsproject/rocket- chip](https://github.com/freechipsproject/rocket-chip)

[1] [http://store.digilentinc.com/zedboard-zynq-7000-arm-fpga- soc...](http://store.digilentinc.com/zedboard-zynq-7000-arm-fpga-soc- development-board/)

[2] [https://github.com/freechipsproject/rocket-chip#-how-can- i-p...](https://github.com/freechipsproject/rocket-chip#-how-can-i- parameterize-my-rocket-chip)

[3] [http://store.digilentinc.com/zybo-zynq-7000-arm-fpga-soc- tra...](http://store.digilentinc.com/zybo-zynq-7000-arm-fpga-soc-trainer- board/)

</comment></comment><comment><USER12> Just saw this:

[http://markets.businessinsider.com/news/stocks/SEGGER- Adds-S...](http://markets.businessinsider.com/news/stocks/SEGGER-Adds-Support- for-SiFive-s-Coreplex-IP-to-Its-Industry-Leading-J-Link-Debug- Probe-1002381278)

The ecosystem is starting to pull industry players.

</comment><comment><USER13> Notice how they're selling through GroupGets?

Aside from GroupGets and MassDrop, who else is operating in the crowd-funded, discounted bulk-purchase collaborative.. consumption.. space?

<comment><USER14> US$45 to ship down under for a US$50 order seems, excessive... guess I'll be buying the AU$10, shipping included one-hung-lo gearbest knockoff in a few months time then. Pity really, I love supporting these kind of projects.

<comment><USER15> Check what PriceUSA or Shipito would charge. (not affiliated, have used both of these services before)

</comment></comment></comment><comment><USER16> I wonder if you can program this with Rust? There seems to be some support for a LLVM backend which would suggest 'yes'. However the gcc linker is still required which I'm unclear on whether that rules it out: [https://riscv.org/software-tools/low-level-virtual- machine-l...](https://riscv.org/software-tools/low-level-virtual-machine- llvm/)

<comment><USER17> It's a work in progress: [https://github.com/rust- embedded/rfcs/issues/36](https://github.com/rust-embedded/rfcs/issues/36)

</comment></comment><comment><USER18> Does anybody know if/where you can just buy the FE310 on it's own?

<comment><USER19> [https://www.crowdsupply.com/sifive/hifive1/updates/fe310-chi...](https://www.crowdsupply.com/sifive/hifive1/updates/fe310-chips- and-improved-documentation-are-now-available)

<comment><USER18> Thanks! I missed that. $5 per chip is really not bad for a higher end microcontroller, especially with the 'low volume' tax.</comment></comment></comment>


Android Bootstrap - Android library of fundamental components - <AUTHOR> http://www.androidbootstrap.com/ Library providing implementations of fundamental android components.
Built for Android Studio and Gradle.
Android Bootstrap includes a full working implementation of Fragments, Fragment Pager, ActionBar via AppCompat, Navigation Drawer, ViewPagerIndicator, http-request, GSON, Robotium for integration testing, API Consumption with an API on Parse.com and much more. <comment><AUTHOR> It's basically a timesaver for starting projects / hackathons and little projects. It provides easy to use implementations of Fragments, Fragment Pager, ActionBar via AppCompat, Navigation Drawer, ViewPagerIndicator, http- request, GSON, Robotium for integration testing, API Consumption with an API on Parse.com and many more fundamental android components :)

</comment><comment><USER2> What is it exactly?</comment>


My Tablet Has Stickers - <AUTHOR> https://medium.com/learning-by-shipping/my-tablet-has-stickers-8f7ab9022ebd#.kzhslwdlz <comment><USER2> My kit that I take to hackathons is a B&N Nook Tablet together with a very cheap Bluetooth mouse and keyboard. I spin up a server in AWS and use it like the VT100 terminal I used to use years and years ago, or I use Remote Desktop to talk to a Windows machine.

Everybody and his sister has a Mac so this is something that turns heads and has had a sticker on it for a few years.

My "new" Nexus 7 is better in most respects except that the WiFi is not stable when Bluetooth is turned on.

Last time I went to NYC with my desktop replacement laptop in an overloaded book bag I twisted my ankle (I am soaking it an an ice bucket right now) and I am definitely thinking of a lightweight kit for business travel.</comment>


"Cloud" DOT Diagrams as Code - <AUTHOR> https://pointillism.io/ <comment><AUTHOR> Diagrams as code is no stranger around here. This renders DOT files from your github repos by changing the domain in the URL. Would love feedback.</comment>


Top Greatest Computer Scientists - <AUTHOR> http://mailp.in/b1hh8oNr

<comment><USER2> >If the original title begins with a number or number + gratuitous adjective, we'd appreciate it if you'd crop it. E.g. translate "10 Ways To Do X" to "How To Do X," and "14 Amazing Ys" to "Ys." Exception: when the number is meaningful, e.g. "The 5 Platonic Solids."

[http://ycombinator.com/newsguidelines.html](http://ycombinator.com/newsguidelines.html)</comment>


Mysterious 'ping' sound from sea floor baffles Igloolik - <AUTHOR> http://www.cbc.ca/news/canada/north/ping-beep-hum-sound-arctic-ocean-igloolik-1.3831861 <comment><USER2> Mysterious, unlocateable sounds have always fascinated me. Right now I was just looking for that impossible to triangulate low frequency vibration that plagued that one town i can't remember, but then I typed "mysterious sound" into YT and found out about this world wide event [1] [2] that occurred this year Jan 9-14 and nobody was able to explain it

1: [https://youtu.be/mTOQvDzihTU?t=223](https://youtu.be/mTOQvDzihTU?t=223)

2: [http://strangesounds.org/2016/01/unexplained-booms- increase-...](http://strangesounds.org/2016/01/unexplained-booms-increase-us- uk-january-2016-video.html)

<comment><USER3> There's going to be a whole lot more of these mysterious sounds because of climate change. Nobody knows what it sounds like when the permafrost starts to thaw and methane starts to bubble out of it. Russia's already seeing some very strange geological effects: [http://www.businessinsider.com/russian-exploding- permafrost-...](http://www.businessinsider.com/russian-exploding-permafrost- methane-craters-global-warming-2016-6)

This ping could be methane ice under the ocean melting, a sound akin to the cracking of ice cubes in water: [https://en.wikipedia.org/wiki/Methane_clathrate](https://en.wikipedia.org/wiki/Methane_clathrate)

<comment><USER4> I sure as fuck hope not. Melting clathrates would be an unimaginable disaster for the climate.

<comment><USER3> Like it or not but we're already well into the "unimaginable disaster" phase for climate change.

The biggest group of climate change denialists are those scientists that insist we can cap things at 2°, which at this point is about the same as thinking that Santa is real.

<comment><USER5> I'm not a climate change denialist, but I am a climate change optimist. I think it would be possible to cap things off at two degrees, but we would have to start sucking CO2 out of the atmosphere and doing something with it (like big tanks or put it underground as dry ice, etc). Anyone that thinks we can stop this by producing less CO2 is deluded. We're well beyond the "unmitigated disaster for our current environment" ppm level. If we can't fix this, at least life will evolve and move on after we and many other species go extinct due to human activity.

<comment><USER6> I have suspicions that most world leaders are aware of the work done on the various geo-engineering mitigation strategies and are willing to risk it.

Such a terrible prospect to consider but that hasn't stopped scientists and engineers planning for the worst. An ill-conceived quick fix scares me, yet seems to be more likely than global agreement to reduce emissions in the fractured world of international politics.

<comment><USER7> Actually, what is not appearing in those calculations, that the ability to react with technology might shrink due to the costs added by the migrations out of parts of the earth that become uninhabitable.

<comment><USER3> The problem with this is funding. If one country took it upon itself to save the planet they pay a huge price and everyone benefits, so there's no incentive to do it.

It's only when things get so bad there's no option but to do it, by which it's probably too late, when everyone might decide to fuck it and go solo instead of waiting for consensus.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Well, there go the methane clathrate deposits.

It was nice knowing y'all.

<comment><USER9> Eventually some spacefaring civilization will visit this system, note that the second and third planet are very similar and almost skip further exploration... But when they do, they'll be shocked to find out that one of the planets is a naturally developed hothouse hell while the other was turned that way by hapless inhabitants.

<comment><USER10> After we figure out how to increase the mass of our atmosphere 90-fold, maybe. Venus is around human body temperature at the altitude where atmospheric pressure is similar to Earth's.

<comment><USER11> The most Earth-like environment on the Solar System (other than Earth, of course), ~50km high in Venus[0] :)

And to think that humans could've gone there... [1]

(mainly I refer to the Apollo Applications and TMK-MAVR, I'm skeptical about Inspiration Mars)

[0] [http://web.archive.org/web/20110807004311/http://gltrs.grc.n...](http://web.archive.org/web/20110807004311/http://gltrs.grc.nasa.gov/reports/2003/TM-2003-212310.pdf)

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

<comment><USER12> Iirc, the second-most human-like is Saturn, where there are zones of warm air at around 10atms, which is manageable for humans. Not as radioactive as Jupiter, but you can't float a zepplin in pure Hydrogen. Also, the wind speed would obliterate any aircraft.

<comment><USER13> You can. Just you need to go the route of a vacuum airship instead. Or go for a hot helium balloon.

While admittedly science fiction, The Clouds of Saturn by Michael McCollum explores this a bit.

<comment><USER14> Now I want to build a hot hydrogen balloon. Put some drone motors and rotors on it from control. Then one day land it near an open flame.

<comment><USER13> A chemistry professor that I was acquainted with did this as one of his lecture demonstrations. Shakhashiri (and he's still doing it - [http://scifun.chem.wisc.edu/BZSPresentations/Presents.html](http://scifun.chem.wisc.edu/BZSPresentations/Presents.html) Once Upon a Christmas Cheery, In the Lab of Shakhashiri is going on its 47th year!). [https://www.youtube.com/watch?v=_tsgh_T59gE](https://www.youtube.com/watch?v=_tsgh_T59gE) has what you are looking for (at 3:42 though you'll likely want to start a tad bit earlier).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> The news that are more recent:

[http://www.cbc.ca/news/canada/north/igloolik-ping- military-i...](http://www.cbc.ca/news/canada/north/igloolik-ping-military- investigates-1.3835237)

"Military plane investigates mystery 'ping' near Igloolik Search turns up nothing"

<comment><USER16> > He said the noise apparently stopped after the military investigated.

So, man-made.

<comment><USER17> Or coincidence.

<comment><USER16> Maybe, I guess. But for it to go on so long and stop right as it gets seriously investigated is highly suspicious.

<comment><USER18> Another explanation is that the people reporting it were lying and stopped their false reports when the investigation was happening to protect their lie.

</comment></comment></comment></comment></comment><comment><USER2> This paragraph somewhere in the middle caught my eye:

"He also says some of his constituents suspect the sound is being generated on purpose by Greenpeace to scare wildlife away from the rich hunting ground. The organization has a tense past with Inuit stemming from its opposition to the seal hunt in the 1970s and 1980s."

</comment><comment><USER19> This could as well be some organization's military machine that they're experimenting with. Just like how mysterious objects in the sky could be explained. It's actually the most logical explanation in most of these mysterious cases. This is explained well in the awesome recent documentary "Hypernormalisation". Check it out!

<comment><USER20> In that location? That's a very bizarre place for a sub to be.

<comment><USER21> Why is that bizarre? It looks like a major passage to me. In a nuclear first strike scenario you want your nukes to be right at the front door so hopefully you can take out some silos before they launch. The militaries of the world have no doubt sprinkled hundreds of thousands of sea floor devices around the world since probably the 1950's. Some are probably nuclear powered, long since forgotten about, and will continue to emit for decades. There are fleets of autonomous ocean vehicles that go and gather their data and transmit it to satellites.

</comment></comment></comment><comment><USER22> Why can't they triangulate it? Too deep to go?

<comment><USER23> Sound doesn't always travel in a straight line in the ocean. Different depths (pressures), different water temperatures, different salinity... they can all change the speed of propagation to some degree. Currents may also bend sound. Triangulation assumes that the sound traveled from the source to you at constant velocity in a straight line.

<comment><USER22> I thought of something mobile, so you can home in. But very interesting to learn it can be bend and reflects so much .

<comment><USER23> I don't know if it's "so much". I can think of several causes, but I don't know how big the overall effect is.

</comment></comment></comment></comment><comment><USER24> Reminds me of a book from Barjavel (French author): The Ice People [https://en.m.wikipedia.org/wiki/The_Ice_People_(Barjavel_nov...](https://en.m.wikipedia.org/wiki/The_Ice_People_\(Barjavel_novel\))

</comment><comment><USER25> It's ice creaking

</comment><comment><USER26> Locator beacon ping from another US 'broken arrow' ??

(Sorry, got carried away with the other 'discovery of a broken arrow' thread here yesterday!)

</comment><comment><USER27> Russian sub...

<comment><USER28> A seismic anomaly?

<comment><USER29> Whales humping.

</comment></comment></comment><comment><USER30> A 300 year-old human spaceship? :)

</comment><comment><USER7> Triangulate, Track, Destroy ?

</comment><comment><USER31> Godzilla. It's the only logical explanation.

<comment><USER32> My first thought was "Kaiju are coming"

</comment></comment><comment><USER33> I'd think it was Megatron but "Revenge of the fallen" happened.</comment>


Ask HN: Would you be interested in a transparent and open source VPN service? - <AUTHOR> I had this idea last night of creating a transparent and completely open source vpn service. It would have all the source code available to review online for the backend, vpn box configuration, audit log of reboots, signed binaries, reproducible builds, etc. It would run as transparently as possible. It also opens up the platform to be steered by customer needs via issue tracking, PRs, etc.<p>How interested would you be in such a service? Would you be willing to pay a slight premium over blackbox VPN services? <comment><USER2> I have been looking at commercial VPNs for a while, and the problem with them all is that it's impossible to know which ones (if any) are trustworthy.

If you started such a service that could provide ongoing, real assurances as to trustworthiness, I would pay a premium for that. I'm not sure what that would look like, but your list is an excellent start.

I would say, though, that being open source -- while awesome -- doesn't really help in this regard, since you can't realistically prove that the code you're running on your servers is the same code that you're publishing. Signed binaries and reproducible builds don't help with this too much, I think.

But that's no different than any other service that someone else is running, so that's not a serious problem.

</comment><comment><USER3> I think you are on to something with the customers steering the platform.

I want to use a VPN if I am joining a network that I don't necessarily trust(guest wifi, coffee shop, etc.) I want to use a VPN so my ISP can't sell my browsing history to advertisers. I don't really care about if the VPN provider logs my traffic to make sure no one is abusing the service. I don't even care that much if someone subpoenas my traffic as long as I find out about it.

I wonder if a coop model would be a good fit? It would weed out all of the people who want to use it to hide their torrent traffic, etc. It would be very difficult to acquire the VPN just for the data, as each of the users are the owners. Everyone would have a right to know about subpoenas because they are part owners in the organization.

<comment><USER4> Do you have any examples of how a coop model would work for a service based business like a VPN? My feelings on VPN services like these will churn and burn in the long run.

As these services acquire extensive customer bases that on the face of it are trying to mask their activity (not saying this is bad) they're going to be bought out.

</comment></comment><comment><USER5> No.

Why would I trust some random third-party with this? Especially given that presumably customers of such a service might have some reason to secure their traffic, the value of subverting it is relatively high.

I can run a VPN on a $5/month virtual machine, dedicated to my personal use, without needing to trust the operator of the VPN service OR raising the value of subversion by concentrating private traffic.

</comment><comment><USER6> I had a similar thought, but stumbled when thinking about how you could actually assure users you didn't log stuff. Once you answer that question, you might have a product. Right now, there is simply no way to prove to a user that the server is only running one process, and it's only using the open source build(maybe hashing the build, not sure).

</comment><comment><USER7> So, basically host OpenVPN or WireGuard? What advantage do you offer over doing it myself, e.g. with a VPS @ $5/month? _That_ is the type of customer that cares about open source and whatnot in a VPN, so you need to provide some benefit beyond what you get by doing it yourself.

</comment><comment><USER8> Are you talking about a shared overlay network with its own services and working end-to-end connectivity between nodes, or just piping internet traffic egress/ingress to some other isp rather than my native one?

I think the former one would be cool.

</comment><comment><USER9> I think it's impossible to convince users 100% that you arent back-dooring logging under duress.

<comment> o-__-o Terms of service canary</comment></comment>


Dear Joyent - <AUTHOR> http://svallens.com/eric/article/87/dear-joyent <comment><USER2> My name is Rod Boothby. I head up the Evangelism team at Joyent.

It's true that some of our user interface stuff needs improving. We are planning on delivering some powerful solutions in the near future.

Over the past year, we have been focusing on helping clients deploy truly massive sites. The largest Ruby on Rails application in the world runs on Joyent.

<http://www.joyent.com/a/scale-rails-to-1-billion-pageviews>

Joyent has helped clients like ABC, CNN, Disney, Boston.com, and Gilt.com to deploy and scale sites that deliver Billions of page views a month.

For example, we have a Drupal site running on Joyent that can support 2.5 Billion page views a month.

Over the last month, we have delivered to clients solutions that you simply can not get from some of our competitors mentions below..

#1 Joyent VPN Cloud - a secure cloud deployment that is segregated at the switch level. This delivers the PCI compliance required by large sites.

#2 Joyent's Virtual Data Center software - we will be announcing more in the next few weeks, but the first instance of this product was delivered to a client in Japan in December '08. Even with virtualization solutions like XEN or VMWare, most data centers can only achieve 8% to 12% utilization. Joyent's Virtual Data Center software can help large data centers to achieve up to 80% utilization.

#3 Joyent Cloud as a Service API. For an example, check out what Aptana has down with Joyent's API: <http://www.aptana.com/cloud>

The stuff coming down the pipe is also really interesting.

The first includes a new tool that lets you fully instrument a production application and get true performance analytics designed to help you identify bottle necks and you to true Application Performance Level agreements.

The second is a new web based interface that lets you manage complex cloud deployments.

If you have questions, our would like to learn more, please feel free to ping me directly. ( rod at joyent ).

<comment><USER3> Jeez, can this sound more like a marketing pamphlet please? Are you going to address the blogger's concerns, or are you trying to distract us with shiny objects?

</comment></comment><comment><USER4> I litereally just, JUST. Like two moments ago, paid for a year of a 1Gb Accelerator.

What has Joyent done thats bad? I know their control panel is a tad clunky, but their support has always been top notch - sure its slightly pricey but I feel really confident they wont fuck up.

<comment><USER5> I don't know if this is still a problem, but for a company that claims to be the official Rails host; they don't work closely with popular Rails related software.

For example a few months ago the latest version of Capistrano wasn't working on Joyent's Accelerator (Solaris). Joyent support acknowledged this, but it didn't sound like they even cared or planned to do anything, so I just canceled my account and I moved to Slicehost. It's not perfect but you get more for the money.

<comment><USER6> Just out of curiosity, why did you go with Slicehost instead of Linode? For Rails hosting, RAM seems to be limiting factor if you only want to spend $20/month. On a Linode 360 I'm running 3 mongrels, nginx, and MySQL with some RAM to spare for crons and such. I'm just curious what advantages a Slicehost 256 would give me considering RAM seems to be the main difference between the two.

<comment><USER5> that's simple, because until now I haven't even heard of Linode; thanks for the tip

<comment><USER6> If you are starting out with linode you should be aware of the backup policy. Basically you have to roll your own. Let me know if you have any linode questions. I've been using them for about a year now. I think backups are the only feature linode is missing (compared to slicehost).

</comment></comment></comment></comment></comment><comment><USER7> I left Joyent several years ago for much the same reason. Their shared hosting was unusable for Rails. Joyent's Accelerators look like a nice solution, but they are significantly more than a VPS. I've been with VPSLink for several years and am very happy with them.

</comment><comment><USER8> I actually haven't even migrated off the FreeBSD servers yet. I'll go when they tell me to, but I don't need anything more than I've got.

I've had them for 3 years and been very happy with their service. (Though I agree that their long-promised big improvements sure haven't happened since becoming Joyent).

</comment><comment><USER9> Have fun paying Engine Yard's hosting bill. Hope you got a VC round.

<comment><USER10> I'm an EngineYard customer with no VC. We've also had to increase our resources and storage several times since launching.

If your startup actually grows and makes money, you can pay for high-quality hosting and growth ...

funny how that works ...

<comment><USER9> My startup has grown and is profitable, and I would never pay that. We pay about the same amount for a 16 core beast from Softlayer as you get there for one slice, which is weaker than a $300 Dell I bought two years ago.

What makes you go that route over any normal hosting solution?

<comment><USER10> For the specific Rails app we run at EngineYard, the fully-managed aspect is very attractive. I've got multiple apps and even multiple business ventures–so I can't be hands-on at the server level for everything.

Their staff is very pro-active and always available. I could go on, but my point was simply that EngineYard isn't just for vc-backed companies who need to burn some cash.

And, for the record, I also am a Slicehost and Joyent customer.

<comment><USER9> So essentially you're buying consulting? I guess that makes sense.

<comment><USER10> I'm not sure that managed hosting == consulting, but I suppose that's a fair way to look at it.

Both Rackspace and Engine Yard have called me on the phone to alert me of potential problems. I'm not sure that's something a consultant would do.</comment></comment></comment></comment></comment></comment>


Clojure Repl in Excel - <AUTHOR> https://github.com/whamtet/Excel-REPL <comment><USER2> If you need to produce some spreadsheets from Clojure, there's a wonderful library by Tom Faulhaber lets you define a spreadsheet as a template, then simply turn Clojure data structures into an .xlsx file.

He gave a talk on it at Clojure West 2015 [1].

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

</comment><comment><USER3> This may be a naïve question, but, if it is possible to install _without_ administrator privileges (which we should be trying to get everyone accustomed to doing anyway), then why is it set up to install _with_ them by default?

</comment><comment><USER4> Very cool!

kinda funny: Visual Studio project. Excel on Windows. "__MACOSX"-folder in .zip-file ;)

</comment><comment><USER5> Wow. whamtet must have had a very particular itch that needed scratching....

</comment><comment><USER6> Is there any chance to have this working with the OSX version of Excel?

I don't know much about the Excel environment and ClojureCLR so I don't know if it's feasible at all.

</comment><comment><USER7> Good to see ClojureCLR getting some cool usage. If only Visual Studio had some awesome integration like the Intellij Clojure plugin Cursive.

</comment><comment><USER8> I was just lamenting about this not existing and how useful it would be. Woot!

</comment><comment><USER9> Cool concept. Still don't think it's worth learning the lisp syntax for though.

<comment><USER10> Learning the Lisp syntax takes (quite literally) 2 minutes. Getting used to the Lisp syntax however...

<comment><USER11> Agreed. I think people sometimes use "syntax" to mean the entire package—code as data/data as code, immutability, functional transformation over data structures as opposed to mutation of objects and so on and so forth.

The syntax is literally,

      (verb arg1, arg2… argn)

and you're more or less done. The other stuff, however…</comment></comment></comment>


Amazon plans world domination with the help of AI and bots - <AUTHOR> http://factordaily.com/amazon-echo-future-prime-air-bots/ <comment><USER2> Currently, the submission does not match the article title: "The next stack in Amazon's journey and what it means for you"</comment>


Boost 1.60 – a short overview - <AUTHOR> http://meetingcpp.com/index.php/br/items/boost-160-a-short-overview.html <comment><USER2> These days, there are a few things I would prefer to see from Boost...

1\. A "mini-boost" that splits off some _very_ basic things like string algorithms that are still not in the standard, while specifically excluding the heavyweight components.

2\. Formal deprecation and eventual removal of some components, as C++ standards are finally getting their act together. For instance, no new code should probably depend on BOOST_FOREACH(), and I would think that the main issue with objects like boost::scoped_ptr<> is the dependency on boost names (but functionally, they ought to work when replaced by standard versions now).

3\. Merging of standard components and boost extensions. For instance, if there is anything that boost::foobar does better than std::foobar, keep boost::foobar but migrate the implementation to be in terms of std::foobar (with new behavior on top) so that boost-extended code can integrate more cleanly with code that uses standards only.

<comment><AUTHOR> Maintaining boost is incredible hard, as not all authors support their libraries over all the years.

But there is an volunteer group of maintainers which you can join to improve the overall quality of boost.</comment></comment>