CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
sagemathinc

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

GitHub Repository: sagemathinc/cocalc
Path: blob/master/src/packages/next/pages/features/octave.tsx
Views: 687
1
/*
2
* This file is part of CoCalc: Copyright © 2022 Sagemath, Inc.
3
* License: MS-RSL – see LICENSE.md for details
4
*/
5
6
import { Layout } from "antd";
7
8
import Content from "components/landing/content";
9
import Footer from "components/landing/footer";
10
import Head from "components/landing/head";
11
import Header from "components/landing/header";
12
import Info from "components/landing/info";
13
import Pitch from "components/landing/pitch";
14
import SignIn from "components/landing/sign-in";
15
import Snapshots from "components/landing/snapshots";
16
import { Paragraph, Title } from "components/misc";
17
import A from "components/misc/A";
18
import { Customize } from "lib/customize";
19
import withCustomize from "lib/with-customize";
20
import octaveJupyter from "public/features/cocalc-octave-jupyter-20200511.png";
21
import octaveTerminal from "public/features/cocalc-octave-terminal-20200511.png";
22
import octaveX11 from "public/features/cocalc-octave-x11-20200511.png";
23
import logo from "public/features/octave-logo.svg";
24
import x11Terminal from "public/features/octave-x11-terminal.png";
25
26
const octave = <A href="https://www.gnu.org/software/octave/index">Octave</A>;
27
const title = "Run Octave Online";
28
29
export default function Octave({ customize }) {
30
return (
31
<Customize value={customize}>
32
<Head title={title} />
33
<Layout>
34
<Header page="features" subPage="octave" runnableTag="octave" />
35
<Layout.Content>
36
<Content
37
landing
38
startup={"Octave"}
39
body={logo}
40
title={title}
41
subtitle={
42
<>
43
Run {octave} in an online Terminal, a Jupyter Notebook or an X11
44
desktop. Octave is largely compatible with MATLAB®! For many
45
teaching purposes you can use Octave instead of MATLAB.
46
</>
47
}
48
subtitleBelow={true}
49
image={octaveJupyter}
50
alt="Plotting a Sombrero in a Jupyter notebook using Octave"
51
/>
52
53
<Pitch
54
col1={
55
<>
56
<Title level={2}>Run Octave on CoCalc</Title>
57
<Paragraph>
58
<ul>
59
<li>
60
Via CoCalc's own real-time synchronized{" "}
61
<strong>
62
<A href="/features/jupyter-notebook">
63
Jupyter Notebooks
64
</A>
65
</strong>
66
.
67
</li>
68
<li>
69
A full, collaborative, real-time synchronized{" "}
70
<strong>
71
<A href="/features/terminal">Linux Terminal</A>
72
</strong>
73
.
74
</li>
75
<li>
76
A{" "}
77
<strong>
78
<A href="/features/x11">
79
virtual X11 graphical Linux desktop
80
</A>
81
</strong>
82
.
83
</li>
84
</ul>
85
</Paragraph>
86
87
<Title level={2}>Packages</Title>
88
<Paragraph>
89
Browse a{" "}
90
<A href="/software/octave">
91
list of all installed Octave packages...
92
</A>
93
</Paragraph>
94
</>
95
}
96
col2={
97
<>
98
<Title level={3}>Benefits of working online</Title>
99
<Paragraph>
100
<ul>
101
<li>
102
You no longer have to{" "}
103
<strong>install and maintain</strong> Octave. In
104
particular when you're{" "}
105
<A href="/features/teaching">teaching a class</A>,
106
students just have to sign in to CoCalc to get started!
107
</li>
108
<li>
109
All your files are private, stored persistently,
110
snapshotted and backed up.
111
</li>
112
<li>
113
You can invite <strong>collaborators</strong> to your
114
project to simultaneously edit the same files.
115
</li>
116
<li>
117
Everything runs remotely, which means you do not have to
118
worry about messing up your own computer.{" "}
119
</li>
120
</ul>
121
</Paragraph>
122
</>
123
}
124
/>
125
126
<SignIn startup="Octave" />
127
128
<Info.Heading
129
description={
130
<>There are many ways to use Octave online via CoCalc.</>
131
}
132
>
133
Feature Overview
134
</Info.Heading>
135
136
<Info
137
title="Jupyter Notebook support"
138
icon="ipynb"
139
image={octaveJupyter}
140
anchor="a-jupyter"
141
alt="Using Octave in a Jupyter notebook"
142
>
143
<Paragraph>
144
CoCalc offers its own Jupyter Notebook implementation. It has a
145
few key advantages.
146
</Paragraph>
147
<Paragraph>
148
<ol>
149
<li>
150
<strong>Realtime synchronization</strong>: two or more
151
collaborators can edit the same notebook at the same time.
152
Everyone sees what others are typing.
153
</li>
154
<li>
155
<strong>Remote session</strong>: the notebook's kernel runs
156
remotely. This means you only need a web browser and Internet
157
access. Don't worry about software setup.
158
</li>
159
<li>
160
If you depend on using the classical Jupyter notebook or
161
JupyterLab, it is also very easy to{" "}
162
<A href="https://doc.cocalc.com/jupyter.html#alternatives-plain-jupyter-server-and-jupyterlab-server">
163
use Octave via these services as well
164
</A>
165
.
166
</li>
167
</ol>
168
</Paragraph>
169
</Info>
170
171
<Info
172
title="Octave in a Terminal"
173
icon="octave"
174
image={octaveTerminal}
175
anchor="a-terminal"
176
alt="Using Octave in a CoCalc terminal"
177
caption="Octave in CoCalc's Terminal"
178
>
179
<Paragraph>
180
You can edit Octave code and run it in a Terminal as{" "}
181
<A href="https://doc.cocalc.com/frame-editor.html">
182
explained here
183
</A>
184
.
185
</Paragraph>
186
<Paragraph>
187
File changes are tracked in detail via{" "}
188
<A href="https://doc.cocalc.com/time-travel.html">TimeTravel</A>:
189
this means you can see the progress of your changes or see exactly
190
what collaborators and students did when you weren't looking.
191
</Paragraph>
192
</Info>
193
194
<Info
195
title="Octave in an X11 Graphical Desktop"
196
icon="window-restore"
197
image={octaveX11}
198
anchor="a-x11"
199
alt="Using the traditional Octave GUI via X11"
200
wide
201
>
202
<Paragraph>
203
You can start Octave's GUI in a full remote desktop as{" "}
204
<A href="https://doc.cocalc.com/x11.html">explained here</A>.
205
</Paragraph>
206
<Paragraph>
207
Accessing a full GUI app remotely adds latency, but you're freed
208
from the limitations of a Terminal or Jupyter Notebook. Multiple
209
people can interact with the graphical Octave app from different
210
web browsers, though you're limited to one mouse cursor.
211
</Paragraph>
212
</Info>
213
214
<Info
215
title="Octave in an X11 Terminal"
216
icon="terminal"
217
image={x11Terminal}
218
anchor="a-x11-terminal"
219
caption="X11 Terminal with interactive 3D plot"
220
alt="Using a Terminal with Octave and X11 to draw an interactive 3D plot"
221
wide
222
>
223
<Paragraph>
224
Run any graphical applications written for Octave in your web
225
browser!
226
</Paragraph>
227
<Paragraph>
228
You can start Octave in the X11 graphical terminal. When you plot
229
graphics they will appear in a window to the right. In the example
230
in the screenshot, it is possible to grab and rotate the 3D plot.
231
</Paragraph>
232
</Info>
233
234
<Snapshots />
235
236
<SignIn startup="Octave" />
237
</Layout.Content>
238
<Footer />
239
</Layout>
240
</Customize>
241
);
242
}
243
244
export async function getServerSideProps(context) {
245
return await withCustomize({ context });
246
}
247
248