HN user

glittershark

573 karma

https://www.gws.fyi

[ my public key: https://keybase.io/glittershark; my proof: https://keybase.io/glittershark/sigs/aBKOsRJhj4YpNggP7P3ctzSb_98lXWsJqIoxJrB1Yoo ]

Posts8
Comments47
View on HN

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.

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.

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.

Saved Replies 10 years ago

They really have been on a roll with the new features since the Dear Github letter happened

Maybe 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.

Hit Charade 11 years ago

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

Go HTTP2 demo 11 years ago

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?

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.