by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Javier Luraschi
    @javierluraschi
    yes, I completely agree.
    Everything is under host...
    Michael Kalygin
    @mkalygin

    hopefully you are not working on pins.js today to avoid ugly merge conflicts

    Nah, I planned to work on pins tomorrow or on Friday, depending on the work load.

    Javier Luraschi
    @javierluraschi
    Currently the overried is based on callbacks, see
    So for instance, R and Pytthon should only implement those. Same for JavaScript, that’s the only folder that should have system callbacks.
    Michael Kalygin
    @mkalygin
    I’d be curious to see how it’s going to look line on the R and Python sides.
    Javier Luraschi
    @javierluraschi
    We would do something like this:
    Currently only adding support for getOption, hoping I can make some progress today with other callbacks.
    Also, the callbacks need to be moveed to be defined in the python codebase, not the pytest codebase.
    Michael Kalygin
    @mkalygin
    Oh, nice. That makes sense.
    I’m glad we have less and less of unknowns. :)
    Javier Luraschi
    @javierluraschi
    ^_^
    Michael Kalygin
    @mkalygin
    Hi @javierluraschi! We have some spare time tomorrow morning. What do you think we can do?
    iainmwallace
    @iainmwallace
    Quick RStudio Connect + Pins question - if I use a pin in an app, is the cache available across sessions, or does it have to be re-downloaded every time because the temporary location changes? I expect it is global available forever but just wanted to confirm. Thanks!
    Javier Luraschi
    @javierluraschi
    It’s available across sessions.
    @mkalygin it’s look at fixing pin(), there is an examples folder with a JavaScript only app, we are getting close to having pin work but not quite. I can work in the Python wrapper to not overlap, just let me know what you are working on to satay away from that :)
    Javier Luraschi
    @javierluraschi
    @mkalygin actually, also helping with the website/logo would be awesome! I have no design skills and I’m outdated with static websites tech, but I think you and your company would be able to build something amazing! I’m thinking we get the domain pinsjs.org or something like that once we have all working!
    Michael Kalygin
    @mkalygin
    @javierluraschi we can continue porting pins.js methods. There are a lot of NYI there. We’ll do this tomorrow and let you know about the progress your morning time.
    Re site, sure, we can do that. Just give me some list of things you think we should do on the site.
    Michael Kalygin
    @mkalygin
    Today we’ve started looking at the code. Haven’t done much at this point, we were mostly reading and understanding how it works. We’ll start migrating code on the weekend.
    Javier Luraschi
    @javierluraschi
    @mkalygin the website should looks like this: https://pins.rstudio.com/
    However, we currently autogenerate the docs from comments, would be nice to keep that. I’m not sure how we would do that from JavaScript, but I’m sure there is some cool frramework to do that.
    Would be awesome to also have live-examples, I’ve seen that possible in some other websites, but haven’t looked into how to do that.
    It should probably be a subset, but I’d start a landing page with the basic use case, basically pin(), pinGet(), pinFind(), pinRemove() and also the auto-generated function references.
    victorwei1122
    @victorwei1122
    Hi Guys, I am currently using Pins on RSconnect to do time-consuming transformation before I load the data in on my Shiny App. I have a scheduled rmd to generate the pin every 3 minutes. The data right now is around 500 MB. I do found that the processing time to register and get the pin the the App is not very stable. Usually as I first tried Pins package, it took around 5 seconds to load everything. But since yesterday, it took really long to register and pin get. This morning as I tried, it shows, from microbenchmark, that the max time is 94 seconds and mean is around 11 seconds. Do you guys know why this is happening? Also could you guys tell me about the scalability of the Pins like how much data it could take as maximum? Thank you very much!
    Javier Luraschi
    @javierluraschi
    RSconnect is versioned by default which means each pin is stored multiple times. Is it perehaps possible that you are running out of space? You might want to consider setting a limit for BundleRetentionLimit, see https://docs.rstudio.com/connect/1.5.4/admin/appendix-configuration.html
    victorwei1122
    @victorwei1122
    @javierluraschi Thank you very much for responding to me. You are actually correct with the versioning which consumed 500GB of memory. Do you know if there is another limit that I could set to just limit the bundle number for one specific application on rstudio connect?
    Javier Luraschi
    @javierluraschi
    I don’t believe is currently possible. One workaround would be to do pin_remove() before pin() to avoid versioning. I can also implmenet this as a feature request in the comming days (hopefully), the idea would be to support registering RSC board with versions = FALSE which would do behinnd the scenes a delete/re-create operation intead of updating a version. Tracking this work with rstudio/pins#245
    victorwei1122
    @victorwei1122
    @javierluraschi Thank you very much for reply. Currently, what I ended up doing is to sending/curl the DELETE requests to that specific pin on Rstudio Connect to delete all the other older bundles and leave only the active/newest bundle of the pin. But would be nice to have options like versions = FALSE as the size of the data escalated in the future. Thank you very much for the help :).
    Javier Luraschi
    @javierluraschi
    @victorwei1122 good news, there is an existing API we can reuse in RStudio Connect to implement the versions=FALSE feature and perhaps also something like versions=5 to keep the last 5 versions. Will try to work on this by end of week.
    Michael Kalygin
    @mkalygin

    Hi @javierluraschi! I’ve been very busy with the new duties lately. Thanks again for the opportunity!

    We investigated options for site & docs generation. There are a couple of candidates. But before we propose a solution, could you clarify what do you mean by “live-examples”? Do you mean inline playgrounds where you can change code and see how it works?

    Javier Luraschi
    @javierluraschi
    Right, inline playgrounds! — I’ve been also distracted witth other projects but was able to make some progress.
    There arer a few working examples if you wannan caatch up with the code: https://github.com/mlverse/pinsjs/tree/master/examples
    Michael Kalygin
    @mkalygin
    yeah, I keep an eye on your progress, but it’s too much of new stuff going on for me right now :)
    Javier Luraschi
    @javierluraschi
    No worries!
    Regarding websites, I recently learned about docsify, but maybe hat framework is too simplistic for pins.
    Michael Kalygin
    @mkalygin
    So the requirement to be able to embed these examples into the documentation page, right?
    Javier Luraschi
    @javierluraschi
    I think the requirement is something modern-looking for a modern web framework. I think many web framewors (like svelte) come with playgrounds, but really the requirement is about having a modern websited for this framework.
    I tried docsify for this (https://github.com/mlverse/pagedtablejs) project and was OK, but not sure that’s the best cchoicec for bigger projects like pins.
    Michael Kalygin
    @mkalygin

    Last one I found was https://documentation.js.org. Still investigating its features. But Mapbox is using it, which makes me think that it covers a lot of use cases.

    https://docs.mapbox.com/mapbox-gl-js/api/

    They also have Examples section.
    They’re not embeded playgrounds, but you can edit examples in Codepen and JSFiddle.
    Javier Luraschi
    @javierluraschi
    Oh nice! My first reaacction for documentation.js was “this looks boring”, which is finne for reference maaterials. But the mapbox example looks great! So my guess is that there is some custumization/theminng needed on top of documentation.js to really make it look great.
    Yeah, I think edit in JSFiffle is good enough!
    Michael Kalygin
    @mkalygin

    Hi @javierluraschi! We tried many existing documentation solutions. And I think that Docusaurus is the most powerful out of all of them and suits the best for our needs.

    https://v2.docusaurus.io/showcase

    There is also v1, but I think we can go with v2, despite on the fact that it’s still in alpha. In the end it’s just a documentation generator. We can also go with v1, I think it’s also fine.

    Some of the features I like about it:

    1. Modern design. Even default theme looks solid to me.
    2. Simple pages can be created with Markdown.
    3. It supports plugins. I.e. we can create a plugin for live examples (or use an existing one).
    4. You can embed custom components in Markdown. They use MDX templates, which allows to embed React components into it. I don’t think we need it, but it gives us more flexibility.
    5. Search functionality out of the box.
    6. Supports versioning of documentation what helps to keep the documentation in sync with library releases.

    Another accompanying idea we have to automatically generate awesome documentation is to utilize power of documentation.js.

    https://documentation.js.org

    This tool will allow us to generate Markdown files out of jsdoc comments in the code. And then these Markdown files can be consumed by Docusaurus to create nice-looking pages with library API reference.

    If you give us a green light, we can proceed with the setup of the docs site for pinsjs.

    Javier Luraschi
    @javierluraschi
    @mkalygin docusaurus looks pretty great! If you have time to create the documentation skeleton and a couple examples in the pinsjs repo, thaat would be super useful! I can work on this later, but I’m probably a couple months away from working on the docs. So really helpful if you can give it a push before then! :)
    Michael Kalygin
    @mkalygin
    Cool! Then we’ll setup the docs generation. :+1: