skysight-inc/HackerNews huggingface dataset:
> Each move during self-play uses about 0.4 seconds of computer thinking time.

> Over 72 hours, 4.9 million matches were played.

One of this claim must be incorrect or misinterpreted, I highly doubt they used so many TPU's as the article claims. That would be not only impractical but also it would raise a lot of other issues like networking, disk speed... etc...

My statement is not against this article, if anyone can confirm they used so many TPUs in parallel feel free to post it
Doesn't the export to plain give you what you need in term of location and size of the different items?

https://graphviz.org/doc/info/output.html#d:plain
> The power consumption of the experiment is equivalent to 12,760 human brains running continuously.

Given the experiment lasts for just days, this actually sounds pretty impressive I think.

Many humans studied the game for a big portion of their lives in order to get Go knowledge where it is.
"application of the discovered principles in business quite unrealistic."

I'm not so sure. The main point of the book I think was that very few negotiations are rational. That's the key message. Then there are lots of anecdotes and self promotion which are not that helpfull. But the key message, I think, is solid.

Most people go to a room expecting some sort of analytic hammering out between two equal parties, when in reality if the other party is prepared with some sort of influence tactic based script and the one is not, the one with the plan comes out winner, especially if the other party is not prepared.

Just ask telemarketers.

If one of the agent in a two party negotiation has a script and a strategy then if the other party does not, the one that has any kind of strategy and script is usually ahead. And another key point was - the winning script does need to be rational, it can target emotions and feelings as well.

Again, telemarketers. "Do you want to buy our insurance? No? Wait, think about how terrible it would be if something bad like <insert insured event> would happen? Surely you would like to be prepared for such an eventuality"

These are of course applicable only to adverserial negotiations, and not all negotiations need to be like that.
I watch a ton of woodworking channels on youtube, and I think I can count on one hand the number of times I've seen anyone use prestain conditioner. If anything, they all seem to love single coat stains.

There's quite a lot of non-US/CA woodworking channels out there, though.

Paska Makes, Australia

Woodshop Junkies, South Africa

Paoson Woodworking, Spain

JSK-koubou, Japan

Laura Kampf, Germany

Crimson Guitars, UK (Mostly luthier projects, but Ben does some crazy stuff that I think woodworkers could find inspirational in general)

Dekay's Crafts, Korea

Get Hands Dirty, Portugal

Resin Timber, Lithuania

I've seen plenty of others - these are just some of the ones that I subscribe to.
Your response was very healing, thank you. I do believe that every man is acting in their world's best interest, too.

The sun will rise again tomorrow.
orderCost = orderCost - shipping; // Apply free shipping

Now it explains why.
Hm, dont know. This kills it: 10.5" HD

I want an eInk Computer Monitor, starting >= 13"
Actually, there are many cases for wich I believe the comments are useful:

- When you have some "complex" technical code. Using natural language is sometimes the most effective way to explain what is done by the related code.

- When you deal with some business logic that can become weird an one point (process all these things in some ways, excepts these ones, weird edge cases, etc.). From a developer perspective, it does not always make sense, but it's always useful to have some background explaining why the code has been written in such way.

- When you have to consider history on a large code base. I know that people on HN mostly work on new shiny projects, but with legacy applications, you have to deal with all the bad/incorrect choices that were made before, and refactoring is not straightforward and is costly. I'm not saying it should not be done, but sometimes, you can work on it only in an incremental way. Comments allow you to add some perspective on the code (explaining the reverse engineering you've done, the initial assumptions, why they turned out to be incorrect, what should be done to improve the situation, etc).

Also, I disagree with the facts that comments are born out lazyness. "Lazy" developers don't bother writing comments. Actually, there don't care, and most of them do not even realise that at some point in time, someone will have to browse, read and understand their code. The only kind of comments I've seen from such people are "commented code", because "it might be useful" (it never does).

I see comments as a way to engage a (one way) conversation and provide useful and meaningful information to a future code maintainer. Sure, such comments should not clutter the code, be relevant and meaningful, stay up-to-date but it's - as many other things - a skill that require time to get it right.

