Eric Fredine

Eric Fredine

@fredine.bsky.social

Principal engineer writing code for fun and profit. Lapsed photographer. Husband. Father. Aspiring fly fisher.

253 followers787 following142 posts

The best abstractions tend to find new and unexpected uses.

Armin Ronacher@mitsuhiko.at

Maybe template engines are just universally useful but I find it funny how Jinja, that I originally wrote for rendering HTML first survived for infrastructure scripting (YAML generation) after react killed most server uses, and now it's sitting well established in LLM land.

This is the way

Kirsten Lum@machsci.bsky.social

The #1 skill for delivering ML models at an eye watering pace is setting performance goals. The goal is not to build the best model. The goal is to build a model that beats the status quo, and get it in production as fast as you can. It works like this:

Eric Fredine reposted

been wondering why software transactional memory never really took off on one hand, when contention is low, you can just use a big lock and everything works out when contention is high, well, stm will have performance cliffs that are hard to understand, predict, or prevent

Eric Fredine reposted

Zero reward for the white supremacist killer who murdered a teen in Manhattan the same day. Yeremi Colino does not matter to these people.

Eric Fredine reposted

Hey, for anyone processing the Bluesky #firehose, here are a couple open-source libraries you might want to look at. They both give you a thing you can push "patterns" at and then feed JSON blobs and it tells you which patterns matched. Why is this interesting?

Eric Fredine reposted

S3 gets *native* Iceberg support. 🤯 From the AWS blog: aws.amazon.com/blogs/aws/ne... We knew something like this was coming (bsky.app/profile/bene...), but it's an even deeper integration than I expected.

aws.amazon.comNew Amazon S3 Tables: Storage optimized for analytics workloads | Amazon Web ServicesAmazon S3 Tables optimize tabular data storage (like transactions and sensor readings) in Apache Iceberg, enabling high-performance, low-cost queries using Athena, EMR, and Spark.
Nikhil Benesch@benesch.bsky.social

Something interesting is brewing in Iceberg-on-S3 land. 👀 lists.apache.org/thread/v7x65... cc @eatonphil.bsky.social

Eric Fredine reposted

