"use strict";
(() => {
var exports = {};
exports.id = 6852;
exports.ids = [6852,7206];
exports.modules = {

/***/ 818110:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({"src":"/_next/static/media/cocalc-octave-jupyter-20200511.fc80ddd1.png","height":672,"width":1065,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAMAAABPT11nAAAAElBMVEX////6+vrz8fPW4OXn5u3p7uyiYBIcAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIklEQVQImWNgZWZlAgEGRiZGBghgZISymJiZISxGFhYQAwAFbQAyyg1poAAAAABJRU5ErkJggg==","blurWidth":8,"blurHeight":5});

/***/ }),

/***/ 414782:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({"src":"/_next/static/media/octave-logo.da84a280.svg","height":283,"width":283});

/***/ }),

/***/ 556815:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (/* binding */ Code)
/* harmony export */ });
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(920997);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(545725);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(antd__WEBPACK_IMPORTED_MODULE_1__);


const { Text  } = antd__WEBPACK_IMPORTED_MODULE_1__.Typography;
function Code({ children , style  }) {
    return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(Text, {
        code: true,
        style: style,
        children: children
    });
};


/***/ }),

/***/ 426590:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (/* binding */ Info)
/* harmony export */ });
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(920997);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(545725);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(antd__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _cocalc_frontend_components_icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(807772);
/* harmony import */ var _cocalc_frontend_components_icon__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_cocalc_frontend_components_icon__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(975867);
/* harmony import */ var _image__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(428053);
/* harmony import */ var lib_config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(774872);






const showcase = {
    width: "100%",
    boxShadow: "2px 2px 4px rgb(0 0 0 / 25%), 0 2px 4px rgb(0 0 0 / 22%)",
    borderRadius: "3px"
};
function Info(props) {
    const { anchor , icon , title , image , alt , video , caption , children , wide , swapCols , textStyleExtra ,  } = props;
    const head = /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("h1", {
        id: anchor,
        style: {
            textAlign: "center",
            marginBottom: "20px",
            color: "#333"
        },
        children: [
            icon && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("span", {
                style: {
                    fontSize: "24pt",
                    marginRight: "5px"
                },
                children: [
                    /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_cocalc_frontend_components_icon__WEBPACK_IMPORTED_MODULE_2__.Icon, {
                        name: icon
                    }),
                    " "
                ]
            }),
            title
        ]
    });
    let graphic = null;
    if (image != null) {
        graphic = /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_image__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
            style: showcase,
            src: image,
            alt: alt ?? caption
        });
    } else if (video != null) {
        const videoSrcs = typeof video == "string" ? [
            video
        ] : video;
        verifyHasMp4(videoSrcs);
        graphic = /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
            style: {
                position: "relative",
                width: "100%"
            },
            children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("video", {
                style: showcase,
                loop: true,
                controls: true,
                children: sources(videoSrcs)
            })
        });
    }
    if (graphic != null && caption != null) {
        graphic = /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
            children: [
                graphic,
                /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("br", {}),
                /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("br", {}),
                /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
                    style: {
                        textAlign: "center",
                        color: "#666",
                        fontSize: "13pt"
                    },
                    children: caption
                })
            ]
        });
    }
    if (!graphic) {
        const noGraphicTextStyle = {
            background: "#fafafa",
            padding: "20px",
            marginBottom: "15px"
        };
        if (textStyleExtra != null) {
            // if textColStyleExtra is given, then merge it into noGraphicTextStyle.
            Object.assign(noGraphicTextStyle, textStyleExtra);
        }
        return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
            style: {
                width: "100%"
            },
            children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
                style: {
                    maxWidth: lib_config__WEBPACK_IMPORTED_MODULE_5__/* .MAX_WIDTH */ .d,
                    margin: "0 auto"
                },
                children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
                    style: noGraphicTextStyle,
                    children: [
                        /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
                            style: {
                                textAlign: "center"
                            },
                            children: head
                        }),
                        /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
                            style: {
                                margin: "auto",
                                maxWidth: wide ? "600px" : undefined
                            },
                            children: children
                        })
                    ]
                })
            })
        });
    }
    const textColStyle = {
        border: "1px solid white",
        borderRadius: "5px",
        padding: "0 20px 0 20px",
        marginBottom: "15px",
        display: "flex",
        justifyContent: "start",
        alignContent: "start",
        flexDirection: "column",
        fontSize: "12pt"
    };
    if (textStyleExtra != null) {
        // if textColStyleExtra is given, then merge it into textColStyle.
        Object.assign(textColStyle, textStyleExtra);
    }
    const textCol = /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(antd__WEBPACK_IMPORTED_MODULE_1__.Col, {
        lg: wide ? 7 : 9,
        style: textColStyle,
        children: children
    }, "text");
    const graphicCol = /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(antd__WEBPACK_IMPORTED_MODULE_1__.Col, {
        lg: wide ? 17 : 15,
        style: {
            padding: "0 30px",
            width: "100%"
        },
        children: graphic
    }, "graphics");
    const cols = swapCols ? [
        textCol,
        graphicCol
    ] : [
        graphicCol,
        textCol
    ];
    return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
        style: {
            padding: "60px 5%",
            background: "white",
            fontSize: "11pt"
        },
        children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
            children: [
                head,
                /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(antd__WEBPACK_IMPORTED_MODULE_1__.Row, {
                    children: cols
                })
            ]
        })
    });
};
function sources(video) {
    const v = [];
    for (const x of video){
        v.push(/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("source", {
            src: (0,_util__WEBPACK_IMPORTED_MODULE_3__/* .MediaURL */ .c)(x)
        }, x));
    }
    return v;
}
function verifyHasMp4(video) {
    for (const x of video){
        if (x.endsWith(".mp4")) {
            return;
        }
    }
    console.warn("include mp4 format for the video, so that it is viewable on iOS!!", video);
}
Info.Heading = ({ children , description , style  })=>{
    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
        style: {
            ...{
                textAlign: "center",
                margin: "40px"
            },
            ...style
        },
        children: [
            /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("h1", {
                style: {
                    fontSize: "400%",
                    color: "#444"
                },
                children: children
            }),
            /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
                style: {
                    fontSize: "13pt",
                    color: "#666"
                },
                children: description
            })
        ]
    });
};