Looking to eliminate all of those is not an approach that I think should be followed (but it's just my opinion). Focusing on allowing the code to be understandable by an hypothetical maintainer in the future is more relevant. If extra comments have to be added, so be it. These are tools, not ends.
If you are interested in history, I can’t recommend enough Dan Carlin’s Hardcore History podcast.

I’ve just listened recently to The Celtic Holocaust episode [0], which is pretty much Caeser vs the Celts, and I’m astonished of how well organized the Roman military was. Also, while the Celts were considered barbarians, it seems they may have been quite developed, even if not at the same level as Rome. For instance, they had elected magistrates to run things, and they were in office for just a year and no one of their family could hold another such position during the lifetime of a magistrate.

Other interesting facts, Caesar apparently had large debts back in Rome, so his motivations for attacking the Celts are dubious.

How much the world has NOT changed, isn’t it?

I strongly recommend checking Hardcore History.

[0]: https://www.dancarlin.com/hardcore-history-60-the-celtic-hol...
> The majority of comments I write are a born out of lazy coding

Then you're doing it wrong. Comments can be used to describe your thinking process, an algorithm, or explain esoteric code. I write comments with the target audience being people who inherit my code 5 years after I've left the project.

I'd argue that lack of comments on large projects may be an indication of an immature developer.
Thanks for the suggestion! I started with the Udacity course: Developing Android Apps with Kotlin. However, that was not enough. I knew exactly what I want to solve. I was facing specific problems so it was easier to google those problems and find the answers than following a course. I am not a good designer. I tried to make the design as right and as simple as the solution needs.
Doesn't Google use Perforce though, which (last time I used it) forces a monorepo approach? git doesn't have equivalents to branchspecs and clientspecs.
based on 2015 data it's closer to 30% - https://mappingpoliceviolence.org/unarmed
Available in the full blown Visual Studio as well.
I mean, you're not wrong... but the chip industry moves slowly, and by your own definition, most chips produced today would not be considered well designed.

Also, once you protect against power glitching, they'll move on to clock glitching. It's endless.

Historically, this is not something that chip companies or their customers have cared about. Again, unless you're designing an HSM, hardware security is a checkbox sales item that is adequately satisfied by a probably-not-actually-secure firmware readout bit. The sales team is happy with this. The buyers on the other end designing shitty IoT products with a 2 year lifespan can now put a "secure" sticker on the box.
> Documenting what a function or a method does should be sufficient and imo you should do that in all cases, just for the sake of making it easier for new developers to jump into the project if they prefer using some fancy IDE.

Document nothing until you have to do something weird and unexpected.

An example might be:

// NB: We're downsampling to 22khz because we found that the
// multi-speaker model chokes on higher sample rates.
source = downsample(source, 22000)

Or:

// We don't perform internal retries here because our clients
// handle that themselves when we respond with a 429.
retryCount = 0

Or:

/* Firefox renders this mistakenly, and overflows the
element. We opted to add padding to account for this
difference. See BUG-4282 for more details. */
padding: 0 0 3px;

This strategy captures all of the things that you'll forget, but leaves nothing that might go stale. In essence, only the things of value that couldn't be intuited from the code itself.

Do not leave any other types of comments! Ever! Not even method docs. (The only exception being if you're writing a library and want to generate a documentation website).

You'll find that you start writing code that is like poetry. Structured, naturally intuitive, and easy for others to read. You'll become a better programmer, and your code base will improve dramatically. Comments, of course, will never go out of date.
From the linked article:

>In no way, shape, or form am I making a case that avoiding function calls alone directly helps performance.

Carmack argues that inlining (small) functions can reduce bugs in handling state by making the logic easier to follow and eliminating any possibility of others calling intermediary functions.
Just refuse to buy anything from GE and make sure you tell everyone why. Sony lost me as a customer when they tried to install a rootkit on my computer. Now that I know about this sort of thing happening at GE I can cross them off my list of potential suppliers too (not a big deal of course because GE don't sell much, perhaps nothing at all, here in Norway).
Sometimes I get they feeling that they should indeed just listen to me. When one needs an argument to convince a colleague that one really should not be using == to compare two floats because of rounding errors or when working in a place currently suffering from blatently ignoring https://www.joelonsoftware.com/2000/04/06/things-you-should-... and experiencing the predictable consequences afterwards I indeed quite often get the feeling that in many places where I could work I actually am the only adult in the room.

To be a bit more practical, though, yes one should listen to others as well because in some cases they might actually have ideas that are good. Also, morally, it kind of is the golden rule that if one expects to be listened to one needs to listen oneself as well. In cases of large places with lots of people I would say that there should be some form of code ownership and hence people and/or smallish teams can decide what to do with the code that they own. One of the most important things that contributes to code quality is not too many changes of code stewardship.
From their website

> Public Knowledge promotes freedom of expression, an open internet, and access to affordable communications tools and creative works. We work to shape policy on behalf of the public interest.

From the article

> "However, platforms shouldn’t hide behind the First Amendment as an excuse to allow hate, misinformation, and abuse to run rampant on their services, particularly when they hold such a dominant position in the marketplace. Doing so distorts what the First Amendment means, and ignores the influence that moderation has on our civic conversations and system of democracy."

Firstly the predicate that Facebook is unmoderated is not true clearly. They do have policies and they do remove things.

If the representative of an organisation claiming to be in persuit of freedom of expression is taking a stance on what can be considered to be said, then it surely can't claim to believe in that fundamental.

The philosophy behind free speech is being distorted widely.

My expectation is that venues like twitter and Facebook simply become such horrible noise machines allowing lunatic to speak on to lunatic that they fall out of use as a source of information.

At the very least news sources should be discouraged from using them as an information source. The BBC are particularly terrible for regurgitating "Jane in Basingstoke is outraged about this non thing" type articles. Not everyone needs to be heard and virtue signifies no authority.

Twitter is already responsible for a great many ills. Much more so than Facebook in the west at least.
I'm 4 days late to this party, but as a teacher, it's not good there either :-)
You can try using invidio.us, it's free from excessive javascript shenanigans and uses the simple html5 player to present videos. It even supports subscriptions, you can import them from regular youtube.
You are oversimplifying the issue, in my opinion. Zoom has R&D office in China. If Chinese authorities come to Zoom with a violation of local law, Zoom has two options. First ignore the request and this means that the company is likely to be banned in China or comply with the request and get blowback in US. This issue is not unique to Zoom and each company makes its own decision. For instance, Google and Facebook fail to comply and are banned in China. But Apple does comply with Chinese laws and there are number of apps that are simply not available in China but are available in US. However, I wouldn't make a judgement that Google is good, but Apple is bad. Nor is this issue limited in China. Same thing applies to EU. EU has passed GDPR laws that all US companies have to comply with if they want to do business in EU. Again, some decided to comply with GDPR, others exited the market. Even in US this issue exists. When the government tells Google that they can't offer their services to Iran or sell to Huawei. Google chose to apply. You can try to make an argument that complying with US government orders is good, but complying with other government orders (EU, China, Brazil) is bad. This may work for you if you are an American, but the rest of the world knows about the Patriot Act, Edward Snowden and NSA. You could also make an argument that complying with any government is bad and the way PRISM is enabled by US tech is terrible. But if US companies start ignoring US laws, no matter how terrible they are, the only right thing to do is to shut the company down. It's called a rule of law. I am writing this not to say that Zoom is good or bad, but to prevent oversimplifying the issue or vilifying specific companies, countries or governments.
> If you want to establish a legal precedent, you can't just go to a court and ask them to. Courts only hear "cases and controversies" -- to establish what the law is, you have to get somebody to sue you.

> The reason this could bankrupt them is mostly because they don't have a lot of money. Their net assets are only a couple million dollars. They have to raise more than that every year just to keep operating.

Are you trying to claim that Internet Archive purposely tried to set a precedent, knowing they don't have enough money to actually do it? That sounds like a pretty damning accusation of gross incompetence.
FastoCloud v1.1.1 have been released
If someone provides a viable definition that does not devolve to a veneer over hard determinism, I'd consider it. You haven't and neither have anyone else.

To #2 the reason to continue mostly as before is because it is what we intuitively feel is fair and that minimises harm. The idea you need to blame someone to do this is a typic religious argument against atheists - we do not need blame to have a feeling for what we consider right and wrong. A belief in determinism shifts those feelings.

It's very simple to reconcile - the only change is that punishment for the sake of punishment rather than to minimise harm is not justified if people have no agency.

To a lot of people that is a belief they come to anyway without a belief in determinism, because of the number of moral systems that includes forgiveness as a central concept.

Consider the prison system in Norway vs US for example. Norways prison system was awful up to the 60s where a reform movement won support for a focus on rehabilitation over punishment.
People who receive money over the internet don't have to live in an expensive location (big cities).
Not really true, old structures are found at least every decade, sometime stops parking construction for a year or two, then the construction resume.
I agree that the examples aren't great. I struggled to come up with terse examples to illustrate the point, but I stand by the general premise of the post.

I'm afraid I can't agree with making variable names as short as possible as a general rule, though.

I think that the length of the variable name should be linked to a) how long it lives for and b) the distance between the declaration and the usage.

