> he had spent the entire weekend trying and failing to prove it. I, on the other hand, had put all my energy into finding a counterexample and had one within an hour.
For a more extreme (although somewhat inverted) version of this, see Zeeman. He spent years trying to find a knotted sphere in a 5D space. Then realised this was impossible and got a proof for it in a few hours. [1]
> Another lesson that Americans have already learned is the peril of excessive financialization of the economy
Don't mean to be blunt, but when did that happen? How has a country where you can finance your burrito [1] "learned the perils of excessive financialization"?
Also, a lot of this (especially the slower recovery after 2008) reads more as the perils of being the periphery of an empire vs being the core.
Question from someone trying to get better at Go: _before_ going all in with unsafe pointer operations, would it make sense to write a function harness & profile it with/without the -B flag to determine the actual impact of bounds check?
Obviously. You also need to profile to make sure this is actually a hit spot, deploying unsafe to remove bounds checks which account for ~0% of runtime is a waste of effort.
And as the essay mentions there are also “hints” you can give the compiler to fold bounds checks which may be sufficient.
Oh right so this is for the case where you say "I have given you an exactly known length of data to buzz round a million times, you don't needs to bounds check every time"?
Like, I have a hardcoded 1024-byte buffer, my loop is hardcoded so its index increases modulo 1024, it can never run off the end any more than you can overtake your own bike chain?
better at Go to ship apps — none of that needed. actually opposite. the less complexity and low level details you hardcode yourself, the better. chances are, this low-level tech debt will bite you back when you have no time to deal with it. keep it simple.
better at Go to work with internals of Go/compilers/runtime — yes, but do you plan to ship one? or why it is needed at all? or do you work at Go core at Google?
Better at Go for automated reasoning tools, this means quite a lot of array lookups within tight loops. I asked because I noticed some AI agents quickly want to jump on the "eliminate all bounds checks" wagon as soon as the low-hanging optimization fruits have been picked, and it takes some hard data to put some sense into them. My question really was: is this kind of preliminary profiling enough, are there other pitfalls of arrays/slices in Go I am missing, etc.
> probably you do not need to do any of that.
Indeed, I find that at least in my case, on a pretty average Intel machine these checks add very little overhead, especially compared to the benefits. I do not really understand how the examples in the blog post can get 100% (1st one) or even 10% (2nd one) faster.
(And yeah, I know that the obvious solution is to develop these tools in C/C++: I am just exploring the capabilities of Go in that space).
My guess is the 100% case is one of those situations where the benchmark is almost entirely measuring the tiny function itself. If half the instructions are bounds checks and branches, removing them can easily double throughput in a microbenchmark. I'd be curious what happens once that function is part of a larger pipeline where memory access or other work dominates.
Sure, but those were likely bugs in the compiler's codebase that in principle could be isolated and fixed. With an LLM there is no bug and there is no fixing procedure: all outcomes are context-driven and (more or less) nondeterministic by design. I don't mean this in a dismissive way, but there is clearly a difference there.
Oof that's not a good look. You can trivially avoid this by just prefixing all variable names with a salt. By the way this (or a variant thereof) is called "avoiding unwanted name capture" if you want to sound all sophisticated :)
I think maybe the idea of all these transpilers is to keep the generated code readable and as close to the original code as possible. Mangling names into unreadable garbage is not difficult, but that would also make the the transpiler act more like an obfuscator, which is probably what the authors want to avoid.
Protobuf has similar problem: whatever names you use for your proto messages should be translated to the target language as is, and with multiple target languages, chances are that you'll hit a keyword in one of them; each language plugin should figure out how to resolve this.
> it's more of a problem that it's so heavily dominated by US politics.
I agree the default Discovery feed is not great, but you can just switch to a different feed like For You or the recent Eurosky version of it, called 'fu'. It vastly improves the experience.
and only have one feed? forgive me if I understand incorrectly but I'll take an open market of thousands of feeds and easy tooling to make my own that can pull from the whole network over just one local feed controlled by a server admin
What about a "fake push" that does not leak message contents, sender etc.? Fuzz the time the push notification is sent by a random amount of time and you have something plausibly private given the constraints?
Briar is designed to work over 1) tor, 2) ad-hoc wifi, 3) bluetooth. None of those are going to be conducive to sending push notifications through Apple's servers.
You're still dependent on Apple continuing to allow such a use.
If the goal is messaging that avoids government spying or censorship its a lost cause - the government would simply compel Apple to pull the app in their jurisdiction.
That still exposes some metadata. Depending on your threat model, leaking the timing may or may not be a problem.
Also, how do you avoid leaking the sender? You can avoid giving Apple that information by routing the notification through a server, but then that server would know the sender and recipient.
Is this the old "breakdown of the bicameral mind" theory? I don't know. I think that tin trade routes breaking down + rise of iron-wielding civilisations are more plausible.
Yes. Civilizations relying on tin were basically quite vulnerable because tin is uncommon [1]. The coincidence between late bronze age collapse and the transition to iron age seems to be explained by the fact that once the disorganization no longer allows tin trade, makers turn to the second choice, iron.
Iron making was known during bronze age, but it was technically more challenging that tin+copper because it requires higher temperatures.
It's amusing to note that it lead to the development of the iron/steel making techniques, so much so that once the tin "was back", steel was cheaper, more reliable (from the logistics perspective) and better.
It looks very much like it: Julian James, 'The Origin of Consciousness in the Breakdown of the Bicameral Mind' (see [1]), which influenced Neal Stephenson's writing of Snow Crash.
Scott Alexander wrote a critique of it beginning "Julian Jaynes’ The Origin Of Consciousness In The Breakdown Of The Bicameral Mind is a brilliant book, with only two minor flaws. First, that it purports to explains the origin of consciousness. And second, that it posits a breakdown of the bicameral mind. I think it’s possible to route around these flaws while keeping the thesis otherwise intact..." [2]. A response (which I have not yet read) can be found here [3].
The Council must go at some point. It is a "legislative" body... composed of members of the _executive_ branch of the individual countries. Granted, that's not the only problem with EU governance, but it is a rather glaring anomaly in terms of transparency and accountability.
Furthermore, at least in the case of Italy & other parliamentary systems, there's something like 3 levels of indirection between the people and their "representative" in the Council:
People elect members of the Parliament -> MPs decide who is the Prime Minister -> PM decides who sits in the Council
We should likely just replace it with either a "EU Senate", where each country elects the same number of senators, _or_ a chamber with truly European elections (as in, every EU citizen may vote for any candidate, regardless of their nation). But the latter option seems still out of reach as of today.
How are we going to change it? They are simply going to pass a second-reading on a proposal to bring it back and use the same trick over and over again. All it takes is for one person to be "sick" at home for them to get it their way.
The EU voters have practically gifted their future to a bunch of technocrats. Over time (decades), it will get worse too, as inevitably power corrupts them more and more.
The EU is simply never going to represent the EU voters when it goes against their agenda. Want proof? They just did it.
"The EU" is a loose term. At least in _some_ cases (such as this one), the Parliament has shown more attention to the voters. I'll concede that the deck is stacked against it, but this reflects a common trend in the West of overpowering the executive branch at the expense of the representative bodies.
Why not just have two bodies like every other parliamentary system? Europeans elect an MP and each member state elects a Senator. Then the majority party in the Parliament appoints a Prime Minister, who can appoint a cabinet. Nobody is more than two steps away from an elected position.
That makes perfect sense indeed, although personally I'd prefer two senators per state. But since the EU as a political union is an afterthought of an economic union, it's full of loose ends like this. Also, national governments will be very reluctant to give up this kind of power.
Re: making things about me (but also kind of related), I am working on a project that requires sending encrypted telemetry data from a Crazyflie drone (so, STM32) and it's such a fun experience. Each telemetry payload is just 26B so I had to get creative, write down packet diagrams and then make it work in C. An AI agent helps a bit with some stuff but you're mostly on your own.
In general I highly recommend going the embedded/IoT way if you look for challenges and constraints.
For a more extreme (although somewhat inverted) version of this, see Zeeman. He spent years trying to find a knotted sphere in a 5D space. Then realised this was impossible and got a proof for it in a few hours. [1]
[1] https://ima.org.uk/28009/sir-erik-christopher-zeeman-the-mat...
reply