skysight-inc/HackerNews huggingface dataset:
I have a legacy app that uses CouchDB under the hood. It's not actually appropriate for how it's being used, but I can see how it could be used in an appropriate way. Over time I got to respect and even like CouchDB (just not the way we're using it ;-) ). However before CouchDB apparently we started with MongoDB and then migrated to Couch after problems with data integrity in Mongo (this was a long time ago and I've heard that problems that we had have been fixed).

But I've always been curious: as a person who like MongoDB, do you have an opinion about Mongo vs. Couch? Keep in mind that you don't have do convince me that there are niches where that style of DB is appropriate ;-) I'm mostly just interested in the comparison since I've never spent any time looking at MongoDB.
I had hopes with MagicLeap but then it's going through a roller coaster ride. Still they are on my "to watch" list.

Things like Apple AR glass leak makes me hooked to AR and VR.
One issue is that reviewers themselves don’t get rated. They also don’t have any incentives to do quality reviews. I think StackOverflow model is the only one I know of which is able to scale this process. It’s not without flaws but it’s content usability and quality is extremely high than any other collaborative filtering model out there. Academic reviews can perhaps be scaled with similar model. Imagine each paper is question and each review is answer. People vote for which answers and questions were useful and everyone accumulates reputation that in turn can be used for career development. You can see everyone’s questions, answers and votes. People with enough karma gets moderator privileges to be able to knock off bad content. People will then have incentive to do the right thing, improve quality and avoid favoritism.
It seems that giving free healthcare, a free place to live, enough food and internet to everyone would be a good idea to stimulate the economy. Jobs would be generated by themselves if people then want a higher standard of living but no longer have to fight to survive.
Effort, time, unlearning workflows and re-learning them in Firefox, etc. Switching costs would probably have been a better term to use.
Thanks I think I will buy all of these! https://leandomainsearch.com/search/?q=fuck
They are based on science, the further you are apart the longer that interaction is (probabilistically) safe for.
Different governments are a) using different models; b) choosing different (and yes, arbitrary) times over which they want interactions to be safe ('enough').
I found this quite insightful. Thank you.
The article is behind a paywall and I can't read it, anyone got an alternative url?
If you are lucky enough that your API vendor provides an OpenAPI (aka Swagger) specification (or possibly API Blueprint or RAML, if nothing else), make sure you build your client to follow the spec. Even if you are possibly aware of some undocumented features, try to avoid relying on them -- they might change or disappear without a notice.

I would also highly recommend to use the spec to dynamically construct your requests. I don't know if PHP has libraries to assist with that, but for example in Python you could use tools like Bravado or Pyotr client.
Does anyone know if there's an android version of this?
How to setup Selenium on Node
> I have seen it, it is no better than Python's, exactly as I said.

I'm going to have to call your bluff and ask you to substantiate your claim. Please show where Python provides, as a part of the language and/or the standard library, the equivalents of these Erlang built-ins:

1. Module versioning (via vsn)

2. The ability to run multiple versions of the same module at the same time, transparently and for as long as needed.

3. The versioning (via Module vsn), tracking (via handle_call/3 and derivatives), and migrating (via code_change/3) of State.

4. The dependency tracking and ordering between code updates of multiple modules (via release_handler)

These are the native features that make hot-swapping in production not only feasible, but also powerful and easy. Of course, these are built on top of foundational primitives that are possible in any language, sure, but not all languages (including Python) have these natively available.

----

> Hot swapping Erlang in production is rarely done, and if it is done, it mostly done during debugging, not serving production traffic.

> I invite you to do a straw-poll on the erlang mailing list.

I'm sorry, but this point you're introducing now is unrelated to the discussion we're having, so I'll refuse to respond to this in any way except to remind you of the point we _are_ discussing:

1. adrr's claim: " Erlang was developed for telecommunication systems where you need performance and the ability to hot swap code." https://news.ycombinator.com/item?id=23286646

2. To which you responded: "Erlang's hotswap and Python's hotswap are of comparable power, ie, both are crappy. Being able to do something isn't the same as doing it well.

You can hot swap all languages." https://news.ycombinator.com/item?id=23287624
> If you are making building blocks (libraries) for other languages, you have to use C or C++ (maybe Rust soon).

Sure (though there are often other ways to achieve the thing you actually want to do). But in that case you're not doing it "for performance".

> When you aim for high performance you don't profile day 1, that's a complete waste of time. You will never transform every of your function in a critical kernel. You profile when you reach a performance bottleneck and you need it.

In that case your performance requirements are not extreme enough to justify using C/C++ for your whole application. Write it in a safer language, when you hit performance issues profile and optimise, and maybe drop into C/C++ for those few "critical kernels" in the unlikely event that it turns out you actually need to.
Our company migrated away from MongoDB, here's a talk about how we did it, in case you're thinking about what is involved and how to do it safely: https://www.youtube.com/watch?v=Knd3m2qh0o8
Sure is great to see some phrenology early on a sunday morning
All of the dystopia, none of the cyberpunk. Instead we get a business services dystopia. Spreadsheets are the last refuge of the BS Underground, fighting for their right to maintain their email inbox and browser extensions, while risking all revenue to MonoCop.
"From relevant authors" is such a cowardly review. Either give me the citation to the work you want me to cite or keep quiet.

So often as a reviewer I have avoided asking for citation of my own work, even if highly relevant, as I perceive that to be an abuse of power.

I've also started a comedic collection of terrible reviews I've received, though it took me 15 years to gain the confidence to know when these are an indication of the reviewer's failings, not mine.
Many journals I'm familiar with allow you to suggest referees, as well as suggest which researchers should be avoided as referees. If I'm publishing something that is competing in some sense with the work of other people, I will usually suggest to the editor to leave them out from the peer review process.
I agree with you that algorithm choice is what's most relevant.

However: I'd argue that accidentally quadratic algorithms are easier to hide in a concise language. Writing out a quadratic loop explicitly takes space, and that space alone might make people pay more attention than some subtle implicit language construct. Either way, the most common source of unintended quadratic (or higher) behavior is helper functions and library calls.

The other thing to keep in mind when it comes to algorithms is that cache behavior and therefore memory layout matters a lot for performance on modern hardware. Managed languages really stand in the way of optimizing memory layout, which can be a systematic performance disadvantage compared to C++.

I do hope we get some more innovation in the design space occupied by Rust, where you get fairly explicit control over memory layout, but still have statically checked memory safety guarantees.
Since dotnet core 2.1 the garbage collector has been easily pluggable, just by setting an env var, `COMPlus_GCName`, to point to your implementation.

That doesn't mean it will operate without a GC mechanism per se, but it can operate with a "zero" GC that never collects garbage. I know this isn't what you meant, but thought it was an interesting point.
yes, i found the first example quite surprising. there doesn't seem to be any request to copy the string; it is simply unintuively copied/produced three times. i would prefer the language have some kind of `dup` or something, which gives you an additional reference to the object.

as it stands, it has transferred allocation from the runtime to the compiler. but the objective is to put it into the hands of the developer, since only then is it known when reading and writing code.

i begin to suspect that a typed joy may be more practical (or rather: match my desired improvements) than clarifying allocations in haskell.
The fact that it’s column oriented is a massive improvement for analytics over SQLite, I don’t understand why they don’t mention this more explicitly on their website and GitHub pages.
This is true in virtually all languages, as John Langdon Down used it to refer to the syndrome he first characterized, that today instead bears his name.

https://en.wikipedia.org/wiki/Mongolian_idiocy
I'm not sure it's narrow mindedness, I feel like it's mostly principles and not seeing that marketing isn't only spam, lies and shit.

