skysight-inc/HackerNews huggingface dataset:
45mph is stillu a speed limit I wouldn't want to cycle on on a regular basis. You're right about infrastructure, decent cycle paths is what people need to ride bicycles in the city, the are just too afraid of the heavy car traffic.

15-20mph for a bicycle is plenty of speed, as a matter of fact, bikes with motor support above 25kmh (15.5mph) here in Europe it would be a S-Pedelec and need a license plates and other stuff just like a motor scooter. You wouldn't want to ride at 35mph, it's a scary speed even on a good road bike that's meant to be ridden faster.

Regarding winter: Start cycling in summer, cycling is fall and just upgrade your clothes as you go along. I cycle 20km on a work day, no matter how bad, cold or hot the weather is. It's just about getting used to it.
Falkon hasn't been updated in nearly three years, and I really hope this doesn't mean it has been abandoned, because it's one of the few "just a browser"s left. It's not a "service", it doesn't call home, it's... just a browser, and it's a real shame that it is not the default for most Linux distros.
Biasing by a constant amount might help.

The thing about unbiased random noise is that it cancels itself out! And for the most part, we can compute exactly how many data points are needed to achieve a particular level of precision in the result.
> In school you do “experiments” and if the answer doesn’t match what is in the book you are marked down.

This is unsurprising and probably obvious. The purpose of the exercise is learning how to do experiments reliably so that at some later point when doing experiments to test a hypothesis you can have some confidence that the results you produce are actual data and not just noise.

When doing science class "experiments" of this sort perhaps it would illuminate things to students better by going up one level: the hypothesis under test is "student can perform experiment reliably". The putative subject of the "experiment" isn't the actual subject in inquiry: you are. On the other hand maybe this would just confuse students. (I've observed wildly varying capacity for abstraction and meta-cognition among the people I work with as a software developer so I suppose this is something that varies among individuals generally.)
Inasmuch as I agree with your sentiment, there unfortunately are such restrictions. For example, trade embargos on strongly encrypted software. No US national, whether a citizen or resident, is allowed to sell or freely provide strongly encrypted software to Cuba, North Korea, (North) Sudan, and Iran among others under penalty of law.
Ublock origin is about privacy, not just ads.
All those times in the table seem... Slow...