For example, I'm personally OK with using 'i' for the index in a 'for' loop, but stand by longer names such as 'allOutstandingOrders' for variables that are used throughout a function, where the declaration isn't within a few lines of the usage.
"My insurance company is apparently in bed with the pharmacy and manufacturer to rip off their own insured customers."

Yes. And so are hospitals and other medical service providers, many of whom are owned by the same companies that own the insurers.
Wondering when researchers will switch from "race to the moon" mode to looking at better optimization techniques instead of just throwing money at the problem.

I know some companies are doing that, but I think looking at AlphaGo or AGZ and making it go faster should be an interesting problem in itself.
I wonder if the code and network weights will ever see the light of day. I wonder what the eventual value proposition of working on this sort of stuff is. I suppose they are just going to try to apply the algorithms to better things.

I've been interested in the application of AlphaZero to chess. It's sad that this many resources were devoted to something which we can't even use to play chess as of now. Leela (the open source reengineer) is really strong, but the crushing results presented in the AlphaZero paper never materialized. And this article just shows how hard they are to replicate.
The goal was never to beat all pros.
https://deepmind.com/blog/article/AlphaStar-Grandmaster-leve...
I have a Zeiss 6x9cm film camera from 1936 that works wonder still.
For tech gizmos, I have a HP 16C (the programmer's one) from 1864 that I still use most days! (I bought a second one about 15 years ago, as I grew terrified it would break down)
Creating a custom CRM to launch KFC into the future of customer-defined service
I think KataGo is stronger than Leela Zero.

https://github.com/lightvector/KataGo
Brownout detection is not a protection against glitching, in general. You need to actually be looking for and have specific fault injection attacks in mind to protect against; generic brownout detection is often bypassable.
This is not a big opinion piece or a report on a grand problem of society. It's about a singular event that happened on Sunday. In fact the BBC did never report on that actual event itself (if their site search works correct at least). But they did write about people trying to bring it to light and labeled them racist trolls. That is not reporting and it's not even "just" omission. It's straight up manipulation. They're doing the exact opposite of what they're supposed to. And they're being paid by the very people they lie to and harming them in the process by massively shifting the perceived reality.
I learnt to carve spoons from a few Swedish guys so I have a lot of love for a simple linseed-oil finish :) Can't get any nice, bright, linseed-oil paint in the UK though, which is a bit of a bummer.

