Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
sparkie
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
11 ms
·
91.
▲
by
sparkie
1y ago
Elastic tabstops are good taste. Tabs should tabulate. But limited editor support, and some implementations have poor performance. https://nick-gravgaard.com/elastic-tabstops/
92.
▲
by
sparkie
1y ago
The mistake is software which doesn't follow a recognized standard for date/time representation in its filenames. Ie, RFC 3339, ISO8601 or their union/intersection[1] (but preferably just ignore ISO8601 because its overcompli
93.
▲
by
sparkie
1y ago
The reason is often money. Even with visa sponsorship. Perhaps $100k is too much, but ~$5k is too little. The $100k fee basically makes it not about money. It's going to be more expensive to hire a foreign worker - meaning that if th
94.
▲
by
sparkie
1y ago
Become exceptional. Having a degree and expertise isn't sufficient. There needs to be a reason a US company should hire you over a domestic applicant.
95.
▲
by
sparkie
1y ago
Decoding into integers may be faster, but it's kind of missing the point why I suggested VLQs as opposed to EBML's variable length integers - they're not a good fit for string handling. In particular, if we wanted to search f
96.
▲
by
sparkie
1y ago
We can do better than one branch per byte - we can have it per 8-bytes at least. We'd use `vpmovb2m`[1] on a ZMM register (64-bytes at a time), which fills a 64-bit mask register with the MSB of each byte in the vector. Then process th
97.
▲
by
sparkie
1y ago
VLQ/LEB128 are a bit better than the EBML's variable size integers. You test the MSB in the byte - `0` means it's the end of a sequence and the next byte is a new sequence. If the MSB is `1`, to find the start of the sequence
98.
▲
by
sparkie
1y ago
It's not ill intent. The CLA clearly states what the intent is. It says "You give the company permission to relicense your work". The intent is there from the beginning - they want to be able to monetize the work. If you di
99.
▲
by
sparkie
1y ago
There's a need to make money faster than the government & central bank dilute it. Need to fix the money before everything else can be fixed.
100.
▲
by
sparkie
1y ago
The biggest issue is that companies which depend on something like OpenSSL do not do enough to sustain it, leaving its maintainers working often uncompensated, for the benefit of people making far more money. Would it be a rug pull if those
101.
▲
by
sparkie
1y ago
> At present, I don’t know anyone who has seriously used languages like OCaml or Haskell and was happy to return to languages with less sophisticated type systems (though an interesting project can sometimes justify such a technological
102.
▲
by
sparkie
1y ago
> You can compile software for 20 year old CPUs and run that software on a modern CPU. That's testing it on the new CPU, not the old one. > You can run that software inside of qemu. Sure you can. Go ahead. Why should the maintain
103.
▲
by
sparkie
1y ago
It's not only your own software, but also its dependencies. The link above is for glibc, and is specifically addressing incompatibliy issues between different software. Unless you are going to compile your own glibc (for example, doing
104.
▲
by
sparkie
1y ago
OTOH, if software wants to take advantage of modern features, it becomes hell to maintain if you have to have flags for every possible feature supported by CPUID. It's also unreasonable to expect maintainers to package dozens of builds
105.
▲
by
sparkie
1y ago
They're the entire circus.
106.
▲
by
sparkie
1y ago
> So, if I use 0x00450000 I can swap -inf.0 and +inf.0 without modifying any other value? Yeah, you got it. See test: https://ce.billsun.dev/#g:!((g:!((g:!((h:codeEditor,i:(filen... If you are going to implement somethin
107.
▲
by
sparkie
1y ago
Indeed. Even when you see the hidden unicode it's still not obvious what's going on. The "salmon" string is mostly unicode TAG characters[1] which contains the printed string followed by 2 En Quad[2], which not so obviou
108.
▲
by
sparkie
1y ago
I'm not sure you can avoid the check, but you can avoid a branch. An AVX-512 extension has a `vfixupimm` instruction[1] which can adjust special floating point values. You could use this to adjust all zeroes to -0 but leave any non-zer
109.
▲
by
sparkie
1y ago
It depends on the FP rounding mode. If rounding mode is FE_TOWARDZERO/FE_UPWARD/FE_TONEAREST then the case you gave is the only one I'm aware of. If rounding mode is FE_DOWNWARD (towards negative infinity) then other calculat
110.
▲
by
sparkie
1y ago
PEGs are closely related to recursive descent, and have some of the same problems. A PEG is always unambiguous because it picks the first option - but whether that was the intended parse is not necessarily straightforward. In practice the
111.
▲
by
sparkie
1y ago
If the templates are monomorphized, each instantiation of a templated function will have a different address. To acquire the address of any given instantiation we need a symbol in the object file.
112.
▲
by
sparkie
1y ago
I don't think we can get away with just using the C ABI - or even if we did, we would need a standardized name-mangling scheme, and then any language which consumes the ABI would need to be aware of this name-mangling scheme, so it wou
113.
▲
by
sparkie
1y ago
The biggest issue is the ABI for C - it's the lingua-franca of language interoperability and can't really be changed - so whatever approach is taken it needs to be fully compatible with the existing ABI. `_Generic` is certainly fl
114.
▲
by
sparkie
1y ago
An idea I had was to implement a FUSE filesystem for includes, so instead of the separate `#define type_argument` (and `#undef type_argument` that would need to follow the #include), we could stick the type argument in the included filename
115.
▲
by
sparkie
1y ago
There's refinement types , which are less general than dependant types, but sufficient to provide ranges, and simpler to implement because the type only needs to be associated with a predicate.
116.
▲
by
sparkie
1y ago
In F#, which has measure types, the types are checked at compile time but erased at runtime, so they have no additional runtime cost. Measures are a kind of painted type . [<Measure>] type degC; [<Measure>] type K;
117.
▲
by
sparkie
1y ago
Arguably, you can get rid of "primitive types" entirely. xtc-lang's "Turtles type system" does so, where all the built-in types are defined in the standard library, where the definitions are infinitely recursive, bu
118.
▲
by
sparkie
1y ago
Well, "newtype pattern" is itself a reinvention of a decades old concept. Presumably "newtype pattern" gets its name from the `newtype` keyword in Haskell, which was introduced in Haskell 1.3 (1996). To the best of my kn
119.
▲
by
sparkie
1y ago
They were already called "painted types" by same the inventor of Hungarian notation. Simonyi used this term in his PhD thesis, Meta-programming , in 1976! (Published 1977). Meta-programming also introduced a notation which was
120.
▲
by
sparkie
1y ago
Because those other ecosystems assume that someone has already done the work on the base system and libraries that they don't have to worry about them, and can focus purely on their own little islands.
More ›