For example, BenchmarkPushFront-10 takes 9 ns... That should consist of one write to memory (to update the pointer in the object). With decent compiler optimizations and a modern out of order CPU, I think we ought to be expecting one of those per clock cycle, so we ought to be seeing performance of 0.5ns. Perhaps even faster if the compiler manages to vectorize stuff (although I'm not aware of any compiler that can vectorize memory allocations).
You're aware that "full of" isn't a literal expression of mathematical quantity, right? For these people to claim there's even one racist sociopath in such a relatively small department is an extraordinary claim, but they're asserting that it's commonplace amongst management. That claim is quite obviously incredibly unlikely unless they're using dumb redefinitions of words, like defining "racist" or "sociopathic" as "anyone who disagrees with my ideology".
Something fishy here. A generic data structure is exactly the kind of code that you wouldn’t expect to perform better with generics. At most you’re getting the benefits of unboxing and the absence of a single conditional jump for the type check when you convert back from interface{}. But that shouldn’t make much difference to a series of tests that just push and pop items for a queue. I suspect that any realistic code using this data structure would see no tangible performance benefit. These tests are probably just picking up the cost of an extra allocation required to box a primitive type as an interface.

If you’ll excuse the blog spam, I did a dive into the performance of interface{} here: https://adrummond.net/posts/gogenerics

(The blog post was written before it was certain that Go would get generics.)
The way I understood it the “slowness” came from using interface{} in the queue implementation. With generics you get a performance boost from annihilating the run-time overhead. Yes?
Exactly, as much as I dislike dealing with it, it does allow our sales and marketing people to do things like publish content, fiddle with SEO, deploy custom redesigns of the website, etc. Without much support from me. That's important for me because I have more important things to do.

We've had multiple people do work on this setup. When we get new people in, they already know how to work with it because it is so widely used. We had a sales person with some Wordpress experience setting up things like CMS integrations, do some basic SEO, etc. Then recently we had a new designer that got busy redesigning our website. All that stuff happened without support from my side. That happened multiple times actually since we have been working with student trainees a bit. It's great. These people come in and they know how this stuff works already and get things done without me having to spend a lot of time on it.

That's it's main redeeming feature. It's horrible for technical people to deal with but it's main feature is that non technical people are able to use it without requiring assistance from technical people. All I do is makes sure it stays up to date, is configured properly, and make sure backups happen.

Other CMS solutions are available of course and I would recommend anyone in a position to choose to use some hosted and managed solution. Something like Squarespace or whatever rather than setting up their own wordpress server. But there's nothing that comes close in terms of non technical people actually knowing how to work with it. It's been the go-to solution for this stuff for a very long time now.
> You don't save any mechanical complication that way.

Actually, you do if you count the moving parts. A belt is always at least two pulleys and a belt. A motor is a motor. One moving part vs three.

In some cases you don't need anything at all - hybrids don't use alternators, some (like Toyota's HSD) don't even have a stepper motor for throttling and a dedicated starter motor - the two motor-generators perform this function.
I'd have to agree, at least with the toothpaste - the pain from bad teeth and the cost of dental work can't be worth the $10 you save a year. You can get that stuff at the 99 cent store. I'm sure any dentist would give it away for free.
My blog is one small php file that can 1) load a html document (that is a blog post) into a textarea. 2) Write out a html document by sticking html above and below that what sits in the text area. 3) find links to the html document on the index page, rss feed and tag pages. 4) load and update the index and tag pages. It does 4 whenever a html document (post) is saved.

There are no bugs in my code. There isn't enough of it to have bugs.

php stopped working at least twice over the life of my blog. As all pages are static html everything simply continued to work with the exception that editing and posting had to be done over ftp.

I download wordpress OS one time and spend a few hours gazing over the thousands of files. I remember thinking sarcastically how I wish I had that level of confidence in my own code. What could possibly go wrong?

I do still admire the company and the project.
Short answer you should not.
~~If the type of something is "any", then that means your types are only truly known at runtime, and you therefore have to check the type of everything while the program is running. Am I off here? I don't use Go.~~

Maybe it's not so much runtime type checking, as the fact that a type of "any" means that the compiler doesn't know anything about what objects are in the deque. If you're using arrays to represent your deques, then this means you can't actually store the entries of the deque in the array, but only pointers to those entries, no? I think the keyword for what I'm saying is boxing/unboxing.
Hmm. You answer the questions but it's too vague to get a good picture. Can you be more specific ?
The observation comes from my personal experience that actuation force seems to be almost directly proportional to typing speed and how long it takes to get tired. Maybe those with heavier fingers and/or stronger muscles would prefer a heavier keyfeel.

My fastest typing has been done on a ~40g rubber dome that actuates quite close to the top, and then has a very springy "cushion" past that (contrary to a lot of "common wisdom", they don't have to go all the way down to actuate --- that's what the "tit" on the bottom of the dome is for, and the longer and softer it is, the more cushion you get). Definitely not linear, but the bump is very subtle.

As for my speed: I can sustain around 150-160 for long periods, with brief (~10 second) bursts over 200.
I can see how walking between buildings and then riding elevators is a good local maximum, but I wonder if there’s another local maximum where you drive between buildings but climb stairs once you get to them.
I slow down some narrators and speed up others because I like content delivered at a specific speed. Leisure time is a reason, but not the only reason.
I can do 20mph for an hour, but need to recover for an hour after that.

