skysight-inc/HackerNews huggingface dataset:
People always say this, but I would actually prefer to see an even smaller standard library in Javascript. That's one of the reasons why I'm interested in WASM.

There are obviously upsides to having a large standard library, but there are also significant downsides: because of Javascript's position on the web, it is very hard to remove things from the language when we get them wrong, and because Javascript is so widely used, it is very difficult to know in advance which implementations and styles of coding should be preferred.

So for example, I'm happy that we have native Promises now, but I'm also happy that we waited until basically the entirety of external library authors had settled on an interface, and I'm even happier that we decided that deferreds were unnecessary since they could be easily recreated with normal promises.

Of course there are downsides to preferring external libraries instead of native ones, but in Javascript this is a calculated choice. And I agree that JS culture encourages developers to take this too far. Even with a tiny standard library you probably don't need a leftpad package.

It's just that those downsides look a lot worse, because in the JS community we lack good security practices about freezing packages. We also assume that NPM is secure by default, instead of a fancy wrapper around Github. We don't have a way to make sites immutable. And we have really stinking awful sandboxing in NodeJS, and (arguably) insufficient sandboxing in the browser.

I typically get a little bit of pushback on this, but I advise people who are building end-user applications or a website as opposed to a library to commit their dependencies to Git. I also advise enterprise developers to avoid using packages that haven't been audited unless they're willing to read through the source code themselves -- and if you find an audited package, download that version and check the hash. That one in particular is a hard sell, I've heard developers tell me that it's literally impossible for companies to audit their Javascript libraries. I find that mindset really, well, disappointing -- especially since those same companies seem to have no problem blaming NPM for not auditing everyone's libraries.

On the browser side, I advise people to self-host packages instead of using commercial CDNs, or at least to use subresource integrity policies[0]. That doesn't protect you from a compromised server, but it does protect you from a good number of XSS attacks.

This is annoying of course. In an environment like Linux, on the server you'd use CentOS and you'd have strong guarantees about stability because you wouldn't be installing random packages from Github. On Linux you also get better checksums around your packages. Linux sandboxing isn't very good, but it's not like Node's is any better. I think on the web, we're really behind on this stuff.

But I don't think expanding the standard library helps with any of that. I think it's a band-aid fix.

[0]: https://developer.mozilla.org/en-US/docs/Web/Security/Subres...
Uploading large binary files is an issue.

I have no problems using zoom with only 768kbps upload. I was surprisingly impressed.

Slack remote screen sharing sucks, but I never had a problem with Screenhero. Chatting is fine.
Microsoft will then have two OS flavors to maintain. How is that saving any money?

This article is nonsense.
> I am firmly convinced that APL and LISP are related to each other along an important axis of language design and that acquiring simultaneous expertise in both languages is possible and desirable for the beginning student. Were they unified, the set of tasks that succumb to terse, flexible and expressive descriptions will enlarge enormously without overly increasing the intellectual burden on the student over his initial 16 week contact period.

In the context of setting the objectives for education in computer science for general students, I like the idea that the objectives are to (a) understand the limits and potential of computation and (b) achieve fluency in programming such that one can conceive of and describe computational processes for a wide range of tasks.

He explicitly suggests that fluency in using other people’s programs not be an objective. Perhaps this is a bit idealistic since most programming in the wild today consists of glueing together other people’s programs. But it seems like the right objective when possible—-in some ways it is a view of computer science as a liberal art.
As an old lonesome codeboy, I would appreciate feedback about this work, http://lambdaway.free.fr/lambdaspeech/

Please, don't be evil. Thank you.
When you actually look at those "promising results" you'll notice that they come about by cherry-picking, not controlling for confounders (like Esperanto teachers using better teaching methods) and wishful thinking. See https://news.ycombinator.com/item?id=14848019 , which I wrote some time ago when the same topic came up.

I don't doubt that Esperanto is easy to learn, but there's no evidence to suggest that learning Esperanto helps more with learning another language than spending the same time learning that language instead.
TL;dr - they select for stupid and gullible
It's more like the DMV, pick a number, sit in the large waiting area for 30 minutes, just to get someone who doesnt really want to be there either.
True, and some people would even call it "globish". (as in "globe") It's a form of non-native English that is as close to being universal as the world has ever seen.

This is particularly noticeable in Europe. Due to the European Union's thinning/erasure of borders, there is an order of magnitude more inter-European travel and mobility than 10 years ago. And the most widely understood language between these travelers is English. In Barcelona, vendors would speak to Dutch and Chinese tourists in English. Even in Paris, famous for its disdain of English, the language is fairly widely spoken, not so much to accommodate the British, but visitors from the rest of Europe and the world.

Folks quickly figured out that instead of learning multiple European languages (and even then, only be able to communicate with other Europeans and people from former European colonies), they could instead learn English and be able to communicate with not only Europeans but people from Asia, the Middle East, etc.