I ended up using stain for this current project as the room called for dark wood, but the only two real-wood options for skirting boards in the UK are pine or oak, which are both light woods, so I opted to stain pine for it.

And thank you! Someone at work mentioned his videos recently and I completely forgot the name.
Read and Write in a local file with Deno
The amount was removed from the submission title, which sucks if you're like me and don't like to visit yet another possibly JS-heavy site and drain your battery.

For others: It's $36M.
Go champions don't learn from zero. They learn from teachers, books, and playing against each other. This knowledge is built over hundreds, or thousands of years.
The problem is, it's not really clear it results in significant security gains.

SEV (a hypothetical version that wasn't broken) would give you encrypted memory and some basic remote attestation protocols.

The point of this is to stop a cloud vendor from peeking into your VM.

But the problem is, none of the software inside your VM is designed to resist attacks by a malicious hypervisor. This isn't just side channel attacks but also so-called Iago attacks. This is where a formerly higher privileged piece of software is trying to break into a lower privileged bit of software by manipulating the API responses.

For SGX it was shown that running a whole standard Linux process inside an enclave and relaying system calls outside (i.e. a similar arrangement to what SEV does) could lead to the process being hacked the moment it did something trivial like call malloc(). The reason was, the software didn't expect the kernel to try and manipulate it via syscall return values because there is no point normally.

In SEV we have the same issue. Hypervisors were previously more privileged than kernels. Therefore kernels and apps aren't designed on the assumption of a malicious hypervisor. It's highly likely that not only side channel attacks but also Iago attacks apply there too.

Now you could say, well, one step at a time, maybe it doesn't matter, better than nothing etc. Sure. All true. At the very least it complicates the attack process and is more likely to generate an audit trail inside the cloud vendor.

But actually Intel had a somewhat comparable solution for a long time called TXT. It lets you start a trusted/measured hypervisor that can then supervise VMs on the box. This is in some ways stronger as you can actually check the hypervisor won't attack the VMs. But it's hardly used because cloud vendors use proprietary hypervisors, and actually the threat model people care about is "malicious cloud vendor trying to break into the VM", not "incremental security improvement of unknown utility".

I suspect Intel will implement encrypted memory for VMs at some point anyway because of the viewpoint you raise here being quite common - "I'll encrypt the RAM for free and then I'm done" although of course it needs tooling integration as well. It's not actually quite for free.

But I guess if this takes off then AMD will start to see a lot of research papers where people break into the encrypted memory space in various clever ways, and of course, you're also vulnerable to any exploits in the software stack on the VM itself. That was the main reason the security community ended up with the SGX type model. When your trusted computing base is an entire virtual machine it doesn't give you much because VMs have so much software in them, they get hacked all the time. The idea of enclaves is you design your app so the bulk of the software stack is untrusted, and only small parts get to directly touch sensitive data.
If you don't like to see the comments hide them in your IDE. Most decent IDES let you set the background and foreground colours based on the code.

i.e. I have comments for type /* */ and // set to be grey on a slighgly darker grey so they are pretty much hidden (as they are useless most of the time).
This comparison is not entirely fair because the human brain also benefits from priors baked in over the entire course of evolution.