/***/ }),

/***/ 171580:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (/* binding */ Pitch)
/* harmony export */ });
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(920997);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(545725);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(antd__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var components_misc_A__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(940981);
/* harmony import */ var _code__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(556815);




function Pitch({ col1 , col2 , ext  }) {
    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
        style: {
            padding: "30px 10%",
            backgroundColor: "white",
            fontSize: "11pt"
        },
        children: [
            /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(antd__WEBPACK_IMPORTED_MODULE_1__.Row, {
                children: [
                    /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(antd__WEBPACK_IMPORTED_MODULE_1__.Col, {
                        lg: 12,
                        style: {
                            paddingRight: "20px"
                        },
                        children: col1
                    }),
                    /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(antd__WEBPACK_IMPORTED_MODULE_1__.Col, {
                        lg: 12,
                        children: col2
                    })
                ]
            }),
            ext && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(CallToAction, {
                ext: ext
            })
        ]
    });
};
function CallToAction({ ext  }) {
    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
        style: {
            textAlign: "center",
            padding: "30px 0",
            fontSize: "14pt"
        },
        children: [
            /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("strong", {
                children: "Ready out of the box"
            }),
            ":",
            " ",
            /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(components_misc_A__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
                href: "https://doc.cocalc.com/getting-started.html",
                children: "Sign up, create a project"
            }),
            ", create or ",
            /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(components_misc_A__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
                href: "https://doc.cocalc.com/howto/upload.html",
                children: "upload"
            }),
            " ",
            "your ",
            ext && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_code__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
                children: [
                    "*.",
                    ext
                ]
            }),
            " file, and you're ready to go!"
        ]
    });
}


/***/ }),

/***/ 652775:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {


// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  "Z": () => (/* binding */ Snapshots)
});

