1,544 karma · joined August 14, 2022
Better I or A, to mimick vim's multiple insert after a block selection.
Of course if you already have AutoHotKey running for other reasons, it fits perfectly.
Just last week I was looking for a way to move all the windows from one screen to another in a go. After evaluating many clumsy or over-complicated existing solutions, I asked copilot to write a C program to do it. It had to be minimal and not depend on any runtime framework. A few loops later I had what I wanted without installing third-party tools!
Oh wait...
As a bonus, any operation can be replaced with a lookup into a nxn table.
> Upon freeing an unreachable AllocationRecord, call filc_free on it.
I think the intention was to say: before freeing an unreachable AR, free the memory pointed to by its visible_bytes and invisible_bytes fields.
Personally I can't find any use for bat: I'm a devote user of vim for editing, and it already does all of this, so why not using it to view files as well? It's satisfying to have the same interface, colors and shortcuts whether you're editing or viewing!
> to build something enormous, declare it transformative, and hope nobody asks what it actually computes.
And the corollary:
> [such] approach requires billions of dollars and produces systems that cannot explain themselves.
Yes. And that should be the default behavior: browser buttons should take you through the browser's history. If you keep a in-app state and want the user to navigate through it, you should provide in-app buttons.
Nobody complains that the browser's close button quits the browser instead of the app it's showing, or that the computer's power button shuts down the whole OS and not only the program in the foreground.
Users must be educated. If they have learned that left means "back" and right means "forward", that a star (sometimes a heart) means "remember this for me", and that an underlined checkmark means "download", then understanding the concept of encapsulation shouldn't be too much for them.
h = 5381
while still has data:
h = h * 33 + next_byte()
return h
PS of course if you think the multiplication is overkill, consider that it is nothing more than a shift and an addition.> when you need to support larger deployments
> shipping
> passing it off to someone else
I think we have quite different definition of "minimum requirement", then.
> IC attacks only the rotor settings [...] Once you’ve found the right rotors and positions, you can solve the plugboard separately using frequency analysis.
So two steps: first solve for rotor settings with IC analysis, then solve the plugboard.
But IC analysis can't find the solution, just propose a lot of candidates among which a human can spot the correct one by looking for intelligible German text. And how can you spot intelligible German text if some letters are swapped by the plugboard?
413,793 is 3×3×23×1999.
I don't think this is true. The compiler cannot remove or reorder instructions that have a visible effect.
if (p == 0)
printf("Ready?\n");
*p++;
The printf() can't be omitted.I checked 10 seconds ago. The only models I can order in my country with linux are Pro Max and a Precision workstation.
If I pretend to be located in the US, an XPS 13 from 2024 becomes available at 200$ more than the Windows variant, and no OLED option.
What a weird marketing strategy from Dell...
In the modified C advocated by the author, assignments (including ++ -- += etc.) are not expressions. So no comma, no.
If we ban side effects from expressions, we must change the "for" syntax too, because the third "argument" currently is an expression. It should be a statement instead. Let's see...
for (int i=0; i<n; ++i) // old
for (int i=0; i<n; i+=1;) // new
What about the typical 2-variable loop? for (int i=0,j=n; i<j; ++i,--j) // old
for (int i=0,j=n; i<j; {i+=1;j-=1;}) // maybe?
Or we simply forbid all this and force the increment and decrement in the body: for (int i=0,j=n; i<j; ;) {
...
i+=1;
j-=1;
}
This is throwing the baby out with the bathwater!And finally, if the third argument is a statement, would a break or continue be accepted there as well? A nested for? Sure, these are examples of abusing the syntax, but so is using x and ++x in the same expression.
My conclusion is that some constructs are so powerful that they can both simplify our code and make it unreadable. The choice how to use them is ours.
But I think a language should decide whether white space is significant or not. If it's not, don't add exceptions!
Operators changing meaning when surrounded by spaces in otherwise context-free languages are an abomination!
What a bizarre conclusion to draw! Why don't you believe that whichever distro you choose, it will be way better than what you have now?