A happy new year to everyone!
We know that many of you find JuliaBox useful. Since we created it, it has helped over 100,000 users learn and experiment with Julia. We extend a deep and sincere thank you to all of you, and especially to our paid subscribers and sponsors.
At Julia Computing we have built and maintained the software that runs JuliaBox. However the server costs are substantial. They have been subsidised by the cloud providers over the years. Those funds are running out soon, and the growth of the Julia ecosystem means that the cost of running the service is growing rapidly. This means we can no longer afford to provide the current level of JuliaBox service for free.
We will be reducing the session times and computing resources shortly, and eventually sunset the free usage. We hope the service will continue to be useful for many of you. For larger needs, we encourage you to subscribe by writing to us at firstname.lastname@example.org – the price is mainly to cover the server costs, and we have large academic discounts for classes - as low as $7 per user per month.
Is there any chance that Julia Computing would be willing to share any set of JuliaBox usage statistics? It might be interesting for the community to see as a sort of proxy-method of measuring Julia uptake.
Is the problem many small sessions eating some CPU (too many active users), many small sessions eating CPU on package loads, too much CPU consumption (some users try to compute nontrivial things) or memory (each session needs to be kept in RAM, even if it eats few cycles due to humans being slow at typing)?
Is the problem some users using a lot of resources or too many users eating 10 sessionhours / month? Or is it rather the (probably significant) O(1) cost of developing and running juliabox at all?
I’m asking because the most valuable usecase for me is in small microbenchmarks and
@code_native on uarchs I don’t have at home, like juliabox’s xeons. It would be super cool if I could also hog 20 core-minutes/month of arm7, aarch64, ryzen, power, 32 bit x86, avx512, cuda. In marginal costs, that is almost too cheap too meter, but it is unlikely that this type of use can even make a dent in supporting the O(1) costs of juliabox
When you think about the (implicit) labor and hardware cost of asking university IT staff to implement and maintain something equivalent, I think this is an amazing deal.
I - don’t know of any universities that have a budget for teaching individual courses at all though? What’s the suggested model - a department-level subscription, like a matlab license?
I guess the most common model is not by users, but the number of concurrent sessions on the university (and not department) level.
I think it’s becoming more common with cloud-based services and it’s definitely something we do on a course-by-course basis at my institution with certain (typically computer science) courses. It’s not at the stage where I have an individual budget for my courses but I can generally argue for extra resources like this on a case-by-case basis. The challenge for me is to convince them to use Julia rather than Python!
At my uni we do have such budgets (at least sometimes…) and I used it for my Julia course this autumn.
But, it’s true that many places have rather rigid rules (where you can easily draw on internal resources like PC labs, but making it complicated to fund cloud based solutions). I would therefore recommend JuliaBox to be innovative/flexible wrt. the type of subscriptions that they offer.
We’re extremely flexible, but the compute completely for free thing just isn’t sustainable for obvious reasons.
One solution for universities that cannot pony up the use fees could be to make it really easy for the instructor to set up the environment just the way the instructor wants it (with the packages that are required for the course), and then to make a bundle out of that installation that can be easily transferred to the student’s computers. Perhaps such a thing is already possible?
Digging deeper into JuliaBox stats will be some effort, but these stats tell a consistent story of Julia doubling every year. Based on the fact that roughly 100,000 users have used JuliaBox, and the 3M initiated downloads, I feel comfortable saying that there are perhaps 500,000 Julia programmers worldwide. The reason we publish the raw stats is so that everyone can draw their own conclusion about these numbers.
For 2018 growth:
I also have some numbers that might be interesting, not from julia box, but from the VS Code julia extension.
There are a little more than 33k unique installations of the extension since it has been published. My understanding of that number is that it is comprehensive. Updates are not counted in that number, i.e. this is not a simple download count (the download count for the extension is about 78k).
Our telemetry tells us that there were about 6K unique users using the extension during the last 90 days. That number is much more difficult to interpret because it only counts folks that opt-in to send telemetry for the VS Code extension. I have zero idea what fraction of actual users that would be, so it probably should be interpreted as a very conservative lower bound. Or not, who knows. If anyone knows about typical opt-in rates for telemetry in something like an editor, it would be great to know!
Re how universities can use julia for teaching. I think here on campus at UC Berkeley I don’t see anyone paying a per user fee for a course, so I think in practice this would just mean that we wouldn’t use Julia Box for teaching. There is already infrastructure in place on campus that runs a jupyter hub for teaching, and I think the natural way then would be to just make sure julia works on that infrastructure. If that works, it would be an entirely fine solution from my point of view.
I’ve also taught a couple of random classes over the years at workshops, conferences, other universities etc. about julia. Those were really advocacy exercises for julia. It is less clear to me how I could do that without some option for users to quickly run code during a class. Asking them to pay for that wouldn’t be an option (these were all situations where the audience had essentially zero interest in julia and I tried to convince them that it is great), I wouldn’t want to pay for it either, given that there isn’t really any gain for me from doing these kinds of things… So not sure… Maybe there could be a small grant program where one could informally apply and say: I’m going to teach a course in the week of X that will have Y users, and the course is advocating julia, and then one could get Y vouchers for julia box that work for that one week, or something like that? There would obviously still be a cost associated with that, but I would expect it to be much, much lower, and it very much strikes me as a pretty effective marketing expenditure for julia box itself.
Oh, one more thing: It would be great if this was enabled. I think it would not be much work at all, but would be a super comprehensive data source for usage on Windows.
Yes, we will be happy to enable it on per request basis for workshops and conferences people are conducting. As Stefan said, it is the unrestricted free usage that is unaffordable. We also continue to look for funding opportunities to keep it going. So if anyone knows of a grant opportunities for this sort of thing, we’ll be happy to look into it.
Why not facilitating any user building their own juliabox box?
I have my own “juliabox” to test stuff which is a simple raspberry where I open a jupyter notebook with the
# I open a jupyter notebook on the raspberry in "cloud mode"
jupyter notebook --no-browser --port=8111
# I connect from any machine to the raspberry
ssh -N -L 8001:localhost:0001 mymachine
#In my browser simply write the port 8001 and I get a notebook just like in juliabox.
Maybe having a docker image with all that is needed to open a jupyter notebook and a simple script+tutorial would suffice.
While this is great for users with access to the compute resources they require, this is insufficient when you want to run your code on machines/accelerators that you don’t own or have direct access to. Which is what JuliaBox is great for, especially since the Julia Computing team also put in the work to setup and maintain the infrastructure that JuliaBox requires (which is non-trivial for the average non-sysadmin user to handle by themselves).
If all you want is a jupyter notebook you can and have always been able to do that. I’m not sure how that constitutes “JuliaBox” in any meaningful sense.
Running a Jupyter server setup is not terribly difficult, especially if an institution already has it setup for eg R or Python. But doing that from scratch assumes access to hardware (you do need something quite powerful for even a small class), time and skills for doing the setup and maintenance, etc.
The great thing about JuliaBox is that it offers a turnkey solution without the hassle.