Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
ridiculous_fish
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
11 ms
·
91.
▲
by
ridiculous_fish
4y ago
I think the web is culturally incapable of standardizing GUI elements. The nature of web development is to rebuild from scratch. Standard buttons and menus look so vanilla, let's instead style a div with an onClick handler, let's
92.
▲
by
ridiculous_fish
4y ago
PR author here, these are two great questions. The Joel blog post which you referenced is excellent, and is a major influence on my thinking. Joel identifies "from scratch" rewrites as a major mistake. Don't throw away code!
93.
▲
by
ridiculous_fish
4y ago
DLL Hell comes when you have multiple versions of dynamically linked libraries from third parties. In practice, Swift's dynamic linking exists to support Apple's own first-party libraries which are shipped with the system, so ther
94.
▲
by
ridiculous_fish
4y ago
Apple uses dynamic linking to enable its OSes to evolve. Apple's libraries talk to daemons using IPC protocols such as XPC or MIG; if those libraries were statically linked, the daemons would have to support old protocols forever. And
95.
▲
by
ridiculous_fish
4y ago
Very interesting, TIL, thank you.
96.
▲
by
ridiculous_fish
4y ago
Fascinating. What mutex allows being released from another thread? I believe you they exist, I have just never heard of such a thing.
97.
▲
by
ridiculous_fish
4y ago
I overall like this article and share your admiration for semaphores; however this part ain't so: > there’s not much theoretical benefit to such a binary semaphore over a mutex – in fact, they’re interchangeable Not interchangeable!
98.
▲
by
ridiculous_fish
4y ago
Great tip, I wasn't aware of that crate!
99.
▲
by
ridiculous_fish
4y ago
I agree that e.g. locating .mo files is out of scope for a stdlib, but runtime format strings seems like something the stdlib could do. Because it does not, std::fmt is borderline useless for software which wants to support multiple languag
100.
▲
by
ridiculous_fish
4y ago
That's a depressing answer, that nobody bothers. gettext seems pretty difficult to use in Rust - there's no obvious way to apply a runtime format string "My name is {1}". https://blog.hackeriet.no/rust-an
101.
▲
by
ridiculous_fish
4y ago
How do Rust projects localize their format strings?
102.
▲
by
ridiculous_fish
4y ago
This is such a cool feature on Macs. My iPhone receives the OTP via text message, it gets forwarded to Messages on my Mac, and then desktop Safari offers to enter the code. It all takes less than a second. Do other platforms have this? Hone
103.
▲
by
ridiculous_fish
4y ago
This is a major sticking point for us. Many of our repos are 3rd party, made available to us under different licenses. Some require individuals to be licensed, and so we use ACLs for both read and write access. Some of our source is export-
104.
▲
by
ridiculous_fish
4y ago
How do monorepos work with something like gitlab or github, which expect a CI file in the repo root? My workplace has dozens of repos, and they all have separate CI needs and test suites. Trying to shoehorn them all into a single set of CI
105.
▲
by
ridiculous_fish
4y ago
This is a valid observation. Most NaN-tagging schemes only perform arithmetic once the values are determined to not be NaN, and so avoid any penalty. In this scheme always perform arithmetic on NaNs, so if the uarch imposes a penalty it wil
106.
▲
by
ridiculous_fish
4y ago
With the caveat that syntax is the ultimate bikeshed topic, one (IMO) syntactic wart is the special pattern syntax: 1. "Operators" have different meanings. `1 | 2` and `1..=2` mean something different in patterns than in expressio
107.
▲
by
ridiculous_fish
4y ago
Curious why the author chose not to discuss macros? You encounter them immediately with a Hello World.
108.
▲
by
ridiculous_fish
4y ago
Good article. The simple way to think about this is that overflow occurs when the sign of the addends agree, and the sum has the opposite sign. The bit tricks then write themselves.
109.
▲
by
ridiculous_fish
4y ago
Google contains multitudes. Android, Chrome, and ChromeOS are examples of large Google projects that do not use Perforce and are routinely built locally.
110.
▲
by
ridiculous_fish
4y ago
I frequently implemented this from the other side at Apple. You'd be shocked at how much software enables features based on a `==` OS version check. When the OS bumps its version, the software regresses to some earlier behavior. Lying
111.
▲
by
ridiculous_fish
4y ago
Can't one just remap the zero page?
112.
▲
by
ridiculous_fish
4y ago
JITs do indeed modify already-compiled code. For example, JavaScriptCore has a notion of a "patchable jump." These are jump instructions intended to be modified later. They may initially point to slow paths, and are later patched
113.
▲
by
ridiculous_fish
4y ago
Probably. I would like to see how it's done, build.rs does seem like the most sensible place. Debugging build.rs is painful.
114.
▲
by
ridiculous_fish
4y ago
Part of the answer is that C++ wants to interrogate your system or build root to understand its capabilities. "Call this function if available" or "Access this variable if it exists" are more common in C++ projects, comp
115.
▲
by
ridiculous_fish
4y ago
Branches add control flow which can inhibit other optimizations, such as vectorization. Compare the codegen of these two functions to double the first 64 elements in a u8 slice: https://rust.godbolt.org/z/hccWGv889 The
116.
▲
by
ridiculous_fish
4y ago
IME loops with induction variables (integer indexes) often produces better codegen than with iterators. Compare the these two Rust functions for inverting bits: https://rust.godbolt.org/z/cE4vPdbdY This got improved in
117.
▲
by
ridiculous_fish
4y ago
On Mac I use Mimestream and like it a lot. It’s a native client dedicated to gmail.
118.
▲
by
ridiculous_fish
4y ago
Will do, thanks!
119.
▲
by
ridiculous_fish
4y ago
The article does not say what a MicroVM is. From what I can gather, it's using KVM to virtualize specifically a Linux kernel. In this way, Firecracker is somewhat intermediate between Docker (which shares the host kernel) and Vagrant (
120.
▲
by
ridiculous_fish
4y ago
dead_code is required because Rust compiles each integration test as a separate crate. This causes spurious warnings to be emitted if you want to share code between tests. See https://github.com/rust-lang/rust/issu
More ›