// EXTERNAL MODULE: external "react/jsx-runtime"
var jsx_runtime_ = __webpack_require__(920997);
// EXTERNAL MODULE: ./components/misc/A.tsx
var A = __webpack_require__(940981);
// EXTERNAL MODULE: ./components/landing/info.tsx
var info = __webpack_require__(426590);
;// CONCATENATED MODULE: ./public/features/cocalc-snapshots.png
/* harmony default export */ const cocalc_snapshots = ({"src":"/_next/static/media/cocalc-snapshots.9bf815f8.png","height":944,"width":1915,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAMAAACEE47CAAAACVBMVEX09PXl7PLx6urSlAO8AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAFElEQVQImWNgQABGRkYmJhgDSQQAARYAFAdb/jMAAAAASUVORK5CYII=","blurWidth":8,"blurHeight":4});
;// CONCATENATED MODULE: ./components/landing/snapshots.tsx




function Snapshots({ children  }) {
    return /*#__PURE__*/ (0,jsx_runtime_.jsxs)(info/* default */.Z, {
        title: "Snapshot backups",
        image: cocalc_snapshots,
        icon: "life-saver",
        anchor: "a-snapshot-backups",
        alt: "Browsing filesystem snapshots in a CoCalc project",
        wide: true,
        children: [
            /*#__PURE__*/ (0,jsx_runtime_.jsxs)("p", {
                children: [
                    /*#__PURE__*/ jsx_runtime_.jsx("strong", {
                        children: "Snapshots"
                    }),
                    " are consistent read-only views of all your files in a",
                    " ",
                    /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                        href: "https://doc.cocalc.com/project.html",
                        children: "CoCalc project"
                    }),
                    ". You can restore your files by copying back any that you accidentally deleted or corrupted."
                ]
            }),
            children
        ]
    });
};


/***/ }),

/***/ 774872:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "d": () => (/* binding */ MAX_WIDTH),
/* harmony export */   "r": () => (/* binding */ SHARE_MAX_WIDTH)
/* harmony export */ });
/*
Constants and other configuration that impact the overall
look of all of the pages.
*/ const MAX_WIDTH = "900px";
const SHARE_MAX_WIDTH = "1100px";


/***/ }),

/***/ 678381:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  "default": () => (/* binding */ Octave),
  "getServerSideProps": () => (/* binding */ getServerSideProps)
});

