Request Node lib used by 48k modules is now deprecated - <AUTHOR> https://github.com/request/request/issues/3143 <comment><USER2> Previously on HN (72 comments): [https://news.ycombinator.com/item?id=19604148](https://news.ycombinator.com/item?id=19604148)

</comment><comment><USER3> > request will stop accepting new features.

> request will stop considering breaking changes.

> The committers that are still active will try to merge fixes in a timely > fashion

Sounds to me like the library is "done".

<comment><USER4> Hardly a hot take but a lot of people seem to think that if code isn't actively being worked it, you can't use it, as if there can never be a point where fewer and fewer bugs are reported and fewer and fewer features are requested.

when's the last time Knuth wrote a check for TAOCP? Is it "dead"?

<comment><USER5> > when's the last time Knuth wrote a check for TAOCP?

Got one in the mail yesterday (check was written Feb 10). In fact you can figure out how many checks were written in the last month, roughly: compare [https://web.archive.org/web/20200110074014/https://cs.stanfo...](https://web.archive.org/web/20200110074014/https://cs.stanford.edu/~knuth/boss.html) with [https://web.archive.org/web/20200219035903/https://cs.stanfo...](https://web.archive.org/web/20200219035903/https://cs.stanford.edu/~knuth/boss.html) I imagine most of these checks (definitely all $7 of mine) were from finding bugs in pre-fascicles, i.e. bleeding-edge drafts he's been putting up online. (See near the bottom of [https://cs.stanford.edu/~knuth/news.html](https://cs.stanford.edu/~knuth/news.html))

On the other hand, while you mention Knuth and "done", TeX and METAFONT are better examples. He declared them "done" in 1990 ([https://tug.org/TUGboat/Articles/tb11-4/tb30knut.pdf](https://tug.org/TUGboat/Articles/tb11-4/tb30knut.pdf)), but still does bug fixes:

> _I still take full responsibility for the master sources of TeX, METAFONT, > and Computer Modern. Therefore I periodically take a few days off from my > current projects and look at all of the accumulated bug reports. This > happened most recently in 1992, 1993, 1995, 1998, 2002, 2007, and 2013; > following this pattern, I intend to check on purported bugs again in the > years 2020, 2028, 2037, etc. The intervals between such maintenance periods > are increasing, because the systems have been converging to an error-free > state._

(The latest round, in 2013, did surface one bug: the debug string representation of an "empty" control sequence was missing a space.)

<comment><USER6> Nice to see multiple of us are on here.

> I imagine most of these checks (definitely all $7 of mine)

The 0x$2.00 check I got from 10 Feb 2020 was for one typographical item in Volume 4A and one pedagogical improvement in Volume 1, Fascicle 1. So it is certainly possible to still get checks for material that is already published.

Since it is now 2020, anyone with bug reports from the typography stuff should send them in soon, wouldn't want to miss the deadline.

<comment><USER5> That's interesting, can you go into more detail on those two -- what was the pedagogical improvement, and the typographical item? Just curious...

<comment><USER6> Sure.

\- On page 715 of Volume 4A, he had something like \\`a when he meant to have just à.

\- In Volume 1, Fascicle 1, there is a convention that the "main" entry point of an MMIX program begins at LOC #100. The convention is established early on and repeated throughout the text. However, at no point is it explained _why_ LOC #100 was chosen (instead of LOC #0, LOC #80, or whatever). It could be gleaned through careful study -- LOC #0-#80 are reserved for trip/trap handling and one more location before #100 is reserved for a special second entry point -- but you basically had to read the entire fascicle to find /all/ of these. A naive user would be likely to try writing a program beginning at LOC #0 and wonder why it didn't seem to behave correctly. My suggestion was to just add a note explaining why LOC #100 was used. He agreed and you can find the added note in the latest errata for Volume 1, Fascicle 1.

<comment><USER5> Oh thank you. I looked up page 715 of my copy of Volume 4A and can see the \\`a. :-) I also see both corrections you mentioned in the online errata, that's cool. :-)

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Deprecating is a weird decision as there is nothing wrong with the "request" module. It doesn't lead to bad code, bugs or security risks.

It would be better to say this is the last version, except for security upgrades. These upgrades can be done by other maintainers that are assigned to the project.

<comment><USER8> There doesn't have to be something wrong with a solution to deprecate it, there just has to be a better alternative.

<comment><USER7> If the alternatives are better, then devs will choose those solutions and "request" will fade over time. It doesn't have Promise support, so new projects will likely not choose it.

request is very simple and straightforward library that solves a very common issue.

Deprecating it causes a lot of work for every project out there. Either using request directly or indirectly.

I have a lot of respect for the maintainer, and he can choose to do whatever he wants with this module. That's his privilege.

However, the fact that he got "bored" with this solution, doesn't mean he needs to deprecate it. He can just stop working on it, and give ownership to someone else.

If it had a security issue and he is not going to ever update it, then that would deserve the deprecation so people should be warned.

<comment><USER9> >It doesn't have Promise support

That's a feature. [https://firstname.lastname@example.com/continuation-passing- style-p...](https://firstname.lastname@example.com/continuation-passing-style- patterns-for- javascript-5528449d3070?source=friends_link&sk=976fb25ca6c15eba3a4badcf55ba698e)

<comment><USER10> While this isn't really the place to discuss this, that your most complex example is a simple waterfall of three nested async functions doesn't do much to sell the superiority. Start mixing in conditional async calls with downstream async branching. And look at the Promise-based solutions to async.js ([https://caolan.github.io/async/v3/](https://caolan.github.io/async/v3/)), a library nobody misses. Still not sure if your blog post is a joke or not though, frankly. If it's a serious post, then it seems troll-y to inject such a fringe opinion any time someone casually mentions promises being good.

</comment></comment></comment></comment></comment><comment><USER11> When did maintenance mode become deprecated? Why isnt that hyperbole?

<comment><USER10> They have marked the package as deprecated on NPM. [https://docs.npmjs.com/cli/deprecate](https://docs.npmjs.com/cli/deprecate)

See the banner on this page: [https://www.npmjs.com/package/request](https://www.npmjs.com/package/request)

They are urging people to consider the enumerated alternatives.

<comment><USER12> > No new changes are expected land. In fact, none have landed for some time.

That's not what "deprecated" means. That's "maintenance mode".

Deprecated means no new clients should use it, and existing clients should migrate to library X or Y, because it's going to be deleted by 202X.

<comment><USER10> They don't want to maintain this software forever and are definitely urging people to use other software. They even admit that they will merge fix PRs with a disclaimer of "no promises".

I mean, the developer themself has said it's deprecated and has marked it as such formally on NPM with a link to a post that urges people to use alternatives, so I'm unsure of what you're arguing nor what it achieves. Seems to satisfy your own definition, they just don't have an exact date on when their maintenance charity will run out.

</comment></comment></comment></comment><comment><USER13> For people looking for an alternative, got [1] is well written, maintained, and as a bonus has a nice comparison chart to other libs. I started w/ node- fetch but quickly moved to this. Its author is also prolific in the Node community.

[1]: [https://github.com/sindresorhus/got#comparison](https://github.com/sindresorhus/got#comparison)

</comment><comment><USER14> What, why?

Edit: [https://github.com/request/request/issues/3142](https://github.com/request/request/issues/3142)

<comment><USER15> Specifically:

 _The first version of request was one of the first modules ever created for the Node.js ecosystem. [..] The patterns at the core of request are out of date. [..] A version of request written to truly embrace these new language patterns is, effectively, a new module._

<comment><USER16> And IMO that's a really good way of solving this issue!

Rather than try to push a paradigm shift under a major version change in a library, and rather than just hand the library over to someone who may or may not be vetted enough, they are gracefully shutting it down while still sticking around to fix any security issues that may crop up.

<comment><USER17> This is what semantic versioning is for, though. Breaking changes to the API that still serve the same function in an app would not unreasonably be a new major version of the same package. No one is obligated to upgrade to the latest major version.

A complete rewrite would be a ship of theseus situation. It's all new code, and the API may be different, but it still exists to serve the same purpose in an app. Why pretend it's a new module when it's really just a retooled version of the same one?

EDIT: Ok, I misunderstood what was going on with the request maintainers; thought they were planning to start up a new package as a rewrite of request. That practice specifically is what I was arguing against here -- it's not good practice to start a new node module with a new name just because you have breaking changes to your API. I do not in any way mean to suggest that someone else should jump in and turn request into something new.

<comment><USER16> The author of that issue linked above says it better than I ever could:

> A version of request written to truly embrace these new language patterns > is, effectively, a new module. I've explored this space a bit already and > have a project I'm quite happy with but it is incompatible with request in > every conceivable way. What's the value in a version of request that is > incompatible with the old patterns yet not fully embracing the new ones? > What's the point in being partially compatible when there's a whole world of > new modules, written by new developers, that are re-thinking these problems > with these patterns in mind?

> The best thing for these new modules is for request to slowly fade away, > eventually becoming just another memory of that legacy stack. Taking the > position request has now and leveraging it for a bigger share of the next > generation of developers would be a disservice to those developers as it > would drive them away from better modules that don't have the burden of > request's history.

Now view that in contrast to react-router, which has gone through 3 or 4 really major rewrites, and had their API change those few times in completely incompatible ways, even shifting paradigms multiple times over the course of the library until now.

They are still committed to maintaining most of the past major branches, and the docs are still around for those versions, but each one is so different that it adds a lot of confusion. And I don't meant to say that react-router is bad, the reasons for the changes are damn good ones, and I actually like the library a lot, but the confusion around it is real because the 2.x branch vs the 3.x branch vs the current branch are all so different that they should really be different libraries in my opinion.

If I had to choose between those 2 things, i'd choose what request is doing both as a library author and a library user.

<comment><USER17> I misunderstood -- I thought the authors of request were going to keep working on a rewritten version, but were going to start a brand new node module for it.

Strictly speaking, react-router is doing it correctly. It's the same library, just different versions. The normative way in the npm community to handle breaking API changes is to increase the major version, not to completely rename the package.

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> I am now looking for another library that is as expressive with http streaming. I have enjoyed using request for complex things things like piping file downloads while rewriting headers, adding cookies, without buffering the entire response in memory.

<comment><USER18> "got" has support for streaming. We have a migration guide for "request" users: [https://github.com/sindresorhus/got/blob/master/documentatio...](https://github.com/sindresorhus/got/blob/master/documentation/migration- guides.md)

</comment></comment><comment><USER19> I have a question:

Is it the responsibility of the package manager to keep users safe? By that, I mean, if there was a security vulnerability that the maintainers refused to fix, what would the process be?

Should NPM refuse to install packages marked as deprecated, perhaps after a certain age of deprecation (say, 6 months)?

Comparing this to the browser where I believe it _is_ the expectation Firefox, Chrome, Safari et al to keep users safe, by updating automatically if an issue is discovered.

<comment><USER10> I don't see why NPM should be so heavy-handed as to prevent installation of deprecated software. It already shows you a warning.

I think it's a good example of when systems over-act on information they do know (a developer has marked their software as deprecated) in ridiculous contrast to all the information they don't know (99% of developers not even bothering to deprecate their package when they abandon it).

</comment></comment><comment><USER20> Can anyone recommend a library with the same API as request?

For those of us that would be under hardship to rewrite the node-request portions of large stable services, but also can't/shouldn't to have deprecated libraries?

<comment><USER16> This is going to sound glib, but you can just keep using what you have now.

If you take a look at [1], the maintainers of request aren't "deprecating" it in the sense that they won't touch it ever again. It really just means that there won't be any more active development on it, no new features or breaking changes will be accepted, and some housekeeping had to be done to allow it to accept security fixes without relying on one specific person to be around.

The code will still work (and probably for quite a while), and security issues will still be addressed, it just won't be changing much if at all from now on.

[1] [https://github.com/request/request/issues/3142](https://github.com/request/request/issues/3142)

<comment><AUTHOR> I totally agree with this approach, however it seems like a good idea to use alternatives for future work.

<comment><USER16> Agreed, but if you are looking for alternatives with an identical API, then it doesn't seem like a good idea anymore (at least to me).

The main theme behind the depreciation of Request is that the API is old and doesn't really fit with the rest of the node ecosystem. Any other API- compatible library is going to have those same issues. So if you are going to start something new, but want to keep an identical interface, then you might as well just use Request.

</comment></comment></comment></comment><comment><USER21> 48k? Isn't github showing 4.4m?

Everyone I see seems to use axios these days.

<comment><USER22> > _Everyone I see seems to use axios these days_

Axios was somewhat abandoned a year or so ago.

A new collaborator was added in Dec 2019 which apparently is picking it up.

[https://github.com/axios/axios/issues/1965](https://github.com/axios/axios/issues/1965)

Who knows for how long though...

<comment><USER23> What would be the alternative to Axios?

<comment><USER22> On the browser I generally use fetch(). It's a bit weird at first but it's easy to write a thin wrapper if the default behavior doesn't make sense. Eg: throwing when you receive a 400 or 500.

On Node I've been using this lately: [https://github.com/node-fetch/node- fetch](https://github.com/node-fetch/node-fetch)

</comment></comment></comment></comment><comment><USER24> axios FTW!

</comment><comment><USER25> Real title: "Alternative libraries to request". The "deprecating" part is simply the submitter's invention, in order to stir up drama.

<comment><USER26> The maintainer put it in "maintenance-only" a year back, and officially deprecated it a week ago: [https://github.com/request/request/pull/3267](https://github.com/request/request/pull/3267)

<comment><USER25> Okay, so not totally invented, but still not the original title (which is perfectly descriptive), but clickbait.

</comment></comment></comment><comment><USER27> I checked and one of our servers is using this; the real challenge will be seeing if my old dev environment still works because we haven't updated this service in years.

</comment><comment><USER28> This little maneuver is gonna cost us 51 years.

<comment><USER28> I don't see a point to give negative if you don't get it.

<comment><USER29> We get it, it just adds nothing to the conversation.

<comment><USER28> Was hoping to make someone laugh...

<comment><USER10> I think we all have "NPM/JS bad" fatigue.

</comment></comment></comment></comment></comment><comment><USER30> Ok, I have been known to have strong opinions on HN, and each one is open to being changed and is rooted in extensive personal experience.

I have said that comments are a code smell.

I have written extensively in favor of decentralization and even formed two companies to promote it in increasingly sophisticated ways (qbix.com and intercoin.org)

So I'm gonna say something that may get me downvoted...

Package Managers are almost as bad as closed source software, which is almost as bad as closed software in "the cloud" (the fake, centralized one) which you don't host.

Society today still has to rely on feudal lords for many things, just as we used to rely on the post office, printing presses and telephone switchboard operators.

If you _are_ going to use a package manager, you should be _at the very least_ pinning all your versions and personally vetting any changes that are pulled from upstream. You can outsource this security check to some third parties (at least GitHub has those alerts when vulnerabilities are found) but we need the security audit people in the loop, signing releases. Not just pull from upstream, MUCH LESS pulling thousands of new commits across hundreds of packages!

We have seen this introduce security bugs all over the place, in the past. Deprecation is not as bad as that, but you gotta vet what goes into your code.

One of many examples, how can we address this?

[https://www.theregister.co.uk/AMP/2016/03/23/npm_left_pad_ch...](https://www.theregister.co.uk/AMP/2016/03/23/npm_left_pad_chaos/)

I speak a bit flippantly but when you're building a PLATFORM or FRAMEWORK for apps, this matters. A lot. Linus' rant about diffs and patches being far better than svn are a version of what I'm talking about. At least svn is inside an organization. This is out on the internet!

The bazaar may be better than the cathedral, but not for security and the more power your framework have the more responsibility you have to not skip security checks and just pull code. It's worse than executing a shell script downloaded from the 'net, because you're essentially shipping this shell script downstream to everyone who uses your code!!

<comment><USER10> Sure, taking on dependencies introduces pros and cons. But isn't this just the classic HN trope where you fly off the handle on a loosely related rant just because TFA has some sort of triggering buzzword like "NPM"?

Not sure how your rant is related. In fact, that such a popular library is being deprecated contains in itself the realization for unknowing developers a downside of depending on large libraries.

Someone upset by this deprecation that wasn't yet aware might, in the future, seek out a more timeless solution for making http calls like the Node implementation of the browser's native window.fetch(). All without having to read a rant.

<comment><USER31> The rant might be off topic, but everything he says is reasonable. In a "this is why we can't have nice things" way.

</comment></comment></comment><comment><USER32> It was about time. I did some benchmarks few years ago and the results were disgusting compared to native lib, plus why so many dependencies for a simple request library? I will never understand why it gained so much publicly, it was worthless since the day one.

<comment><USER33> Seems like a disrespectful way of describing someone else's work, regardless of shortcomings.

<comment><USER32> You know how many packages out there are better than request? Now compare all the work those great developers did, gave their souls for what? 50 stars at GitHub? Cmon, let's face the real problem here which is the balance between good code versus popular code. I'm speaking behalf of every great developer out there that spends hundreds of time and his project got faded inconspicuously. I have seen hardcore projects that every tech company could have envied get like 50 dollars of donations and projects that were made in one day, get thousands.

<comment><USER31> That's just Power Law. Like it or not, I don't think there is a workaround.

<comment><USER32> Like judging a book by it's cover or the number of sales. No one said programmers are geniuses, they're just masters of some tools that forge the digital era, nothing more nothing less.</comment></comment></comment></comment></comment>


Elon Musk Can Fix the Damage His Starlink Satellites Are Causing to Astronomy - <AUTHOR> https://www.forbes.com/sites/startswithabang/2019/11/20/this-is-how-elon-musk-can-fix-the-damage-his-starlink-satellites-are-causing-to-astronomy/ <comment><USER2> Just add a telescope to each satellite, then let the Astronomy community use them for interferometry.

</comment><comment><USER3> A Forbes article describing three ways that money is the solution.

<comment><AUTHOR> No.

The author writes about his background at the end: "I am a Ph.D. astrophysicist, author, and science communicator, who professes physics and astronomy at various colleges. I have won numerous awards for science writing since 2008 for my blog, Starts With A Bang, including the award for best science blog by the Institute of Physics. My two books, Treknology: The Science of Star Trek from Tricorders to Warp Drive, Beyond the Galaxy: How humanity looked beyond our Milky Way and discovered the entire Universe, are available for purchase at Amazon."

And his four points are:

"1.) De-orbit the current batch of Starlink satellites, and place a moratorium on the launch of new ones until the proper modifications have been made."

"2.) Either redesign or coat the satellites to significantly reduce their reflectivity."

"3.) Provide real-time trajectory plans, predictions, and adjustment information for each satellite to observatories worldwide."

"4.) Provide funding to assist astronomers in the development of hardware and software-driven solutions to subtracting out as much of the satellite pollution as possible."

The elaborations of the current problems and the solutions are in the article.</comment></comment>


Google Voice Poised to Set a New Standard in Business Telephony - <AUTHOR> http://www.pcworld.com/businesscenter/article/167526/google_voice_poised_to_set_a_new_standard_in_business_telephony.html <comment><AUTHOR> This sounds impressive: "Google Voice has a 'Call Switch' feature. If I'm chatting it up as a walk in the door, all I have to do is press '*' on my phone and my other registered phones will ring. I can pick up my home phone, and then hang up my cell, and I can continue my call uninterrupted."</comment>


PI Day 2015 - <AUTHOR> http://www.piday.org/

<comment><AUTHOR> Pi Day has been submitted before, but this year is a little special since Pi Day has extra significant digits this year: 3/14/15 9:26.

Although I guess this does not fit in all date formats.</comment>


How to store a birthday wishes in the Bitcoin blockchain - <AUTHOR> https://medium.com/@inthebitcoin/how-to-store-a-message-in-the-bitcoin-blockchain-8d5ac0a8ea88#.i3mu0ot6j <comment><AUTHOR> Hi

We've developed a simple app to store messages in the bitcoin blockchain.

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

We are looking for any kind of feedback from bitcoin users. The app encourages users to store a short message in the blockchain about a particular day/occasion. First theme is St. Patrick's Day.

What do you think about the idea, what other features people might be looking for, feedback about the design, the price, anything.

Thanks inthebitcoin team</comment>


Changes to Google Scholar - <AUTHOR> https://scholar.googleblog.com/2017/09/better-ways-of-getting-around.html <comment><USER2> Ugh! What a horrible UI revision. Mobile has completely destroyed web design for anything larger than an iPhone. Stupid round pictures? Really? (And thousands of clean square ones now vignetted and made to look stupid against a round background?) Items in the Areas of Interest list chopped off with a ... and so made illegible? More empty white space pushing actual data off the bottom of the screen? The Metrics section used to be extremely interesting, with comparative data from many fields; that looks to be completely gone -- how could something that useful be eliminated? [Wait, the "learn more" page says the subcategories are still there in the left column, but I don't see any left column.] Come on, Google. Don't any of your people use actual computers any more?

<comment><USER3> In 2017, I don't understand why UIs are not totally configurable by now. It should be clear that people have different tastes. I am a fan of full-text dense interfaces a la Reddit but I know I am in a minority. I wish I could activate a content-only CSS.

Well, I do understand actually. It is about ads revenue. Fuck that. I wish this ecosystem finally dies.

<comment><USER4> Start paying for software then. (Not just directed towards you, but also towards anyone who has these thoughts. That's the only way we get off this model, by showing other models are profitable as well)

<comment><USER5> So much paid software has awful interfaces as well though

<comment><USER4> So much free software does as well: see facebook.

</comment></comment></comment></comment></comment><comment><USER6> Scholar is by far the most powerful search site for academic literature. They not only find new publications weeks before other platforms do, but also find far more literature from all sources.

Nevertheless, I feel like this is one of these half-hearted Google projects and doesn't fully live up to its potential. This relatively subtle UI change is a good example that they don't seem to care too much about taking it further. I just pray Google doesn't shut it down one day.

<comment><USER7> Its interesting how the big guys never truly paid attention to their academic search portals. I remember MS Academic Search to be very useful, which thereafter remained as is to the point of being clearly outdated. And then, on a bright sunny day, discontinued. Only to emerge years later, imbued with a fresh interface, horrible search and confusing UI.

Scholar too felt ignored like its a bastard child, but this new update looks promising, not in term of their changes, but due to the fact that this implies they haven't boxed it yet. Also, they haven't "revamped" the search, so I'm not worried about the core functionality.

Most likely this behavior stems from the fact that this service doesn't generate revenues for them (I'm assuming so, please correct me if I'm wrong). If so, then how does a small company keep up its own academic search portal?: Semantic Scholar by Allen.

<comment><USER8> > this service doesn't generate revenues for them (I'm assuming so, please > correct me if I'm wrong).

Considering that there are quite a few researchers working at Google, I can imagine that the fact that they have this tool available to them indirectly causes some revenue. (And also, goodwill in the academic community, i.e. a community of potential future employees.)

</comment></comment></comment><comment><USER9> If anyone from Google Scholar is reading this, please, please, add a DOI field to the BiBTex citation. It is required in every serious journal and it's tiresome to copy the citation, then open the article page and look for the DOI to add manually.

This small change would be more welcome that any other UI refreshment, I guarantee it.

</comment><comment><USER10> Wow, both Alex and Anurag are still working on Scholar. They started the project almost fifteen years ago. Google infrastructure all around it changed entirely over that time; I'm wondering if this is another major rewrite or "just" a substantial UI update to meet Material Design guidelines.

<comment><USER11> It seems just like a UI tweak. Which is fine...but anyone who is doing serious research or is just an enamored amateur will quickly get over the quirks of their tools.

<comment><USER10> Most of the rewrites are behind the scenes. You'd only notice if you looked e.g. at latency, reliability and trigger rates. I think Scholar is even older than Borg.

<comment><USER11> Are you saying for scholar or in general for software projects?

</comment></comment></comment></comment><comment><USER12> "If you thought Google Scholar had about twenty different screens, you'd be half right."

It also seems that Google has about 20 different blogging outlets. Shouldn't they all be on blog.google by now?

<comment><USER13> If there's one thing Google does right it's fragmentation :)

</comment></comment><comment><USER14> Please please please fix "sort by date" filter. Searching for "natural language processing" returns 3,330,000 results with the default "sort by relevance" and 4,730 with "sort by date."

<comment><USER15> I've noticed this completely nonsensical behaviour with regular Google too. "Sort by" shouldn't ever be a "filter" \--- but an ordering.

The result counts are usually highly inflated and approximate anyway (i.e. can you eventually actually get all 3M+ results?), so perhaps they don't mean all that much.

The best explanation for that anomaly, which is more of an excuse, is that they don't want to spend computing power sorting all the results.

Nevermind the fact that sorting by date is probably much easier than computing "relevance" and sorting by that...

</comment></comment><comment><USER16> The cite feature is really awsome, and I started using it when I noticed a day or two ago!

No more needing to navigate publisher websites, or searching for an obscure article.

Would be cool to have a way to cite any url directly to EndNote.

<comment><USER17> In my experience the quality of the BibTeX offered by Google Scholar is really low, too much missing or incorrect information. Crossref is much better: [https://www.crossref.org/](https://www.crossref.org/)

<comment><USER18> I find this online tool very quick & produces fairly good quality BibTeX. I think it mainly uses the Crossref API. [http://www.doi2bib.org/#/doi](http://www.doi2bib.org/#/doi)

</comment></comment></comment><comment><USER19> The change I really wish Scholar would announce is adding an official API. I'd like to be able to link papers in my library back to some kind of Scholar ID and walk out the citation and 'related' articles from there. I'd feel much better if the only option wasn't a screen scraping library.

It's really a shame that no university library consortium has tried to build this themselves.

<comment><USER20> Not an API and not really maintained, but here's a handy client:

[https://github.com/ckreibich/scholar.py](https://github.com/ckreibich/scholar.py)

</comment></comment><comment><USER21> I wish there were an easy way to browse the most recent papers by category. Or get an email of the daily digest of what's added today for my favorite categories.

I know arXiv does this, but it's in such an unreadable format that it makes me just want to read it on the site.

</comment><comment><USER22> 1\. Anyone have an idea of the algorithm used for ranking? Page rank?

2\. Anyone know where to get my hands on a data set of papers with citations in an easy to parse format? Would like to do some analysis

<comment><USER8> 1\. It's not a simply algorithm, but yes, page rank plays a role (using citations rather than, or in addition to, hyperlinks). 2\. crossref.org has an API? Or do you want the actual papers included - because if so, open access needs to see significantly more uptake first.

</comment></comment><comment><USER23> Typing "sch<tab>" in the chrome address bar used to search on Google scholar directly. It went broken yesterday on my browser.

</comment><comment><USER24> "Author profile pages got a cleaner look, especially on mobile devices. Rest assured, we did not change your citation counts - at least not intentionally."

</comment><comment><USER25> Academia.edu has eaten their lunch. Don't know if two compare deeply but people use academia.edu more than anything else I know in this category.

<comment><USER26> That's funny, because I was just thinking how Academia.edu has become a joke site, while everyone in my field uses Google Scholar daily. It's almost impossible to find references, put together a bib list, or navigate through related work without Google Scholar.

<comment><USER27> People in my field use Google Scholar and NIH for search, but researchgate as a kind of cv.

<comment><USER28> Instead of becoming a more or less of a clone of Facebook news feed for researchers, RG has become infuriatingly full of nag boxes, and in its efforts to get you use the website more prevents you from actually using it at all.

<comment><USER27> Some are useful. But it has begun to cross the line. For example, the nags for their new feature for organizing research into projects are annoying, and then I started getting notices that a deadline was approaching for an update to my project. Eff that. I have plenty of real deadlines already.</comment></comment></comment></comment></comment>


Tell HN: Business/Finance Website (like HN) - <AUTHOR> http://forlue.com

<comment><AUTHOR> NewMogul is gone, Markenomics is now defunct, Newsley isn't social anymore, so this is my attempt at resurrecting a social news website about business/finance.

Btw, it's setup right now so that you don't have to create an account. You can just go straight to "submit". (Though, I may require registration in the future.)

Thanks!

firstname.lastname@example.com</comment>


Virgin Galactic's SpaceShipTwo Crashes - <AUTHOR> http://www.reuters.com/article/2014/10/31/us-space-crash-virgin-idUSKBN0IK24220141031

<comment><USER2> I hope the pilots are safe.

<comment><USER3> "One fatality, one major injury."

[http://www.usatoday.com/story/news/nation/2014/10/31/virgin-...](http://www.usatoday.com/story/news/nation/2014/10/31/virgin- galactic-spaceship-problem/18253295/)

:-(

<comment><USER4> I really hope the recent crashes don't sway public opinion on private space flight.

Failures were always going to happen in an undertaking that's still very much in its infancy.</comment></comment></comment>


Show HN: Verifying integrity of a website using the Blockchain and JavaScript - <AUTHOR> https://sealed.website/ <comment><USER2> Interesting but I'm curious how this would work for somewhat dynamic websites?</comment>


Accessing paid WiFi hotspots with MAC address spoofing [video] - <AUTHOR> https://eclips.io/c/4Jgtl1Zk9W <comment><USER2> Wouldn't this result in a MAC Address conflict? I can't see this working on WIFI unless you were to able to fully establish a MITM attack. Furthermore, depending on whether any switches are involved, who knows where packets will be routed. In theory they will be broadcast, but smart switches could filter packets. I would imagine packet-loss would be very high in either case but I haven't tried it for myself

<comment><USER3> You have to remember we are talking about wifi here. You are correct in a wired network but the last hop can be thought of as a hub. All of the packets will be routed to the AP and the AP will broadcast them to all devices it's the NICs job to accept or reject the packtes and even if the MACs match as the packet moves up the OSI model they will be dropped by the legit NIC and yours will move the packets up. Now on a wired network you are correct lots of packet loss depending on L1 switches vs L3 switches, routers, etc.

<comment><USER2> Awesome, thanks for the explanation!

</comment></comment></comment><comment><USER4> I can't believe how easy that was.

<comment><USER5> It was so easy because it won't work. :)

<comment><USER6> Except it does work.</comment></comment></comment>


Strobe Lights - <AUTHOR> https://www.explainthatstuff.com/how-strobe-lights-work.html <comment><USER2> > What are strobe lights used for?

> Strobe lights have all kinds of uses—from serious and scientific to > recreational and fun

And I think the recreational & fun use-case is the most popular</comment>


On Compiling WebKit (now twice as fast) - <AUTHOR> https://blogs.gnome.org/mcatanzaro/2018/02/17/on-compiling-webkit-now-twice-as-fast/ <comment><USER2> Chromium is working on this as well, they call it _jumbo build_ :

[https://docs.google.com/document/d/19jGsZxh7DX8jkAKbL1nYBa5r...](https://docs.google.com/document/d/19jGsZxh7DX8jkAKbL1nYBa5rcByUL2EeidnYsoXfsYQ)</comment>


Ask HN: How do I go about truly "understanding" JavaScript, or any language? - <AUTHOR> I can do plenty of JS and C programming, but feel like I'm not deeply understanding it. How do I take, say JS, and learn it to the point where it really clicks to the point where I can visualize what's going on under the hood when I write programs? <comment><USER2> > How do I take, say JS, and learn it to the point where it really clicks to > the point where I can visualize what's going on under the hood when I write > programs?

Learn how a JS engine works. Any engine will do, although V8 is very discussed on the internet. Here's a few things to get started with:

\- How the event loop works ([https://www.youtube.com/watch?v=8aGhZQkoFbQ](https://www.youtube.com/watch?v=8aGhZQkoFbQ)). This show how JS works under the hood, what's part of "JS" and what's extended, how async operations are scheduled on a single thread. After watching this, everything will just "click".

\- How objects are represented in V8 ([https://thibaultlaurens.github.io/javascript/2013/04/29/how-...](https://thibaultlaurens.github.io/javascript/2013/04/29/how- the-v8-engine-works/)). It's v8-specific but nevertheless tells you how objects are represented in memory. Keeping these concepts in mind, you will be able to write efficient code on the get-go.

\- ES6 spec ([http://www.ecma- international.org/ecma-262/6.0/](http://www.ecma- international.org/ecma-262/6.0/)). Optional reading (if you want to read 500+ pages), but it's a handy reference when in doubt. You can literally slap this thing to a person who doesn't know what they're talking about. Not that you should, but backing evidence is always great.

</comment><comment><USER3> I found reading John Resig's Secrets of a Javascript Ninja and reading the jquery source code a great help.

I've just started reading Javascript Design Patterns, so can't give a review on that yet.

Of course, nothing beats actually writing javascript.

</comment><comment><USER4> What's going under the hood? It depends on how deep u wana look under the hood? Language specification level or specific implementation level like Google v8 etc.

</comment><comment><USER5> There's really only one way: practice.</comment>


Instant scale with AWS Lambda (2017) - <AUTHOR> https://aws.amazon.com/blogs/startups/from-0-to-100-k-in-seconds-instant-scale-with-aws-lambda/ <comment><USER2> I love AWS because it offers immediate solutions at your fingertips, however, I am skeptical of Lambda's ubiquity.

Too many times have I drank the Kool-Aid for `someManagedAWSService` and then been surprised by the resultant costs. For example, be very careful when using things like DynamoDB and Lambda. One can easily use DynamoDB incorrectly and end up wasting lots of money. Similarly, I think it would be very easy to adopt some sort of "replace everything with Lambda" approach which would be a misplaced effort as well. Lambda has a specific time and place, it is not a silver bullet.

<comment><USER3> When I first began looking to take my web development skills live to a VPS / other services, this was one of the things that drove me away from even playing around with AWS.

Not sure what it is. I went with Digital Ocean, but even compared to Google Cloud or Microsoft Azure, Amazon's console area intimidates me, like I feel like I might get charged or trigger charges that will just rack up if I click on anything there. Maybe I'm just being paranoid, but I don't have the funds to risk playing around with their services and accidentally getting billed $100,000 or something.

<comment><USER4> Well, first of all, there are default limits on everything that prevents you from racking up too huge bills (25 running EC2 instances, for instance). You have to go out of your way to get them raised.

Second, they pretty much only charge per resource usage: CPU time, network traffic, and storage. Consume neither of those, and it is free. So it is free to set up really complicated virtual networks in the VPC part of the console, but you start paying once traffic flows in that network.

The only insanely expensive part that you'd hate to enable is the "Dedicated IP Custom SSL" option in CloudFront, because that is $600 per month, as per their documentation[0].

> Because of the added cost associated with dedicating IP addresses per SSL > certificate, we charge a fixed monthly fee of $600 for each custom SSL > certificate you associate with your CloudFront distributions, pro-rated by > the hour.

[0] [https://aws.amazon.com/cloudfront/custom-ssl- domains/](https://aws.amazon.com/cloudfront/custom-ssl-domains/)

<comment><USER5> Check out how much it is if you provision a CloudHSM (IIRC it's $5k).

<comment><USER6> fwiw a CloudHSM is a dedicated piece of hardware that is otherwise fairly expensive.

<comment><USER5> I mention it because its trivial to provision in AWS accounts.

In sandbox accounts we provision for developers, we use AWS Orgs and service control policies to ensure IAM users with full privs can't provision an HSM.

</comment></comment></comment></comment></comment></comment><comment><USER7> The best use case of Lambda for us is Scheduled tasks and stupid administrative tasks that you would not like to put it in your /etc/crontab

<comment><USER8> This feels like an anti pattern. Lambda is event driven, it doesn't even have a mechanism to schedule activity. You have to abuse some other service to create an event on a schedule.

Surely this is not the _best_ use of the service, even if it is common.

If you need to run tasks on a schedule what's wrong with cron? Or a cron service?

<comment><USER9> There is an AWS cron service, it actually runs on top of lambdas[0]. If your definition of "abuse" is triggering an event with cloudWatch, then every service must be "abused" (SNS, S3, dynamodb, etc) as well.

[0]: [https://docs.aws.amazon.com/lambda/latest/dg/tutorial- schedu...](https://docs.aws.amazon.com/lambda/latest/dg/tutorial-scheduled- events-schedule-expressions.html)

<comment><USER8> Maybe I am hung up on the name but Cloudwatch is a monitoring service. It doesn't seem obvious to me why this is the source of scheduled events.

<comment><USER10> CloudWatch monitors logs for specific keywords, if it finds a certain number of them within a time threshold it creates an "Alarm" which then triggers a Lambda.

<comment><USER8> Yeah and that feels like a hack to me. What generates the events on the right cadence to trigger this Lambda alarm? Why not just have that run the Lambda? And why not just have that run the code like cron?

I know it works and it fills a gap for people but it just feels odd to me. It's like there is cron -> log -> monitor -> alarm -> event -> lambda -> script when you could just have cron -> script.

I'm probably just hung up on the naming and the fact that these events are branded as part of Cloudwatch. If there was some service spun off that just generated events in AWS I wouldn't raise an eyebrow, even if under the hood it was exactly the same thing.

</comment></comment></comment></comment></comment></comment><comment><USER11> I appreciate that AWS Lambda has been a win for various people but this case study doesn't really mention what they tried to do with scaling. Whilst 0 to 100k sounds good, they also had seemingly chosen just one scaling solution of a big instance - several smaller instances behind a load balancer which scale up/down would surely have served the same outcome?

Lambda has been sold on "saving costs" but what seems to be often neglected is the developer time spent re-jigging into a "serverless" model. Developer resources are far, far more expensive than mere EC2 instances.

</comment><comment><USER12> Lambda has a long way to go, it's a promising product but if you want to develop anything for it, it's a bit painful and archaic.

I've had issues with the temp memory. It is completely unreliable, you have to store files when processing in /tmp/ and for whatever reason, reading from this results is patchy. I had to resort to storing every file I process in the RAM.

The tooling is only just taking off now, 6 months ago simulation was painful, at least there is AWS SAM now and docker support.

However despite the pain, it's giving me a solution for scalable video encoding that is very cost competitive and I don't have to worry about submitting jobs and monitoring resources.

<comment><USER13> AWS SAM is ok, but I encourage you to take a look at Serverless framework [https://github.com/serverless/serverless](https://github.com/serverless/serverless), which eases a lot managing the whole infrastructure. There are already some applications running completely on Lambda + Serverless, such as this one [https://github.com/microapps/MoonMail](https://github.com/microapps/MoonMail)

<comment><USER12> Thanks, serverless looks interesting.</comment></comment></comment>


The Positive Legacy of C++ and Java - <AUTHOR> http://www.artima.com/weblogs/viewpost.jsp?thread=252441 <comment><USER2> I think the lesson for C++ was that well though out decisions in the small can lead to an overly complex and difficult to use language, an all to common result of design by committee. Probably the single worst decision for Java was that the programmer needed to be protected from his own stupidity. What we ended up with is a language that's overly verbose and encourages baroque design patterns.

Bruce discusses some of the well known bad design decisions in Java, such as no operator overloading (.equals(), bah), bolt on generics, primitives instead of being purely object based. And there are a ton of other design decisions that made for a bad language: explicit typing of functions instead of duck typing and specialization, introspection for methods but not variables, no first class methods, everything has to be in a class instead of everything is an object, etc.

In the end Java will fade away and the JVM will endure with newer and better languages. The one thing that no one envisions is a better Java unconstrained by past errors. I suppose that's because of the rigid control by Sun.

</comment><comment><USER3> So essentially, the positive legacy of Java is that the JVM has provided a platform for other languages to compile to (and has funded the continued study of dynamic language optimization that began with Smalltalk and Self), and that techniques such as garbage collection are finally mainstream.

The article doesn't seem to explicitly mention the legacy of C++, but the implication seems to be, "We now know ... not to make that same mistake again." (Maybe I'm being overly cynical.) Passing on some aspects to Java is part of it, of course.

<comment><USER4> He gave moving C programmers on to OOP as C++'s positive legacy.

</comment></comment><comment><USER5> " All future languages should learn from this: either create a culture where you can be refactored (as Python and Ruby have done) or allow competitive species to thrive. "

If that is the case, then .net is a great platform and I think he hasn't done justice by not mentioning it. More and more languages are being made compatible with .Net giving the programmer the choice to use libraries written in other languages in the language of their choice.

But I don't agree with him at the first place. Unlike C++, Java was proprietary and it went in the same direction most of the proprietary stuff leads to. As he himself points out, many C programmers moved to C++ and we saw an era when much of the code was written in C++. But now, how many programmers are fondly moving towards Java's newer versions or towards Groovy, JRuby, Jython etc?

</comment><comment><AUTHOR> The line "Java itself will diminish..." did feel a little Middle-Earth to me.

This is not so much a criticism, but I'm not entirely sure what this article is trying to say. He seems to be saying that Java and C/++ were really a springboard into a new way of looking at problems in computing.

I think the problem I have with this is (1) I don't think we really know what that "new" thing is yet, so it's hard to really judge the legacy of Java/C++ --

and (2) a lot of these emergent languages have been around a long time... So perhaps it misses the factors that have somehow turned the tables. Perhaps the issue with Java isn't the way it handles primitives, but something else more fundamental altogether.

</comment><comment><USER6> Both Java language and C++ suffer from backward compatibility. Of course it is a must from business point of view, but it is also a major obstacle. Once bad design decision is made, no one could fix it. The Python doesn't strictly follow that rule and perhaps it is the reason why it seems to have a bright future.

<comment><USER7> If forwards compatibility is not accounted for, you could almost consider C, C++, Java and C# as the same language. There was a natural progression of syntax and features with very little that happened disruptively in the syntaxes in moving from one to the next (biggest jump, amusingly, was the one that was forwards compatible -- from C to C++).

</comment></comment><comment><USER8> _the way to get the masses of C programmers to move to objects was to make the move transparent: to allow them to compile their C code unchanged under C++_

Except that that is not really true: it is very rare that you can take a non- trivial C program, replace 'cc' with 'c++, and have it "just work".

<comment><USER7> You don't have to; C++ can work just fine with object files using C name mangling, so it's no problem to mix C and C++ in the same project even if the source files are compiled with different compilers.

<comment><USER8> Sure, although that's not the C++ <=> C compatibility story that was originally intended, AFAIK. Calling back and forth between C++ and C isn't entirely trivial, either (exceptions, longjmp, etc.)</comment></comment></comment>


How can I turn my passion into business - <AUTHOR>

Hello All,
   There have been many stories about how people have converted their passion into business. I am one such passionate person who has not yet given his passion any business aspect to it, but would like to. I am the founder of Drawmics.com which is was born out of my passion for sketching without an aim to create something worthwhile. It is just like sketching one's mood. While I wanted to do this, I thought there must be similar people like me who would want to create such casual work of art. So I created a social media platform: Drawmics just like twitter where people would sketch, upload images, art works, comics, etc on Drawmics and share it with other people. I am seeing some traction on Drawmics and people registering into it, but until now there has not been significant increase in the traffic.
    I would appreciate if you can provide your valuable ideas about how to build a business out of it and monetize my passion.
I have a few questions: 1. How to market it. I have used Stumbleupon, facebook, twitter and tumblr ads, but still don't see the traffic I would like to.
2. How should I target my website against people who are participants rather than just passive observers.
3. What improvements on the site that you would like to see?
4. I have contacted a few webcomic artists as well for uploading their works. Some have accepted and some have turned down the offer. Since I am just a guy with a regular job, I cannot pay them.
5. I have used GWT and Php for all the coding, GIMP for graphics and Flash for the sketchpad. Now I am thinking of using SVG and HTML5 canvas for the sketchpad. Would you advise me using any other tools for improving the visibility?
Thanks for your time. Vikrant Ramteke <comment><USER2> Decide whether your site is primarily about drawing or image sharing. I think working on the drawing will bring a smaller but more stable community over the long term; however you have more chance of making a buck with the sharing. I can't see what you offer for image sharing that Twitpic or something does not, however.

Then, start over with your user interface, maybe with help from another person. It loads quickly and smoothly, so I can see you have put in some work.

But visually...I'm sorry, it's ugly. The colors and fonts seem to have been selected at random and there are too many things competing for my attention. The first thing I notice is that few or none of the users are paying any attention to your 'theme of the day,' so maybe the theme is pointless; you can get rid of multiple UI elements immediately. The center window changes size depending on the task (browse/search/draw) - very disorienting. And adding your website to the corner of the picture you uploaded...well I see why you do it but it's just annoying, and it often covers part of a caption. Make a logo, make it small, put it in the top left corner.

There is potential, but please work on simplicity and consistency first. Right now, it's like a meal with 7 courses jammed onto one plate.

<comment><AUTHOR> Thanks for you comments anigbrowl, My main aim was to have drawing/sketching capability at the website with sharing feature, but users have also used the site to upload images. It is different from twitpic in the sense that it allows one to draw/edit images at the website itself using the sketchpad. And I think you are right, I need to work on the UI, and hence I have got a graphic designer friend who is working on redesigning it with uniform colors and fonts. I am using GWT to code the UI and may be there are some settings that I have not used which control the changing window sizes. I will spend some time to fix it. Since I am not a javascript/html person, I found GWT very easy to use. Do you have any recommendations for any other tools instead of using GWT?

Putting a logo at the top left corner would be more distracting, don't you think so? I would rather have it in the bottom right corner. I was thinking of creating another small strip of image containing the logo and attach it to the bottom of the main image.

The new design that we are coming up is surely clean, clutter free and more pleasant to look at. Earlier I was the only person working on it so you can imagine how tunneled my vision must have become, but now I am getting more people to work on improving the website.

The new design should give you the feeling of one course at a time of a great meal :). Thanks again for your comments, I will keep you posted here.

<comment><USER2> Good luck!

<comment><AUTHOR> Hello, we have launched a new version of the website: Drawmics.com. I would appreciate your feedback on the same as well as some answers to the questions from my first mail.

Thanks

</comment></comment></comment></comment><comment><USER3> Advice number 1: can you reformat your post so it's readable? Thanks.

<comment><AUTHOR> Reformatted. Thanks.</comment></comment>


Restaurant Only Serves Food From Countries The U.S. Is At War With - <AUTHOR> http://www.torontostandard.com/article/restaurant-only-serves-food-from-countries-the-us-is-at-war-with

<comment><USER2> Well, at least there will be a broad, diverse menu with new food options being added regularly.

</comment><comment><USER3> I was just in Pittsburgh, and this place has closed down. It was around for a few years though. Cool idea, but perhaps a problematic business model.

</comment><comment><USER4> "In conflict with" is a broad term. Defined strictly it's "A serious disagreement or argument, typically a protracted one" and they seem to take great liberties in how they apply the definition. Venezuela for example; while the countries may have disagreements on policy, most other forms of relation are intact (namely trade, which is still humming along see<http://www.census.gov/foreign-trade/balance/c3070.html>). Such policy disagreements are similar to personal disagreements on a macro scale. A clever PR move though, I'm sure they're getting the attention they wanted!

</comment><comment><USER5> Fairly clever. In one direction (food->politics), seems to be leveraging the fact that "ethnic food" is interesting to many people who aren't otherwise greatly interested in world affairs, so can provide a hook. Not sure how effective it'll be at spreading any actual information about anything, but it's an interesting approach to at least get the initial attention. In the other direction (politics->food), it's a restaurant concept that seems somewhat unique in the otherwise fairly saturated market of people who make food choices based at least in part on politics (e.g. organic/fair- trade/etc.).

</comment><comment><USER6> I know the headline is copied from the article, but I wonder why it differs from the copy. The headline is incorrect and the copy is correct:

"They only sell food from countries the U.S. is in conflict with."

([http://en.wikipedia.org/wiki/Declaration_of_war_by_the_Unite...](http://en.wikipedia.org/wiki/Declaration_of_war_by_the_United_States))

<comment><USER4> I would say b/c it attracts more attention. Right or wrong, they seem to be going the sensationalism route.

</comment></comment><comment><USER7> Is the US at war with Venezuela, Iran and Cuba? Or, are embargoes and sanctions considered "war"? AFAIK, we're not at war with Afghanistan either, rather, we're warring against the Taleban and others but not the Afghan gov't proper.

"Featured cuisines have included Iranian, Afghan, Cuban and Venezuelan food"

<comment><USER8> Formally speaking, the US hasn't been at war since World War II [1]. The use of military force by the US government without a declaration of war has rendered the concept rather meaningless. We are left with the colloquial acceptation of "war" which certainly includes the conflicts with Vietnam, Iraq and Afghanistan, but probably not Cuba and Venezuela.

[1] [http://en.wikipedia.org/wiki/Declaration_of_war_by_the_Unite...](http://en.wikipedia.org/wiki/Declaration_of_war_by_the_United_States)

<comment><USER7> Official or not, most (and me included) would consider VN, Iraq and Afghanistan wars. I guess my contention is that currently, the US is not at war with any particular country, however, it is involved in conflicts in some and has military presence in others (tho not in active fighting). So I guess my main point is that calling it war is a stretch but I acknowledge that they'd go out of business pretty soon, if they just went by general convention of what "war" is.

Maybe an alternative ideas would be "conflict" food, that would enable them to serve food from ethiopia, india, tibet, afghanistan, sudan, colombia, mexico, phiipinnes, etc. and not let their fate rest on the possibility of peace.

</comment></comment></comment><comment><USER9> I'm partial to the Waffle Shop ([http://www.cmu.edu/homepage/creativity/2009/winter/waffle- sh...](http://www.cmu.edu/homepage/creativity/2009/winter/waffle-shop.shtml)), but I guess it's mostly because I'm _very_ particular about how my kubideh is prepared...

</comment><comment><USER10> Add Ecuadorian food in half a year.

</comment><comment><USER11> Do Mexican drug cartels count?

<comment><USER12> I don't think so. As they are a small business limiting the scope makes sense.</comment></comment>


Why the CDC and FDA Are Telling You Two Different Things About Flu Drugs - <AUTHOR> http://fivethirtyeight.com/features/why-the-cdc-and-fda-are-telling-you-two-different-things-about-the-flu/ <comment><USER2> This is a great article. I say this as a physician and someone just today returning to work after having been out all week with the flu.

I weigh the evidence similarly to Cochrane/FDA. Though I was aware I had the flu within ~12-24h, I did not elect to take Tamiflu. This is both because I currently have no comorbidities, but also because the side effect profile is quite real. People really do sometimes add nausea and vomiting to their list of flu symptoms because they take these medications.

In the inpatient setting I offer Tamiflu to anyone sick enough to be hospitalized, and I am happy to offer it to outpatients with the flu as well if they understand the potential side effects, but it's definitely not a clear winner.

</comment><comment><USER3> I trust the FDA and Cochrane Review here more than the CDC.

The small durational effect, high dependence on early-administration, and reliance on observational reports combine to add to my suspicion. Consider especially:

If patients are motivated to seek anything that might help, and they know that a prescription is only given in "first 48 hours", they might report their symptoms as having started later than they really did. Then, when their symptoms end at the usual time, it "observationally" looks like a shorter flu. Or maybe, other placebo/choice-supportive-bias effects cause them to rush to deem their symptoms 'over' – after all they went through the time and cost of acquiring the drug.

Thus a pronouncement like "works if rapidly administered" could become a self- fulfilling prophesy through social/psychological biases in reporting.

Similarly, the CDC is under political/social pressure to "do something", and have active modern recommendations, other than just generic 100-year-old patience/hygiene tips. This is especially the case when, as this year, their flu-strain guesses for the vaccine have been wrong.

Temperamentally and institutionally, the CDC needs to believe there's something else to do, that the stockpiles of antivirals they've bought at great cost are effective, and that these kinds of drugs (from specific companies they often rely upon) will help if something much worse than seasonal flu materializes. So they're going to err in the direction of faith- in-antivirals.

</comment><comment><USER4> I got the flu this year and looked into it. I'm not sure the CDC's suggestions are well founded. On average, antivirals shorten symptoms by half a day over seven days. Not a huge upside. And the Cochrane Collaboration and the BMJ found that it's unlikely the antivirals reduce hospital admissions or complications[1].

On the flip side, there are a number of side effects, including headaches, nausea, and vomiting, which can't make the flu experience better.

I was at the edge of the 48-hour window, and decided it just wasn't worth it for me. Maybe if someone I knew who was elderly or had a compromised immune system got the flu, I would push them to get the antivirals, but for otherwise healthy adults, it seems like a waste of money.

[1][http://www.cochrane.org/features/tamiflu-relenza-how- effecti...](http://www.cochrane.org/features/tamiflu-relenza-how-effective- are-they)?

</comment><comment><USER5> I have worked in the Biotech industry and worked with both the FDA and CDC.

The CDC and FDA have separate missions. The CDC tries to manage diseases once local authorities become overwhelmed. They maintain the Strategic National Stockpile. The SNS is a stockpile of different drugs, not enough for everyone, but enough to hopefully contain an outbreak. Our particular vaccine was FDA approved, and purchased for the SNS. The CDC also may purchase drugs that have not yet been FDA approved (depending on the political climate).

The FDA is the regulatory agency that polices, in this article's case, drugs. They monitor the clinical trials, and manufacturing process of the drugs (gmp- good manufacturing process). The FDA makes sure that drug companies do not exaggerate the efficacy of their products.

So it is not really that surprising that an agency that monitors and manages diseases would recommend drugs, while the agency that monitors and manages drugs would point to drug efficacy first.

</comment><comment> con-templative The BMJ have run a campaign to make more clinical trial data about Tamiflu public, along with questioning its effectiveness given the large sum of public money spent on it. It seems to me that their reporting is the main reason this story has seen the light of day.

There are lots of BMJ articles about it here: [http://www.bmj.com/tamiflu](http://www.bmj.com/tamiflu)

</comment><comment><USER6> >The CDC released figures Thursday showing that this season's influenza vaccine is only about 23 percent effective

Yikes, is it normally that low? I looked up a quick figure for 2013, and it was 60% effectiveness.

<comment><USER7> It's not normally that ineffective. There has been some "drift" which is expected. It's not as bad as the 2009(?) swine flu outbreak.

<comment><USER8> 2009 is correct. Thanks for pointing out the concept that the efficacy of these drugs changes due to the mutations of the virus.

[http://en.wikipedia.org/wiki/Pandemic_H1N1/09_virus#Nomencla...](http://en.wikipedia.org/wiki/Pandemic_H1N1/09_virus#Nomenclature)

[http://en.wikipedia.org/wiki/2009_flu_pandemic](http://en.wikipedia.org/wiki/2009_flu_pandemic)

</comment></comment></comment><comment><USER9> Isn't this the same old story, as written about by Ben Goldacre for instance, over and over again?

Pharma sees money ( _everyone_ gets the flu), tries to come up with something, sort of fails, yet still wants money and somehow manages to push through via official channels and gets a new drug of which the effects are rather questionable into the stores, earns money.

<comment><USER10> no this is selfish peopel who didnt get the jab in time wanting somthing after the fact.

<comment><USER10> Oh dear did I upset little timmy the vaxer - I HAVE to have the job (plus a load of other ones) for medical resons and its muppets liek you that don't proactivly care of your health which impacts me diretly and damages heard imunity.

<comment><USER11> Given that you're discussing inconsistency in what medical experts are saying it would benefit everyone if people like both of you just shut up and let people make their own decisions.

</comment></comment></comment></comment><comment><USER12> My perception is that the FDA's on the hook if they promote a drug that turns out not so safe/effective, and CDC's on the hook proportional to how much damage the flu wreaks. In which case I'd expect the FDA to be extremely conservative about promoting it, and the CDC to push anything with even a marginal effect, no matter other costs.

</comment><comment><USER13> I think one aspect of disease management that the CDC probably (I don't have direct proof) cares about more than most is logistics. Specifically, the companies and processes needed to produce and distribute flu vaccines and drugs in volumes sufficient for national response.

This sort of infrastructure is very expensive and time-consuming to create-- way longer than a flu strain takes to propagate, or an individual vaccine takes to formulate.

In the back of everyone's mind is the 1918 flu, and the possibility for a similarly deadly (or more deadly) version to develop today. It's possible and essentially unpredictable. If it were to happen, we would need to have that vaccine/drug infrastructure ready to go.

So: get your flu vaccine every year, even though it might not be super effective. Take Tamiflu even though it might not help much with a typical flu. Why? To keep those businesses and factories around for another year, in case we _really_ need them.

</comment><comment><USER14> As someone who had one of the products mentioned here, the side effects were not slight, and to be honest more annoying than the flu itself. We only received the medication (here in the UK) because at the time there was the fear of an outbreak of avian or swine flu, and the idea at the time was to head things off. I think even if they do show any effectiveness in longer term trials (didn't do much for me personally), I would be wary of seeing them widely used, as it seems they should be targeted mostly at those individuals with compromised immune systems, or perhaps in the future, those individuals identified as having a genetic makeup that could aid and abet a flu related fatality.

</comment><comment><USER15> Tamiflu is $130? I was prescribed Tamiflu last year and a course cost me 1/3rd of that at the first drug store I walked into. I'm in Australia.

Can't say if it really worked or not.

<comment><USER16> Your government is subsidizing a large amount of the cost:

[http://en.wikipedia.org/wiki/Pharmaceutical_Benefits_Scheme](http://en.wikipedia.org/wiki/Pharmaceutical_Benefits_Scheme)

</comment></comment><comment><USER10> Becase to be efective you take the damm thing before flu season starts in spetember - once you have it its not worth it.</comment>


Euro Parliament has voted in favour of a universal charger for mobile devices - <AUTHOR> https://www.europarl.europa.eu/news/en/press-room/20200128IPR71205/parliament-wants-binding-rules-on-common-chargers-to-be-tabled-by-summer <comment><USER2> Comments moved to [https://news.ycombinator.com/item?id=22204174](https://news.ycombinator.com/item?id=22204174), which is currently on the front page.</comment>


Interana (YC W13) promises Facebook-style analytics for everyone - <AUTHOR> https://gigaom.com/2014/10/07/interana-promises-facebook-style-analytics-for-everyone/

<comment><USER2> What is always missed in these articles is how much of a headache it is to actually implement a BI tool. If you are expecting to install a little bit of code and suddenly have a fully tooled interface to explore in a meaningful manner, you're in for a surprise.

The reality is that you often need to implement a lot of additional logging for things you never tracked before. You also will likely encounter problems with your ETL that need to be fixed so the data isn't completely borked. I guess the silver lining on that last one is that it can serve as a forcing mechanism to get you to clean up your code/data.

Then, once you've got all that in place, you actually need to build out all the tooling/models/views for your reports since most of it inevitably won't fit in standard template mappings, or needs so much massaging it is better to create a new model from scratch.

The reason web analytics platforms are much easier to pick up is they share what is largely a common dataset, although even that is getting more complex with event, audiences, unstructured data, etc. Because of this, they are able to build out the interface for the vast majority of needed reports. This in turn makes the data much more familiar and easily explorable and is a key factor for why business users can pick them up so quickly.

Some platforms offer a services approach, but the concern there is nickel and diming on getting anything done. Realistically, you need engineering and analyst resources in-house to really get the most of these systems.

Interana seems to be targeting enterprise customers that would likely have these resources (otherwise they wouldn't be enterprise-tier) which is a good start towards mitigating those issues.

Just remember that BI tools are just that...tools...the insights and value you derive from them are only as good as the data you feed in and the people actually analyzing it. None of the tools I've seen really spit out actual insights--they just present a bunch of data and representations of said data for you to draw your own conclusions from.

Congrats on the launch Interana team, and best of luck tackling these challenges. One small nit on your site...either let me view full-screen width images so I can really dig through the visualizations you make available, or one better--make a totally free and fully functional account available (ideally without an email required--if I'm kicking tires I'm not asking for a sales person to contact me or be opted-in to a nurturing funnel). It would obviously need a pre-populated dataset and reports, but that is the quickest way for a savvy person to determine if the product will meet their needs.

</comment><comment><USER3> I'm wondering what their killer feature is. On the whole their product looks very similar to New Relic's Insights product ([http://newrelic.com/insights](http://newrelic.com/insights)).

<comment><USER4> They're blazing fast. The guy who started facebook's SCUBA is behind this. see the paper on scuba: [https://www.cs.cmu.edu/~pavlo/courses/fall2013/static/papers...](https://www.cs.cmu.edu/~pavlo/courses/fall2013/static/papers/p767-wiener.pdf)</comment></comment>


Esquivalience - <AUTHOR> http://en.wikipedia.org/wiki/Esquivalience

<comment><USER2> As the editor of a slang dictionary that accepts user submissions, I've seen many terms submitted to my dictionary that have become accidental esquivaliences.

One great example is "poonj," meaning to have sexual intercourse. The submitter included some etymological claims, in part that the term originated in the language of the Ojibwe native Americans. I find that pretty suspect, though it did appear on the site for some time before I removed it. The definition and the etymology were printed in the second edition of _Cassell's Dictionary of Slang_. To their credit, they did include "allegedly".

[http://books.google.com/books?id=5GpLcC4a5fAC&pg=PA1120&...](http://books.google.com/books?id=5GpLcC4a5fAC&pg=PA1120&dq=poonj+ojibwe)

I'm not too concerned about the copyright aspect, though. And actually, I'm still unclear on the extent to which dictionary definitions are copyrightable.

<comment><USER3> I don't think dictionary definitions are. However, if I make up a word, _that_ is copyrightable as it is my creation, or IP, or whatever term you wish to use.

Similar to putting a fake street on a map, I would think.

<comment><USER4> Actually, a fake street is not copyrightable.

<http://en.wikipedia.org/wiki/Trap_street#Legal_issues>

        A United States federal court found that copyright traps are not
        themselves protectable by copyright. There, the court
        stated: "[t]o treat 'false' facts interspersed among actual facts
        and represented as actual facts as fiction would mean that no one
        could ever reproduce or copy actual facts without risk of
        reproducing a false fact and thereby violating a copyright . . .
        . If such were the law, information could never be reproduced or
        widely disseminated." (Id. at 733)

</comment></comment></comment><comment><USER5> I was just discussing this with my co-worker.

How is a new dictionary supposed to source definitions without using current dictionaries? Aren't existing dictionaries essentially the "canon"?

<comment><USER6> > How is a new dictionary supposed to source definitions without using current > dictionaries? Aren't existing dictionaries essentially the "canon"?

No, because that isn't how dictionaries work. Dictionaries, and this goes back to the very first dictionaries, have always paid people to look at current usage and write definitions based on that. Dictionaries are _descriptive_ , not _prescriptive_ ; they reflect usage, not control it.

The _OED_ is well-known for its citations backing up its definitions, and they have a very strong bias towards actual usage as opposed to other dictionaries.

Edited to add: _Some_ dictionaries are prescriptive to an extent. Those are the ones that define terms used in a controlled vocabulary, such as technical terms used in a specific field. When the CRC handbook says that _this_ is what 'butyl' means, for example, it is pretty well taken to be prescriptive among chemists.

<comment><USER5> The wikipedia article doesn't say, but I'm curious if "esquivalience" or "dord" (another example) have been used in error to support their fictitious definitions, thus becoming suitable for inclusion in newer dictionaries.

<comment><USER7> Very similar to the effect when an otherwise "non-notable" wikipedia page is cited in the public press, and then cites the article citing it as a way to claim notability.

</comment></comment></comment></comment><comment><USER8> Reminds me of when people caught bing stealing google's search results by indexing really long weird urls in google that had no incoming links.

</comment><comment><USER9> The related page for Trap Street (<http://en.wikipedia.org/wiki/Trap_street>) is also very interesting. It talks about "secret streets" cartographers put in their maps to protect their copyright.

<comment><USER10> Previous HN discussion about that concept: <http://news.ycombinator.com/item?id=4992748>

</comment></comment><comment><USER11> The real issue is that due diligence on the word was not done. The copyright this is a load of hogwash, in my opinion looks for words that you need to define in another dictionary is acceptable practice (however, copying the definition verbatim is not).

It's almost like saying "you have a thread scheduler in your operating system and are violating copyright." No, that is a core component of an operating system, just like a word is a core component of the English language (fictitious or not, once it enters an accepted dictionary it becomes a word - other dictionaries are forced to define it due to the nature of language).

<comment><USER12> The idea was not to claim copyright on the definition, but use the inclusion of the definition in another work as an indication that this other work is a copy of the original work in its entirety.

</comment></comment><comment><USER13> Mapmakers have been doing this for a long time.

<comment><USER14> Some search engines too! <https://www.google.com/search?q=hiybbprqag>

</comment></comment><comment><USER15> Seems like a perfectly cromulent word

<comment><USER16> Rather disinterpritive and conflascating, if you ask me

</comment></comment><comment><USER17> I initially misread esquivalience as esquivalence and took it to mean estimated equivalence, as in the word that is to equivalence what guesstimate is to estimate.

</comment><comment><USER16> Apple, how dare you put a dictionary with a fake word on my Dock. Come on.

<comment><USER18> The dictionary is sourced from the Oxford dictionary. Or is this another ostracize Apple poe's law posts? They're getting hard to detect.

<comment><USER19> I assume it's a non serious posting about the fact that this word is indeed in Apple's default dictionary, which many of us can immediately verify with a three-finger tap: Esquivalience

It's especially fun because my popup shows the fake definition at the top, and the wikipedia explanation below it :) - not sure if that's because of my settings or if it is the default behaviour.

</comment></comment></comment><comment><USER20> Phone books do this too.</comment>


SimCity Review - <AUTHOR> http://www.jonathancresswell.co.uk/2013/03/review-simcity/

<comment><USER2> The reviews all over the web are terrible, just from their servers being overloaded. Will that be enough to convince EA to remove the 100% online requirement? I hope so!</comment>


Reading offline in batch mode - <AUTHOR> http://blog.garage-coding.com/2015/12/12/offline-reading-setup.html <comment><USER2> One of my friends use Pocket ([https://getpocket.com/](https://getpocket.com/)) for this purpose. Firefox actually has Pocket built into the browser, which actually makes it rather convenient. I'm not sure if they have a note-taking/summary feature, though.

I've never really used it because by the time I had found out about it, I had already built something similar in the form of a webapp using Parse.

</comment><comment><USER3> I recommend taking a look at XMLStarlet [1] (mentioned in the article as a dependency of the author's Bash library) -- it is a nice tool for manipulating XML content from the command line.

[1] [http://xmlstar.sourceforge.net/doc/xmlstarlet.txt](http://xmlstar.sourceforge.net/doc/xmlstarlet.txt)

</comment><comment><USER4> I'm wondering what the difference between this idea and instapaper is? (I don't use instapaper, but from what I've read about it I thought this is what it did?)

</comment><comment><USER5> I have a different approach, albeit much simpler: I print stuff to PDF that I want to read later, and keep a massive, growing PDF archive that I can search with normal tools, etc. Sure, it doesn't capture all the javascript goodness .. but for most of the stuff I want to read, having PDF offline is great. I'm sort of surprised its not a more common practice, to be honest ..

<comment><USER6> PDF's lack of "reflow" (reformatting of paragraphs whenever the text size or the window size changes) is why I prefer "HTML" to PDF.

</comment></comment><comment><USER7> I have Instapaper email 20 articles to my Kindle when it has enough new ones, I guess one could make something to download that file, or the export account file from Instapaper and processes those links, to be read by any ebook software.</comment>


Show HN: Send keys and certs from the terminal with e2e encryption - <AUTHOR> https://www.fluidkeys.com/blog/release-0-4-send-encrypted-files/ <comment><AUTHOR> Thanks for the excellent discussion last time we posted here - this release is based entirely on people's feedback :)

If you're curious where we going next with Fluidkeys we've put together a preview site that spells out the vision:

[https://www.fluidkeys.com/fluidkeys-v1-preview](https://www.fluidkeys.com/fluidkeys-v1-preview)

Keen to hear your thoughts :)</comment>


Show HN: Remote Friendly Ribbon - <AUTHOR> http://lukasz-madon.github.io/awesome-remote-job/

<comment><AUTHOR> This a ribbon to stick to your company blog or career page. Similar to Github ribbons</comment>


Australia SAS execute unarmed farmer holding nothing but prayer beads 2012 - <AUTHOR> https://mobile.twitter.com/AaronBastani/status/1240616236792328193 <comment><USER2> He is still serving.

Australian values:

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

From the Vietnam War:

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

</comment><comment><USER3> The West will eventually have to undergo its own Nuremberg Trials. They won't be pretty.

We can't complain that 'we didn't know what was happening' as the media is forever proclaiming how 'victorious' we are in our aggressive wars.</comment>


The Best Pieces of Advice for Entrepreneurs in 2013 - <AUTHOR> http://firstround.com/article/30-Best-Pieces?utm_source=Firstround.com+Library&utm_campaign=65a8e22905-The_Right_Way_to_Grant_Equity_to_Your_Employees <comment><USER2> >> 15 - Avoid assholes, heroes and zealots

Isn't everybody a bit of these at some points in time?

</comment><comment><USER3> I'm pretty sure asking for references from provided references and contacting them without getting permission from the applicant is illegal. Also most people would feel there was a serious invasion of privacy I think.

<comment><USER4> Certainly it can violate any kind of implied discreteness in the search. I would think that you'd need permission, but then it might not work as well. The best you could say is, "I think we both know X, can I ask her about you?"</comment></comment>


Bitcoin and the double-spending problem (2013) - <AUTHOR> http://blogs.cornell.edu/info4220/2013/03/29/bitcoin-and-the-double-spending-problem/

<comment><USER2> > With a powerful botnet engaged in bitcoin mining, this attack becomes more > likely

Botnets are irrelevant to Bitcoin mining these days. The datacenters full of ASICs that miners are using now can easily outmine any botnet made of ordinary PCs or servers no matter how large.

I see this article is close to 2 years old. A lot has changed since then.

<comment><USER3> I agree. Mods/Op should add "(2013)" to the title to avoid confusion (but as others have pointed out, the article is not only old but wrong in important points).

</comment></comment><comment><USER4> >cracking a SHA256 hash function given to them dependent on the rate at which mining is currently being done. The only known method to accomplish this is to randomly test different prime number pairs in brute force fashion.

Bruteforcing a sha prefix has nothing to do with prime numbers. In the case of bitcoin mining, an arbitrary nonce is included in a block. Different values of this nonce are tested in order to get a resulting hash with the required number of leading zeros.

<comment><USER5> The author here demonstrates not only lack of knowledge but lack of imagination, since with the ability to crack SHA (at mining speeds no less) would open up a world of craziness, like being able to mine yourself a Google.com certificate in under ten minutes.

</comment></comment><comment><USER6> The paper this refers to [1]. Not waiting for confirmation has nothing to do with double spend. Its a probabilistic measure - the original paper show the poisson distribution, based on number of confirms. Beware of noobs with algebra. "As we show in this work, the propagation of double-spending alerts in the network would constitute a first important step towards efficiently detecting doublespending." The bitcoin project is waiting for their pull- request.

[1] [http://eprint.iacr.org/2012/248.pdf](http://eprint.iacr.org/2012/248.pdf)</comment>