After the release about a month ago it’s time for the first bigger update. A couple of small fixes and two major features found their way into skadi cloud!
First of all big “thank you” to everyone who provided feedback and ideas, the response by the community was utterly motivating! If you have more ideas on how to make skadi cloud more accessible and useful for the community let me know. I’m always happy to see your feedback on it!
The Small
Lots of small bug fixes landed in the web frontend and the plugin that runs inside MPS that you use via projector. These fixes were mainly in the part that detects that you are using the IDE. On some occasions, this could fail and your playground would shut down while you are still using it.
Also, a bunch of upstream fixes from projector were included. These fixes include performance improvements especially when you are using high-resolution displays. KeyMap handling is improved on macOS and Windows which should help with making the UX more consistent.
The Large
Apart from the more “under the hood” changes there are two new features: playground version updates and open in skadi cloud.
Playground Version Updates
You can now change the version of a playground directly from the web interface. In the past, you would need to delete the playground and create a new one to change the version. This had the effect that you would lose all the data in the playground. To keep the data you needed to back it up manually and then restore it into the new playground. Now you can simply change the version in the playground overview and all your data is kept:
It doesn’t matter if your playground is shut down or running. If your playground is still running it will shut down and restart with the new version.
Keep in mind that when you are downgrading the major MPS version that projects created with a newer version MPS might not work. I’m planning to add a warning in a later update.
Open in Skadi Cloud
You can now open any git repository in skadi cloud with a single link. When a user clicks the link they are taken to skadi cloud and it automatically opens the linked repository in the playground. If the user has no playground they will be asked to create a new one. Should the user not have an account one will be created after they authorized skadi cloud on GitHub. For now, only git repositories are supported.
Accessing the repository happens entirely inside the playground which means you can use it to access any repository the playground has access to, including private repositories. Of course, that would require that your playground is logged into GitHub. The only thing the skadi cloud infrastructure knows about your repository is the URL of it because it needs to pass it into your playground.
The format for such links is simple e.g. for GitHub repositories it would look like this: https://skadi.cloud/open#https://github.com/user/repo
You can use this to add a badge to your repository which allows people to directly contribute to it. For doing so skadi cloud hosts a badge you can use:
Here you find a markdown example your can copy and paste into your readme file. You only need to replace the link with your repositories URL.
[![open in skadi cloud](https://skadi.cloud/assets/skadi-badge.svg)](https://skadi.cloud/open#https://github.com/user/repo)
You can also see it in action on my repository that contains the samples of my new Grammar Cells focused MPS tutorials here.
The Future
For the future, I have one feature that I’m already working on and that is “download your data”. That feature will allow you to download all the data stored in a playground from the web interface. This way you can easily transition experiments from skadi cloud to your machine without putting it into a private GitHub repo or similar.
Another thing that will happen is the availability of more images for playgrounds. As part of that, the process for getting new MPS versions available will be automated which will make them available within a short time after their release. For images that include more than just MPS like the one with KernelF, I would like to know which ones you are interested in. Let me know on Twitter or via mail what is interesting for you!
As part of expanding the range of images available I was thinking about a way to open that process up to the community that new images could get added via pull requests. I haven’t made up my mind on this though.
Other features that are floating around in my head are:
- a metadata format you can put in your repository and skadi cloud will choose the images based on that.
- project setup rules that as part of the “open in skadi cloud” process setup the project e.g. download dependencies and building the project.
What do you think about these features? Do you think any are missing? Let me know!
If you liked the content consider subscribing to the email newsletter below. The newsletter delivers all posts directly into your inbox. For feedback on the topic feel free to reach out to me. You can find me on Twitter @dumdidum or write a mail to kolja@hey.com.