skysight-inc/HackerNews huggingface dataset:
The best way would probably be to work on a language that isn't context-free. When you run into the problems context-sensitivity introduces, then you'll really start to understand it.

In the past, Pascal was widely used in teaching contexts, for both learning to program and later how to implement a compiler. I've seen Walter say in the past that he got into doing languages from a series of articles in Byte magazine that included the listings for a small Pascal compiler. For your task, you can use Oberon instead, which is a smaller and simpler than Pascal. Oberon-07 is context free up to a point, which is another way of saying that it's not context-free. It'll work well for this exercise. Don't worry about writing a full-fledged compiler, because you'd end up spending forever on the code generator backend. Instead implement half of a compiler.

Here's one project that fits the description of being one half of a compiler—a documentation generator:

https://github.com/schierlm/OberonXref/

Implementing this requires doing the lexer and the parser, but its "backend" streams out documentation pages instead of object files or assembler. The truth is, you wouldn't even need to go that far. Just do the lexer and then start implementing the parser—let's say that your program should just read in source code and then say whether it's valid or not—whether it will parse. Since Oberon is mostly context-free and the natural way to do things is to use a recursive descent parser, you'll get into a rhythm implementing things, until you run into the part that's context-sensitive, at which point things will get uncomfortable. You will find true enlightenment then. This can be done over a weekend, but if you reach the end of the first weekend and realize it will take you two, don't sweat it.

> I mean I want to make a useful language, is being context free practical?

It is. If you do the exercise above, it should be straightforward to figure out several different ways to change the grammar to eliminate context-sensitivity in your parser. You'll realize that the transformations would be minor. They won't compromise the power or practicality of the language, and it's possible to end up with one that is almost exactly the same. The biggest casualty in this case would be reworking a dubious design decision made for aesthetic reasons.
Presumably there are some tools that will do that ?
Don’t use Google. Most third party sites that give you an option to use Google, Facebook, etc. also have the option of just creating an account on their site.

As far as email, create a domain name and use your own email address.

Free will is great isn’t it? Everything doesn’t require the nanny state to step in and solve all of your problems.
The limit is a lot higher than 2 to 5, but I think sooner or later it will get you. Until then you will suffer a slow death by a thousand migrations.

A separate database is best used if you need an absolute firewall between the tenants for security reasons. Almost no bug can ever let one tenant see the data from another. If they share tables, it's easier to make that mistake.

The downside is you can't have quieres across all your tenants, so you'll want a BI database that brings all the data together anyway.
Elon Musk – Freedom
Why Lady Gaga’s Ex-Model Seized a Luxury Hotel Suite in L.A
Or: "Rust user discovers the linker"
cc @dang
FORTH is the ultimate macro-assembler!

https://archive.org/details/a2_GraFORTH_1981_Lutus_Paul
The difference between Google and the government is that I can more easily escape the rules that Google imposes than the government.
There is the k3s distro of kubernetes
Analyzing Best Hacker News Posts
Hey cryptoquick, I remember you from a while back. I'm https://twitter.com/aphelionz, one of the maintainers. Nice to see you :)

You're not wrong about the memory usage. We decided early on that the tradeoff would be more RAM than to take the performance hit with the I/O (either to and from IPFS or to and from the filesystem in the case of SnapDB).

That being said, I have been experimenting with removing indexes like the ones you pointed out in favor of generators that emit the values as they are traversed. There are two main efforts here, one is feasible and the other is more difficult.

1. The `entryIndex` inside of ipfs-log can probably go, and the ipfs-log#traverse function can be made into an async generator function that passes the oplog values up to the store
2. The indexes you linked to that hold the calculated STATE are harder to get rid of - they could be persisted to IPFS or the file system as well

Open to ideas on #2. SnapDB might work for all I know, as I haven't attempted it yet.

I can't speak to Electron, React, Redux, Iced, etc, but my guess is there are optimizations one can do there as well.
This is neat. Kinda related: For anybody new to CSS (or anybody that just finds it a pain) I found using Tailwind CSS upped my design game.

