Java/C/C++ and other sandboxed languages

3 views
Skip to first unread message

Brad Miller

unread,
Jul 17, 2024, 5:00:05 PM (6 days ago) Jul 17
to PreTeXt development
One of the biggest requests I get from CS authors, especially authors writing books about C, C++ or Java is that they want to see their code examples as they will appear on Runestone Academy, and that they want to be able to test their code, especially since nearly all coding questions have unit tests, which need to be tested.  I can think of at least six authors this summer!

As things are today, when you build an html version (non-runestone) of a book you get a static listing of C, C++, Java, and any other language we support on our JOBE server.  A sandboxed environment where we can compile and safely run those languages, and then send results back to the book.

Right now the solutions are:
  1. Use the author interface on Runestone Academy -- but that means you have to commit to github and pull to our servers, and its a heavyweight process to just see a few changes.
  2. set up your own Runestone Server environment.  Although Kevin Webb got one up and running in under an hour in Tacoma (while coming down with COVID) its still a fairly daunting task for people who are not savvy about Docker and other command line work.
  3. Trust that everything will be fine when you do finally move to Runestone :-) and just press on with a happy face

I'm trying to think if there is a better middle ground.
  1. The recent Proteus grant has money to support Runestone running a separate machine in our cloud that supports a sage server.  Perhaps that machine could also host JOBE and we allow plain html builds to point at that.  That would mean work for Rob to render these languages as activecode in an html build.  I don't think that is scalable for a live book, but would work for authors.
  2. Maybe there is a way to make this work in Codespaces?  We already have a Dockerfile to build the JOBE server, but I don't think that Codespaces let you have multiple images.  Or maybe just incorporate the JOBE server into the basic Codespace (its way lighter than including texlive)

Maybe another part way step is a publisher switch that would let Java be rendered as an activecode for plain html, knowing that it will look right, but won't actually compile and run...

Brad

Bradley Miller, PhD
Professor Emeritus Computer Science
Luther College
Founder, Runestone Academy LTD
Blog: A Reputable Journal
Schedule a Meeting

Rob Beezer

unread,
Jul 17, 2024, 5:17:21 PM (6 days ago) Jul 17
to prete...@googlegroups.com
Middle ground #1 does not sound crazy to me. And it could be controlled by a publisher switch.

For me I think it is just throwing different switches - all the laborious parts are already in place.

Rob

On July 17, 2024 4:59:55 PM EDT, Brad Miller <br...@runestone.academy> wrote:
>One of the biggest requests I get from CS authors, especially authors writing books about C, C++ or Java is that they want to see their code examples as they will appear on Runestone Academy, and that they want to be able to test their code, especially since nearly all coding questions have unit tests, which need to be tested.  I can think of at least six authors this summer!
>
>As things are today, when you build an html version (non-runestone) of a book you get a static listing of C, C++, Java, and any other language we support on our JOBE server.  A sandboxed environment where we can compile and safely run those languages, and then send results back to the book.
>
>Right now the solutions are:
>
>1. Use the author interface on Runestone Academy -- but that means you have to commit to github and pull to our servers, and its a heavyweight process to just see a few changes.
>2. set up your own Runestone Server environment.  Although Kevin Webb got one up and running in under an hour in Tacoma (while coming down with COVID) its still a fairly daunting task for people who are not savvy about Docker and other command line work.
>3. Trust that everything will be fine when you do finally move to Runestone :-) and just press on with a happy face
>
>
>I'm trying to think if there is a better middle ground.
>
>1. The recent Proteus grant has money to support Runestone running a separate machine in our cloud that supports a sage server.  Perhaps that machine could also host JOBE and we allow plain html builds to point at that.  That would mean work for Rob to render these languages as activecode in an html build.  I don't think that is scalable for a live book, but would work for authors.
>2. Maybe there is a way to make this work in Codespaces?  We already have a Dockerfile to build the JOBE server, but I don't think that Codespaces let you have multiple images.  Or maybe just incorporate the JOBE server into the basic Codespace (its way lighter than including texlive)
Reply all
Reply to author
Forward
0 new messages