State projections for Covid-19 - <AUTHOR> http://covidactnow.org <comment><USER2> This is all fine and good. And I should state that I am on board with the actions (in San Francisco/California) taken so far. However, I'm not unconditionally so.

I get that right now we're buying time. My current understanding is that we're trying to slow the spread of the disease because the existing health care system was going to quickly collapse under the weight; whether or not that should have been the case or not is a discussion for another day. I also understand that we are -not- trying to contain the disease, just "serialize" its progression (so to speak) through the population.

Assuming that understanding is sufficiently correct, what I'm not hearing enough of is what is being done with the time we're buying. Many in the Hacker News audience likes to talk about "externalities" and how the wise appreciates those externalities in their actions. Shutting down the economy has externalities; those externatlities can be life or death as well. If the strategy of those implementing the "shelter in place" is one of just waiting it out: then I'm going to be off the wagon fairly quickly. I want to start hearing strategies that start to address the issues of how we minimize impacts of this problem. I want to know what we're buying for the pain that we're being sold on. I want to know when people estimate that the societal damages of the illness start to be outweighed by the damages of our response.

I see the admin of the site suggesting we're buying time for these things. I want to start hearing this from the officials making policy.

<comment><USER3> It is terrifying how fast reasonable people have jumped on board with China- level lockdown policies that will decimate life-as-we-know-it after they end.

I've been reading every whitepaper and journal publication I can find on this disease.

The picture that I'm seeing is that this disease is both more infectious (higher R0) and less deadly than previously thought.

In light of those facts I am fairly convinced the lockdowns and resulting economic impacts will be worse than just isolating the most vulnerable and letting the rest of the population go about their business.