English is used even among people of the same ethnicity. I was with a friend at a restaurant in Chicago's Chinatown, and noticed that my Cantonese-speaking friend had a hard time conveying her order to the Mandarin-speaking mainland Chinese waiter, so they both switched to English. The communication was successful.
I mean, TP-Link could enable all of these basic security features and be lauded in the paper, then you look 5 minutes and find a "system(<web interface input>)" level bug in the firmware.
why not? because not many people speak it?

that would be like saying, phones are not practical because not everyone has one. or maybe facebook or google+ are not practical because not everyone is on them.

but that is a limitation that has nothing to do with any inherent quality of esperanto, only with it's lack of popularity which is something that can be changed without needing to change esperanto itself.
Do you have a source for this? I would love nothing more than for this to be true but I don't think it is. Could this be industry-specific?
All it reminds me of Steve Jobs saying A players only want to work with A players.

B players hire C players, C hire D and before you know it, you have the politics described in this article.
When you encounter one of these, first try turning off CSS styles (View -> Page Style -> No Style). If that fixes the issue then the page author did something in their styles to mess with scrolling.

If that does not work, try turning off javascript (NoScript extension works for this). If that fixes it, then the page author is doing something in their javascript code that is breaking keyboard scrolling.

As for "what to do" - other than complain to the page authors, not much beyond turning off CSS and/or Javascript to get things to work better.
You could say the same about strtok--it would be trivial to create a regular grammar expressing whatever your code is lexing. However, by looking at it from this perspective it removes the distinction not just between a hand rolled lexer and a regex matching library, but also between those and using strtok. There would be no point in having this conversation.
There are already a number of English-based conlangs, creoles, and pidgins that are effectively what you described.

https://en.wikipedia.org/wiki/Basic_English

https://en.wikipedia.org/wiki/English-based_creole_language

https://en.wikipedia.org/wiki/List_of_English-based_pidgins

This one especially: https://en.wikipedia.org/wiki/Tok_Pisin
I think you underestimate how many people blindly copy examples without understanding them. Safe example code results in more correct programs.
ASLR, stack protector etc are all enabled in recent openwrt as far as I know, not sure about DEP though
Sure, however the problem I'm highlighting is most programmers are not aware this std library function is not like the other str[n] functions. There are plenty of solutions, but it was an objectively poor decision to define strncat the way it was.
I stopped at that first sentence/false premise.
A femotcell would still need an internet connection from some ISP, correct?

Check out some of the plans from these guys (I am not affiliated)...

https://www.4gantennashop.com/
Firefox – What Happened to My Live Bookmarks?
I guess Ido is such a refactored Esperanto.
It's hard to drive non-incremental innovation without a benevolent dictator model.

For example, the Hadoop ecosystem moves very slowly, and most of the innovation happens in new projects that are added, not in core infrastructure. An example of moving slowly is the fact that even to this day, the HDFS high availability story for NameNodes is pretty wonky.

In a community model, if someone wants to do a large scale refactoring or rework parts of the architecture, these projects die of a thousand cuts with objections or change requests from many stakeholders. The decision-making then becomes "design by committee," instead of pushing towards a long term vision.

With a single benevolent dictator, since decision making is more centralized, it's significantly easier to do large reworks of the architecture to improve the product in non-incremental ways.
Related article posted on HN recently:

APL is more French than English
[https://news.ycombinator.com/item?id=18640451]
But ASCII is not English. If identifier are restricted to ASCII, then what that requires is romanization, not specifically English.

char *speicher; // German for memory

(define f (keizoku) ...) ; Japanese for continuation
No, the idea is that you write "gx" instead of "ĝ". The letters have a different meaning.
Arguably windows was much more of a disaster 10+ and 20+ years ago in the XP and 95 eras. I have trouble seeing microsoft give up something they've invested 30ish years on without a really obvious reason.
We are in violent agreement about the ethics.

For UK Biobank, there is a GWAS of ~everything: http://www.nealelab.is/uk-biobank/

The lack of diversity in genetic studies is a huge problem. This one isn't just moral, either: we're ignoring the richness of allelic diversity that is found in people throughout the world (particularly in Africa, which has the most genetic diversity because of its pre-bottleneck status). There is an awareness and I think you'll see big changes here in the next few years.
Let me guess: the only specification they had was the old code?
Yeah, most consumer routers I've dealt with don't have a FPU. They're more likely to be dual core than have an FPU.
He’s discussing gender ratios; using the terms “male” and “female” is correct in this situation.
And it’s nicer, since you can pass in a const char * and use it in concurrent code.
Yeah, the article is a bit too long, I haven't gone through it yet but I intend to. But I disagree about a few points I've read so far.

Esperanto case declinations consist basically of marking direct objects with an -n suffix. You forget it sometimes, and many jokes among Esperanto speakers are about forgetting the accusative, but it is not that hard and gives you some nice flexibilities regarding word ordering.

I don't remember of adjectival concords in Esperanto, but I'm not a linguistics expert, I speak Esperanto but maybe there is something there which I haven't realized, or some rule that maybe has become second nature to me due to my mother tongue.

It sounds indeed more familiar to european-languages speakers but well, chineses find Esperanto easy so I don't know..

The notation may be a bit clumsy for keyboard users, of course, but one has to consider that computers with ansi keyboards didn't exist by then and, anyway, there is already a widely used convention to overcome the lack of those two funny symbols: to simply use an "x" after the targeted letter.

I admire Esperanto's ability of being such a rant magnet. When it comes to other languages, people usually simply don't learn them when they don't feel interested enough.
I think KDB might be what you’re looking for. It’s very efficient and widely used in finance. It’s pretty expensive, but I believe you can use it for personal use for free (there might be a single core restriction I think).

As an aside, KDB devs make bank, like salaries >500k
For Ubuntu on XPS 15 there are a couple of specific issues. Gnome has a weird UI bug that causes input to hang. This manifests in Wayland. The fix requires an entire re-architecture of GDB which isn't going to happen for gnome 4.x.

Works fine on X11, which is why I think Ubuntu shifted to Wayland and then back to X11, but at this point, X11 is no closer to dying.

Nvidia hardware doesn't like to behave well in Linux. One has to get just the right driver, and the correct kernel options to prevent hangs and poor standby behavior. However, I'm not sure this is terribly different than my experience with Nvidia drivers on Windows.
I use a fanless PC running OpenBSD. It's a bit of work to configure, but I think I can trust it.
I don’t disagree. But many projects have a benevolent dictator but are still run by a foundation not a company (like Python, Ruby, etc).
I made a information map of MSA (Metropolitan statistical areas) and then linked it to common names for those areas and sites such as reddit.com/r/cincinnati and then scraped the online users over time. There was a bit more to it though around sentiment analysis because some cities higher on the MSA are really in decline, but have increasing populations of very low wage workers with decreasing high wage workers.

The cities on the top of the list were not surprising given my very limited scope (San Francisco, New York, Denver, Seattle, Boston etc).

The one that ranked highest that was most surprising was Minneapolis, they are fairly strong in almost all the metrics I was looking at.
To a man with an algorithm all things look like an advertising opportunity
> You're also talking of a hypothetical situation

Considering this article is about Facebook leaking 6+million photos to third parties, including photos that were uploaded but never shared, it's well within the realm of possibility that at least one of those millions of photos was a nude. In fact, I'd bet there were quite a few nudes in the leaked set. It only takes one more step to turn that hypothetical of yours into a reality.
Presumably the target audience then is people who got there by accident.

> If your brain hurts (trust me, mine does too), ...

This brings to mind something Ben Goldacre said (sorry can't quote) about the average science journalist being less qualified than the average science article reader.
It's there:

https://blog.ubuntu.com/2018/07/27/dell-xps13-developer-edit...

Alternately, there's System76
Yes! I'm imagining a value proposition where APL is as fast as C or Fortran, on distributed systems, because at that point it would probably evaporate most of Matlab, Mathematica, and probably TensorFlow's users.

Can you imagine? APL is an amazingly powerful language. It's easy to write nearly any mathematical function in it. What if it was faster than every other mathematical language? It would probably dominate the market overnight.
I'm guessing that they want to avoid the overhead of handling the fault, context switching to the kernel, emulate the instruction (which may be tricky if it involves a memory access), context switch back to the application. Instead they can just emit the code into the address space of the process and patch the instruction with a jump to it. Maybe they can also "JIT" the instruction to emit optimized code for a particular invocation.

That's just a guess though, I read sideways through the paper and I don't think they really explain that. They link to this page but it doesn't really give any details: https://www.linux-mips.org/wiki/Floating_point#The_Linux_ker...

In particular I'm not sure why you'd want to put it in the stack instead of some allocated page dedicated to that endeavor (besides "it was already there so we used it").
It wasn't ever "necessary". There are perfectly working IEEE emulation libraries written in portable C that the compiler could have hooked instead. But they're likely several times slower than what was picked.

NX stacks are a comparatively new idea, from an era when even embedded CPUs have lots of spare cycles. It hasn't always been that way.

The lesson I took away from this isn't about architecture, it's that Linux on MIPS has a pretty severe shortfall in maintainer bandwidth for this to have gone unnoticed and unfixed. I mean, the first question in review of this patch should have been "OK, who's going to fix the stack permissions now?"
There's a pretty clear explanation in https://lore.kernel.org/patchwork/patch/506101/ :

MIPS floating point support requires that any instruction that cannot be directly executed by the FPU, be emulated by the kernel. Part of this emulation involves executing non-FPU instructions that fall in the delay slots of FP branch instructions. Since the beginning of MIPS/Linux time, this has been done by placing the instructions on the userspace thread stack, and executing them there, as the instructions must be executed in the MM context of the thread receiving the emulation.

i.e., the kernel needs to find some place in the userspace process to stick the emulation code, because the emulation code needs to happen in the context of the userspace process (e.g., memory access permissions etc.), and ~20 years ago a convenient place the kernel could write to in the userspace process was to push things onto the stack and nobody realized that was weird. Historically the stack was executable everywhere, and when we realized that was a bad idea because exploits can put shellcode on the stack and stopped doing it on most architectures, we weren't able to stop on MIPS because of this reason.

If we were rearchitecting this from scratch today I bet there would be something like a vDSO for this, i.e., the kernel maps a read-only executable page at a random address when the process starts, and when you try to execute a floating-point instruction it sets some registers (or pushes data and only data onto the stack) and updates the instruction pointer to point to that page. But the simplest fix to the existing architecture was apparently to specify a non-stack area for the kernel to use, which still involves a W|X segment, but at least it isn't the stack.
> I'm pretty happy that 'rm foo' doesn't say anything, and typically I find motion a distraction.

It has happened to me on several occasions that I accidentally ran "rm -rf /some/dir/owned/by/root" without root permissions and got so much "permission denied" text it made me literally nauseated. There's something about a quickly moving wall of text on my terminal that makes me sick when there's a ton of it (4-5s of moving text tends to be when I have to look away).

Quite an annoying to have I must say :/.
I agree it doesn't generalize, but I don't agree that it's because of "scale". It doesn't generalize because not every company should write its own language (and can't hire good enough engineers for this). And, fortunately, most "legacy" codebases aren't in "bad" languages, so there's no need for this.

Afaik, the team that did Hack/HHVM at Facebook is ~5 people. I don't think you need scale for this (the rewrite of the code itself is not a scale thing, the codebase is usually linear-ish in the number of engineers).

My point is: instead of doing a rewrite, be inventive and avoid it, and this is a great example.
Yay, let's continue diagnosing everything as autism!
The vast majority of UI animations increase latency. When I tell a computer to do something I expect it to do it immediately, not after wasting my time with an animation. I disable animations whenever possible. I don't need the page to slide into position when I press pagedown, or a window to gradually expand when I maximize it. I already know what I told it to do. The animations are pure timewasting for anybody with a more than 0-second memory. All successful interactions should be silent, as with correctly designed CLI tools.
> you have to declare that a file uses a particular script

So, no calling functions in other files that use other scripts?

A reasonable restriction is to demand that all characters in any one identifier are from the same script, and that purely typographical devices such as ligatures are banned.
What database are you using? Oracle [1] and MySQL [2] for example let you embed hints in the query in order to change the execution plan. I think that PostreSQL doesn't have such a feature though (at least it did not a few years ago).

[1] https://docs.oracle.com/cd/B19306_01/server.102/b14211/hints...

[2] https://dev.mysql.com/doc/refman/8.0/en/optimizer-hints.html
Rewrites mostly fail because business logic is assumed but never fully understood at a detailed level. Multiply by the size of the rewrite and things get out of hand quickly.

The best way to go through a rewrite or upgrade is to get the business involved at the start and throughout the process. If you fail to do this when something is missed, overlooked or done differently and you will be at fault. If you include them it becomes a not feature not necessary.
I meant going forward, not saying that etcd should have originally been built on top of it.
I think that ship has sailed long ago, softfloat MIPS targets are almost certainly legacy hardware these days.
My guess is it has something to with trade schools. The article and underlying study it cites don't say what types of businesses were started, but non-graduates are probably much more likely to learn a specific trade. And between the person that graduates with a degree in finance or instead went to school to be an electrician, the electrician is more likely to start their own business and be self-employed.
No, no it's still there at https://www.duolingo.com/courses
Also, many Esperanto speakers were killed in WWII as Hitler hated it because the inventor was Jewish and for nationalist reasons and Stalin because he thought they would be spies. I recall Zamenhoff's children died in concentration camps. Truly horrifying.
What about fission reactors?
As you mentioned earlier that English is not your native language, allow me as a native English speaker to affirm the previous reply. In English, when somebody states that they "learned X" - while not necessarily implying mastery, certainly suggests a strong understanding of something which is emphasized by the "past simple" tense of the statement.
Bertrand Russell is awesome, there are quite a few good interviews with him on the youtube, my favourite is this one, on philosophy itself: https://www.youtube.com/watch?v=gvOcjzQ32Fw
You lose the ability to pass create zero-cost slices, though. C++11 actually implements strings like this, but iterators allow you to pass in parts of the string as necessary.