I recently read this interesting article, "These languages are accumulating", about how different PLs generalize partial sums ([1, 4, 9] → [1, 5, 14]). Python has `itertools.accumulate`, Haskell has `scanl`, APL has the "outstanding" `\`. Some thoughts on this: jcarroll.com.au/2024/11/28/t...

jcarroll.com.auThese Languages are AccumulatingI keep saying that the more programming languages you know, the more you will understand all the others you know - I’m now at the point where I want to solve every problem I see in a handful of differ...

The paper describing why it’s so fast is a good read: onlinelibrary.wiley.com/doi/10.1002/...

onlinelibrary.wiley.comParsing millions of URLs per secondURLs are fundamental elements of web applications. By applying vector algorithms, we built a fast standard-compliant C++ implementation. Our parser uses three times fewer instructions than competing ...
Yagiz Nizipli@yagiznizipli.com

For a simplistic benchmark parsing on URLs from BBC, Ada is: > 4.6x faster than Rust's URL crate > 8.36x faster than cURL And, validating a URL is valid or not: > 6.59x faster than Rust's URL crate > 11.98x faster than cURL All of the benchmarks I've ran are available github.com/ada-url/ada/...

Best explanation of pivot tables ever - a shorter and fatter group by that gives you data you can graph.

Greg Gates@gregat.es

I used to have trouble with pivot tables. Eventually I came to understand that pivot is just shorter, fatter group by — explained at greater length here: gregat.es/pivot-shorte...

Lots of good responses - get in there and help out.

metame メタミ@metameeee.bsky.social

So what's everyone's favorite production-ready Rust crates for: * logging * err handling * observability/telemetry/metrics integrations * sql * anything else I'm missing for basic building blocks of a "backend" (not necessarily web) application #rust #rustlang (we'll see if these matter)

Eric Fredine reposted

Async in Rust doesn't even meet the critical criteria for the coloring problem in Bob Nystrom's original post: 🧵

david barsky@davidbarsky.com

i want people who get riled up about "function colors" to tell me whether they view the difference between `fn foo() -> String` and `fn foo() -> Result<String, Error>` to also be an example of problematic function coloring

This seems worth tracking - especially the Postgres plugin. Also a testament to the power of SQL.

Chris@chris.blue

This does make me wonder: are we on the cusp of many, many IVM implementations? If so, gives me strong vector search vibes. Useful, but, "is this a feature or a product," uneasiness.

This is an interesting use case and introduced me to a bunch of new features.

Jacob Matson@matsonj.com

Speaking of catalogs, my colleague @mehdio.com just wrote about using DuckDB as a portable catalog. This reminds me of sending around excel files (positive connotation) 😂 motherduck.com/blog/from-da...

Fun with DuckDB

Jacob Matson@matsonj.com

querying my bsky feed with @duckdb.org h/t @pedram.lol for doing something similar with the other site (1) get your user info: ``` create or replace table user_info as (select * from read_json_auto('https://public.api.bsky.app/xrpc/app.bsky.actor.getProfile?actor=matsonj.bsky.social')); ```

So in Rust Box::new($expr) de-sugars to something like: let tmp = $expr; let p = alloc(Layout::new::<typeof!(tmp)>()); p.write(tmp); p I suppose it’s obvious it would need to be like this but also blows my mind and makes me realize I didn’t really understand what was happening.

Eric Fredine reposted

So I have this theory that DataFusion, despite being a SQL engine, will actually enable a new breed of data systems to create non-SQL languages for working with data. Here's the idea...🧵

Hyperlight is a library to execute functions as fast as possible while isolating them within a VM. Developers can use it to add server-less customizations to their application that are able to securely run untrusted code. Hyperlight is able to create new VMs in one to two milliseconds.

Sonia Cuff@soniacuff.com

Hypervisor isolation is great for security, but not known for fast cold starts. Meet Hyperlight - an open source Rust library that can create new VMs in one to two milliseconds. opensource.microsoft.com/blog/2024/11...

Eric Fredine reposted

It’s so strange that (by bad analogy with natural language) people organize PLs genealogically. PLs are designed tools, their designs are influenced by prior designs, but they did not *evolve* from prior languages.

This does look interesting. Compiler written in TypeScript for a subset of TypeScript emitting Arm assembly. Those all seem like very accessible choices.

This book is reeeeeally good. Also the cover art is so cute you could buy it just for that alone

Eric Fredine reposted

Reminder that we can code and this client is Open Source 👀

Brandon Roberts@brandonroberts.dev

Running the Bluesky web app locally took longer to clone than to get up and running. I consider that a win. Now I'm just messing around with the UI for starter packs 👀

Interesting thread and promising that it’s developing here

James Munns@jamesmunns.com

I need *one* feature (the ability to unsafely create enums in-place with a "set discriminant" function) in Rust before I think I could make this happen, for postcard at least. Honestly though, I dunno how feasible doing another serde is. The need for trait impls in foreign crates is so high.

This one is very good (for me anyway)

Chris@chris.blue

I made an infra engineer starter pack. Folks posting about databases, stream processing, durable execution, orchestrators, service meshes, and more. go.bsky.app/SCZe42X

When I see static I think global variable because that’s how it was used in C and many languages that followed it. But that’s NOT what it means when used as ‘static lifetime in Rust. See also github.com/pretzelhamme...

github.comgithub.com
Eric Fredine@fredine.bsky.social

I like this explanation of the ‘static lifetime. Lifetimes don't apply to types that don't borrow anything. So T: 'static will allow a type like String. It's not because String lives for as long as 'static but because it's not borrowing from any scope, so there's no lifetime limiting its usage.

I like this explanation of the ‘static lifetime. Lifetimes don't apply to types that don't borrow anything. So T: 'static will allow a type like String. It's not because String lives for as long as 'static but because it's not borrowing from any scope, so there's no lifetime limiting its usage.

In practice + 'static just means that temporary references are forbidden. It doesn't want things with a static lifetime. It wants to exclude temporary references, and these happen to always have less-than-static lifetime. From users.rust-lang.org/t/static-lif...

users.rust-lang.org'static lifetime with owned object?Lifetimes don't apply to types that don't borrow anything. This makes self-contained types appear to satisfy any lifetime, but in fact they ignore all lifetimes. T: 'static will allow a type like Str...

There is a lot of innovation happening in the Postgres eco system and it seems to compose? For example I suspect you could choose Hasura instead of Supabase if that’s your preference.

david@davidsh.bsky.social

The best part is it just plugs into any postgres instance with logical WAL enabled (e.g. supabase). You just turn the zero server on, point it at your existing db, and you've got this incredibly simple reactive ORM thingy with optimistic updates and local caching built in.

Eric Fredine reposted

I've created a starter pack for all databases official accounts on Bluesky. Feel free to follow. If you notice any databases missing or accounts that aren't official, please leave me a message. go.bsky.app/Nd8hieE