We’ll get to what it is and what it does soon enough, but it is, it exists as a company, where as before it was just a name I used. We might start to we more than we I as a consequence, but for now let me wrap what happened in february.
AI poetry
We started off by adding the Write poems about R packages — verse • tada tada::verse() function to generate praise poetry using ChatGPT through the GitHub - mlverse/chattr chattr 📦.
This was fun, but quickly opened a can of worms, because Write poems about R packages — verse • tada tada::verse() would not work for some packages, because of a bug in GitHub - mlverse/chattr chattr. At least that’s what I initially assumed, and logged an issue for it.
GitHub - mlverse/chattr chattr is not a trivial package, and so I went on a little debugging quest to find out what the problem was, and developed GitHub - tadascience/snitch: 🕵️ Spy on R functions and packages 🕸️ snitch along the way to help with tracing. GitHub - tadascience/snitch: 🕵️ Spy on R functions and packages 🕸️ snitch has helped, but it is still a little clunky, so it will stay unreleased until it is somewhat better, or just sit in the unreleased 📦 graveyard.
turned out the underlying problem was a missed opportunity in Perform HTTP Requests and Process the Responses • httr2 httr2, which was the perfect excuse to dive in, learn about Perform HTTP Requests and Process the Responses • httr2 httr2 and eventually settle with a proposal to add a round= argument to Perform a request and handle data as it streams back — req_perform_stream • httr2 httr2::req_perform_stream(). It has been great working on this with Hadley on the pull request. I sure was easier that we have a lot of experience working together, but I believe we both contributed to the vision and ended up with a simple, nice and extensible way to solve the initial problem. Long story short, when you stream text with Perform a request and handle data as it streams back — req_perform_stream • httr2 httr2::req_perform_stream(), you just do httr2::req_perform_stream(round = "line").
For GitHub - tadascience/valentine: ❤️ Spread the love for R packages with poetry 🌹 valentine we went a different way to engage with ChatGPT and simply use the GitHub - irudnyts/openai: An R package-wrapper around OpenAI API openai package instead of GitHub - mlverse/chattr chattr. That loses sreaming along the way, but that’s fine. Now that Perform a request and handle data as it streams back — req_perform_stream • httr2 httr2::req_perform_stream() is more resilient, we can imagine to contribute a streaming feature to GitHub - irudnyts/openai: An R package-wrapper around OpenAI API openai. Similarly, we might switch to using Gemini and contribute to GitHub - jhk0530/gemini.R: R package to use Google’s gemini via API on R gemini.R or develop a mistral.ai package to use Mistral instead. GitHub - tadascience/valentine: ❤️ Spread the love for R packages with poetry 🌹 valentine was fun to play with.
react
GitHub - tadascience/react: ☢️ Reactivity helper for ‘shiny’ ✨ react is a different beast, it was initially meant as a goofy 📦 but it git some engagement on various socials, so it might have more potential than initially envisionned, or maybe this is just because it’s a Shiny shiny ✨ thing .
link
Because February was a slow month, I ended up with some available bandwidth, and decided to time block feb 23 to learn about and initiate contributions to the pharmaverse. I’m coming to this with extensive experience in a different verse, but because the pharma⬡verse is not a trivial collection of packages, I approached the day by initiating a conversation on the slack to collect ideas on how to best allocate my time. I was lucky enough to get ideas from the community, and I look forward to do more in depth pharma⬡verse work in the future.
However, the day quickly evolved to crafting the Hyperlink Automatic Detection • link link package that is designed to help with automatically generate links to packages and functions in your quarto/Rmarkdown posts, i.e. these links are generated automatically: Hyperlink Automatic Detection • link link and Apply a function (or functions) across multiple columns — across • dplyr dplyr::across(). Kudos to the Syntax Highlighting and Automatic Linking • downlit downlit package that does most of the heavy lifting.
I like that throughout the day, the solution got more and more generic, to the point that Hyperlink Automatic Detection • link link eventually is not pharma⬡verse specific, but rather a general tool to help with blogging … It might be interesting to go further in generality and include the feature automatically in quarto. To be continued.
duckdb
Last month, I started working with cynkra on a duckdb extension 🦆 that will eventually contribute to A DuckDB-Backed Version of dplyr • duckplyr duckplyr. A DuckDB-Backed Version of dplyr • duckplyr duckplyr is a A Grammar of Data Manipulation • dplyr dplyr replacement built natively on top of DBI Package for the DuckDB Database Management System • duckdb duckdb, that’s 😎. I look forward to contribute more to this. If you’re curious about it, the best place is this posit::conf talk from Kirill.
To be continued
That’s a wrap for this wrapup, March will look different for tada ⬢ science, but the dedication to R is intact.