// EXTERNAL MODULE: external "react/jsx-runtime"
var jsx_runtime_ = __webpack_require__(920997);
// EXTERNAL MODULE: external "antd"
var external_antd_ = __webpack_require__(545725);
// EXTERNAL MODULE: ./components/landing/footer.tsx + 1 modules
var footer = __webpack_require__(831910);
// EXTERNAL MODULE: ./components/misc/A.tsx
var A = __webpack_require__(940981);
// EXTERNAL MODULE: ./components/landing/header.tsx + 2 modules
var header = __webpack_require__(131498);
// EXTERNAL MODULE: ./components/landing/content.tsx
var content = __webpack_require__(499270);
// EXTERNAL MODULE: ./lib/with-customize.ts
var with_customize = __webpack_require__(601880);
// EXTERNAL MODULE: ./lib/customize.ts
var lib_customize = __webpack_require__(400054);
// EXTERNAL MODULE: ./components/landing/sign-in.tsx
var sign_in = __webpack_require__(63186);
// EXTERNAL MODULE: ./components/landing/info.tsx
var info = __webpack_require__(426590);
// EXTERNAL MODULE: ./components/landing/pitch.tsx
var pitch = __webpack_require__(171580);
// EXTERNAL MODULE: ./components/landing/head.tsx
var head = __webpack_require__(373306);
// EXTERNAL MODULE: ./components/landing/snapshots.tsx + 1 modules
var snapshots = __webpack_require__(652775);
// EXTERNAL MODULE: ./public/features/octave-logo.svg
var octave_logo = __webpack_require__(414782);
// EXTERNAL MODULE: ./public/features/cocalc-octave-jupyter-20200511.png
var cocalc_octave_jupyter_20200511 = __webpack_require__(818110);
;// CONCATENATED MODULE: ./public/features/cocalc-octave-terminal-20200511.png
/* harmony default export */ const cocalc_octave_terminal_20200511 = ({"src":"/_next/static/media/cocalc-octave-terminal-20200511.ebfc26c6.png","height":492,"width":956,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAMAAACEE47CAAAAHlBMVEX+9+T6+Pj///707+Do5tfU4evw69zv7fHZ4+nD2uEVgaL9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAJklEQVQImRXFyREAMAjEMHuBHP03nIk+4s6cXlVosgC2+sfE7uIBB4sAU7kMYxkAAAAASUVORK5CYII=","blurWidth":8,"blurHeight":4});
;// CONCATENATED MODULE: ./public/features/cocalc-octave-x11-20200511.png
/* harmony default export */ const cocalc_octave_x11_20200511 = ({"src":"/_next/static/media/cocalc-octave-x11-20200511.9cbbb67c.png","height":913,"width":1919,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAMAAACEE47CAAAAElBMVEXg3tnp5+Xw7+719vXQ0dP48uK5roPPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIElEQVQImQXBAQEAMAyDMKC7f8tPeJwCBObBbKsxbNoHA6sANmUW5WEAAAAASUVORK5CYII=","blurWidth":8,"blurHeight":4});
;// CONCATENATED MODULE: ./public/features/octave-x11-terminal.png
/* harmony default export */ const octave_x11_terminal = ({"src":"/_next/static/media/octave-x11-terminal.e49758eb.png","height":827,"width":1400,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAMAAABPT11nAAAAJFBMVEX079/9/f3o5tbt7e/u7/TS2ePe3M/x8PH89+vo6Obf39T7+O9EC8GWAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAKklEQVQImQ3JuQEAIAwDsYvzw/77glpxJDbXkcSYGSWYyKCAG+l4e9uvBw0eAIx7GMl8AAAAAElFTkSuQmCC","blurWidth":8,"blurHeight":5});
;// CONCATENATED MODULE: ./pages/features/octave.tsx


















const octave = /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
    href: "https://www.gnu.org/software/octave/index",
    children: "Octave"
});
const title = "Run Octave Online";
function Octave({ customize  }) {
    return /*#__PURE__*/ (0,jsx_runtime_.jsxs)(lib_customize/* Customize */.l, {
        value: customize,
        children: [
            /*#__PURE__*/ jsx_runtime_.jsx(head/* default */.Z, {
                title: title
            }),
            /*#__PURE__*/ (0,jsx_runtime_.jsxs)(external_antd_.Layout, {
                children: [
                    /*#__PURE__*/ jsx_runtime_.jsx(header/* default */.Z, {
                        page: "features",
                        subPage: "octave"
                    }),
                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)(external_antd_.Layout.Content, {
                        children: [
                            /*#__PURE__*/ jsx_runtime_.jsx("div", {
                                style: {
                                    backgroundColor: "#c7d9f5"
                                },
                                children: /*#__PURE__*/ jsx_runtime_.jsx(content/* default */.Z, {
                                    startup: "Octave",
                                    logo: octave_logo/* default */.Z,
                                    title: title,
                                    subtitle: /*#__PURE__*/ (0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
                                        children: [
                                            "Run ",
                                            octave,
                                            " in an online Terminal, a Jupyter Notebook or an X11 desktop. Octave is largely compatible with MATLAB\xae! For many teaching purposes you can use Octave instead of MATLAB."
                                        ]
                                    }),
                                    subtitleBelow: true,
                                    image: cocalc_octave_jupyter_20200511/* default */.Z,
                                    alt: "Plotting a Sombrero in a Jupyter notebook using Octave"
                                })
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx(pitch/* default */.Z, {
                                col1: /*#__PURE__*/ (0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
                                    children: [
                                        /*#__PURE__*/ jsx_runtime_.jsx("h3", {
                                            children: "Run Octave on CoCalc"
                                        }),
                                        /*#__PURE__*/ (0,jsx_runtime_.jsxs)("ul", {
                                            children: [
                                                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("li", {
                                                    children: [
                                                        "Via CoCalc's own real-time synchronized",
                                                        " ",
                                                        /*#__PURE__*/ jsx_runtime_.jsx("strong", {
                                                            children: /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                                href: "/features/jupyter-notebook",
                                                                children: "Jupyter Notebooks"
                                                            })
                                                        }),
                                                        "."
                                                    ]
                                                }),
                                                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("li", {
                                                    children: [
                                                        "A full, collaborative, real-time synchronized",
                                                        " ",
                                                        /*#__PURE__*/ jsx_runtime_.jsx("strong", {
                                                            children: /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                                href: "/features/terminal",
                                                                children: "Linux Terminal"
                                                            })
                                                        }),
                                                        "."
                                                    ]
                                                }),
                                                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("li", {
                                                    children: [
                                                        "A",
                                                        " ",
                                                        /*#__PURE__*/ jsx_runtime_.jsx("strong", {
                                                            children: /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                                href: "/features/x11",
                                                                children: "virtual X11 graphical Linux desktop"
                                                            })
                                                        }),
                                                        "."
                                                    ]
                                                })
                                            ]
                                        }),
                                        /*#__PURE__*/ jsx_runtime_.jsx("br", {}),
                                        /*#__PURE__*/ jsx_runtime_.jsx("h3", {
                                            children: "Packages"
                                        }),
                                        /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
                                            children: [
                                                "Browse a",
                                                " ",
                                                /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                    href: "/software/octave",
                                                    children: "list of all installed Octave packages..."
                                                })
                                            ]
                                        })
                                    ]
                                }),
                                col2: /*#__PURE__*/ (0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
                                    children: [
                                        /*#__PURE__*/ jsx_runtime_.jsx("h3", {
                                            children: "Benefits of working online"
                                        }),
                                        /*#__PURE__*/ (0,jsx_runtime_.jsxs)("ul", {
                                            children: [
                                                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("li", {
                                                    children: [
                                                        "You no longer have to ",
                                                        /*#__PURE__*/ jsx_runtime_.jsx("strong", {
                                                            children: "install and maintain"
                                                        }),
                                                        " ",
                                                        "Octave. In particular when you're",
                                                        " ",
                                                        /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                            href: "/features/teaching",
                                                            children: "teaching a class"
                                                        }),
                                                        ", students just have to sign in to CoCalc to get started!"
                                                    ]
                                                }),
                                                /*#__PURE__*/ jsx_runtime_.jsx("li", {
                                                    children: "All your files are private, stored persistently, snapshotted and backed up."
                                                }),
                                                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("li", {
                                                    children: [
                                                        "You can invite ",
                                                        /*#__PURE__*/ jsx_runtime_.jsx("strong", {
                                                            children: "collaborators"
                                                        }),
                                                        " to your project to simultaneously edit the same files."
                                                    ]
                                                }),
                                                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("li", {
                                                    children: [
                                                        "Everything runs remotely, which means you do not have to worry about messing up your own computer.",
                                                        " "
                                                    ]
                                                })
                                            ]
                                        })
                                    ]
                                })
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx(sign_in/* default */.Z, {
                                startup: "Octave"
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx(info/* default.Heading */.Z.Heading, {
                                description: /*#__PURE__*/ jsx_runtime_.jsx(jsx_runtime_.Fragment, {
                                    children: "There are many ways to use Octave online via CoCalc."
                                }),
                                children: "Feature Overview"
                            }),
                            /*#__PURE__*/ (0,jsx_runtime_.jsxs)(info/* default */.Z, {
                                title: "Jupyter Notebook support",
                                icon: "ipynb",
                                image: cocalc_octave_jupyter_20200511/* default */.Z,
                                anchor: "a-jupyter",
                                alt: "Using Octave in a Jupyter notebook",
                                children: [
                                    /*#__PURE__*/ jsx_runtime_.jsx("p", {
                                        children: "CoCalc offers its own Jupyter Notebook implementation. It has a few key advantages."
                                    }),
                                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)("ol", {
                                        children: [
                                            /*#__PURE__*/ (0,jsx_runtime_.jsxs)("li", {
                                                children: [
                                                    /*#__PURE__*/ jsx_runtime_.jsx("strong", {
                                                        children: "Realtime synchronization"
                                                    }),
                                                    ": two or more collaborators can edit the same notebook at the same time. Everyone sees what others are typing."
                                                ]
                                            }),
                                            /*#__PURE__*/ (0,jsx_runtime_.jsxs)("li", {
                                                children: [
                                                    /*#__PURE__*/ jsx_runtime_.jsx("strong", {
                                                        children: "Remote session"
                                                    }),
                                                    ": the notebook's kernel runs remotely. This means you only need a web browser and Internet access. Don't worry about software setup."
                                                ]
                                            }),
                                            /*#__PURE__*/ (0,jsx_runtime_.jsxs)("li", {
                                                children: [
                                                    "If you depend on using the classical Jupyter notebook or JupyterLab, it is also very easy to",
                                                    " ",
                                                    /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                        href: "https://doc.cocalc.com/jupyter.html#alternatives-plain-jupyter-server-and-jupyterlab-server",
                                                        children: "use Octave via these services as well"
                                                    }),
                                                    "."
                                                ]
                                            })
                                        ]
                                    })
                                ]
                            }),
                            /*#__PURE__*/ (0,jsx_runtime_.jsxs)(info/* default */.Z, {
                                title: "Octave in a Terminal",
                                icon: "octave",
                                image: cocalc_octave_terminal_20200511,
                                anchor: "a-terminal",
                                alt: "Using Octave in a CoCalc terminal",
                                caption: "Octave in CoCalc's Terminal",
                                children: [
                                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)("p", {
                                        children: [
                                            "You can edit Octave code and run it in a Terminal as",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://doc.cocalc.com/frame-editor.html",
                                                children: "explained here"
                                            }),
                                            "."
                                        ]
                                    }),
                                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)("p", {
                                        children: [
                                            "File changes are tracked in detail via",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://doc.cocalc.com/time-travel.html",
                                                children: "TimeTravel"
                                            }),
                                            ": this means you can see the progress of your changes or see exactly what collaborators and students did when you weren't looking."
                                        ]
                                    })
                                ]
                            }),
                            /*#__PURE__*/ (0,jsx_runtime_.jsxs)(info/* default */.Z, {
                                title: "Octave in an X11 Graphical Desktop",
                                icon: "window-restore",
                                image: cocalc_octave_x11_20200511,
                                anchor: "a-x11",
                                alt: "Using the traditional Octave GUI via X11",
                                wide: true,
                                children: [
                                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)("p", {
                                        children: [
                                            "You can start Octave's GUI in a full remote desktop as",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://doc.cocalc.com/x11.html",
                                                children: "explained here"
                                            }),
                                            "."
                                        ]
                                    }),
                                    /*#__PURE__*/ jsx_runtime_.jsx("p", {
                                        children: "Accessing a full GUI app remotely adds latency, but you're freed from the limitations of a Terminal or Jupyter Notebook. Multiple people can interact with the graphical Octave app from different web browsers, though you're limited to one mouse cursor."
                                    })
                                ]
                            }),
                            /*#__PURE__*/ (0,jsx_runtime_.jsxs)(info/* default */.Z, {
                                title: "Octave in an X11 Terminal",
                                icon: "terminal",
                                image: octave_x11_terminal,
                                anchor: "a-x11-terminal",
                                caption: "X11 Terminal with interactive 3D plot",
                                alt: "Using a Terminal with Octave and X11 to draw an interactive 3D plot",
                                wide: true,
                                children: [
                                    /*#__PURE__*/ jsx_runtime_.jsx("p", {
                                        children: "Run any graphical applications written for Octave in your web browser!"
                                    }),
                                    /*#__PURE__*/ jsx_runtime_.jsx("p", {
                                        children: "You can start Octave in the X11 graphical terminal. When you plot graphics they will appear in a window to the right. In the example in the screenshot, it is possible to grab and rotate the 3D plot."
                                    })
                                ]
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx(snapshots/* default */.Z, {}),
                            /*#__PURE__*/ jsx_runtime_.jsx(sign_in/* default */.Z, {
                                startup: "Octave"
                            })
                        ]
                    }),
                    /*#__PURE__*/ jsx_runtime_.jsx(footer/* default */.Z, {})
                ]
            })
        ]
    });
};
async function getServerSideProps(context) {
    return await (0,with_customize/* default */.Z)({
        context
    });
}


