Thinking Elixir Podcast

166: Filtering, ordering and pagination via Flop


Listen Later

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!
          ...more
          View all episodesView all episodes
          Download on the App Store

          Thinking Elixir PodcastBy ThinkingElixir.com

          • 4.9
          • 4.9
          • 4.9
          • 4.9
          • 4.9

          4.9

          32 ratings


          More shows like Thinking Elixir Podcast

          View all
          Hanselminutes with Scott Hanselman by Scott Hanselman

          Hanselminutes with Scott Hanselman

          377 Listeners

          Software Engineering Radio - the podcast for professional software developers by se-radio@computer.org

          Software Engineering Radio - the podcast for professional software developers

          272 Listeners

          The Changelog: Software Development, Open Source by Changelog Media

          The Changelog: Software Development, Open Source

          283 Listeners

          Talk Python To Me by Michael Kennedy

          Talk Python To Me

          592 Listeners

          Software Engineering Daily by Software Engineering Daily

          Software Engineering Daily

          625 Listeners

          Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

          Syntax - Tasty Web Development Treats

          983 Listeners

          REWORK by 37signals

          REWORK

          211 Listeners

          CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

          CoRecursive: Coding Stories

          189 Listeners

          Elixir Mix by Charles M Wood

          Elixir Mix

          13 Listeners

          Elixir Wizards by SmartLogic LLC

          Elixir Wizards

          22 Listeners

          The Stack Overflow Podcast by The Stack Overflow Podcast

          The Stack Overflow Podcast

          64 Listeners

          Beam Radio by Lars Wikman

          Beam Radio

          11 Listeners

          Oxide and Friends by Oxide Computer Company

          Oxide and Friends

          47 Listeners

          Elixir Mentor by Jacob Luetzow

          Elixir Mentor

          2 Listeners

          The Pragmatic Engineer by Gergely Orosz

          The Pragmatic Engineer

          52 Listeners