1,767 karma · joined February 5, 2013
The suburbs follow a similar pattern, but appear to be at slightly different angles. I'm not sure if this would explain the even distribution of road orientations.
By day 2, it was clear that they were selling us snake oil, but my customer was paying for my time, so I sit through it to the end. A few engineers in the room were genuinely hooked up by the promise of generating 90% of the code from UML, integration streams, automatic "un-branching" and all that.
I wonder what they spent overall in licensing fees, training and lost productivity? And that's probably a fraction of the long-term damage dealt by this absurd process to a large C++ codebase.
Somewhere, I should still have a "degree" issued by Rational University :-)
Very sad. Android is open source code with an closed development model. Most communication and design work happens behind closed doors, cutting off anyone who doesn't work at Google.
I left 3 years ago for the same reason: I couldn't stand seeing Google continue to decline under Sundar's leadership.
Chrome enables ECH in version 117: https://chromestatus.com/feature/6196703843581952
Firefox enables ECH since version 119: https://www.mozilla.org/en-US/firefox/119.0/releasenotes/
Both implementations require DNS-over-HTTPS to be enabled.
No need to rewrite everything from the ground up: https://github.com/cloudflare/quiche#curl
So not very exciting, unless Qualcomm and Lenovo are planning to release refreshed hardware soon.
Rust requires types to explicitly opt-in to being implicitly copied, while C++ requires you to opt-out by deleting the copy-constructor.
Accidentally copying small structs on the stack is a minor performance problem. Copying an std::box<int> in a hot loop could cause heap fragmentation, lock contention and huge amounts of wasted memory due to heap alignment requirements (32 bytes on 64-bit arches).
Or am I missing something?
{
await using { connection } = getConnection();
// Do stuff with connection
} // Automatically closed!
The object returned by getConnection() is destructured to extract the field named connection and assign it to a local variable with the same name. The containing object presumably continues to exist anonymously so its Symbol.asyncDispose function will still be called when it goes out of scope.Can anyone explain which language rule guarantees this behavior in C# and in TypeScript?
Does this have anything to do with Chrome's new extension API nerfing ad blockers?
[...]
> This is why std::uncaught_exception() has been removed from C++20 and instead, since C++17, we have std::uncaught_exceptions() (plural form) which gives you the number of uncaught exceptions in a given thread.
[...]
> And this solution works in C++17. But it no longer works in C++20, because now we have coroutines.
But I'm sure C++23 will fix exceptions for good. No? Wait, maybe C++26 will...
The composer is Paul Van Der Valk, also known for Hybris.
The Save File dialog had a second soundtrack (played briefly at 3:45).
Now it costs around $300: https://www.tokyomidtown-mc.jp/en/pdf/optional_menu.pdf
On vim, I was using vim-plug, which works fine with neovim too.
At some point I switched to Packer, which is written in Lua and is definitely more powerful. Now I would recommend Lazy instead: https://github.com/folke/lazy.nvim
Yes, it's silly that neovim still doesn't come with built-in plugin management. Installing a plugin should require 0 lines of config.
Initially, I just symlinked my old .vimrc to ~/.config/nvim/init.vim and started adding if sections to configure neovim features while keeping the config backwards-compatible.
Eventually I started rewriting small chunks of it in Lua, and now I'm 100% migrated to init.lua. I think it's a little cleaner this way, but not a life changer. The real power of Lua is for plugin authors.