/***/ }),

/***/ 545725:
/***/ ((module) => {

module.exports = require("antd");

/***/ }),

/***/ 770640:
/***/ ((module) => {

module.exports = require("cookies");

/***/ }),

/***/ 65680:
/***/ ((module) => {

module.exports = require("lru-cache");

/***/ }),

/***/ 903280:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/app-router-context.js");

/***/ }),

/***/ 492796:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/head-manager-context.js");

/***/ }),

/***/ 294957:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/head.js");

/***/ }),

/***/ 703539:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/i18n/detect-domain-locale.js");

/***/ }),

/***/ 734014:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/i18n/normalize-locale-path.js");

/***/ }),

/***/ 450744:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/image-config-context.js");

/***/ }),

/***/ 435843:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/image-config.js");

/***/ }),

/***/ 278524:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/is-plain-object.js");

/***/ }),

/***/ 878020:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/mitt.js");

/***/ }),

/***/ 664406:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/page-path/denormalize-page-path.js");

/***/ }),

/***/ 424964:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router-context.js");

/***/ }),

/***/ 493431:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/add-locale.js");

/***/ }),

/***/ 611751:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/add-path-prefix.js");

/***/ }),

/***/ 746220:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/compare-states.js");

/***/ }),

/***/ 110299:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/format-next-pathname-info.js");