20mph is also where the dangerous speed starts for us cyclist because motor traffic isn't used to cyclists going that far and every crossing without lights will become a bit of a gamble for the cyclist.
Not for a given development effort and API complexity. Sure you can reimplement a list sort for each of your types.
Sure, but that still contradicts with the GP saying "just don't be stupid and calculate the utility properly".
I realize the doctor participated in this story but it verges in Islamophobic to be “surprised” that a Muslim would use a pig heart.
I think that some of the concerns around generics, (like mine) are based on the over-use of generics. But, I am very happy for the addition of generics as they'll probably do more "good" than "bad". We'll just have to be pragmatic.

Edit: Reminds me of this funny video https://youtu.be/-AQfQFcXac8?t=63
Crypto: When Will the Madness Stop?
I think a good analogy is the parable of the cobra problem. A city suffers from too many cobras so the government puts a bounty on each dead cobra you hand in. The result? People massively breed cobras to hand them in. The government realizes this and stops the program. Subsequently all breeders lose interest and dump the cobras, leading to an even bigger problem.
Well we don't know what is being pushed or what was the function call overhead. Edit: the -10 suffix can mean there is a 10x loop in the benchmark?
Could the complexity be reduced further if the hybrid moved to a fuelcell + electric motor instead of ICE + electric motor?
There is also the European Institute of applied Buddhism (EIAB) in Waldbröl, Germany https://eiab.eu/
Why would anyone believe anything from people with a long track record of lies and manipulation?
I vouched for you as I don't think you should be down voted for having an option as a developer.

I don't know why others are disagreeing (I assume this is why they down vote), but I am not fond of your statement because it hits a sore spot for me with web devs and users: you like it because it's convenient for you as a web dev. Chrome is anything but better for me as a user.

I've written something like this before but my frustration with web dev and websites in general is that my understanding is that web devs have an unrealistic expectation for how users use their sites and optimize for a use pattern that doesn't match reality.

I might spend a few minutes on any sight for any given day; typically I'm on a Mac so of course I want safari for the battery life benefits. When I encounter a site that is using some chrome only API or tooling and no longer works, I have a decision to make: do I really want to install another browser to view something I might not even look at more than a few minutes just because the site uses a call only chrome supports? Or do I just want to skip it?

So far, the second option has been my choice every time as I just have not found a site that warrants a dedicated browser to view.

For devs the decision is for their convenience, and because web dev doesn't explain its decision, I just have to live with the consequences. This means that a site that works perfectly fine one day,even sometimes a few minutes ago, suddenly stops working because of a behind the scenes change and I have no idea what the issue is, why a change was made, and for who's benefit.

I am not aiming this post at you specifically, it's just such a perspective I find is unique to web dev and to software with rolling updates, but even the latter has release notes. Web dev is weirdly accountable to none of it's audience, and even worse, many web devs choose to argue against the users choice in browser instead of responding and fixing the issues with specific browsers. I'm not even talking about Fringe browsers, just the major ones (FF, safari,Chrome). Even mobile FF gets broken on some sites that try to use chrome only optimizations

Chrome for users is NOT a guaranteed best option. It lacks battery optimizations on most machines, it doesn't support ublock origin, it is incredibly invasive.

The main frustration i have is that if a site does optimize for chrome, it forces a decision that for me is always the same result: will I install chrome just for this site and give up the benefits of other browsers/pay the Google privacy price?

For me that answer is "No", with gusto.

Again this isn't targeted at you, but I really want to ensure web devs see the user side here and the choice they're asking users to make when they optimize for chrome without considering the experience of other browsers.
As (safe) Zig eliminates overflows just as (safe) Rust does, and, like Rust, has not unsafe casts, I don't see how "all of the same classes of memory safety problems that are present in C or C++ are present in Zig." Also, Zig guarantees — just as Rust does — that all pointers and means of creating them are known, and precisely so, so analysis tools could work on Zig better than they do on C or C++. In C/C++, at best they could check pointers at the time of dereferencing, while for Zig they could do so at the time of deallocation. You once said that couldn't work because Zig would have dangling pointers lying around (presumably in addition to the one used for deallocation) because C does, but it might as well be the case that C programs leave dangling pointers because tools cannot detect them, which has affected the programming style, not the other way around.