I think most engineers associate marketing with sleazy SEO/affiliate/self-promotion people who offer little to no added value to the web, society or humanity, who will lie, cheat and steal to make a buck. Most engineers don't want to be like those people in any way, and that's a good thing, because we'd all be better off if those people were gone.

But not all of marketing is "I have a shitty product, it has no encryption, but I will just say that it has super mega NSA encryption because stupid consumers will not know the difference". A lot of marketing is just getting the information out there.

I think it's similar to SEO in that sense. There's the shit that's manipulating Google (and Google is willfully playing along) by just spinning the same text thousands of times and stuffing keywords into it. Everybody would be better off if that disappeared. But there's also the basic common sense SEO. Make sure your HTML works, well, make sure you have your headlines in <h1>, <h2> etc, make sure the important pages you want found can actually be reached with links on your site, make sure your site loads fast etc.
My claim isn’t that indexes are a bad idea. The comment I replied to suggested that Mongo’s marketing targets people who don’t want to learn how to use indexes; my claim is that the reality of the hosted product is that it frequently suggests that you add indexes (presumably doing so helps with Mongo Corps hosting margins, as well as with performance [which is laughable even with indexes])
> Makes sense for whom? Maybe for them, certainly not for their clients.

It makes sense for the system, and thus for the client.

Just because there are a lot of boxes in the diagram that does not mean the system is complex. A lambda is just a stateless message handler. Half the diagram are lambdas. The rest is just a few persistence services and then stuff related to external interfaces, likr DNS services and API gateways and auth and pubsub.

Any desktop app is way way more complex than this. A dialog box has easily twice the number of handlers.
Drivel. You can't have it both ways. It's easy to see what you're doing in C++ because you have to do it! It's the whole point of the language, and apparently the source of bugs.

Correct me if I'm wrong, but I doubt you've ever written a program in modern C++?
It's so easy to create thread safety related bugs in C# because it's easy to use parallelism and there are no checks for threading issues.
I think the confusion stems from the fact that US citizens are used to thinking of "the government" not as their representative but as an independent agent that has its own interests that don't necessarily align with their own interests. A powerful institution that can compel them to do things they don't like. Sort of like banks.

This is something that has always made me wonder. The libertarian ideal of "less government" makes more sense if one sees the government as above, an independent agent with its own interests. As a citizen of an EU nation, the way I think of it is that voters elect a government to represent them, so "less government" means "less power to voters to represent themselves". But to libertarians it means "more freedom".

So when the government compels you to "shelter in place", social-distance, wear a mask and so on, it is clearly not doing that because it is trying to protect you, because government is not an agent that has your own best interests in mind, but its own. Instead, it's trying to take away your freedom, because that is what government does, it takes away your freedoms.

That's my best explanation, as someone who has never lived in the US. In any case it's clear that the question of "mask or no mask" has become politicised by being caught up in this peculiar interpretation of "freedom". Which is very unfortunate because it's not a political matter, whether everyone wearing masks makes it less likely that anyone will catch the virus. It's a practical matter and what is necessary is a practical decision. But such practical decisions cannot be taken when everything has to be politicised.
I'm doing this for my A4-sized tablet too. At times. I still have the option (and I'm using it) for the full tablet area. I don't have this for the postcard-sized scribblers.
Show HN: Regular expressions for social media profiles
I think this part of macOS has always been consistent.

- shift- anchors the selection as you move the cursor and can be combined with any of the below.

- left/right jumps characters. (backspace/delete deletes characters.) up/down jumps lines.

- opt-left/right jumps words. (opt-backspace/delete deletes words.) opt-up/down jumps paragraphs (unless the app overrides this).

- cmd-left/right/up/down jumps to the edges of the document (unless the app overrides this).