[https://www.medrxiv.org/content/10.1101/2020.02.12.20022434v...](https://www.medrxiv.org/content/10.1101/2020.02.12.20022434v2) (Suggests the R0 is much higher and IFR much lower than reported)

[https://www.epicentro.iss.it/coronavirus/bollettino/Report-C...](https://www.epicentro.iss.it/coronavirus/bollettino/Report- COVID-2019_17_marzo-v2.pdf) (shows that the people dying are very old and very sick already. Also given the fact that part of the population is so impacted strongly suggests the disease is much more widespread)

Also, all of the celebrities, politicians and athletes that are testing positive are proof, in my opinion, of how wide this has gone.

<comment><USER4> I'm with you.

We will all catch this unless we stay locked up until the vaccine comes.

So, expect everyone to catch it.

<comment><USER5> _Whether_ we catch it is not the issue, the vast majority of us will. It's whether when you do and have complications, you can go to the hospital or die waiting for an ambulance that never comes because the system is overwhelmed.

</comment></comment></comment></comment><comment><USER6> This site openly admits the obvious flaws in their model:

\- R0s for interventions are guesses, in some cases informed by data. There is no historical precedent for what is going on right now to draw from.

\- The default R0 used in this model is an average. The model does not adjust for the population density, culturally-determined interaction frequency and closeness, humidity, temperature, etc in calculating R0.

\- This is not a node-based analysis, and thus assumes everyone spreads the disease at the same rate. In practice, there are some folks who are "super- spreaders," and others who are almost isolated. Interventions should be targeted primarily at those most likely to spread the disease.

Are there any epidemiologists using less naive statistical models who are producing easily readable results like this? The "average R0" logistic function model seems better suited for examining historical epidemics than estimating risk to inform decision-making for ongoing epidemics.

<comment><USER7> I agree. The graphs are very pretty but would look very different if the R0 was even slightly modified. The mortality rates probably varies widely by state demographics as well.

That said, the implication that strict isolation should be maintained is almost certainly correct.

<comment><USER8> Hey guys - owner of the model in question here. Thanks for your feedback, and yes, the model isn't perfect. Idea is just to give some forward-looking picture for policy-makers to use to make decision.

Interestingly, the model is not nearly as sensitive to R-values as you would think, until they get under 1.5 (half the current observed number in most places).

See here: [https://www.researchgate.net/figure/Doubling-time-Average- do...](https://www.researchgate.net/figure/Doubling-time-Average-doubling- time-dots-and-95-CI-vertical-lines-as-a-function-of_fig5_258956572)

<comment><USER9> Really appreciate you putting this together.

</comment></comment></comment></comment><comment><USER10> I still feel there is compelling evidence that lung damage from things such as exposure to local pollution is a big driver in serious cases.

I say this as someone that thinks they had it a month ago. I was on steroids for a week, then a respirator, then steroids for another week. Worst asthma attack of my adult life. I live in Seattle... (And yes, i had fevers)

I did not get tested, but having a hard time shaking that I had it. And if I did, so has my family. With my kids all having fevers, but no shortness of breath.

Edit: I hasten to add that I am socializing this as a call for what am I missing? I am _not_ encouraging inaction.

<comment><USER11> So, if a lot of people have already had it, which I see a lot of people thinking they did, we need to find out if you can get reinfected.

<comment><USER12> Yeah this point has been bugging me for a while now. What's the reinfection rate / immunity rate? I know there are some reinfections but does that mean everyone can be reinfected or is it just a fraction that don't gain immunity?

<comment><USER13> lots of "reinfections" were debunked as false positives. search on r/COVID19 for details.

<comment><USER14> And it should be emphasized that 100% of reported reinfections were just news reports saying "hey this person tested positive after testing negative" \- there was never tremendously strong evidence for it.

</comment></comment></comment></comment></comment><comment><USER15> I don't get it, because these measures can't last forever. Let's pretend USA completely extreme isolates...step foot outside and you get arrested. Fine, the virus disappears in a month or two. Then what? Unless every single person on the globe does the same thing, you have to effectively keep your borders closed forever. This isn't a solvable problem at the state or national level, it's a completely global thing. We can attempt to slow it, but it's just gonna rear its ugly head again when we let our guard down.

<comment><USER16> These actions are for the ~5-10% of people who get this bug and who require intensive care in order to survive. The death rate is pretty low even for those who end up with severe symptoms if the full weight of modern medical technology and care can be applied to their recovery.

Right now, as I type this, many hospitals in the United States have had all of their excess intensive care capacity used up by Covid-19 cases. Not all, but many.

Once large groups of hospitals reach capacity, then there will be no choice but to black tag people who could otherwise be saved and leave them to die in the hallways.

Click this graph, then click Logarithmic at the top: [https://mackuba.eu/corona/#united_states](https://mackuba.eu/corona/#united_states)

You're right to note that this is a global problem. Given that, the vast majority of human to human contact is NOT cross border.

This bug is probably going to end up infecting most of the people in the United States. The main thing we can do at this point is to keep hospitals from being too overwhelmed, to keep the number of black tagged people, dying in the hallways, to a minimum.

<comment><USER17> > _Right now, as I type this, many hospitals in the United States have had all > of their excess intensive care capacity used up by Covid-19 cases. Not all, > but many._

Do you happen to have a source for this? I haven't heard much about hospital problems yet.

<comment><USER16> Anecdotal: my wife and I are friends with two ER nurses, one in Maryland and one in St. Louis, and my reports mirror what they're telling us.

</comment></comment></comment></comment><comment><USER18> The projections are ignoring a very important datapoint - there is significant evidence that COVID-19 does not have a positive R0 in warm climates. This means that in many areas, there is no need to flatten the curve - it will flatten naturally in the next month or two. On the contrary, by aggressively shutting down the spread now, we are leaving ourselves more vulnerable to winter outbreak which will be hard to stop.

Now the really terrible part is that the economic effect of the mass closure is going to grow exponentially. So layoffs start small and grow more massive week by week. And unlike COVID-19, that economic effect will not subside with the warming weather...

Here is some evidence:

Compare the slow growth in cases per day (green line) in CA and FL (warm) vs NY and WA (cold):

[https://covid-19.direct/state/CA](https://covid-19.direct/state/CA)

[https://covid-19.direct/state/FL](https://covid-19.direct/state/FL)

[https://covid-19.direct/state/NY](https://covid-19.direct/state/NY)

[https://covid-19.direct/state/WA](https://covid-19.direct/state/WA)

See for example how in Malaysia there was an outbreak due to a very large Muslim gathering with foreign travelers, that seems to diminish every day (indicated an R factor < 1) - [https://www.worldometers.info/coronavirus/country/malaysia/](https://www.worldometers.info/coronavirus/country/malaysia/) The same is true for Qatar.

Same examples all over the world for warm countries: [https://www.worldometers.info/coronavirus/](https://www.worldometers.info/coronavirus/)

<comment><USER19> How can you reliably use confirmed cases to suggest a trend given the disparity between states in test availability, population density, and timeline of introduction?

<comment><USER18> We are looking just at the trend. And the testing methodology that different states take is just a multiplicative constant of the confirmed cases. And exponentially growing function will make it negligible.

</comment></comment></comment><comment><USER20> Sheltering in place would be less necessary if everyone would stay at least 2 meters apart, wear masks, wear gloves, not talk unnecessarily or cough/sneeze at anyone, and wash up with soap when they get home. Some people seem unable to stay away and feel compelled to get in your face and talk.

</comment><comment><USER21> [https://covidactnow.org/state/CA](https://covidactnow.org/state/CA)

This is missing a HUGE point. At the very end of the California "shelter-in- place" plan, the numbers will go up. What it doesn't show is that this will merely delay the epidemic to 3 months in the future. The chart useless with only a 3 month time horizon.

<comment><USER22> Keep reading. This footnote is attached to the California-style scenario:

> * A second spike in disease may occur after social distancing is stopped. > Interventions are important because they buy time to create surge capacity > in hospitals and develop therapeutic drugs that may have potential to lower > hospitalization and fatality rates from COVID-19. See full scenario > definitions here.

<comment><USER21> Thanks. I did see that, but it should more than a (literal) asterisk at the bottom of the page.

<comment><USER22> There's a balance here between insight and precision. As you make information more precise, you often make it less understandable.

If you put the information in the footnote into the table, it makes the table harder to read.

As it is, the footnote is right below the table (not at the bottom of the page) and the information about the second spike is BOLD. That stands out to me.

</comment></comment></comment></comment><comment><USER23> I guess the operative detail is whether shelter-in-place will get us to a "23%" total infection rate vs 70%.

I wonder if that's accurate. I also wonder if this is recurring in the fall, and every year, and whether physical distancing will be mandatory every year?

<comment><USER24> How many recurrent seasons would it take for countries/society to adapt and cope (whether that's hugely more full-time remote workers, or blanket acceptability of it part-time/during such occasions, or something else) I wonder?

<comment><USER25> Just one I think. People are already coping, and it's barely started. If people knew a 3 month shelter-in-place was a yearly rule, we could plan for it.

<comment><USER26> People with either cushy office jobs or enough savings to be long-term unemployed are coping. The millions of service industry employees either aren't, or soon won't be.

<comment><USER25> I would assume there would be changes to how unemployment works if this was a regular thing.

<comment><USER27> The problem is that those changes are highly politicized, because they hit a bunch of culture war buttons about "socialism".

And it's been a while since American legislators have considered the possibility of torches and pitchforks, so they still prioritize their electability (especially in the primaries, where ideological purism is more important) over social necessity.

</comment></comment></comment></comment></comment></comment><comment><USER28> Here let's do some numbers since this group likes numbers: Population of China: 1.4B Population of USA: 330M China Population/USA Population ~= 4.5 Case Count China: 81250 Case Count USA: 19285 China Case Count/USA Case Count = 4.2 Given the current rate of increase and the lack of action, the USA is on track to be in a worse situation than china and is still trying to figure out what to do. Best to look to countries like Taiwan, Japan, S. Korea, Singapore and maybe learn from their actions because the current approach is clearly not working.

</comment><comment><USER29> Stupid question: why do all the curves go down way before reaching a large percentage of the population? For example, California's curve peaks at ~900,000, only 2% of its population (and only a bit more if you consider cumulative hospitalizations). I guess 2% is not enough for herd immunity to kick in so what is it?

Edit: Oops, brain fart. Those numbers don't include all cases, just hospitalized ones.

<comment><USER30> Those are hospitalizations, not infections.

</comment></comment><comment><USER31> Site is broken for me. The url [https://covidactnow.org/data/wa.7.json](https://covidactnow.org/data/wa.7.json) is returning an HTML document with the text "You need to enable JavaScript to run this app." and there's a JSON.parse error in the console.

<comment><AUTHOR> thanks for this, looking now

<comment><USER8> sorry about this! Hopefully fixed shortly.

</comment></comment></comment><comment><USER32> So, this projects 3-months out. But what about after that? The graph for my state (MN) showed 3 months of sheltering in place would keep infections down, but then start to rise immediately afterwards. Then the graph ends. I think super-extended voluntary isolation is going to be a tough sell.

<comment><USER8> Hey guys - owner of the model in question here.

Yes, that's exactly right, but 3 months (or even 1 month) may be enough time to prevent unnecessary deaths by preparing hospitals, getting more ventilators, rolling out testing, and hopefully finding a therapeutic drug (vaccines are probably farther off).

Nobody can predict the future, though.

<comment><USER27> 3 months is definitely not enough to grow the hospital and ICU capacity 7x, which is what's necessary to prevent deaths due to lack of healthcare availability. It'll improve some, and that will save some lives, but not most of them.

Pervasive testing looks like the best short-term hope right now - it's easier to drastically ramp up test manufacturing, and you don't need a full-fledged hospital for mass testing.

</comment></comment></comment><comment><USER33> Naive question: in the states I looked at, the "California-style shelter-in- place" line consistently goes _up_ again toward the right side of the graph (end of June to July), whereas none of the other approaches have that second lift. Why is that?

<comment><USER34> Because the first wave is enough to develop herd immunity and reduce the R-rate of the virus

<comment><USER33> But the second lift suggests the model is showing the R-rate going _up_ after a drop, which is what I'm asking about. The other curves -- which presumably also involve herd immunity to some degree -- are pretty much bell curves.

</comment></comment></comment><comment><USER35> This was just used to trigger a shelter in place in Dallas. Thanks to whoever built this!

[https://www.dallasnews.com/news/public- health/2020/03/22/hos...](https://www.dallasnews.com/news/public- health/2020/03/22/hospitals-will-run-out-of-beds-by-late-april-if-gov-abbott- doesnt-order-texans-to-stay-at-home-hospital-group-warns/)

</comment><comment><USER36> This seems to be treating number of positives test results and number of hospitalizations as the same thing? That seems...wrong...

</comment><comment><USER37> This is what worries me:

> Our models show that it would take at least 2 months of Wuhan-style Lockdown > to achieve full containment. However, it is unclear at this time how you > could manage newly introduced infections.

When will Wuhan accept travelers from Spain or Italy ? Or are we going to live with border controls & quarantines forever?

</comment><comment><USER38> It appears this assumes a doubling rate of 3-4 days? That's pretty pessimistic compared to what the science-heads are saying, right? I've heard 5-6 days, 6.2 from another source.

EDIT: I'm talking about the doubling rate of the actual cases, not the confirmed cases.

<comment><USER39> The US has averaged over 30% daily increases in infections for the last 20 days. 1.3 x 1.3 x 1.3 = 2.2x growth every 3 days making that 4 day doubling optimistic. [https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_t...](https://en.wikipedia.org/wiki/2020_coronavirus_pandemic_in_the_United_States)

New infections are modeled to noticeably slow down once ~1/5 of the total population is infected, but at that point things have already fallen apart.

<comment><USER40> The US has also been ramping up testing, assuming number of infections is a linear function of known cases is a mistake.

<comment><USER39> We are not doing 16,000 / 42 = 380x more tests per day on March 20th vs March 1st. It's not even obvious if we are overlooking a larger fraction of infections today than back then.

Also of note that 30% daily increase I spoke of underestimates the difference between March 1 and March 20th.

</comment></comment></comment></comment><comment><USER41> In my opinion this page isn't terribly informative unless you happen to live in Texas or California.

Basically every state has measures in place already. None of that is reflected here, and there is no way to tell where it fits relative to the scenarios shown.

</comment><comment><USER42> Where is this data coming from?

I have not seen any numbers to indicate Utah was at 96 hospitalizations as of yesterday. Are other state's number correct? Was California at 952 hospitalizations as of yesterday?

Is this just using number of cases as hospitalizations?

</comment><comment><USER43> So according to these models, we should be Wuhan-ing our states?

<comment><USER44> Well I still have a fundamental question, what happens when China, or anyplace else, un-Wuhan's?

They seem to be opening stores, starting flights to SFO, but surely China is not clear of the virus. So, are we expecting a pick up in infections now. And, if not, please explain why not.. I'm really curious..

<comment><USER45> Here's an expert discussing that: [https://www.youtube.com/watch?v=EpQmMkPj- mE&t=3m8s](https://www.youtube.com/watch?v=EpQmMkPj-mE&t=3m8s)

I get the impression that it's BS to say "look at South Korea and China, they're beating the outbreak and will soon be able to relax because they have lots of testing and transmission tracing". I haven't heard a single expert suggest that a "second wave" is avoidable at this point. It might have been avoidable if the whole world had reacted quickly and decisively in the early stages, but that ship has sailed.

The CDC also suggested that China was reporting falsified data in January (not surprising). Why should we trust their numbers now?

</comment></comment></comment><comment><USER46> This would be a lot more helpful if there were a line with actual daily hospitalizations as well.

</comment><comment><USER47> Is there an accumulative data chart for the entire nation?COVID-19 has no state boundaries!

</comment><comment><USER48> Having read some of the comments here, I want to say that I think I fall in the "cynical" portion of the population. Then again, my family is Russian, and we all typically think we're all gonna be screwed somehow.

The most optimistic outcome, for me, is that remote work becomes a bigger possibility when companies realize they're wasting tons of money on too much office space.

People already know that we can live with less. _Businesses_, however, do not realize this. I hope businesses ( especially big ones ) realize this.

Shortcomings in our economy and health care ( not just America, but world-wide ) will be realized and fixed.

However, I do not think any of the above will become true. Humans have short memories. I think once the crisis is over, business as usual will resume and we will have made no progress. Other than another vaccine.

</comment><comment><USER49> would like to be able to look at a whole country projection, if possible

<comment><USER35> Not sure how much effort you want to put into it, but the raw data is in JSON files on the site under the following pattern:

[https://covidactnow.org/data/{{state_abbreviation}](https://covidactnow.org/data/{{state_abbreviation})}.{{scenario_number}}.json (where scenarios go from 0 - 7)

<comment><USER49> very cool, thank you

</comment></comment></comment><comment><USER50> I see a lot of rumbling in this thread about how we need to ask ourselves if the costs of a shutdown is worth it, or what happens after a shutdown?

My question is this: what would _you_ propose we do? If we don't lock everything down, we'll overwhelm the hospitals and the death rate will skyrocket. And then the deaths will be less skewed towards the elderly, because virtually all causes of mortality will shoot up when we no longer have a functioning medical system to treat anyone for anything except this.

Are you really proposing we just let hundreds of millions of people all over the world die over the next 6-12 months? So we'll all just go back to work and to restaurants and on vacation while 5% of the population is gasping their last breaths in a hospital somewhere? We'll just say goodbye to a huge chunk of our parents and grandparents and aunts and uncles and coworkers? Because the economic cost is just too high?

It's easy to complain about this course of action. It sucks. But unless you can lay out a plausible alternative, this still seems like the best one to me.

<comment><USER10> Nobody is proposing we just let people die. At least, nobody credibly that I have seen.

There are some questions on if there was really going to be a curve to flatten. Such that, if we flatten it now, was it the social distancing we did, or was it going to flatten anyway?

These are not reasons to abandon caution. They do seem valid questions, though. Especially considering the costs of the actions we have taken.

<comment><USER16> > Nobody is proposing we just let people die.

Agreed, but a lot of people are arguing for the thing that will almost certainly lead to a lot more deaths.

Right now, as I type this, many hospitals in the United States have had all of their excess capacity filled with Covid-19 cases. Not most, but many.

Now, please click this link, then click Logarithmic on the top.

[https://mackuba.eu/corona/#united_states](https://mackuba.eu/corona/#united_states)

Once large groups of hospitals reach saturation, people who could otherwise be saved will be black tagged and left to die.

Two women my wife is Facebook friends with, after two weeks of a mild fever, malaise and a moderate, unproductive cough, started having a hard time breathing. They went in and were both positive for Covid-19. They were placed on ventilators, and were soon in critical condition. One of them died this morning, the other is clinging on to life.

Neither of these people are old; neither of them have any substantial medical history or other comorbidities.

This bug is dangerous for all of us; it's extremely dangerous for some of us.

It's true that few people are soberly thinking about the mid and long term economic cost of this pandemic. In my opinion, there's a good chance we're facing something on the order of the great depression.

Be that as it may, lives must come first.

<comment><USER51> > Right now, as I type this, many hospitals in the United States have had all > of their excess capacity filled with Covid-19 cases.

Today Santa Clara county has 65 people hospitalized:

[https://commons.wikimedia.org/wiki/Data:COVID-19_Cases_in_Sa...](https://commons.wikimedia.org/wiki/Data:COVID-19_Cases_in_Santa_Clara_County,_California.tab)

In comparison, Stanford hospital has 600 beds:

[https://facts.stanford.edu/about/hospital/](https://facts.stanford.edu/about/hospital/)

<comment><USER52> Ok, maybe not yet. But once you start the lockdown, exponential growth continues for a couple of weeks (at least). If it grows at the same rate as in Europe, at the end of those two weeks Santa Clara county will need to hospitalize more than 15000 people.

<comment><USER51> I strongly suspect that the epidemic spread will be very different between large and small cities, suburbs, and country side. Plus Santa Clara county has very different demographic than Italy.

BTW, with the amount of people going back and forth between Bay Area and China, I have hard time believing that we had no cases in Jan/Feb. I personally know two people (and I met with both within a few days after their return) who came back from Wuhan in Dec and early Jan. A lot of people were sick in late Dec and early Jan with very similar symptoms.</comment></comment></comment></comment></comment></comment>


Hi-res Street View for Vancouver/Squamish/Whistler - <AUTHOR> http://www.readwriteweb.com/archives/a_better_street_view_comes_to_canada.php <comment><AUTHOR> I like the full-screen mode and how you can jump ahead multiple 'dots'.</comment>


Data on 53 Patients Treated With Investigational Antiviral Remdesivir - <AUTHOR> https://www.gilead.com/news-and-press/press-room/press-releases/2020/4/data-on-53-patients-treated-with-investigational-antiviral-remdesivir-through-the-compassionate-use-program-published-in-new-england-journal-of-medici <comment><USER2> Same comment I posted on the other thread relevant here:

Very promising early results. The caveats for non scientists to be aware of is that these are not randomized trials with a placebo and all - this is just through a mechanism called "compassionate use" that allows Gilead to give people the drug. Also, 68% of patients improved, the title implies that patients say a 68% improvement in their symptoms which is not the case, the 68% is the number of patients improved divided by total number of patients. To get a good picture of how much the drug improves outcomes compared to not having the drug administered, we need large placebo controlled randomized trials so we can get the statistical signal to see if it works and how well it works. As the paper states, those trials are underway.

<comment><USER3> > More than half of patients on mechanical ventilation were extubated (57 > percent, n=17/30) and nearly half of all patients (47 percent, n=25/53) were > discharged from the hospital following treatment with remdesivir.

Death rate for patients on ventilators has been something like 80 percent.

<comment><USER4> But, given that this was not a randomized trial, and was given on a compassionate use basis, we don't know whether...

A) This is better than expected because doctors and families only elected to use this for patients who were otherwise MORE likely to die.

B) This is worse than expected because doctors and families only elected to use this for patients who more likely than not to survive.

C) This result is meaningless because there's too much noise in who was given the drug and who was not.

<comment><USER2> It's a nice signal, but yeah, theres a reason they're running a large randomized controlled trial right now for FDA approval - they arent likely to get approval just based on this.

</comment></comment></comment></comment><comment><USER5> They changed their endpoints, too, i think.

 _The primary endpoint of the trial of moderate COVID-19 patients originally looked at the proportion of patients discharged by day 14. The trial of severe patients was assessing the normalization of fever and oxygen saturation through day 14.

Now, Gilead has changed all of those details. The trial of patients with severe COVID-19 has swelled in size from 400 subjects to 2,400 participants. Gilead dialed the enrollment target in the clinical trial of moderate COVID-19 patients up from 600 to 1,600.

The trials have new primary endpoints, too. In each case, Gilead has changed the primary endpoint to focus on the odds of improvement on a seven-point scale that runs from death to not hospitalized._

[https://www.fiercebiotech.com/biotech/gilead-supersizes- remd...](https://www.fiercebiotech.com/biotech/gilead-supersizes-remdesivir- trials-changes-primary-endpoint)

<comment><USER6> That's for a different study though, no?

<comment><USER5> i'm not sure

<comment><USER2> Its definitely a different study, this one has nowhere near thousands of patients...

</comment></comment></comment></comment><comment><USER7> As my advisor always used to say. If you didn't include a control, you didn't do an experiment. It's that simple. THe results are promising, but you have to keep in mind what that really means. It means, we haven't proven that it doesn't work. SO there is a chance that it works and we don't know how big that chance is. It also means that we haven't proven that it causes more harm than good. So there is a chance that it does indeed do more harm than good.

</comment><comment><USER8> No randomized control group. Without one all that these findings mean is "go get more data".

<comment><USER9> They also mean "advertising opportunity in the face of ignorance."

Due to general systemic issues of incentives and disincentives to research (especially tied to profit driven entities but its everywhere) that are growing ever more problematic, successes are often painted more vibrant and failures toned down, usually through loose/generalized language in summaries or by adding so many quantifiable qualifiers to the situation/experiment at hand, the results become nearly useless.

Research is not incentivized to give unbiased truth of failures the way science should be. They focus on optimistic results and try to gloss over negative results (have to pay rent and keep eating).

The truth usually requires reading through a full paper because while forming narratives is commonplace, pure academic dishonesty is not. Research results _typically_ do not forge or falsify results.

Even in a humanitarian perfect situation where Gilead is pushing the supply of this out for free, I can assure you managers and purse holders want to see positive results. If you're a research scientist working at Gilead, I highly suspect you're going to be encouraged to show positive optimistic results, not problems/shortcomings (as in most business environments). If you do show negative results, they won't see the light of day if they're even read by management.

<comment><USER2> It's not like you can go buy the drug on the open market. The fda are the gatekeepers, and as gilead states in the press release, they are currently running a large phase 3 study with a control group etc to confirm these results

</comment></comment></comment><comment><USER10> So many gilead/remdesivir posts here... of no better quality than the whole chloroquine controversy...

Ctrl+F Gilead:

[https://www.ycombinator.com/people/](https://www.ycombinator.com/people/)

<comment><AUTHOR> False equivocation. Remdesivir has been actively going through the drug approval process. P2 results for remdesivir indicate that side effects include liver issues. Contrast that with chloroquine which is nowhere near as studied (in context of covid) and is significantly more dangerous. There's a reason why the WHO put remdesivir as the most promising drug.

</comment></comment><comment><USER11> My question is why, three months in, we don't have data from even a small RCT of Remdesivir?

<comment><USER2> They usually have predetermined readout dates since p values can fluctuate throught data collection and prospectively defining those dates prevents you from being able to just pick the best time for a readout and skew results

<comment><USER12> Somewhat counterintuitively to frequentists, this is not a problem if they did Bayesian analysis. Many new trails for COVID19 therapeutics are actually reporting realtime Bayesian estimates of efficacy.

[https://www.pwc.com/us/en/industries/health- industries/libra...](https://www.pwc.com/us/en/industries/health- industries/library/coronavirus-who-master-clinical-protocol.html)

</comment></comment></comment><comment><USER13> TL/DR: Treatment before intubation.

</comment><comment><USER14> This press release has no medical significance. It is borderline irresponsible for Gilead to release such information, albeit they seem to have carefully qualified everything they say so as to avoid liability.

<comment><USER2> Irresponsible to who? This doesnt get the drug approved. They're running large phase 3s and all, which is what let's them put the drug on the market. In the mean time compassionate use data is useful to know.</comment></comment>


Is Clean Code Necessary? - <AUTHOR> https://jeanrenesite.wordpress.com/2016/06/15/is-clean-code-necessary-part-i/ <comment><USER2> Personally, I've found that heavy application of OO patterns leads to code that is very unclean, in terms of being "simple and direct".

First developers apply the single-responsibility principle, and break down previously large but comprehendible classes in thousands of tiny components. While each component is trivial on its own, the truth of how they combine to produce a particular application feature is now hidden within an implicit object graph that cannot be understood by new developers, except through a torturous process of cross-checking and debugging until they have built a fragile mental model of what's going on.

Next developers get embarrassed by all the new-ing up of components they're doing, so they introduce dependency injection. But rather than just injecting those things that have a genuine need for varying implementations, suddenly everything gets to be a service. Abstractions proliferate, factory factories appear, everything is behind an interface (with a single "default" implementation), and navigating the codebase becomes a nightmare.

<comment><USER3> Not convinced it's the application of OO patterns that leads to bad code but bad programmers (at least in the major part).

I've seen clean code bases in OO/functional and pure procedural and bad code bases in those as well.

I think it's tempting to blame bad code on things like bad languages and bad architectural patterns because they are externalities and can be blamed without mentioning the gorilla in the room, bad programmers write bad code.

I'm not clever so I don't write 'clever' code, I actually find it hard to work on code bases where they tried to be clever or do too much in one function/class.

Architecture is like salt, a little enhances, a lot ruins.

I don't write simple clear code out of any sense of purity or attempt to be 'clean' but because I know that in six months when I open this file it'll be me fixing it and I won't understand what the hell $me-6mths was thinking.

<comment><USER4> > Not convinced it's the application of OO patterns that leads to bad code but > bad programmers

There's one thing I would point at. When non OO code is bad you can usually point at the problem: bugs, performance, security issues, coupling, so on and so forth.

OO code can be bad yet contain no debuggable issues. Once it's laid out, noone is going to "fix it" because it's not technically broken. It'll just rot due to lack of maintenance, until there's noone left with a good mental map of it and enough of the non-OO contents are broken enough that it gets replaced all at once.

</comment></comment></comment><comment><USER5> Things aren't unconditionally necessary except in modal logic. In the real world things are conditionally necessary. Clean code is necessary... for ongoing development. Clean code is necessary... to allow developers to onboard quickly. Clean code is necessary... for reducing the cognitive overhead and avoiding mistakes.

Unfortunately without stating these assumptions it's impossible to prioritize and be rational about development. It provides no guidance. Should we drop everything we're doing and "clean up" the code? Is it even worth investing in? These are questions that have different answers depending on the assumptions and simply saying it's "necessary" is insufficient.

</comment><comment><USER6> Clean code is not an OO concept. It's a higher level concept. SOLID may help you achieve clean code in OO, but clean code does not mean "know SOLID".

<comment><USER7> I agree, but for the bulk of software engineers it's probably on point.

For many of us, it's nothing new, but I do think that it's remarkably easy to just rip code toward a deadline unconsciously without keeping these concepts in mind.

If you do backend, the user doesn't give a shit about your clean code, so sometimes it's a trade-off in deciding your approach knowing the lifetime requirements and maintability needs of a project which only comes from experience.

<comment> maze-le > If you do backend, the user doesn't give a shit about your clean code

It's not about the user. Coding in a 'clean' way is something you do for your colleagues and maybe future colleagues, who will have to maintain and upgrade your software in the future.

> so sometimes it's a trade-off in deciding your approach knowing the lifetime > requirements and maintability

I have seen quite some hacks that were intended as 'one-time-only' and 'we- refactor-this-later' solutions. I don't think any of these trade-offs payed out in the end. The proper work to refactor crappy code and reintegrate it into the system took a whole lot of time longer than implementing it correctly in the first place.

The only situation where hacks like this are acceptable in my opinion are 'one-time-only' prototypes (where the prototype code does not find its way back into the codebase), where certain features are shown to a customer, and the rest are mockups.

<comment><USER8> Often I find that clean code is something I do for my future self too. Having some external factor break your algorithm and coming back to multiple nested loops and "i,j,k,l,x,y" variable names makes it take way too long to fix.

<comment><USER9> Oh _cringe_. Please don't use "l" as a loop index! Don't use it for anything! Make it go away!

</comment></comment></comment></comment></comment><comment><USER10> _Liskov Substitution: An object can be replaced by supertype without breaking the program_

Shouldn't that be _sub_ type? Or am I misremembering this?

<comment><USER11> Many developers, myself included, aren't fans of the Liskov Substitution Principle because base classes aren't a great way to reuse code.

Prefer composition over inheritance for reuse. And prefer interfaces over base classes (abstract or concrete) for polymorphic behavior.

There aren't many situations where Liskov is even relevant with those principles in mind. I have to inherit from a concrete type from time to time when when a third-party API requires it. And, inevitably, my design becomes more convoluted than necessary because of that.

<comment><USER12> The problems with subclass inheritance aren't a challenge to LSP. They're an illustration of exactly what LSP is about.

In order to make it easier to follow LSP, it's wise to minimize the amount of concrete implementation in your base types. The more you can minimize it, the less likely you are to encounter a situation where a base type implements behavior you don't want. That in turn reduces the spots where you might even want to violate LSP.

The logical end to this is purely abstract base classes which contain no implementation. These types are so easy to reuse that some languages have even enshrined them as their own special language construct (typically called "interfaces"), and given them special privileges that types which allow implementation don't get to enjoy, such as multiple inheritance. The reason they get these special privileges is that it's relatively easy for them to enjoy those features without violating LSP, whereas it's inherently tricky for types that include concrete implementation to do the same.

<comment><USER11> I wasn't challenging the LSP as much as saying it's practically moot, at least for me. To that end, the digression into ABCs and LSP only gives inexperienced developers a digression to explore on the way to cleaner design principles.

It's also worth noting that ABCs are especially problematic when physical representation of data is concerned. Inheritance in C++ affects memory layout, for instance. And adding new serializeable members to a base class in any language is a reverse-incompatible change.

<comment><USER12> If there's any physical representation, then it's not all the way there on the abstraction front. I meant to exclude any definition of storage format with the "that contain no implementation" qualifier, because specifying data members is necessarily specifying how you expect the storage of that information to be implemented.

As a contrasting example, Java and .NET interfaces aren't allowed to contain fields, only method and property signatures. Which really means only method signatures, since Java and .NET properties are just methods + syntactic sugar. Both languages also have ABCs, but they are distinct language constructs that don't get to enjoy the same privileges as interfaces.

That may mean that C++ abstract base classes don't quite hit it on the LSP front. It's also true that C++ is a language that predates LSP's formulation by over a decade, so we can't really expect it to be a language that's designed to take LSP into account, anyway.

Long story short, though, just because LSP is baked into your programming language doesn't mean it's moot. It just means you're working in a language that's well-designed on that front.

</comment></comment></comment></comment></comment><comment><USER13> I think the author's statement of the Liskov substitution principle is backwards; An object must be replaceable by a subtype, not a supertype.

<comment><AUTHOR> Yes you are totally right. I mistyped a word. Where it says supertype I actually meant subtype. I corrected the article.

</comment></comment><comment><USER14> Today a discussion like this make me so jealous I get vertigo... :-)

Yesterday evening I spent two hours just to trace and understand the dispatch for a really simple and small part of a big, old web application.

(To save time, the answer to the question you want to ask is: "Yes, glad you asked. It really is from 1999. And no, they don't know the word refactoring.")

<comment><USER9> At least it's a good excuse to put on a Prince album while you work.

<comment><USER14> My music of the time was more singer songwriters, balkan gypsy, modern jazz and death/black. :-)

</comment></comment></comment><comment><USER15> Encapsulation and modularization is necessary, nothing more.

If you get this right, you can get away with a bunch of crappy thing, because you can easily throw them out in the future and reimplement them better.

<comment><USER16> Really _nothing_ more? I beg to differ after having to plough through lines of code just yesterday where, just to give some examples

\- each single line uses a different formatting style

\- variable names are hard to read abbreviations

\- variable/class names don't make sense

\- 5 is a level of indentation easily reached

\- there's almost as much dead code as live code

\- comments are grammatical nonsense and don't explain why the code is written the way it is

<comment><USER15> Can all be fixed rather easily, if there ha been good modularization.

But yes, I prefer those things too, haha

<comment><USER17> But to replace code, first you have to understand it.

<comment><USER15> Modules have an api and a responsibility, often this +any code helps to understand whats going on good enough

</comment></comment></comment></comment></comment><comment><USER18> "Clean code" at this point in time sounds more like a inside joke for uncle bob fans to satisfy themselves with

"Clean code" sounds a lot like "True Scotsman"

SOLID is better but it still is subject to some subject interpretation

</comment><comment><USER19> It only matters if you value the code. Nobody cared if Space Invaders source code was a ball of mud that was hacked together once and never looked at again. It still made millions of dollars.

</comment><comment><USER20> As with everything, it depends on your requirements, including timeline, shelf-life of application, and future maintenance/feature building.

Sometimes, code is a one-off and it is better to write something that works rather than worrying about the perfect implementation.

One should strive for clean code when one can, but all things have tradeoffs that have to be decided for/against.

</comment><comment><USER21> > Open-Closed: A class should be open for extension, but close to modification

I hate when people do this. Closing class for modification is very easy, but opening it for extension requires predicting the future, which is impossible. Which coupled with being closed to modification destroys re-usability.

</comment><comment><USER22> Clean code does not matter by itself; comprehensible code does. If you understand what you have you can reason about when it might go bad and avoid it; even if it does fail you can understand why and fix it; you can see what you need to do to modify it in the future. That's what matters.

</comment><comment><USER23> Depends on the definition of necessary. If you consider living a pleasant life necessary, then the answer is yes.

</comment><comment><USER24> TLDR: Yes.

<comment><USER25> And here I was expecting something that will shake the core beliefs and uproot good ole Uncle Bob; alas, not the case, yet another "Yes, clean code is good, unclean baaad"; I mean, the concept is great and all, but damn, stop preaching to the choir, it will get us nowhere...

</comment></comment><comment><USER26> Is Clean Code Possible? Not if you're writing ES5 JavaScript for the browser.

<comment><USER27> This comment should not be downvoted.

It's a hard realpolitik of web programming.</comment></comment>


The Story of the Team Behind the 6502 - <AUTHOR> https://www.team6502.org/ <comment><USER2> The website's video cover is a remake of that classic photo by EE Times that shows the 6502 team members holding the chip layout, which is excellent. Unfortunately, it copied the original mistake by EE Times in print [0] as well: the image is improperly mirrored by the Y-axis, it makes all people left-handed and the flipped the layout as well!

If you compare the 6502 layout using the dieshot by the Visual6502 team [1], you can clearly see that the layout is flipped. Note the location of the T-shaped and L-shaped circuits at the bottom-left and bottom-right.

[0] [https://research.swtch.com/6502](https://research.swtch.com/6502)

> An EE Times article from August 1975 shows a picture of the 6502 team, along > with a caption listing Harry Bawcom as a "layout designer" and Bill Mensch > as a "design engineer," which seems to corroborate Bawcom's note. (Note that > the photo printed in the article has been mirror-image reversed.)

[1] [http://visual6502.org/JSSim/index.html](http://visual6502.org/JSSim/index.html)

<comment><USER3> Here's the EE Times photo: [http://www.commodore.ca/gallery/magazines/misc/mos_605x_team...](http://www.commodore.ca/gallery/magazines/misc/mos_605x_team_eetimes_august_1975.pdf)

</comment></comment><comment><USER4> What's really interesting is how long 6502 variants lasted. They mentioned the NES, but the SNES also used a 16 bit variant similar to what the Apple IIgs used.

Starting in 1995 Nintendo included the SA1 chip in some cartridges, which was a 6502 variant running at a little over 10Mhz.

I actually think that Nintendo could have come out with a SNES Pro CD system in the mid 90s by including SA1 and SuperFX2 chips and having 4MB of RAM.

CD based systems with sprite & tile based hardware seem to have all failed due to lack of RAM. Just too memory hungry, especially once you start increasing the number of colours. The Neo Geo hardware (Motorola 68k & Z80) was able to produce hits after 2000 by using giant, expensive, cartridges.

They could have kept a 6502 based system going as a budget system (keeping the N64 as their "cadilac" system) until 2000.

<comment><USER5> You can still buy them from WDC, part #W65C02S: [https://www.mouser.com/ProductDetail/Western-Design- Center-W...](https://www.mouser.com/ProductDetail/Western-Design-Center- WDC/W65C02S6TPG-14?qs=sGAEpiMZZMvu0Nwh4cA1wSNu7hWmGrIdvYIw7nZ2DMI%3D)

<comment><USER6> Price is a bit high, but factory lead time of 1 week is amazing! Also very interesting Product Change Notification: "0.6μm process currently being used at TSMC". Interesting, that TSMC still used such ancient node in 2013.

<comment><USER7> You could shrink the die, but what package will you put it in?

<comment><USER8> They do have some in smaller packages too, e.g. [1] that uses a PLCC-44 package, so ~16.7mm per side instead of ~5.2cm x ~1.5cm. The package above is that big because it's pin-compatible going back to the original 1975 version, and mostly drop-in compatible (barring some issues such as different levels of support for undocumented opcodes).

But of course even a PLCC-44 package is big compared to that die.

[1] [https://eu.mouser.com/ProductDetail/Western-Design-Center- WD...](https://eu.mouser.com/ProductDetail/Western-Design-Center- WDC/W65C02S6TPLG-14?qs=%2Fha2pyFaduhETdnU600mv4QZcE2Ajtuy2KDPIWXgdSDFKMNf713TIg%3D%3D)

<comment><USER7> And that's kind of my point. If most 6502s are needed as legacy drop-ins, then there's no reason to shrink the die if you're just going to weld it into a massive DIP package.

<comment><USER8> Yes, I agree with you; sorry if that wasn't clear - absolutely don't think they'd gain much from shrinking it further. Anyone who cares about shrinking it down further would probably gain even more by licensing the core and embedding it together with other functionality anyway.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> To give you an idea of how underreported this chapter in computing history is...

I was born in the 1970s and grew up in the 1980s. Huge computer nut since an early age, devouring computer magazines many years before we even owned a computer. Used Apple ]['s in school and knew which game consoles used 6502's and their descendants.

And I still had _no idea_ that WDC was based a few miles from where I grew up.

I learned that only a few years ago!

From a local perspective, perhaps this is because they promoted themselves as being based in historic Valley Forge, PA. When in reality, they were based in nearby Norristown, which is kind of a downtrodden town and obviously lacks the name recognition of a national landmark like Valley Forge. I'm sure Norristown would have loved to trumpet their role in the computer revolution, but that would have been tricky to reconcile with MOS's (understandable) claim to actually hail from the next town over. Awkward!

(....or maybe it's because MOS left behind a superfund cleanup site....)

</comment><comment><USER10> The (awesome) youtube electronics teacher Ben Eater has just started a series of videos building a 6502 based computer on a breadboard, and he sells kits.

I just got my kit, so I'm really looking forward to the rest of the videos. He also offers the schematics for those wanting to jump ahead.

[https://www.youtube.com/watch?v=LnzuMJLZRdU](https://www.youtube.com/watch?v=LnzuMJLZRdU) [https://eater.net/6502](https://eater.net/6502)

<comment><USER11> I've been watching this series as well. Can definitely recommend.

</comment></comment><comment><USER12> My first programming experience was on the 6502 in the BBC micro, absolutely loved it, especially the programming manual where it gave you the number of clock cycles for each instruction.

<comment><USER13> I remember seeing that the "zero page" instructions were all significantly faster and thinking "This Changes EVERYTHING!"

As if I could rewrite my code to run in only 256 bytes of working memory.

<comment><USER14> You would put only your data (or the most frequently used values, at least) in the zero page. Your code would then be smaller and faster.

You would save a byte every time you had to load/save a value from zero page into/from a register.

BBC Basic puts the work area for maths functions in the zero page.

<comment><USER15> You can check at [http://commodore64.se/wiki/index.php/Commodore_64_Memory_Map](http://commodore64.se/wiki/index.php/Commodore_64_Memory_Map) what kind of stuff goes in the zero page for Commodore's kernal and Basic.

In particular, Basic puts the whole "get next byte" routine there at $0073. It is self-modifying code where the address of the next program byte is the operand of an LDA instruction. Placing the whole routine in zero page saves enough cycles on incrementing the next program byte that it's worth spending 5% of the whole zero page on it.

<comment><USER14> Cool stuff. I've seen something similar for handling interrupts when reading from floppies. It didn't use the zero page, but it could have.

</comment></comment></comment></comment></comment><comment><USER16> I am keen to build one of these if the SMD soldering doesn't drive me insane.

[https://monster6502.com/](https://monster6502.com/)

</comment><comment><USER17> If you want more context to the story I recommend the following, fascinating book.

[https://www.amazon.com/Commodore-Company-Edge-Brian- Bagnall/...](https://www.amazon.com/Commodore-Company-Edge-Brian- Bagnall/dp/0973864966)

<comment><USER8> It's great, and the two follow-ups are also out (less interesting for people mostly interested in the 8-bits, though Commodore kept a staggering amount of 8-bit R&D going way longer than they probably should have spent money on it; a lot of it going nowhere)

Commodore: The Amiga Years

Commodore: The Final Years

(Note that there's also an older edition - "On The Edge, The spectacular rise and fall of Commodore" also by Bagnall. That one covers most of the history of Commodore in a single ~500 page book; the three new ones are ~500 pages each; which one to prefer I think largely depends on how much you care about Commodore and/or whether or not you're only interested in a particular subset of its history - that said I don't regret having bought and read both the original and all three new ones)

</comment></comment><comment><USER18> The Amp Hour interviewed Chuck Peddle in this episode, it's a worthwhile listen:

[https://theamphour.com/241-an-interview-with-chuck-peddle- ch...](https://theamphour.com/241-an-interview-with-chuck-peddle-charismatic- chipmaking-coryphaeus/)

</comment><comment><USER19> Interesting to see that KIM-1 documentation again.

</comment><comment><USER20> back when we all dressed more formal lol :)</comment>


Kowloon Walled City: City of Darkness Revisited - <AUTHOR> http://cityofdarkness.co.uk/category/the_city/ <comment><USER2> Interesting article - certainly as it has a lot of photos that I'd not previously seen before.

Further links for interested people: "Gweilo" \- book about a british son of expats growing up in Hong Kong, and includes his visits the KWC [http://www.amazon.com/Gweilo-Memories-Hong-Kong-Childhood- eb...](http://www.amazon.com/Gweilo-Memories-Hong-Kong-Childhood- ebook/dp/B003GFIWHE/ref=sr_1_1?ie=UTF8&qid=1450046672&sr=8-1&keywords=gweilo)

The amazing maps made by a japanese team that went into the KWC just before it was destroyed. [http://www.deconcrete.org/wp- content/uploads/2010/03/Kowloon...](http://www.deconcrete.org/wp- content/uploads/2010/03/Kowloon-Cross-section-low.jpg)

</comment><comment><USER3> Fwiw, William Gibson would visit the City of Darkness in search of inspiration for his dystopic cityscapes. Here's a description from _Idoru_ (1997):

> _There was a place near an airport, Kowloon, when Hong Kong wasn 't China, > but there had been a mistake, a long time ago, and that place, very small, > many people, it still belonged to China. So there was no law there. An > outlaw place. And more and more people crowded in; they built it up, higher. > No rules, just building, just people living. Police wouldn't go there. Drugs > and whores and gambling. But people living, too. Factories, restaurants. A > city. No laws._

More here:

[http://gizmodo.com/5995070/kowloon-walled-city- remembering-t...](http://gizmodo.com/5995070/kowloon-walled-city-remembering- the-chaotic-city-of-darkness)

</comment><comment><USER4> Austrian documentary about it Worth watching > [https://www.youtube.com/watch?v=Lby9P3ms11w](https://www.youtube.com/watch?v=Lby9P3ms11w)

<comment><USER5> Also, this from wsj ... similar footage but more modern [https://www.youtube.com/watch?v=dj_8ucS3lMY](https://www.youtube.com/watch?v=dj_8ucS3lMY)

</comment></comment><comment><USER6> There's a book "Chasing the Dragon" by a English missionary (I think) that lived in the walled city. Nothing in the way of pictures, but pretty interesting details of daily life from her experiences there.

</comment><comment><USER7> A Chinese favela. There are still places that are like Kowloon, in many ways. ([http://www.pulsamerica.co.uk/wp- content/uploads/2014/03/fave...](http://www.pulsamerica.co.uk/wp- content/uploads/2014/03/favela.jpg))

</comment><comment><USER8> For the gamers out there, Shenmue 2 spends a good chunk of its story in the walled city.

<comment><USER9> So does the recently released Shadowrun: Hong Kong.

<comment><USER8> Nice, I have it but did not try it yet - thanks for the reference.

</comment></comment></comment><comment><USER10> I always liked the SCP take on Kowloon: [http://www.scp- wiki.net/scp-184](http://www.scp-wiki.net/scp-184)

<comment><USER11> Wow, that is really great! I was stunned by the numbers. 40,000 people in 200 m x 100 m?

<comment><USER12> It's amazing to consider that's barely enough room in suburban America for a Wal-Mart and its associated parking lot.

</comment></comment></comment><comment><USER13> In Japan they have a game arcade inspired by the KWC:

[http://randomwire.com/kowloon-walled-city-rebuilt-in- japan/](http://randomwire.com/kowloon-walled-city-rebuilt-in-japan/)

</comment><comment><USER14> I bought this book from the Kickstarter project. It's beautiful and fascinating, totally worthwhile if you're interested.

</comment><comment><USER15> I just visited Hong Kong, and most of the residents I asked had no idea what the hell the Walled City was.

</comment><comment><USER16> Several posts about this on HN:

[https://hn.algolia.com/?query=kowloon%20walled%20city](https://hn.algolia.com/?query=kowloon%20walled%20city)

<comment><USER17> I particularly liked the WSJ multimedia feature / interactive story with video interviews of past residents at the top of your link: [http://projects.wsj.com/kwc/](http://projects.wsj.com/kwc/)</comment></comment>


Ask HN: Review my site: hypejar - <AUTHOR>

Hello HN!
This is an early version of my app,
http://www.hypejar.com
Please tell me what you think of it and what features would be nice to add?
Thanks a lot! <comment><USER2> Site looks okay so far. Is this just for movies? What's the feature that sets it apart from IMDB or rottentomatoes.com? I see there is a user karma, but I don't see what it's based off of other than ...contributions?

Anyway, looks like some potential here if you can get a user base, but I don't really get the benefit of joining or coming back on a regular basis.

<comment><AUTHOR> If the site covers all sorts of products, would you find it more useful?

The user karma is pretty basic right now, but more to come..

</comment></comment><comment><USER3> Clickable: <http://www.hypejar.com>

<comment><AUTHOR> How did you make the clickable btw? Thanks

<comment><USER3> Links in comments are automatically clickable. Links in submissions aren't.

I'm confused. You've been registered for three years and yet you don't know that? The question is asked and answered pretty much every week.

<comment><AUTHOR> I guess I somehow never paid attention until I needed them.. hehe</comment></comment></comment></comment>


Less salary for more experience - <AUTHOR> Recently I had two interviews for a job, one at a company where I worked before and a new one. At the old company I can get a higher salary (8$/h more), than for the other. But in the new one, I can enhance my experience for machine learning. So I get paid for "learning" and working on, "for me", new stuff, but I get less salary.
I know the old firm very well, and can start right away with coding, but is probably not challenging.
So I don't know what to do... <comment><USER2> _" But in the new one, I can enhance my experience for machine learning."_

If they are trading this benefit for paying you less, _make sure to get that in writing_. Maybe not in your employment contract but certainly not a verbal promise. It's not uncommon to be told things in an interview that are not delivered later.

For example, a friend took his current job for a little less than he might otherwise on the condition that he could work 2 days a week from home. Fast forward a couple of years and a new boss later; now they want him to come in every day. Too bad the "work 2 days from home" agreement wasn't written down anywhere...

</comment><comment><USER3> Knowledge compounds, and it's easy to get comfortable and lose track. I was in a similar situation before, and I chose the slightly lower salary to work on new projects out of my comfort zone. It's certainly helped me, and has probably made me more marketable.

When you jump next, the salary negotiations are going to be key.

<comment><AUTHOR> Thats probably also in my mind. Thank you.</comment></comment>


Librarian: Get links to references and Bibtex for papers on arXiv - <AUTHOR> https://fermatslibrary.com/librarian <comment><USER2> Kind of crazy that arXiv doesn't make this easier to do itself. We wrote a piece on how a future arXiv might look which seems relevant:

The arXiv of the future will not look like the arXiv [https://www.authorea.com/users/3/articles/173764-the- arxiv-o...](https://www.authorea.com/users/3/articles/173764-the-arxiv-of-the- future-will-not-look-like-the-arxiv)

</comment><comment><USER3> Seems useful.

However, I tried on several arXiv papers, and on all of them when clicking on references I get a "Sorry! We couldn't find the references for this paper. This paper might have been posted recently. Try again later."

(on chrome 59.0.3071.115)

<comment><USER4> I get this too. Haven't been able to get references to work for a single paper yet.

</comment></comment><comment><USER5> Perhaps something can be done to collapse the buttons so they don't interfere with reading in zoomed mode. Useful tool by the way.

</comment><comment><USER6> What's the point of referencing arXiv? They're supposed to be preprints or non-peer reviewed papers. Other than for re-using some of the text/images, the citations to arXiv papers won't/shouldn't be accepted by peer-review committees.

<comment><USER7> At least in math, that is just untrue. It can be years from when the first preprint comes out to when it's actually published. If everyone waited around for the official publication, nothing would ever get published. Journals are pretty pragmatic about it.

<comment><USER6> That doesn't make sense. I can publish anything on arXiv, and then refrence that in an academic journal, from what you're saying. That cannot and should not be how proper peer review happens. The delay in publication of math journals cannot be a reason to skip the proper peer review process!

<comment><USER8> The arXiv _is_ moderated. If there's something wacky the moderators tend to ding it.

<comment><USER9> Irrelevant since as I understand it moderators only weed out papers that don't even have the appearance of on-topic research papers; that does nothing to ensure preprints on arXiv are trustworthy.

</comment></comment></comment></comment></comment><comment><USER10> Can read your browser history... no thanks.

</comment><comment><USER9> Chrome only (it's an extension) :(</comment>


Linux 5.8 Formally Adds the Inclusive Terminology Guidelines - <AUTHOR> https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.8-Inclusive-Terminology <comment><USER2> I actually like blocklist/passlist

its far more descriptive.

Personally I'd like master/apprentice to be more popular.

 _but_ all of this is pointless if we don't actually remove some barriers to entry for IT. I doubt people are put off by the use of master/slave, Its the barrage of abuse one gets for being different[1].

[1]no this isn't from most people, but the minority is vocal and toxic, and the majority don't really do enough to keep a lid on the tedious pricks who insist on making IT creepy for anyone who isn't a young bloke.

<comment><USER3> Master and slave [in humans] aren't tied to any identity, race, nationality. Most modern slavery (that I've heard of) seems to be same-nationality.

How is apprentice a good analogy, the slave computing system is directed what to do, or works for the master; it's not training to be a master.

No-one is black nor white: anyone who thinks colour-named lists relates to skin colour is a moron. Presumably such people think night-time is racist.

<comment><USER4> People are rescued from slavery all the time. Bring mindful of casually using a term which they know to describe their years to decades of abuse and torture doesn't seem like a particularly difficult ask.

<comment><USER5> They're probably not rescued by those renaming branches though. Those people have more important things to do.

I can see the upside though: after the former slaves have been rescued from their "decades of abuse" which they lost an immense chunk of their life to and almost certainly left them mentally and physically scarred for the rest of their life, they'll take solace in the fact that some people somewhere on Earth have renamed their virtual thingamabobs. Then they will finally know peace.

<comment><USER6> > Then they will finally know peace.

No one's claiming that.

</comment></comment></comment></comment></comment><comment><USER7> <rant>

> _blacklist /whitelist_

Thanks for bringing race into something that has absolutely nothing to do with it.

As a person of color I also don't see how this is "inclusive" at all, like yeah, the only reason I don't commit to the Linux kernel is because of the presence of words such as master/slave...

Maybe I'm wrong but why do we have to shame everyone into changing things when there isn't proof that those things were actually harmful to minorities.

But oh well, I guess we'll call this a win and continue to ignore the root of the problem.

</rant>

<comment><USER8> > _like yeah, the only reason I don 't commit to the Linux kernel is because > of the presence of words such as master/slave..._

I'm not certain about this but personally I don't think this is the intent.

I see two big benefits of these big language changes:

1\. Much of anti-black racism in history has been accompanied by associations of skin colour to other unrelated elements based on their "illumination". Negative associations have been highlighted by virtue of the darkness and unilluminated things in general being traditionally considered negative.

So the original meaning or intent of blacklist/whitelist doesn't need to have been race-related for it to reinforce the idea of black=negative & white=positive. This is an association that's as natural as kids being afraid of the dark, but an association that is helpful for us to subvert and overcome as adults (for a plethora of reasons, one of those being to do with race)

Having discussions about language and naming things helps with that subversion.

2\. In my case, as I work for a company that is bringing in these name changes internally, I've found this a curious and positive rare opportunity to discuss & hear team members' views on this issue. It's not the type of topic that would normally be easy to bring up in a corporate environment and this makes it natural and "safe" to do so in a not-combative way.

<comment><USER9> Normally I'd call reductio ad absurdum but we're pretty much already there.

This idea that dark is negative is kind of silly. Things that are done in the shadows tend to be referred to as black, such as a black market. You want to call it a shadow market? (And don't get me wrong that sounds cool as hell, but also, wtf)

Look at the positives instead, unless the color is the problem in which case your accountants I'm sure will be overjoyed to hear that they should no longer say the company is "in the black" either.

I don't mean this to sound combative but rather simply make you think about what it is that time is being spent on.

Remember that whenever this particular change is brought up, whenever people talk about it, all the energy being expended on it etc. It all draws away from much more important business such as the George Floyd protests.

Black lives matter. This doesn't.

<comment><USER10> We have a ton of these connotations:

\- left/sinister is negative compared to right

\- low is negative compared to high ("moral highground")

\- south is negative compared to north ("things going south lately")

Regardless of neutral usages of these words, or their factual meaning, we should acknowledge the more connotated meaning are not completely separate, and bleed on the other uses of the words.

It doesn't mean they can't be used with their actual meaning, but I think we should be open to the risk we'd need to stop using them in context where the connotations bleed too strong.

And I guess we reached that point for white/black/dark.

</comment></comment></comment></comment><comment><USER11> I'm fine with changing a word if there is a good reason to. But I don't like this "wordophobia" where people are afraid of using words and we just keep adding new words that people can't use.

It reminds me of the Harry Potter series where they always try to avoid saying the name of Voldemort. Don't be like that. I think we should all be like Harry Potter himself and not be afraid of using words, not even the ones that remind us of something bad (which I don't even think these words do).

<comment><USER12> But in the end the name was really cursed and they got captured by saying it. I'm guessing that Dumbledore's dismissal was because if everyone said it, it would dilute its power, but that wouldn't work in this case!

<comment><USER11> Yes, we should be happy as long as these words are not cursed.

</comment></comment></comment><comment><USER13> In an effort to make this thread more interesting:

I think we should get used to the idea of just letting stuff like this happen. What's the downside? Is it _really_ so hard to type "main" instead of "master"?

I get the argument that historically, language has been used to control populations, and therefore it's good to resist attempts to control language. But every time someone complains about master vs main, I can't help but think thoughts that would be rude to repeat.

I recently made a tool for managing TPUs, called tpunicorn (tpudiepie was "clever, but risks legal issues"): [https://github.com/shawwn/tpudiepie](https://github.com/shawwn/tpudiepie)

The tool lists a bunch of info about the TPUs, including their master IP address. It's the IP of host 0, in charge of TPU configuration.

If someone were to open an issue "Please change master to main," and they were genuine about the request, I'd be like ... ok. And that would be the end of it. It's a s/master/main/g. Sure, whatever.

So, my question for you, dear readers: why _not_ just say ok and be done with it? Is the spirit of rebellion really so ingrained in everyone that this is the battle we want to fight? You can mock it, ridicule it, fight it, but ultimately it's a big bikeshed that people want to paint. Why not let them?

And, you know, maybe it might help. A female dev I know recently expressed frustration about being called a "guy" constnatly. "Hey guys, ..." It's why I say ya'll. She also feels bad about mentioning it, because she doesn't want to be an imposition.

From my point of view, this is a big ball of "whatever, who cares, just do it." But my mind is open: can you convince me that it's important to resist this trend? Without invoking slippery-slope arguments?

<comment><USER14> I'm reminded of something a moderator of a Twitch channel said recently: they had a policy of banning people for complaining about "pronouns".

For the first few weeks this resulted in a lot of fights, but after that the moderation load as a whole was much lower. In effect, they'd found a means for flushing out those who liked provoking others and a clear rule to ban them with. There isn't a large number of such people, they're a tiny but very loud minority.

Codes of conduct have a similar effect. Someone who complains about the mere existence of a code of conduct is pre-announcing that they like annoying or upsetting other people.

<comment><USER15> And having a code of conduct is a sign that this place is so terrible so regularly that it needs a code of conduct to get people to be civil to each other.

OR, everyone in power is a satirical HOA tyrant type character whose primary hobby is rule-making.

Either way, code of conduct is also generally code for grumpy and to be avoided, lest your time there be spent in moral lectures and petty arguments instead of on whatever the ostensible topic is.

I try to go places where people get along without a codified list of civil behaviors, because then I know I'm in the company of adults.

<comment><USER6> More likely the uncivil behaviours go unnoticed by you.

<comment><USER16> This kind of thing is what I see all the time and it's just exhausting at this point. One is always apparently blind as quick as they present a view of things not always being so bad without a legal document to direct behaviour. It's the assumption that people are barbarians by default and need to be herded like cattle rather than the possibility of them having some decency at all that I find the most saddening. You can have a welcoming and inclusive community without such a document and having one doesn't make you much more inclusive as it's people rather than the document that provide what you're asking for.

Trust until broken and gratitude for upholding good values is the path to a better community along with giving a chance to do better. Quick punishment only leaves a sour taste for everyone.

Also, a good rule is to wait 5-10 minutes or more and see if what you've written aligns with what and how you want to say it or at least expanding on your point a bit further to avoid being misinterpreted.

</comment></comment></comment></comment></comment><comment><USER17> I wonder how much outrage there would be (both in favour of and against!) regarding any proposal to remove the OOM killer's tendencies to child sacrifice:

      Out of memory: Kill process 12345 (chromium) score 678 or sacrifice child

The first time I encountered it in real life (I never set up any swap on my last laptop, and over a few years bust things up by running out of memory about three times) it made perfect sense and I saw nothing at all amiss with the message, but I know there are amusing tales of people being confused and perhaps even worried by it. After having discovered that, I know I rather like it.

<comment><USER18> Yeah but there's no clear distinction between current-day groups when it comes to their views on child sacrifice (afaik).

I, for one, would defend to the death the right to kill child processes or rail against at the very least anything beyond parent-child OO relationships, because I hate children and grandparents! forward slash "s".

</comment></comment><comment><USER19> There you have it. The true face of the "Code of Conduct". These guidelines airbrush change rather than promote "inclusivity" which the CoC claims to do.

In fact, it shows the controlling infinite demands of the PC crowd in the Linux kernel and the wider ecosystem. Remember Outreachy anyone?

> At this stage these guidelines, which are part of the Linux kernel's coding > style, are about avoiding new usage of the words "master" and "slave" within > the kernel code as well as avoiding "blacklist" and "whitelist".

They will still say "it's not enough" and will demand to remove all master / slave references and terminology in the kernel, which the maintainers know it isn't practical. You can ask yourself if this is realistic. I think you know the answer.

This doesn't attack the problem and only airbrushes and ignores the root of it. There is no winning with moves like this.

</comment><comment><USER20> This is lazy pandering and does absolutely nothing to address actual POC issues. It also paints words with zero history of racism in a "bad" light because it's somehow associated with a color?

Now we've bulkanized terminology all in the name of progress, ironically making it even harder for newcomers to learn.

Overall, it's just a disgusting ineffective move by crusaders determined to police, rewrite and erase language. I can't fathom how anyone decides this is what we should be doing to promote inclusivity.

<comment><USER21> Would be really great if downvoters can chime in on their disagreements with this. I find this perfectly reasonable.

> ironically making it even harder for newcomers to learn.

This isn't over-cynicism. Consider all the otherwise-still-working books and tutorials that would be obsolete just for this change. Some kids still get their start from dead leaves and it would just be unnecessary mental tax on them to keep in mind that "master" is now "primary" because reasons. Not to mention that whatever they might be reading might've already used "primary" for a different context.

Extremely superficial.

<comment><USER22> We can't do nothing until we have a fix for everything.

And we can't stop changing because we can't change everything.

</comment></comment></comment><comment><USER23> Is this being recieved positively by those that actually write code, who aren't gripped by a white savior complex? Because it strikes me as patronizing, among other things.

Do yourself a favor, lookup the origin of the word "slave". Now consider your emotional response in that light, and how these changes could only be motivated by a deeply held predjudice with regard to the alleged beneficiaries of this farce.

</comment><comment><USER22> There are many studies that suggest our language does influence our culture. Perhaps the affect isn't obvious to you like many other things that influence our culture.

I don't understand why some people are still so skeptical about this change.

Some argue that we should instead fix bigger problems. Well let's do that too. But it doesn't mean that we can't or shouldn't take small steps. Every small step can contribute. And we shouldn't stop there.

</comment><comment><USER24> I dont see whats so horrible about changing few words, you probably wont be forced to go and replace them in linux sourcecode.

<comment><USER25> Because I don't believe in the reason for doing so.

</comment></comment><comment><USER26> At least this is a lot less insane than all the "Company XYZ renames everything in their existing products that people use every day". If you say, "hey I don't like this phrase, next time I'll use a different one", I can actually understand. I still think the big sed is, let's say, misguided, but at least this version is not insane.

</comment><comment><USER27> Ironic how aiming at being inclusive manifests itself so often as being exclusive.

</comment><comment><USER28> welcome orwell's newspeak.

</comment><comment><USER29> cool, now show me race demographic of linux contributors

</comment><comment><USER30> 'denylist / allowlist' makes normative presumptions about privilege, thereby creating an unsafe space.

All our lists should be inclusive.

</comment><comment><USER31> Note: This thread was removed from the front page of HN, presumably by the mods. I guess this topic is too spicy for them to handle.

Great, now everyone can pat themselves on the back and relax now we've fully embraced cancel culture and find instances of these very naughty words to be outraged about.

Oh, and I find subordinate offensive, just because.

Congratulations to the Linux kernel for fixing a systemic issue by changing some words, now we can pretend the issue doesn't exist at all! :-)

Maybe we should just replace Linus Torvalds whilst we're at it with someone black, just like they did over at Reddit, which clearly fixed all the problems when a white man retired in protest.

(How can I flag my own post before anyone else does? By tomorrow I'm expecting to come back and see this text replaced with [flagged] as you can't post anything controversial anymore. I see as of this edit I'm on 12 points, that'll be -10 I am sure when the dust settles. Feel free to cancel me and my account if you want HN crowd, I'll just make another).

<comment><USER32> > Note: This thread was removed from the front page of HN, presumably by the > mods.

No need for tinfoil. Posts with high comments-to-points ratio are automatically nerfed as noisy / low quality. Regardless of topic.

</comment></comment><comment><USER33> With all the actual problems in the world, it's amazing how much energy gets wasted on idiotic stuff like this.

There are actual concentration camps in China TODAY.

So sad.

<comment><USER34> What I find ever more insane is how much energy people spend fighting it, writing paragraphs and paragraphs of argumentation.

"That sounds far-fetched to me but I can vaguely imagine that these terminologies aren't helpful in these times, lemme search-and-replace, done"

<comment><USER33> And even more insane is how people can completely disregard common sense and their own opinion and blindly obey an idea that sounds far-fetched to them just to placate easily-offended people—even if it's just copy/paste (which it isn't, if anything because people will need to re-learn an API).

</comment></comment></comment><comment><USER35> Great job folks, you did it, you solved 1000s of years of racism. Surely not a single POC will be killed by a cop with these changes.

Such ineffectual liberalism. So much effort that fixes nothing.

<comment><USER36> Some words simply don't feel right anymore. As an example, I used to live on the Dutch countryside. The owner of the farm would be called the "boer", and his assistant would be called "knecht" (ranch hand? It curiously is pronounced not unlike knight).

I completely forgot all of that until recently, the farms around our city were opened to the general public. My kid wanted to go, and while they were enjoying themselves looking at the animals, I struck up a chat with the owner of the farm and asked on a whim if the "knecht" was still called that. No, he answered, that position is now called "medewerker" (operator? colleague? contributor? I dunno.)

I think the time for words like master/slave and blacklist/whitelist is simply past. This is just an observance, I don't have an opinion either way.

</comment></comment><comment><USER37> Can't wait until they come for `server`

They're _really_ going to eliminate racism then!

</comment><comment><USER38> Switching to FreeBSD in 5, 4, 3...

</comment><comment><USER39> The night is dark as opposed to daylight.

This is racist.

Do you have a plan to change that already?

</comment><comment><USER40> What about service? [0] (related: to serve, to be a servant)

(In case you don't see the Google box: Old English (denoting religious devotion or a form of liturgy), from Old French servise or Latin servitium 'slavery', from servus 'slave'. The early sense of the verb (mid 19th century) was 'be of service to, provide with a service'.)

[0] [https://www.google.com/search?q=service+etymology](https://www.google.com/search?q=service+etymology)</comment>


Microsoft tax break subsidized by 'opportunity to dance' tax in WA - <AUTHOR> http://jeffreifman.com/2013/04/12/seattle-dance-clubs-fundraise-to-pay-microsofts-tax-bill/

<comment><USER2> The tax on Microsoft (the "software royalty tax") is just as unjust as the tax on bars and clubs.

We are told that the money goes toward education. Even if that's true, it still does not make forcibly taking the money right. Parents that want their children to be educated ought to pay for it themselves. No one is forced by law to have a child they don't want in our country. Everyone, even bad parents, know that children represent a serious, long-term financial commitment.

Neither Microsoft nor the bars and clubs in question ought to be on the hook for other people's choices to have children.

Also, to those that want to bring the idea of free riders and externalities (i.e., people who say that public education produces changes in people that benefit everyone in society, and therefore everyone ought to contribute toward it):

Suppose that I come over to your house at 3 AM and wash all your windows (badly, leaving streaks and dirt), without asking you first. When I'm finished, I rifle through your mailbox, and find your paycheck. I cash it, hanging on to 1% of it, and deposit the rest into your checking account. When you object, I reply that I've been doing the same thing "for" my other neighbors for years and they haven't told me to stop, so you shouldn't either.</comment>


ARM is now a fully supported target platform for GHC Haskell - <AUTHOR> http://www.haskell.org/pipermail/haskell-cafe/2012-June/101704.html <comment><USER2> I just got my Raspberry Pi in the mail last week and was disappointed about the Haskell support. Now I'm ecstatic!

<comment><USER3> Don't get too excited just yet, here are my experiences so far attempting to get GHC 7.4 on my R-Pi

[http://www.reddit.com/r/haskell/comments/u7cwv/some_observat...](http://www.reddit.com/r/haskell/comments/u7cwv/some_observationsproblems_of_getting_haskellghc/)

</comment></comment><comment><USER4> So...what would be needed to see native Haskell iOS apps? :)

<comment><USER5> Doesn't Apple still forbid programs written in anything apart from Objective C, JavaScript (and a third language, that I don't remember)?

<comment><USER6> You can always compile scheme / haskell etc to C and then use it as a library. (gambit-scheme users do this).

<comment><USER7> Indeed. I did this with one program: I wrote some number crunching code in Haskell, and exposed some functions to C via the FFI. Then I wrote the user interface in Cocoa/Objective-C. The primary thing that requires some though is how to pass data between C and Haskell. You usually end up marshaling/unmarshaling some structs:

[http://www.haskell.org/haskellwiki/FFICookBook#Working_with_...](http://www.haskell.org/haskellwiki/FFICookBook#Working_with_structs)

<comment><USER8> Sounds quite interesting. Do you have a write up about this anywhere? Is the gain rom Haskell worth the impedance mismatch of cross communication?

<comment><USER7> _Do you have a write up about this anywhere?_

I used the following references:

[http://www.haskell.org/ghc/docs/7.4.1/html/users_guide/ffi-g...](http://www.haskell.org/ghc/docs/7.4.1/html/users_guide/ffi- ghc.html)

[http://weblog.haskell.cz/pivnik/building-a-shared-library- in...](http://weblog.haskell.cz/pivnik/building-a-shared-library-in-haskell/)

I have just put up a small-ish example using my approx-rand-test package (which implements approximate randomization tests):

<https://github.com/danieldk/haskell-library-example/>

 _Is the gain rom Haskell worth the impedance mismatch of cross communication?_

I guess it depends on how much you love Haskell ;), and the usage scenario. I think using Haskell's FFI in this direction is especially attractive if you prefer to write most code in Haskell, but need some functionality that does not map naturally to a pure functional language (such as GUIs in Cocoa). If you want to mix a lot of imperative and functional code seamlessly, F#/C# or Scala/Java are probably better options.

<comment><USER8> Thanks what's the size like? The last time I built a Haskell application it was quite large. This is more of an issue for mobile apps.

FWIW I've done Scala/Java+Android and WP7+C#/F#, interestingly Wp7 is by far the easiest mobile to get a good functional language running on.

<comment><USER7> _Thanks what's the size like? The last time I built a Haskell application it was quite large._

4969KB with the runtime and package dependencies linked in the dynamic library (Darwin, 64-bit). Since I do not have dynamic libraries of its dependencies installed, I cannot quickly try a completely dynamic version...

 _interestingly Wp7 is by far the easiest mobile to get a good functional language running on._

I purchased a Windows Phone last week (iOS user here) to see how it works, and I am surprised how good the integration is.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> The x86 and x64 have interesting hacks in the asm they generate. For example, thread switching is done not by a conditional jump, but by self-modifying code (there's some nops in the main loop, and they get overwritten with a jmp when it's time to preempt). What cool architecture-specific hacks does the ARM version use?

<comment><USER10> I assume you refer to the co-operative thread switching done by the GHC runtime to achieve co-operative multitasking with Haskell's green threads? I thought this was done by trashing all the registers (pushing live regs to stack) in the compiler back end and then swapping the stack pointer in the runtime. Are you sure about the nop's in the main loop?

I, too, would like to know how this works on ARM and other non-x86 platforms. Do they even have this feature supported on ARM? (ie. compile with ghc --threaded and then add RTS parameters as needed when executing)

<comment><AUTHOR> GHC uses pre-emptive thread switching, not co-operative thread switching. Threads are forced by the runtime to be switched out -- they have no choice in the matter -- based on rts interrupts.

Typically, threads will be switched when they allocate.

See

<https://github.com/ghc/ghc/blob/master/rts/Schedule.c#L208>

and for low-level fun:

<https://github.com/ghc/ghc/blob/master/includes/stg/SMP.h>

<comment><USER10> > GHC uses pre-emptive thread switching, not co-operative thread switching. > > Threads may be switched when they allocate.

If threads are scheduled in and out when they allocate memory or are about to issue a possibly blocking system call, it's called co-operative multithreading, isn't it?

If the thread execution was stopped using external means like a timer interrupt, that would be pre-emptive. Some definitions of pre-emptive involve the ability to stop a lower priority thread in favor of a higher priority thread that becomes ready when a syscall is finished.

The best I understand the situation, Haskell's green threads voluntarily (co- operatively) give up their time slice (for another green thread) when allocating memory or doing I/O. Haskell's green threads run on top of several native threads that are pre-emptively scheduled by the operating system.

Please correct me if I'm wrong.

<comment><AUTHOR> The threads do not volunteer. They are pre-empted by an external authority - the runtime system. They have no choice in the matter.</comment></comment></comment></comment></comment>


Ask HN: How do I force Google to search using plural - <AUTHOR>

I was looking for information on https libraries. On google https will return a bunch of results for http, which is totally useless to me. I tried both +https and "https" and neither seem to affect the results. Is there some other trick I'm missing? <comment><USER2> \+ is no longer a Google Search operator. Quoting a word is.

What query did you do, specifically, and what kind of HTTPS libraries are you looking for?

If I do [ https ] almost all links on the SERP contain the literal string HTTPS.

If I do [ "https" ] every link on the SERP contains the literal string HTTPS.

In both cases, the results are nearly worthless. So, you must be trying something like

[ "https" libraries ]

Again, that returns only moderately relevant results (all the matches contain https literal text, but it's not a nice list of https libraries).

Being more specific is going to guide the engine to understand your intent more clearly. For example [ "https" programming library for C++ ] finds a nice list of HTTPS libraries, including this link about half-way down (personally, I would prefer that was on top):

C/C++ libraries for HTTP programming - Stack Overflow stackoverflow.com/questions/.../c-c-libraries-for-http-programming Sep 15, 2010 - C/C++ libraries for HTTP programming [duplicate] ... What well known C/C++ libraries are out there that could allow one to implement servlets, or at least provide most of the essentials for .... Self contained http/https library ...

Note the search engine noticed the page has https text in it, even though the title does not. The page points at libcurl, which seems like a good answer.

Another detail is that there are both server and client libraries for https, you should probably specify which you want:

[ "https" client library for c++ ]

and in fact, that SERP is pretty great (first two links are both great starting points).

<comment><USER3> This. Try being more specific, but not only with what you are looking for, but also with what you are not looking for.

\- is still an operator and excludes words so you could say:

      -http -public

to exclude results about actual public libraries with books, and also to exclude http.

Likewise you have

      intitle:

      filetype:

      ext:

      intext:

      allintitle:

      allintext:

etc.</comment></comment>


Quantum levitation: quantum superconductors locked in a magnetic field - <AUTHOR> http://www.youtube.com/watch?v=Ws6AAhTw7RA

<comment><USER2> Wow. This is great. I haven't seen anything like this before. It would seem the implications and applications are tremendous.

</comment><comment><USER3> The video is very interesting, but I want to know more. Is there any difference between this and a superconductor levitating in a magnetic field? Is there any (easy) theoretical explanation / blog post?

</comment><comment><USER4> <http://en.wikipedia.org/wiki/High-temperature_superconductor>

</comment><comment><USER4> All the startups focuses too much attention on web/mobile, i'd totally invest in something like that over any web/mobile company right now.</comment>


Comparing the Quality of Debug Information Produced by Clang and Gcc - <AUTHOR> https://robert.ocallahan.org/2018/11/comparing-quality-of-debug-information.html <comment><USER2> It's been a couple of decades since I was involved with DWARF (via bfd) but it's a static description language, even version 5 which I just looked over.

In theory you could provide code to run at runtime to figure out what a variable's value _would_ have been had it not been optimized away. Instead of putting an executable language into DWARF the compiler could emit helper functions to be called by the debugger on arguments (pc, source line, some predecessor values). These could be emitted in an executable section stripped when the debugging info is stripped. The compiler actually has all the info it needs to generate such functions, but writing this code would be quite tedious.

gcc's debugging of optimized code is good enough that I pretty much always debug -g -O3 -... -- my bugs are rarely so subtle that this would obscure a problem!

</comment><comment><USER3> One fun bug / issue I've been working on recently is that clang / llvm-mc (the llvm assembler) don't handle dwarf data the same way as gcc. This can creat some issues if you're using gcc on OS X, where the system assembler IS the llvm assembler. Even after this, there's other misadventures with having dwarf data pass validation with the Apple/llvm linker.

My context is making sure that the main Haskell compiler, ghc, has an approximately 15 percent faster runtime system on OSX with c code built with GCC than with Clang. So I've been tracking down how to how to continue supporting that build combo while making sure dwarf / gdb suport in Haskell still works.

[https://ghc.haskell.org/trac/ghc/ticket/15207](https://ghc.haskell.org/trac/ghc/ticket/15207)

</comment><comment><USER4> Being able to provide for a debuggable release build feels like an art to me. The more advanced the optimizations, the harder the task gets. Bugs that only appear only in release builds are some of the worst, so we probably can't give up on these efforts.

<comment><USER5> Yes. I set that up at work and the core dumps of release binaries became infinitely easier to debug. One thing I noticed with gcc and optimised release binaries is that the debug information gets incredibly large the more you optimise. With -Os and a handful of binaries totaling about 50MB, you can end up with a Gigabyte of debug information. That quickly filled up our build server drives.</comment></comment>