166: Filtering, ordering and pagination via Flop

Thinking Elixir Podcast - A podcast by ThinkingElixir.com - Tuesdays

Categories:

Most of us have created our own filtering, sorting and pagination code before in one project after the other. Mathias Polligkeit got tired of doing that too and created the flop library to wrap it all into a portable and reusable solution. We talk with Mathias to learn what it can do and are pleased to learn it's surpassed our own solutions. He also created a flop_phoenix package with heex components to help build filter forms and tables. A fun look into an interesting library! Show Notes online - http://podcast.thinkingelixir.com/166 Elixir Community News https://bsky.app/profile/josevalim.bsky.social/post/3k56qd2q2xf2g – A tease about noticing something new. https://hexdocs.pm/elixir/main/GenServer.html – Elixir docs getting diagram support? 1.16.0-dev https://github.com/erlang/otp/issues/7292#issuecomment-1688181562 – Followup on that OTP 26 “overrun stack and heap” bug https://github.com/phoenixframework/dns_cluster – The dns_cluster project was brought under the phoenixframework Github org https://fly.io/phoenix-files/beam-clustering-made-easy/ – Blog post about new Phoenix library dns_cluster https://github.com/elixir-tools/next-ls/releases/tag/v0.10.0 – Next LS v0.10.0 Released https://open-vsx.org/extension/elixir-tools/elixir-tools – Next LS extension is listed on VSCode's open extension repository https://twitter.com/ashframework/status/1692767604622922152 – The Ash Framework announced the new release of a double-entry accounting project https://github.com/ash-project/ash_double_entry https://hexdocs.pm/ash_double_entry/get-started-with-double-entry.html https://thestackcanary.com/understanding-the-elixir-machine-learning-ecosystem/ – Post that connects many ML libraries to their Python counterparts. https://twitter.com/akoutmos/status/1693669295585161394 – Elixir tip on using Elixir as a shell scripting solution https://twitter.com/akoutmos/status/1693322879230672905 – Version 0.5.0 of DenoEx was released. https://github.com/akoutmos/deno_ex https://deno.com/ – Deno project is a "secure by default" Rust-based alternate JavaScript runtime https://twitter.com/PJUllrich/status/1693232219198726620 – Tip on how we can use tags to more cleanly customize tests. https://www.peterullrich.com/exunit-context-tags https://dagger.io/ – Dagger.io is a programmable CI/CD engine that runs your pipelines in containers. https://hex.pm/packages/dagger – Dagger.io now supports Elixir Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at [email protected] Discussion Resources https://github.com/woylie/flop https://github.com/woylie/flop_phoenix https://scoville.jp/ https://en.wikipedia.org/wiki/Scoville_scale https://elixirforum.com/t/flop-filtering-sorting-and-pagination-for-ecto/51750/25 https://hexdocs.pm/flop/Flop.Schema.html https://hexdocs.pm/flop/Flop.Filter.html#t:op/0 https://relay.dev/graphql/connections.htm – Specification used in Flop library for cursor pagination https://hexdocs.pm/flop/Flop.Relay.html – Format the result sets in an Absinthe structure https://hexdocs.pm/flop/Flop.html#with_named_bindings/4 https://slack.engineering/evolving-api-pagination-at-slack/ – Recommended resource on pagination https://hex.pm/packages/quarto – Other library that helps with filtering or pagination https://github.com/drewolson/scrivener – Other library that helps with filtering or pagination https://elixirstream.dev/tips/cfc62b74-3ad9-427e-b9d2-8e8c768f8c57 https://hexdocs.pm/ecto_psql_extras/readme.html#records_rank https://github.com/woylie/flop_phoenix#liveview-streams – flop_phoenix with streams Guest Information https://github.com/woylie/ – on Github https://www.mathiaspolligkeit.com – Blog Find us online Message the show - @ThinkingElixir Message the show on Fediverse - @[email protected] Email the show - [email protected] Mark Ericksen - @brainlid Mark Ericksen on Fediverse - @[email protected] David Bernheisel - @bernheisel David Bernheisel on Fediverse - @[email protected] Cade Ward - @cadebward Cade Ward on Fediverse - @[email protected] Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!