It's OK to doubt claims/hopes about Zig, just as I doubt the claim that Rust can achieve more correct/secure programs than Zig for less effort. Without empirical data, there's really no way to know. So in the meantime, all there is to go on is personal appeal. But you cannot support your claim that Zig is "just like C" with the assumption that it is.

I think that, at the end of the day, there is what we might call an "ideological" difference between us. While we both accept that both language features and best practices — code reviews, tests, tools — reduce bugs, we draw the line of where it's worth to sacrifice one for the other in different places. It might also be the case that Rust's complexity doesn't sacrifice anything for you, but it does for me, as I'm uncomfortable with complex languages, and I think Rust easily makes the top four most complex "production" languages in history (together with C++, Ada, and Scala). So while even for me C is on the wrong side of my line (just as Idris is on the wrong side of yours), I reject extrapolating from C to Zig, because Zig makes many more guarantees at the language level, so without pertinent data about Zig, the question cannot be settled. If I thought Zig was "like C," I wouldn't have found it promising and so intriguing, either.

Having said all that, I don't want it to sound as if I'm willing to bet on Zig right now. I'm far too risk-averse for that. But I wouldn't bet on Rust right now, either. What it brings to the table doesn't offset, for me, its (still-)high risk. All I'm saying is that the revolutionary Zig hints at a promise of a new low-level language that could bring more to the table and justify the risk.
Nonparametric Confidence Intervals
As a skeptic of radical ideology, I was surprised to find myself agreeing with many of the things you say/do. Thanks for sharing.
I do all those things in Amsterdam.

I can get everywhere in Amsterdam much quicker by bike than driving or public transport. Cycling in the rain and snow [2] is no problem, you just need the right gear.

What non-Amsterdammers don't realise is the city never used to be a cyclist's paradise. In the 1960s, Amsterdam's car-obsessed urban planners had grand visions to drive motorways through the inner city, razing the historical buildings, and constructing Manhattan-like skyscraper clusters.

Here's a 3 minute video "Highways Almost Destroyed Amsterdam" [1] about those plans, the fightback in the 1970s, and the resulting bike culture that Amsterdam has today. Enjoy!

[1] https://www.youtube.com/watch?v=vI5pbDFDZyI

[2] https://www.youtube.com/watch?v=xB1tgkOM6Bw
I started[1] to update it (required for some KolibriOS[2] programs) to support *nix systems and modern runtimes. Pull requests are welcome.

[1] https://github.com/KolibriOS/cminusminus

[2] http://kolibrios.org/
> At most you’re getting the benefits of unboxing

Which is.. 3x? or 10x?

> These tests are probably just picking up the cost of an extra allocation required to box a primitive type as an interface.

I've seen unboxing deliver 100x speed ups cause it allowed the compiler to auto-vectorize multiple loops, fuse them, optimize stuff better etc. Stuff that it can't do if it doesn't know the memory layout of things, or if there are "optimization barriers" inserted in between all these steps (`interface {}`).

---

TBH it's 2022 and it seems that "Go" devs are just seeing fire for the first time in their lives. Yeah, fire heats. And yeah, this type of stuff if why people don't put Go in the same bag of languages as C++ or Rust.