Using a limited number of selectors helps you reason about what each property is doing and highlights how many superfluous properties you've been using to accomplish what could be done rather simply.
There's also a white paper describing what they plan to do with it in more details:
https://pages.ubuntu.com/rs/066-EOV-335/images/Cloud_Gaming_...
TLDR for people who didn't read:

The speed difference came from the allocator.

Rust switched from jemalloc to the system allocator per ticket #36963[0] for various reasons (like binary bloat, valgrind incompatibility, etc...).

Go uses a custom allocator[1] instead.

To make 'Rust Go fast' (pun intended), one can use the '#[global_allocator]' to use a custom allocator (in this case, with the jemallocator crate) to make allocations fast again.

[0]: https://github.com/rust-lang/rust/issues/36963

[1]: https://golang.org/src/runtime/malloc.go
I can't answer your question about YC, but you mentioned that you are looking for inspiration. For that, I recommend taking a look at Indie Hackers https://www.indiehackers.com/ and Failory https://www.failory.com/ - if you haven't already done so. Oh yeah and https://www.startupsfortherestofus.com/ - if you aren't looking to build a megabillion startup.
I'm glad I made the choice to migrate off of Google's products about a year ago. Having control of your own domain and identity is super important in a world where one company can effectively delete you from the internet when they want and there's no legal recourse.
Getting Started with Gatsby Recipes
historically lisp was known to be a silo, maybe nowadays not so much (I'm not up to date to be honest).
Also, speaking of Rust - we'd love more contributors over at https://github.com/ipfs-rust/rust-ipfs/.
Wasn't being sarcastic. Assuming your workload can support the hardware, why isn't this a viable alternative? I could do ~99% of my job with one. People below are asking about affordable ways around this and it made me think of this
Use docker-slim too!
This is definitely a cool project. With Chrome and Firefox essentially as the only two options at this point (and forks thereof), this is needed!

I also know of one other [1] but not so sure about it’s current status since it’s last update was 2017 and the SSL expired.

[1] https://netrunner.cc/
Would you care to elaborate? I worked pretty closely with the Corporate IT folks at that company for 6 years and never heard of any issues from them nor complaints from non-tech users in the organization. This company had over 15,000 employees, not the largest but not small.
My view on this is that Category Theory is more of a framework for your brain rather than for your computer. As the founders of the theory had noted, categories were introduced as a basis for explaining what a functor is, and functors were needed to explain the phenomenon of natural equivalence. It is indeed practically useful to program your brain in such a way that you could better discern common patterns and be able to see that what you are trying to do is equivalent to something you’ve done before; being able to express this directly in code when possible (depends on the language) comes as an added benefit.
Unless you live in a place like Iran or Crimea.
I'm not seeing the sarcasm but it's a great comment. I can't think of a sarcastic comment right off the top-of-my-head either but I do have a funny comment story:

For the longest time (starting in the '80s) I started a comment with the following snippet if there was a need for the developer to be really certain they wanted to change something about code:

/* * DANGER WILL ROBINSON *
*
...
*/

This always made me smile because "Lost in Space" was one of my favorite television shows growing up in the early '70s ... and because most of the people reading the comment didn't know the reference. That changed slightly when the movie came out but really became known when Netflix revived the series.
stupid question I'm mildly wondering

> Another module is the Dynamic Application Loader (DAL), which consists of a Java virtual machine

What does that mean in regards to using intel hardware and oracle's java license mentioning nuclear weapons?

I thought it mentioned nuclear facilities but it looks like it changed at some stage.
This robot arm??! Yikes! It's getting very huggy there. The nerd (Bill Bennett?) at the end looks very trusting and confident.

http://projects.csail.mit.edu/video/history/aifilms/07-arm.m...

https://projects.csail.mit.edu/films/aifilms/Podcasts/05-lif...

Notes and comments on that and other videos:

https://github.com/PDP-10/its/issues/1866

http://projects.csail.mit.edu/video/history/aifilms

https://projects.csail.mit.edu/films/aifilms/FilmList.php

Lars said:

>Note that a good number of the programs displayed in these films have
been preserved and will run on a PDP-10 emulator. I haven't seen this
particular cellular atomaton, but then I haven't looked.

About:

http://projects.csail.mit.edu/video/history/aifilms/05-life....

Here's the audio commentary that goes with that video, in which somebody mentions that he once called Wolfram on never referencing any of Toffoli's or Margolis' work:

https://projects.csail.mit.edu/films/aifilms/Podcasts/05-lif...

I wrote:

>Apparently this cellular automata constructor arm was trying to spell
MIT (starting at 0:42), but they ran out of film!

>Is that Edwin Roger Banks rule?

https://en.wikipedia.org/wiki/Codd%27s_cellular_automaton

>>Three years after Codd's work, Edwin Roger Banks showed a 4-state CA in his PhD thesis that was also capable of universal computation and construction, but again did not implement a self-reproducing machine.[3] John Devore, in his 1973 masters thesis, tweaked Codd's rules to greatly reduce the size of Codd's design, to the extent that it could be implemented in the computers of that time. However, the data tape for self-replication was too long; Devore's original design was later able to complete replication using Golly. Christopher Langton made another tweak to Codd's cellular automaton in 1984 to create Langton's loops, exhibiting self-replication with far fewer cells than that needed for self-reproduction in previous rules, at the cost of removing the ability for universal computation and construction.[4]

>Actually the constructor arm looks like it got interrupted before it could finish spelling out “MIT"! When it stops at 5:10, it prints out some text at the bottom I can’t quite make out.

>Wasn’t there a section in the CAM-6 book on Banks’s rule, which that looks like?

>Or is this one of those almost-infinite-number of monkey rules, that ALMOST spells out “MIT”, but then suddenly halts? ;)
I recently did some experiments with creating small static Rust binaries, custom linking, no_std et cetera. A lot of stuff around that kind of thing is unstable or unfinished, which might be somewhat expected. But I’ve also come to the conclusion that Rust relies on libc way too much. That might be fine on Linux, where GNU’s libc is well-maintained, is a bit questionable on MacOS (as seen in this article) and is a a complete distribution nightmare on Windows (in no small part due to a series of very questionable decisions by Microsoft).

My understanding is that Go doesn’t use the libc at all and makes system calls directly, which IMO is the correct decision in a modern systems programming language that doesn’t want to be limited by 40 years of cruft.
Assuming this was run on a 64bit system, the Rust version seems to be allocating and zeroing twice as much memory as the Go version.

edit: this has been pointed out as incorrect, Go ints are 8 bytes on 64bit systems -- thanks for the correction!

let mut cache: Vec<usize> = (0..=target.chars().count()).collect();

which can be simplified as

let mut cache: Vec<usize> = vec![0; target.len()];

vs

cache := make([]int, len(target)+1)
for i := 0; i < len(target)+1; i++ {
cache[i] = i
}

Rust usize being 8 bytes and Go int being 4 bytes as I understand it.

So between doing more work and worse cache usage, it wouldn't be surprising if the Rust version was slower even with the faster allocator.
> just put the output of the build process behind some webserver.

That's what this is doing.

You are skipping over two other parts which are installing and setting up nginx / similar and creating a process for the build itself. This ties the three together.
I understand what bisect does. I even used it a few times. I'm jut saying it's very rarely useful in my experience (YMMV).
They didn't even test it under different loading conditions and with transients on the input?
Looks like people don't die on weekends
Ask HN: I want my pupils (~12yo) to create their own website. Suggestions?
Former back-end Web developer here.

Since last September I am a full-time maths teacher in France, with ~100 pupils (11-13 yo).

I told them one day that I had done webdev before, and since then several kids asked me for some advice to create their own website.

Of course I encouraged them, since I thought it would be great for them to share content outside of the GAFA bubble, and own their medium. However I never created a full course.

But now that the whole country is under lockdown, I have some time to properly help them. I'd love to see them create their own website from scratch: no WordPress, no Wix, just <div>s and <span>s and a few CSS rules...

I don't really know what to choose though. I want to:

- (ideally) have the same provider for domain names and hosting,

- get the kids to update their website themselves (otherwise I'll be flooded with requests every hour :) ), and

- be able to manage a lot of domain names for cheap (except the registration itself).

I will probably have 10-20 kids interested.

Do you have any suggestions for domain registrar, hoster, and an easy way to upload their work? (git, FTP...)

Thanks!
I didn't 'hijack' anything. You still didn't fix the inflammatory title, either. Excuse us for calling out the activity of the science 'Gods' in China doing extremely questionable activity, aka 'playing with fire'. The reasons of why this is extremely questionable being unfolded in the thread you censored, in a polite manner, by the community at large.

This is a pretty big scandal. Turns out the Chinese researchers did engage in creating human transmissible coronaviruses. Read this paper from https://www.nature.com/articles/nm.3985. I don't know where SARS-Cov-2 came from, and I don't think there is any malicious intent involved. But, in light of the COVID19 pandemic, it's extremely disconcerting to learn people engage in this kind of activity and that US sponsors it.

A classic: latch on a couple of conversation opening words that you stretch as 'inflammatory', ignore that your own site uses inflammatory editorial content to begin with, ignore the main point and the polite debate around it, and bring in the ban hammer.

Have a great day. I hope your debate censoring attempts have short legs.
Bad Moods: A Guide to Survive the Storm
What would getopt look like in APL (also K, J, what have you)? I couldn't find any examples. Similarly, I'd like to see some examples of handling multiple I/O endpoints (sockets, stdio, files?) asynchronously (or should I say without blocking) using whatever mechanism works best in APL.
What is set theory useful for beyond the contents of arithmetic, algebra, calculus, etc...

Category theory is useful for studying mathematical structures in general — by its nature, it’s results are going to be fairly abstract and general, but that doesn’t make it useless.
Yes, especially because that changes it from constant time (strings know their length in bytes) to linear time (counting chars means a loop through the text.)

I was a bit suspicious of the conclusion, but didn’t dig in myself. I imagine this would be a much larger source of difference.
Little update:

Ripple the company that builds on the XRPL, recently released new numbers. They say that the volume in dollar that used the XRPL for cross border payments, has increased by 294% in the last quarter. % is hard math so for thous who don't know, that means nearly tripled in 3 month. Obviously it can't grow that fast for long but still impressive and a clear sing that it actually solves a real problem.
First Business Got Acquired for $200M and His Latest Startup Was Sold for $225M
Quitting an unhappy job within a year
He could have also used deno a very nice js intrepreter and upx (makes HUGE go progrms small)
What I was saying was it’s more affordable than the Talos II mentioned earlier in this thread. I agree that it’s not exactly cheap, but I don’t think it’s for everyone.
I have mixed feelings about this bit: “people who were asked to ‘personalize’ a transaction at a coffee shop by smiling, making eye contact, and having a genuine social interaction with their barista felt about 17% happier and more socially connected.”

So the customer might feel better, but what about the barista? I think that a lot of customer-service personnel want to remain as much in their own headspace as possible while they are forced to stand there dealing with strangers just to pay their bills, and so this behaviour would be imposing on them. Also, for female baristas, customers flirting with them are one of their biggest complaints, and it is all too easy for any social interaction to be misinterpreted as flirting. So, unless you have observed the barista before to see that they genuinely like interacting with customers, I think one only risks being rude by making eye contact and trying to exchange some small conversation outside of simply conveying one’s order.
You are only as secure as the most insecure component in your infrastructure.
Yep.

Here a Go playground example showing that the result is indeed wrong:

https://play.golang.org/p/vmctMFUevPc

It should output 3 but outputs 5 because each ö is two bytes, len("föö") = 5.

I would suggest using "range" to iterate over the unicode characters.
Kubernetes really isn't as difficult as you might think. Early on it was "hard" because most people were learning containers as well as Kubernetes.

Also how that we have managed services like EKS, GKE, AKS it's really straight forward to learn.

I would suggest start with a GKE cluster and deploy nginx.
Could also try to use the smallvec crate in this case, which put small allocation on the stack https://docs.rs/smallvec/
Probably not, but there are articles on the subject that are helpful. I've found them before.
Which lisps? I think I have only ever seen that in clojure (thinking it was a bad idea), and clojure seems scared of parentheses. (not (equal? x y z)) is clearer, but suffers from the same drawback as your question.

The problem I think is that not= returns true as long as any elements are non-equal, which means it is not analogous to +. I can't speak for clojure, but this is in line with all equality predicates in scheme, negated or not. A predicate that checked if any neighbours are not equal would in true scheme spirit probably be called not-any-neighbour-equal? :)
After you sign into an Android device with a Google account then factory reset it, you have to sign in with the same account before you can use a new account. It's an anti theft precaution.
Go int is 8 bytes
You have to remember: politicians are the geezers that gave Zucc softball questions on FB violates their users (0), wanted to ask Bill Gates how to lock down our internet (1), nevermind the countless nanny state bills they have proposed over the years to censor the entire internet like they do for their grandkids. Please don't ever, ever forget that these people have not a clue how any of this works and will take an axe to the security and open-ness of our beloved series of tubes.

(0) https://www.cnet.com/news/some-senators-in-congress-capitol-...
(1) https://www.theverge.com/2015/12/7/9869308/donald-trump-clos...
Show HN: Create a fake REST API with zero coding in less than 10 seconds
Read_once and Write_once in Linux Kernel
Nomad + Consul.

Used it for years in prod - just awesome.

I’ve also used k8s extensively and nomad/consul is more ”open” and less opinionated.

If you also manage some form of legacy infrastructure and VMs, consul is hard to ignore.

Two go-binaries - you’re up in minutes for a test drive.
Seafloor microplastic hotspots controlled by deep-sea circulation
Well, since we’re on the topic I read the word ‘repair’ as a verb.

I thought a shop in Manila had tracked down the bug’s creator to repair their computers.
Christian Drosten, Germany’s Covid-19 explainer-in-chief
Looking forward to seeing the Samsung teardown for comparison.
Media have an incentive to make titles misleading and incomplete.
I bought TailwindUI, at first it was just crazy to spend 250$ for a CSS utility.

I regularly build MVPs or administration dashboards and TailwindUI saved me several hours of work.

With perspective, it's one of the best investments I've made. Moreover the Tailwind team regularly adds new templates.
Quantum Computing as a High School Module
Thank you for pointing it out, even though I'm French I read it as "Onez! Onez!", I thought it was meant to be 1337speak.
On the surface. Easy to setup a simple use case but long term has a similar learning curve to Kubernetes for a production deployment.
Strigil
I suggest this article
https://www.quantamagazine.org/with-category-theory-mathemat...
I don't know what I just watched, but these movements seemed not very physically accurate to me.
What do you mean you don't hunt and kill your own food and grow your own grain?

Businesses should absolutely have the right to not let you use their services for any arbitrary reason! It's a free market! Sucks to be you!

</ sarcasm>
［Offer valid until the same thing happens to me, then I can scream and cry about it］
huge plus one for this book.
I agree, but come on. Let's be honest about the scope and magnitude of this bucket. I have a business that relies on a Chrome extension to be on their web store.

Say I accidentally trip off something in their opaque machine learning algorithm that determines my extension (or even a YouTube comment!) breaks their terms of service. They would have the right to completely block my account and remove the extension. Effectively, wiping out how I make a living with a single automated bit flip.

It hasn't happened to me, but the people that share horror stories of how it happened to them scares the $#!7 out of me.

As the Internet gets more privatized and less "open", I just wish there was something that required a fair "trial" of my account being suspended. The balance of power online is slowly shifting and I feel there needs to be something protecting the rights of individuals (the public) online.
Corona Policy Response Simulator
It can be either depending on the system.

https://golang.org/ref/spec#Numeric_types
I 100% agree. The first language I learned in highschool was VB6. I only went to VB .NET when VB6 stopped working.

I next learned PHP because it gave me superpowers on the web that VB couldn't. When Ruby on Rails became popular, then Node, I dabbled in learning those but I just couldn't get excited about them because it didn't give me any more capability than PHP already did.

I generally only tackle learning new things if it provides me immediate value to do so.