it looks like there's a recording linked at the end of the post
HN user
glittershark
https://www.gws.fyi
[ my public key: https://keybase.io/glittershark; my proof: https://keybase.io/glittershark/sigs/aBKOsRJhj4YpNggP7P3ctzSb_98lXWsJqIoxJrB1Yoo ]
there are plenty of people with commit bits (me included) who don't reside in Russia, and would (I hope) be pretty alert to the Russian state coercing tazjin (the only committer currently residing in Russia) into introducing some form of backdoor.
The benchmarking harness that the post uses is based on criterion
a 10% drop in performance with bounds checks removed, mind you - so if anything the bounds checks are improving performance.
there's a cheeky link to idris's vector type in the second paragraph: https://www.idris-lang.org/docs/idris2/current/base_docs/doc... which accomplishes just that
We've thought about that, actually! We have an experimental mode where multiple copies of the same query can be created (actually just multiple copies of the leaf node in the dataflow graph, so intermediate state is reused) with different subsets of keys materialized - the idea is then that these separate readers would be run on different regions, so eg the reader in the EU region gets keys for EU users, and the reader in the NA region gets keys for NA users.
the remaining 10% of the 90%-off free lunch is pretty much just eventual consistency - it can occasionally be the case that you write something to the DB, and an immediate subsequent write doesn't see it. That said, there are escape-hatches there (we'll proxy queries that happen inside of a transaction to the upstream mysql/postgresql database, and there's an experimental implementation of opt-in Read-Your-Writes consistency), and I'd wager that the vast majority of "traditional" web applications can tolerate slightly stale reads.
Our official docs also have an aptly-titled: "what's the catch?" section: https://docs.readyset.io/concepts/overview#whats-the-catch
yeah, I picked Box mostly as a pedagogical instance of the identity functor that already exists in the stdlib - in the real world you'd definitely want `struct Identity<F>(F)` instead.
that seems like something that would only really work with a type system that's as structural as TS (vs rust, which is very nominal)
yes! once you use it you start wanting it everywhere, which is a big part of why I wish I could do it in Rust
I think it probably falls more into the category of removing a restriction rather than a new feature, but I'm still waiting on HKTs - not for traits (as a former die-hard haskeller, I have been gradually converted to the side of "rust doesn't need a Monad trait") but for data types. There's a design pattern in haskell called "Higher-Kinded-Data"[0] where you parametrize a datatype on a type-constructor, and use that to generically define either partial or total versions of that data type- something like (in rust syntax):
struct Person<F> {
pub name: F<String>,
pub age: F<u32>,
}
where you can then have `Person<Option>` be a person that may or may not have all fields filled, and `Person<Box>` be a person with all fields definitely filled. This is something I find myself reaching for surprisingly frequently when writing rust, and I feel like it's a missed benefit of implementing higher-kinded types.[0] https://reasonablypolymorphic.com/blog/higher-kinded-data/
All that said, I'm really excited to have const generics land! Props to all the amazing work by withoutboats and the entire rust team.
Pretty sure this paper describes what they're doing now: https://research.fb.com/publications/flighttracker-consisten...
Not a lawyer (ironically) but afaik there are all sorts of laws governing an attorney-client relationship, and it's possible to implicitly enter into such a relationship by giving something resembling legal advice.
Or you could just call it what it is: a monad
Having a custom plugin architecture for this is a total dealbreaker. We already have statsd, why not just use that?
They really have been on a roll with the new features since the Dear Github letter happened
That's exactly how Haskell's IO monad works (albeit a little simplified)
Haskell does this.
Even beyond that is:
var foo *bar
foo.Baz()
Accidentally dereferencing a null pointer in Go is dangerously easyMaybe I'm mistaken about this, but from the screencast it looks like this gives you a single text prompt for editing commit messages, rather than a proper text editor. Not only is that a deal breaker for me, it really concerns me that people are going to start using tools like these that encourage you to write horrible (read: one incredibly long line) commit messages.
The refrain that music in its entirety has done the same cut and paste thing as pop music in the last 25 years is really frustrating to me. There's tons of absolutely brilliant, innovative musicians out there. Sure it's not on the radio, but that doesn't mean for a second that it doesn't exist. Off the top of my head there are artists like Flying Lotus, Beck, Autechre, hell even artists more in the realm of accessible pop like Jamie XX who are writing and producing all their own music and it's all relentlessly interesting and innovative
For those of us outside the Bay and not looking to relocate, the ability to explicitly filter by location would be nice.
I bet this is an absolute nightmare to step through with gdb
I've got
- ridiculous.website
- ideafora.website
Referring to women as "females" probably won't help, either
Reminds me of this (absolutely spectacular) talk from 2009 by Rich Hickey: http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hic...
The comparison there had me literally jumping up and down in my seat.
I wonder if that's related to the frequent full-on outages (rather than just the standard sardine-tinning); last Monday evening the L was out completely due to a cracked rail - maybe the added weight of people on the train creates more stress on the structure?
As someone who commutes on the L train daily, I was really disappointed to see that this was actually a metaphor. I want a literal better train to Brooklyn!
This is totally out of my domain so forgive me if I'm completely wrong here, but my guess is that for such performance-critical, heavily-optimized things as Redis the garbage collector and runtime overhead of Go are too large.