Go feels fast if you are coming from Python, but if you actually look at what the hardware can deliver in terms of FLOPs and BW, Go programs run at 0% of hardware peak (and no, just because your task manager shows go threads using 100% of the CPU doesn't mean that it is achieving 100% of peak CPU perf).
>On the other hand if you have successfully indoctrinated employees to work for you for 100 hours a week growing your business for you, selling you their lives for nothing more than money, then by all means get rich off their sweat.

One of the great errors your comment exposes is that making your employees suffer enormously is going to make your company run well.

One of the first laws the Romans and Egiptians discovered is how unproductive slaves were compared to free men. It is a universal rule that applies to modern days as well.

The South pole was conquered (Amundsen expedition)making the men go SLOWER than what they wanted to go because that way the effort could be sustained over time.

I do that all the time in my company because I don't want heroes that do not sleep one day just to be zombies the next day making expensive mistakes.
"This is encouraging news for a language already known to be unusually both fast and easy"

Hmm it's not known for that, is it? Go is known to be quite slow due to a weak compiler and a GC that optimizes for latency over throughput. And is Go really easier than a language like Java or in the dynamic world, JavaScript? It sure does seem to have a lot of weird edge cases and potholes to trip over.

Anyway I see a bunch of comments saying generics shouldn't make anything faster. They can make code go faster in combination with specialization and value types. It's one of the reasons C++ can go very fast whilst still supporting higher level abstractions, albeit at the cost of generated code size. It's also the reason they're adding value types and specialized generics to the JVM. I don't know if Go is doing C++/Rust style specialization or not, but it at least has the potential to do so.
Norman is so great. Look at the photos elsewhere on his site of him teaching COMP40 class. That's exactly the kind of person you want teaching you about computer science.
> the dices

"The dice". Single "die", plural "dice".
> if there's a sudden influx of thousands of users

A $10 VPS will manage thousands of users fine for most CRUD apps. You don't need tons of VM.

You can always make it a... $20 VPS to have some margin if you fear HN hug of death.

You won't get a CDN close to the user or automatic backup, but that's really fine for the immense majority of projects.

It takes one hour to setup a VPS with nginx, python/node/ruby and postgres. Then it mostly runs on its own for years: no coldstart problem, no kubs to manage.

I get the benefit of the cloud at scale, but for thousands of users, it seems really overkill.
Not sure where you from, but 25km/h here in Austria (and most of the EU) is not the speed limit, just the limit to which the motor will assist you. Anything beyond that and you're either on your own or you buy a S-Pedelec that needs a license plate, horn, helmet, and even license plate lights.

Thanks for occupying the whole lane, that's how we should ride bicycles for our own safety.
Oral Immunotherapy Induces Remission of Peanut Allergy in Some Young Children
As a sibling comment of mine points out, we need skyscrapers. They just aren't the be-all end-all of buildings. We need some skyscrapers. We need a lot of other types of buildings too. Diversity makes for a great district.
Incidentally, I'm on their list as a victim:

> 2010-03

> Sony restricted access to the PlayStation 3 GPU, so people who installed a GNU/Linux operating system on the console couldn't use it at full capacity. When some of them broke the restriction, Sony removed the ability to install other operating systems. Then users broke that restriction too, but got sued by Sony.

I'm one of the people who got sued by Sony. And I still think the FSF's take on all this is terrible.
It probably isn't quite that expensive since you don't buy the floor space with cash but a low-interest, high-leverage loan. And the resale value of that space is probably over 100%.

A better calculation would be annual costs. So say 2% mortgage × €5000 = €100/year. While the treadmill is €1000 / 5 years = €200 / year.
Effectively yes; the fuelcell itself is less complicated than ICE (well, probably not today, but it feels like that's an issue of one having been mass produced in incredulous quantities for a century and the other just barely out of the labs), but they both just make a disk rotate, effectively.
> We've had a free tier since we launched ten years ago (in 2020).

I hate it when time travelers pollute my news feed.
For enterprise level stuff, Drupal. Drupal development is a pain in the ass, but it's incredibly powerful, has a great community, and has a huge focus on security. But for the average blog/site, Drupal is overkill and too technical for what most people need
Rather than two separate pools, I see it more as that every good's value is a complex number. The "real" part is the sticker price and the "imaginary" part is the time spent to consume or enjoy the good. So while we usually just assume the sticker price is the value of the good, in reality you have to calculate the length of the complex vector.

When you're young and poor, the sticker price seems very close to the actual value, but as you get older and richer, you come to see the time spent as by far the most significant scalar quantity.