- fn- and ctrl- are not typically used when editing text. In particular, the fn key is specifically used to invoke keys that are only available the extended keyboards, like home, page up, and forward delete. (Extended keyboards don't have the fn key.) I think there was a point where ctrl- did the same thing same thing as opt- or cmd-, probably as a convenience to users coming from other platforms.

Every single modern app has honored this in native text widgets since the first Mac OS X, I believe.

If you remember it being inconsistent, it's possible that you were using apps that use non-Cocoa UI like GTK/Qt/X11 (and possibly Carbon too). It might have been an app from Microsoft or Adobe, who seem to use their own UI toolkits. Or you could have been using a terminal app or developer tool with custom keybindings that didn't conform to these conventions. (VSCode, Atom, and Sublime Text's default keybindings do conform to this, and in Terminal and iTerm, there is a setting you can turn on to make the opt- modifer also conform.)

Which apps do you remember being inconsistent?
> Switching from C++ to a language without memory safety issues while being just as fast

Does that actually exist? (I mean in the general case, not just a few carefully chosen benchmarks).
I'm inclined to think in a lot of cases good interfaces turn to shit because of cargo cult interface "design" combined with ideas of 'Mobile first' and 'it's going to make us look for the quarterly reports to cut away "redundant" maintenance' (so we're going to have only the cell phone optimized site).

For a striking example, have a look at the hitherto excellent Norwegian weather site's short term forecast here
https://www.yr.no/place/Portugal/Lisboa/Lisbon/hour_by_hour....
then click through to what they're humbly bragging about changing it to
https://www.yr.no/en/forecast/graph/2-2267057/Portugal/Lisbo...

I can only assume neither the management nor the "design" consultant actually use the result. Oh, and consultant reminds me. Accountability is probably a major factor here. In my perception, the people causing this sort of destruction don't suffer any negative consequences of them. Maybe they even get promoted or get a prestigious client to list on their CV.
Great resource!

One of the main problems with project that launch their marketing campaign is their attempt to create an image of something they are not yet to become.

I think that by being transparent along the way with your target audience, telling them about the progress you've made and the difficulties your company face and overcome, that's worth more than any marketing trick. That's when your company becomes a brand, and people can recognize with it
It depends on your background.

If you come from C/C++ then all the notions discussed should be familiar to you, because you used to do the borrowing and lifetime management manually, or you were doing something really wrong. :)

Whereas the rust compiler helps you with all this (super hard and annoying) stuff.
In 2003 I asked the NYT to list casualties of the Afghan and Iraq invasions on the front page but they told me they were satisfied to bury them in the middle of the newspaper. It was only ever a few names at a time, and Even that not every day.

Eventually they just stopped printing them at all.
They could just go the C-way and introduce new keywords in reserved namespace (`_Static_assert`) and provide opt-in header to make them less ugly (`assert.h` and `static_assert` macro).
>> “conventional tech publishers make no sense economically” [...] “It is possible to make decent money from writing technical books if you self publish and build an audience yourself.“

Do you have an example of an author doing this? (Meaning all they do is self-publish books and have disclosed financials.)
We've been using Elixir for our API server from the start. It's a great language and scales really well. We needed to add a websocket API at some point, and now it's our channel with most throughput. Phoenix handles it fine, and we're still able to triple the throughput comfortably.

The one thing that we struggled with Elixir with is that it's quite hard to find people that know Elixir. For a long time I was the only one doing Elixir in the company, which introduced a bottleneck. That said, when you find someone who knows Elixir they tend to know Elixir (and a bit of infra) quite well.
Not to mention the countless high-profile security holes that have nothing to do with memory safety

I'm not sure this is a sensible way to compare - Heartbleed is a memory safety bug and is a bigger bug than the rest of the ones you've listed combined. The various terrifying nameless iOS exploits that have had actual real-world, documented usage are not clever crypto protocol bugs with catchy names, either.
There are three level of excess deaths in E+W

Those that are defiantly covid

Those that mention covid on the certificate

Those in excess of level of normal deaths over last 5 years

That puts covid deaths at between 40k and 70k. With an IFR across the country of between 1 and 2% based on the latest antibody tests.

That’s disastrous and we can only hope that either the most vulnerable have been disproportionately exposed or the antibody tests are massively overreading false negatives.
Reasoning from First Principles
> Never, ever use unbounded queues. In fact every unbounded asyncio.Queue() is a bug. It’s a serious API defect that asyncio allows unbounded queues to be created at all.

asyncio is very poorly designed overall. This is just one offender.

> asyncio.sleep(0) is nearly always wrong.

This, however, is VERY bad advice. a sleep(0) (or, a checkpoint as it is better called) is very useful in things like branches where asynchronous operations only run in one branch. This ensures you don't end up deadlocking half your app if your branches go wrong.
Yup, I posted elsewhere here about our similar experience with Cassandra vs Scylla
Fixed link, there was something appended to it.

https://images.anandtech.com/graphs/graph15785/116012.png
“But in the end, the loser got his revenge.”

It may be just survivorship bias, since all the "losers" that are really "lost" in history are nowhere to be found.

In the story of your reference, Wudi did not choose to destroy the work of Sima Qian, which he can do easily if he want to, and happened a lot in Chinese history https://en.wikipedia.org/wiki/Burning_of_books_and_burying_o....

Sima Qian may be just a lucky guy enough to get his work passed on and that's all.
> but good luck trying to sell a $5 iOS app

i think the studies and evidence suggests that you'll have a much better time selling a $5 iOS app compared to $5 android app.

I don't really see how the two markets are even remotely comparable? If you're going to be selling $500/license enterprise software, its probably not suitable for phones. Likewise, there are whole classes of software that make the most sense as a phone app.
There are two types of peer review.

1. Pre-publication peer review Reviewers examine the work before it's presented to the rest of the people.

2. Post-publication peer review Paper on an online forum where others can read and comment and cite them. Papers can be accepted into journals and go trough peer-review later.

Post-publication peer review does not mean that authors can't use pre-publication peer review. Scientists can (and should be encouraged) to ask their colleagues to review papers before posting online to spot errors.

Some fields have long tradition to publishing and circulating working papers, manuscripts, drafts, posters etc. years before they submit the final paper for publication and pre-publication peer-review. That works as well.
Habit Breaking, Habit Making
They still are not doing it right? You just get the "downloaded from internet" warning.
This is a godsend! I'm using it and it works perfectly, especially with headless mode (once you have setup ssh).

Gone are the sad days of asking my mac-using colleague to pip install my shit and send me back the error messages. Now I can test it myself like a civilized person.
For PG - DBeaver do a damn good job for me.
They should contribute and use
https://herbsutter.com/2018/09/20/lifetime-profile-v1-0-post...
This is a great line: "The power of the internet was understood early on, but the full nature of that power—its ability to shatter any semblance of shared reality, undermining civil society and democratic governance in the process—was not."

I was explaining this recently to my 18yo son. I worked at various web startups, Yahoo and then Nokia. While we were building the web in the 90s, Web 2.0 in the 2000s and right up to the mobile revolution in about 2010 even, I was convinced that instant access to the world's information would be an unquestionably positive thing, and that as a result, people as a whole would be more educated and knowledgeable about the world around them, with all the benefits that implies.

Then, it all went sideways. Looking back, it was naive to think information wouldn't be corrupted by bad actors and that hyper-personalization would create such divisions and ignorance. But here we are.

One good thing, I guess, can be found watching the movie "Teachers" from the 1980s where a kid sues his high school because he graduated completely illiterate. That doesn't happen any more. They may not read well, but every kid in the U.S. is literate now. Enough to use a little computer in their pocket at least... so they can post to Twitter about how the world is actually flat, and 5G is the cause of the novel Coronavirus. Sigh.

Maybe it's just a phase? Once the world gets used to all this new technology, things will settle down?