China Hits a Coronavirus Milestone: No New Local Infections - <AUTHOR> https://www.nytimes.com/2020/03/18/world/asia/china-coronavirus-zero-infections.html <comment><USER2> China has achieved both the approximate local elimination of the virus and the ability to detect new infections.

I believe that this is a counter-argument to claims that any quarantine strategy faces the virus "bouncing back" afterwards.

Social distancing, aggressive testing and contact tracing together should be able to put a local end to the virus regardless of the situation in other parts of the world. Now, is what's needed.

Because we really can't afford or even survive the alternative.</comment>


Montage HTML5 Framework - <AUTHOR> http://montagejs.org/

<comment><AUTHOR> I'm not associated with this project, I just found it and thought it looked interesting.

It seems it was previously the work of Motorola Mobility, see previous discussion: <http://news.ycombinator.com/item?id=4225335>

There's a lot of competition in this space (Derby, Meteor, etc) and I'm dying to try out one of them, perhaps Derby since it looks like Meteor has a ways to go.

Though I think my ideal solution would involve integration with AngularJS which is my favourite framework by far.

<comment><USER2> Browser support on this framework is laughable.

</comment></comment><comment><USER3> jameswyse, Montage was designed to help build native-class user experience by providing native-class APIs and designs while embracing web technology and using it for what it does best. Montage offers very similar features Angular does, but with different design decisions and offer more. Montage has a very clean Component structure that are offer complete encapsulation and uses pure HTML5 templates: real document and no string based templating language in markup , no new tags to remember either, but a real object serialization that maintain a clean separation. Montage offers 2 way data bindings with converters, property change observing, delayed drawing for maximum draw rate etc... Montage today is server agnostic unlike Derby or Meteor. Don't get me wrong, that approach is very exciting and I want to see Montage go there, but we're focusing on taking front-end HTMLr applications to the next level, working with whatever backend you may have or like. By choice we're a modern framework that require ES5 and a modern browser, and we've focused a lot on mobile where such browsers dominate. Hope you explore it further!</comment>


Google begins penalising domain leasing - <AUTHOR> https://www.seroundtable.com/google-begins-penalizing-domain-leasing-28137.html <comment><USER2> I'm often searching information on auto parts and Google's results are quite literally 100% webspam. Here's an example - The entire first page is the same provider squatting domains:

[https://www.google.com/search?q=scrambler+50cc+parts+format%...](https://www.google.com/search?q=scrambler+50cc+parts+format%3Apdf&oq=scrambler+50cc+parts+format%3Apdf)

Wiring diagrams in Google images - literally every result is webspam in the same format split across squatted domains.

[https://www.google.com/search?q=mazda+miata+wiring+diagram+s...](https://www.google.com/search?q=mazda+miata+wiring+diagram+stereo+pin&tbm=isch&source=univ&sa=X&ved=2ahUKEwjrgYyl8KrkAhVso4sKHXwfBtUQsAR6BAgJEAE&biw=1440&bih=728)

These aren't even particularly niche searches, nor is it hard to detect that all these sites are the same.

<comment><USER3> Curious what did you expect of a query such as "scrambler 50cc parts format:pdf"? Why the PDF filter?

You expect that some companies are publishing a parts catalog in PDF format?

The query just seems odds to me, and so the garbage results don't seem too surprising

<comment><USER4> Actually about 2 years ago this is precisely the query I would have chosen too.

You could always find a parts catalog, service manual, that sort of thing scanned and posted online. PDF (used to) select for the scanned documents. Used to be my main usage of google was finding service manuals for auto and electronics.

Nowadays the spam just pretends to be a pdf cause we used to always search for them.

</comment></comment></comment><comment><USER5> Now could they penalize all the paid links that are 'sponsors'?

Apache Foundation and many others are even in on it. They specifically say they are selling a do-follow link.

Look at the companies at the bottom buying them: [https://www.apache.org/foundation/thanks.html](https://www.apache.org/foundation/thanks.html)

LeoVegas Indian Online Casino Online Holland Casino Start a Blog by Ryan Robinson The Best VPN Top10VPN PureVPN HostChecka.com HostingAdvice.com Web Hosting Secret Revealed

It's just paid links. Apache isn't the only one doing it, a lot are. I'm glad they are getting money, but it's paid links pretty openly on super highly ranked pages.

<comment><USER6> Is this problematic because of the links? Because FOSS is funded by donations and it's common for non-profits to acknowledge their sponsors. For example EFF does the same thing [1], but FSF displays only the logos with no links [2]. Are you advocating for the FSF version?

[1] [https://www.eff.org/thanks](https://www.eff.org/thanks)

[2] [https://www.fsf.org/patrons](https://www.fsf.org/patrons)

<comment><USER7> > FSF displays only the logos with no links [2].

That's why FSF's listed sponsors actually care about sponsoring the FSF. The ASF "sponsors" pasted by the first comment and many of the listed EFF "sponsors" aren't donating money because they care about the foundations. They're purchasing links in order to rank higher[1], and a link just happens to require donating.

[1]: EFF uses rel=nofollow on all links to sponsors, so a listing on this page probably doesn't actually do what the buyer intended. Google covers this in [https://support.google.com/webmasters/answer/66356?hl=en](https://support.google.com/webmasters/answer/66356?hl=en). In a sense, EFF gets free money from people who think they're buying better ranking but actually aren't. OTOH, ASF's decision to specifically sell rel=follow links - which do pass PageRank - is surprising.

</comment></comment></comment><comment><USER8> How would Google differentiate between a subdomain or folder that I use on my website for a different purpose, and a leased subdomain? Given that they're describing this as "penalisation", and not just "treating the subpart as its own entity"?

<comment><USER9> It's possible that the description Google used is a bit misleading. Meaning that they might actually be doing what you said - splitting out the subdomains as their own entities and the natural effect of this is to have a separate ranking, thus looking like they got penalized for using the subdomain but really they were just reclassified.

<comment><USER10> I've had a small stint into SEO in 2012 and Im pretty sure that Google treated Subdomains as their own entity back then. I would be suprised if this changed in the meantime.

<comment><USER11> I spent a lot of time in the blackhat SEO world prior to 2014 or so... I can assure you that subdomains reaped a bountiful reward from their association to the main domain.

They certainly weren't equal but they got more than a little (trust/authority/ranking - call it whatever you want) help from their parent domain.

To the point that this was the case:

If I bought a brand new, never used .com and built 500 pages of spammy content and linked those pages/content from thousands of other super spammy pages... that domain is de-indexed within 2 weeks and the pages never really ranked/got organic traffic worth the cost of the domain name.

If I built those same pages on a subdomain and linked them in the exact same manner but the parent domain was very strong - the pages would rank and traffic would flow steadily, indefinitely. (As long as the parent domains footprint/linking was large enough to absorb whatever penalty that my spammy pages brought).

It's still happening today where people buy up domains that are established with good link profiles - go to archive.org and download the sites old content, re-host it and keep it alive. Then they build spammy subdomains on the parent domain - profit.

<comment><USER10> I've read that in multiple docs back then but since you observed this it could've been false. The rationale I had for it was that there are many sites with completely independent subdomains or technical resources like asset being served by subdomains. Buying established Domains and scraping old content does not rely on Subdomains. Affiliate, ads or your own product can be placed on the TLD. I dont doubt you tough and I think I will try it sometimes. Old school fun

</comment></comment></comment></comment></comment><comment><USER12> Penalise is the wrong concept here. What The Google is doing is getting smarter and that intelligence is being applied. Call it a correction if you need a name for it.

Long to short, Google just wants to be human [1], but it wants to do that automatically and at scale. It seeks to reflect what a human would approve or reject. If you look at the history of SEO / the search algorithm this is the nature of the progression. Obviously.

These sites aren't being penalized. Hiding in a blindspot and being discovered is not a penalty. It's simply reality; a reckogning; a day that only the naive would believe was not coming.

[1] Actually, Google wants to be you. The attempt to personaling search is Google wanting to recommend to you if you could recommend to you.

</comment><comment><USER13> I'm confused. Does this affect the ranking of sites like alice.github.io or bob.netlify.com? Does it penalize github.io and netlify.com? Both?

<comment><USER14> I think github.io is explicitly registered as a shared second level domain (similar to co.uk), which also ensures browsers don't allow cookies spanning multiple subdomains.

<comment><USER13> Registered with whom? How does one register their website like that?

<comment><USER15> The Public Suffix List.

There are two halves to the list. The first ("ICANN") half are suffixes that work like a TLD from the perspective of the DNS registry. Nominet handles registration in .co.uk or .org.uk or .net.uk the same way another country might choose to handle their whole TLD.

The rest is names whose registered owners do the same thing as a registry for the public or some subset of them, like Blogger or a cheap bulk hosting site where you don't pay for a name.

PSL listing has a variety of effects. Don't do it hoping to achieve one of them and then being disappointed by the others. Do it because you have a real public suffix.

For example many browsers won't let Cookies escape a suffix, so company A.some.example and companyB.some.example can't share cookies if some.example is on the PSL. Let's Encrypt name quotas care about the PSL so companyA.some.example certs wouldn't share quota with companyB.some.example. DMARC won't work on a public suffix, but HSTS preloading does.

</comment></comment></comment></comment><comment><USER16> There is some significant disagreement that Google is in fact doing anything here.

There's somebody who wants them to do something, but Google themselves seem to say subdomain leasing is OK. [1]

[1] [https://medium.com/@loish/a-response-to-danny-sullivan- and-g...](https://medium.com/@loish/a-response-to-danny-sullivan-and-google- about-white-label-sites-in-the-search-results-25d0dc2931f8)

</comment><comment><USER17> Maybe I just don't understand the issue here. What is wrong with sub domain leasing?

<comment><USER8> I assume that previously, Google's ranking algorithm would attach a score to a domain name, and by leasing out subsections of the site, the sub-owner would get an artificial ranking boost.

So now perhaps the Googlebot notices if a subsection of a site is radically disconnected and treats it as an independent publication.

<comment><USER18> That's not really a penalty then.

<comment><USER19> Anything their algorithm does that reduces the rank for a webpage can be seen as a penalty.

But it's not a penalty in the legal meaning of the word.

<comment><USER18> If a bank incorrectly deposits $1 in your account and then removes it later, you aren't being penalized.

</comment></comment></comment></comment></comment><comment><USER20> Does this include sites hosted on Google Drive, Google Spreadsheets (yes, you can host a site on Google Spreadsheets, by putting HTML in a cell), Google Docs, etc.?

<comment><USER21> But are those spreadsheets/docs indexed by and show up on search results?

<comment><USER22> Yeah.

 _site:docs.google.com_ finds approximately 4m results.

<comment><USER21> I see, but I assume Google has custom ranking since I never see them show up in any search result, they clearly aren't getting Google.com's rank score.

<comment><USER22> Absolutely. Subdomains may get _some_ extra credit, but they still need incoming links. "Leased" subdomains and directories don't come naked, they usually get lots of links from the main site, often site-wide in header/navigation, sidebar or footer.

Since the publishers get paid for leasing out the subdomain _and_ linking to it, you could argue that they are essentially selling links. That's apparently not what Google is saying though, because they'd penalize the sites selling the links, too, and only the leased out subdomains/directories have been affected, the rest of the sites are still ranking as they always did.

</comment></comment></comment></comment></comment><comment><USER23> "Google fixes problem it created itself"</comment>


Ask HN: Browser GUI - <AUTHOR>

How would you go about writing a GUI that would run in most browsers on all platforms that support those browsers, even if offline? An example might be a Spreadsheet application that would still work offline but have extra abilities online (cloud storage, collaboration etc). The ability to display charts and simple animations/sounds would be a requirement.<p>Some other things to discuss:
  1. How would this picture change if offline ability was not a requirement?
  2. What if the application was very graphics/sound intensive (game)?<p>(Hope this isn't too general a question) <comment><USER2> Hope this isn't too general of an answer but...

you might want to take a look at the Cappuccino web framework ( <http://cappuccino.org> ) that 280 North ( <http://280north.com> ) used to build 280 Slides ( <http://280slides.com> ).

Also take a look at SproutCore ( <http://sproutcore.com> ).

Both of those would be good places for starting an application like what I think you are getting at. From there, some of the other stuff might follow from there.

</comment><comment><USER3> Flash comes to mind.</comment>


Introduction to Python for Computational Science and Engineering [pdf] - <AUTHOR> http://www.southampton.ac.uk/~fangohr/training/python/pdfs/Python-for-Computational-Science-and-Engineering.pdf <comment><USER2> > As Python 2.x is still the default Python on many system and there are a > fair number of research codes out there based on Python 2, we will use > Python 2.x in this book.

This is so unfortunate. Scientific computing is riddled with technical debt and _starting_ with Python 2 today is fairly irresponsible. If you're already invested in Python 2 and have code/training written up, fine. But if you're learning it just now, as the book's audience obviously is, picking Python 3 should be a no brainer.

<comment><USER3> IMO, Python 3's support for matrix multiplication using the @ operator is itself worth the cost of admission. Much of technical computing is just implementing algorithms that use linear algebra extensively, and if you're coming from matlab littering your code with dot(dot(X,Y),Z) is a real pain

<comment><USER4> I actually see np.dot(np.dot(x,y),z) as easier to read and remember. It is more explicit in what it is doing. Being explicit is a good thing.

<comment><USER5>
       a + 4*(x-y) + b**5

vs

       (+ a (* 4 (- x y )) (expt b 5 ))

Sometimes, as arithmetic with lisp shows, conciseness is better. Also, it isn't being more _explicit_ than it is being more _verbose_.

<comment><USER6> It is abosolutely being more explicit. It's being more explicit that (expt b 5) is a unit that forms a single argument in the + form.

This is implicit in

      a + b ** 5

according to a precedence rule between the __and + operator, which is hidden in the parser 's implementation and in documentation thereof.

Well, the white-spacing

      a + b**5

_suggests_ it. But the suggestions produced by insignificant whitespace can be mere wishful thinking:

      int* x, y; // two C pointers? not!

Speaking of whitespace, also have the advantage of there being multiple ways to split the expression into multiple lines, all conforming to a very clear, simple formatting rule:

      (+ a
         (* 4 (- x y))
         (expt b 5))

      (+ a
         (* 4
            (- x y))
         (expt b 5))

Fully expanded, every term on separate line:

      (+ a
         (* 4
            (- x
               y))
         (expt b
               5))

In this manner, we can write complex expressions that would be quite unreadable in infix, requiring break-up into intermediate temporaries.

We almost have a circuit diagram now with "gates" for the operations: a three input + gate, etc:

         ____
        /    |- a
        |    |      ____
      --| +  |-----/    |- 4
        |    |     |  * |      ____
        \____|-    |    |-----/    |- x
               `   \____|     | -  |
                |             \____|- y
                |   _____
                `--/     |- b
                   | expt|
                   \_____|- 5

</comment></comment></comment></comment></comment><comment><USER7> Hi all, I am the author of the book.

There is a Python 3 version of the book available at [http://www.southampton.ac.uk/~fangohr/teaching/python/book.h...](http://www.southampton.ac.uk/~fangohr/teaching/python/book.html)

This also includes Jupyter Notebook files for those who want to execute (and play around with) the chapter content interactively.

Thank you for all the comments and discussion.

Hans (firstname.lastname@example.com)

<comment><USER8> It looks wonderful! Just yesterday I did a quick workshop introducing neuroscience to scientific Python, in the Jupyter Notebook environment (very rough version here: [https://github.com/stared/python- neuroaspects-2016](https://github.com/stared/python-neuroaspects-2016), before updates). I will definitely sent the participants a link to your book.

But one small question: do you plan, by any chance, upload your notebooks to GitHub (or any other place, where one can easily see a rendered version; BTW one more selling point of Jupyter - the easiness to share)?

<comment><USER7> Thank you. It is on my todo list.

</comment></comment></comment><comment><USER9> I'm very sympathetic to "use python2." I still use python2.

But we should all keep in mind the "no shit really this time" EOL for python is 2020. [http://legacy.python.org/dev/peps/pep-0373/](http://legacy.python.org/dev/peps/pep-0373/)

Even if you say "well, it'll just be forked," you don't really know how many forks and pain there will be. Maybe python2 will be like LibreOffice, or maybe it will be like OpenOffice.

Like it or not, python3 is the future.

<comment><USER10> And the bucket of people who _want_ python2 forked weighed against the bucket of people can _can_ fork/maintain it are not equal.

</comment></comment><comment><USER11> This is a very good guide. I thought I knew python ecosystem well and I found something new for myself ('visual' package for 3D illustrations).

I am wondering if there are guides for the "reverse direction": I already know how to program, but I want to learn new scientific domain that is interesting to me: e.g. material science, climate modeling, etc. Something like Rosalind[1] does for bioinformatics.

[1] [http://rosalind.info/](http://rosalind.info/)

<comment><USER4> Well if you want to learn the science, you can just pick up a science book. I know many users here have good suggestions. But if you are specifically looking for scientific computing those generally talk about code basics. There are also numeric programming books. If you're trying to get into those studies I suggest going through a numerics book because the techniques will be similar among any of the code. But you'll have to spend time learning the non-coding parts as well. In science coding is just a tool.

</comment></comment><comment><USER7> Just found a page dedicated to Python 3 for scientists: [https://python-3-for- scientists.readthedocs.io/en/latest/](https://python-3-for- scientists.readthedocs.io/en/latest/)

Also an impressive line up of scientific tools that will drop Python 2 support by 2020: [http://www.python3statement.org](http://www.python3statement.org)

(And for completeness: the book discussed in this thread is available for Python 3 at [http://www.southampton.ac.uk/~fangohr/teaching/python/book.h...](http://www.southampton.ac.uk/~fangohr/teaching/python/book.html) )

</comment><comment><USER12> I just finished working through this book and I really enjoyed it. I went from next to no Python knowledge to writing programs to analyze raw vibration data in a few days. I had previous experience with Matlab and this book was very useful in bridging the gap between the two systems.

</comment><comment><USER13> I'm dubious about the worth of this book as I lived with several soton Engineering students as they went through the associated course (whilst I did CS as part of the other 'Engineering' faculty, ECS), though a lot may have been due to lack of engagement with this particular course (copying and memorisation were sufficient to get you through it). I was always so frustrated that my friends couldn't benefit from some of the great lecturers in my own faculty.

That said I know a few Engineering students there now who are awesome programmers (though Aero Engineers at heart, so I can't hire them :( ).

</comment><comment><USER14> Python3 as default dialect!

<comment><USER14> What exactly is wrong with this particular comment?)

<comment><USER15> It does not contribute anything meaningful to the discussion on the submitted link.

<comment><USER14> It does. It emphasizes that this particular guide encourages use of Python3, instead of holding onto legacy, which means that the author understands programming languages basics or at lest knows which semantic unification has been done to make the language less inconsistent, hence more beautiful.</comment></comment></comment></comment>


JQuery - <AUTHOR> https://jquery.com/ <comment><AUTHOR> I submitted this because of this comment:

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

"Sorry, but this is like posting jQuery. Who doesn't know about three.js?"

Well, _I_ didn't know about three.js before I submitted it. I _did_ know about jquery, but I was curious to see if it had ever been submitted, and the easiest way to find out was to submit it. So here it is.

And who knows, maybe there are HN readers who haven't heard of jquery. Stranger things have happened.

</comment><comment><USER2> This is cool! I also recently found this thing called Twitter Bootstrap [http://getbootstrap.com/](http://getbootstrap.com/)

<comment><AUTHOR> [https://news.ycombinator.com/item?id=8541494](https://news.ycombinator.com/item?id=8541494)

</comment></comment><comment><USER3> [http://youmightnotneedjquery.com/](http://youmightnotneedjquery.com/) \-- I'll just leave this here.

<comment><USER4> That site was not convincing. Why do in 8+ lines what I can do in 1 with jQuery?

Especially when the 8-line version might need testing in every possible browser out there for quirks and bugs. jQuery's already done the legwork there

Edit:

youmightnotnotneedjquery.com linked in a sibling of this comment explains it better in this googledoc

[https://docs.google.com/document/d/1LPaPA30bLUB_publLIMF0Rlh...](https://docs.google.com/document/d/1LPaPA30bLUB_publLIMF0RlhdnPx_ePXm7oW02iiT6o/edit)

<comment><USER5> When performance matters, or you are doing things on an order of magnitude, you may want to skip jquery

<comment><USER4> Do you have any examples or writeups to hand where rewriting jQuery functions ended up in a faster site?

Specifically in cases where other optimizations (caching, beefier servers, faster SQL, SSDs vs HDDs, etc) didn't help more?

<comment><USER6> Beefing up the server cannot improve client side code. Jquery is quite slow, nice, but quite slow. Sometimes writing out those 8 lines can make your code literally 400 times faster.(source : [http://vanilla-js.com/](http://vanilla- js.com/)) So yes if performance is a concern, you might want to look at writing it yourself.

<comment><USER4> Very good point, I'd not really considered the lower end spec'd machines, was more thinking overall page load times and the likes. Thanks :)

</comment></comment></comment></comment></comment></comment><comment><USER7> This is getting out of hand. Remember, an eye for an eye makes the whole world blind.

</comment><comment><USER8> this mislead me. I thought there was some kind of new jquery release.</comment>


Abusing Exchange: One API call away from Domain Admin - <AUTHOR> https://dirkjanm.io/abusing-exchange-one-api-call-away-from-domain-admin/ <comment><USER2> Is there some fundamental flaw I don't know about in kerberos that keeps people going back to NTLM in this decade?

<comment><AUTHOR> Probably one side of equation is that NTLM just works. For kerberos, you mostly have additional effort to manually add SPN. Moreover for load balanced Exchange, you must deal with alternate service account: [https://docs.microsoft.com/en- us/exchange/architecture/clien...](https://docs.microsoft.com/en- us/exchange/architecture/client-access/kerberos-auth-for-load-balanced-client- access?view=exchserver-2019)

<comment><AUTHOR> Moreover (didn't have time to read yet) seems that there is just today public disclosure which highlights some issues with Kerberos: [https://shenaniganslabs.io/2019/01/28/Wagging-the- Dog.html](https://shenaniganslabs.io/2019/01/28/Wagging-the-Dog.html)

Don't get me wrong - thats not a case where someone should choose NTLM over more secure Kerberos. Just that we should note Kerberos should be configured appropriately.

</comment></comment></comment><comment><USER3> Url changed from [https://www.theregister.co.uk/2019/01/25/microsoft_exchange_...](https://www.theregister.co.uk/2019/01/25/microsoft_exchange_domain_admin_eop), which points to this.</comment>


Obie Fernandez starts a series on Master Services Agreements - <AUTHOR> http://blog.obiefernandez.com/content/2008/09/master-services-agreement-part-1.html <comment><USER2> Pushing your own MSA is a good way to spend 3 months in legal; another strategy which can work just as well is to offer up working on your client's paper, and just have your legal review their MSA.</comment>