/***/ }),

/***/ 623938:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/format-url.js");

/***/ }),

/***/ 329565:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/get-asset-path-from-route.js");

/***/ }),

/***/ 735789:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/get-next-pathname-info.js");

/***/ }),

/***/ 901428:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/is-dynamic.js");

/***/ }),

/***/ 528854:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/parse-path.js");

/***/ }),

/***/ 491292:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/parse-relative-url.js");

/***/ }),

/***/ 734567:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/path-has-prefix.js");

/***/ }),

/***/ 980979:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/querystring.js");

/***/ }),

/***/ 393297:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/remove-trailing-slash.js");

/***/ }),

/***/ 836052:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/resolve-rewrites.js");

/***/ }),

/***/ 584226:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/route-matcher.js");

/***/ }),

/***/ 95052:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/route-regex.js");

/***/ }),

/***/ 359232:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/utils.js");

/***/ }),

/***/ 40968:
/***/ ((module) => {

module.exports = require("next/head");

/***/ }),

/***/ 371853:
/***/ ((module) => {

module.exports = require("next/router");

/***/ }),

/***/ 616689:
/***/ ((module) => {

module.exports = require("react");

/***/ }),

/***/ 566405:
/***/ ((module) => {

module.exports = require("react-dom");

/***/ }),

/***/ 271704:
/***/ ((module) => {

module.exports = require("react-google-recaptcha-v3");

/***/ }),

/***/ 920997:
/***/ ((module) => {

module.exports = require("react/jsx-runtime");

/***/ }),

/***/ 439491:
/***/ ((module) => {

module.exports = require("assert");

/***/ }),

/***/ 714300:
/***/ ((module) => {

module.exports = require("buffer");

/***/ }),

/***/ 706113:
/***/ ((module) => {

module.exports = require("crypto");

/***/ }),

/***/ 809523:
/***/ ((module) => {

module.exports = require("dns");

/***/ }),

/***/ 582361:
/***/ ((module) => {

module.exports = require("events");

/***/ }),

/***/ 657147:
/***/ ((module) => {

module.exports = require("fs");

/***/ }),

/***/ 241808:
/***/ ((module) => {

module.exports = require("net");

/***/ }),

/***/ 822037:
/***/ ((module) => {

module.exports = require("os");

/***/ }),

/***/ 371017:
/***/ ((module) => {

module.exports = require("path");

/***/ }),

/***/ 677282:
/***/ ((module) => {

module.exports = require("process");

/***/ }),

/***/ 285477:
/***/ ((module) => {

module.exports = require("punycode");

/***/ }),

/***/ 12781:
/***/ ((module) => {

module.exports = require("stream");

/***/ }),

/***/ 371576:
/***/ ((module) => {

module.exports = require("string_decoder");

/***/ }),

/***/ 924404:
/***/ ((module) => {

module.exports = require("tls");

/***/ }),

/***/ 76224:
/***/ ((module) => {

module.exports = require("tty");

/***/ }),

/***/ 257310:
/***/ ((module) => {

module.exports = require("url");

/***/ }),

/***/ 473837:
/***/ ((module) => {

module.exports = require("util");

/***/ })

};
;

// load runtime
var __webpack_require__ = require("../../webpack-runtime.js");
__webpack_require__.C(exports);
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
var __webpack_exports__ = __webpack_require__.X(0, [6918,582,676,1746,1664,7545,3734,5373,6975,9715,9554,9066,981,5997,6202,7264,722,9924,5379,6087,6009,6952,5863,8572,4868,5123,3722,9270], () => (__webpack_exec__(678381)));
module.exports = __webpack_exports__;

})();