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

/***/ 538125:
/***/ ((__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/terminal.75480260.png","height":607,"width":1362,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAADCAMAAACZFr56AAAADFBMVEX+/v739/fm5ujv7+/UKmnrAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAG0lEQVQImWNgYmZmZGBgYGRgYgTRDAwMTFAaAAFkABLk9wUoAAAAAElFTkSuQmCC"});

/***/ }),

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


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

// 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/misc/A.tsx
var A = __webpack_require__(940981);
;// CONCATENATED MODULE: ./components/landing/compare.json
const compare_namespaceObject = JSON.parse('[{"name":"jupyter","title":"Online Jupyter Notebooks","link":"/features/jupyter-notebook","products":[{"key":"cocalc","name":"CoCalc","link":"https://cocalc.com"},{"key":"mybinder","name":"MyBinder","link":"https://mybinder.org/"},{"key":"colab","name":"Colab","link":"https://colab.research.google.com/"},{"key":"datalore","name":"Datalore","link":"https://datalore.io"},{"key":"deepnote","name":"Deepnote","link":"https://www.deepnote.com/"}],"rows":[{"feature":"Programming languages","cocalc":"Python, Sage, R, Octave, and many more","mybinder":"Python, R, etc. and customizable","colab":"Python 3","datalore":"Python 3","deepnote":"Python 3, Quip"},{"feature":"IPython Widgets","cocalc":true,"mybinder":true,"colab":true,"datalore":true,"deepnote":true},{"feature":"File sharing between users","cocalc":true,"mybinder":false,"colab":true,"datalore":true,"deepnote":true},{"feature":"Realtime collaboration: multiple people use the same notebook together","cocalc":true,"colab":{"type":false,"note":"Colab used to have realtime sync, but it ended in 2017, when Google terminated their realtime API product.","link":"https://workspaceupdates.googleblog.com/2017/11/committed-to-storage-apis-retiring.html"},"mybinder":"Possible via experimental extension to JupyterLab.","datalore":true,"deepnote":true},{"feature":"Persistence","cocalc":true,"mybinder":false,"colab":"Notebook persists, but data and files do not.","datalore":true,"deepnote":true},{"feature":"Large preinstalled software environment","cocalc":{"type":true,"note":"1500+ Python libraries preinstalled; extensive R, Julia, Octave, and other packages.","link":"https://cocalc.com/software/python"},"mybinder":"Limited","deepnote":{"type":true,"note":"27 featured Python packages","link":"https://docs.deepnote.com/environment/pre-installed-packages"},"datalore":"Python3, SQL, Scala, R, and Kotlin kernels; large pre-installed env with top data science packages"},{"feature":"Paid Plans","cocalc":{"type":true,"note":" Basic - $2 person/month; Pro - scales linearly depending on the resources you need","link":"https://cocalc.com/store"},"mybinder":{"type":false,"note":"Free only"},"colab":{"type":true,"note":"Pro - $9.99 person/month; Pro+ - $49.99 person/month","link":"https://colab.research.google.com/signup/pricing"},"datalore":{"type":true,"note":"Pro - $19.90 person/month; Enterprise - $125 person/month","link":"https://www.jetbrains.com/datalore/enterprise/"},"deepnote":{"type":true,"note":"Pro - $12 person/month; Enterprise - $99 person / month; plus an additional hourly fee for more powerful compute resources at about 7x the market rate","link":"https://deepnote.com/pricing"}},{"feature":"Disk space","cocalc":"3GB/project for free","mybinder":"Ephemeral","colab":"Uses your Google Drive storage","datalore":"Limit of two simultaneously running notebooks","deepnote":"5GB for free"},{"feature":"Memory","cocalc":"1GB/project for free","datalore":"Limit of two simultaneously running notebooks","deepnote":"several GB for free"},{"feature":"Idle timeout","cocalc":"30 minutes for free; pay for more","deepnote":"15 minutes for free; pay for more"},{"feature":"Network access","cocalc":"Only for non-free projects (due to abuse)","colab":true,"datalore":true,"mybinder":true,"deepnote":true},{"feature":"Public Google-indexed searchable publishing of files","cocalc":"Paid","mybinder":false,"datalore":true,"deepnote":true},{"feature":"Self hosting","cocalc":{"type":true,"link":"https://github.com/sagemathinc/cocalc-docker#readme"},"mybinder":true,"colab":false,"datalore":{"type":true,"link":"https://www.jetbrains.com/datalore/enterprise/"},"deepnote":false},{"feature":"Open source","cocalc":{"type":false,"note":"Partial (AGPLv3 + noncommercial use clause)","link":"https://github.com/sagemathinc/cocalc"},"mybinder":true,"colab":{"type":false,"note":"Some components are open","link":"https://github.com/googlecolab"},"datalore":false,"deepnote":{"type":false,"note":"Some of their modifications to upstreams projects are open source","link":"https://github.com/deepnote"}},{"feature":"GPUs","cocalc":{"type":false,"note":"Only when self hosted"},"mybinder":"Only when self hosted","colab":"Yes, for free, and even better when paid.","datalore":"Datalore Professional and when self-hosted","deepnote":true}]},{"name":"latex","title":"Online LaTeX Editors","link":"/features/latex-editor","products":[{"key":"cocalc","name":"CoCalc","link":"https://cocalc.com"},{"key":"overleaf","name":"Overleaf","link":"https://www.overleaf.com/"},{"key":"authorea","name":"Authorea","link":"https://www.authorea.com/"},{"key":"papeeria","name":"Papeeria","link":"https://papeeria.com/"}],"rows":[{"feature":"Realtime collaboration and sync","cocalc":true,"overleaf":"Limited number of collaborators","authorea":false},{"feature":"PDFLaTeX rendering engine","cocalc":true,"overleaf":true,"authorea":false},{"feature":"XeLaTeX rendering engine","cocalc":true,"overleaf":true,"authorea":false},{"feature":"LuaTeX rendering engine","cocalc":true,"overleaf":true,"authorea":false},{"feature":"Upload files","cocalc":true,"overleaf":true,"authorea":true,"papeeria":true},{"feature":"Forward and inverse search","cocalc":true,"overleaf":true,"authorea":null,"papeeria":true},{"feature":"Multifile support","cocalc":true,"overleaf":true,"authorea":null,"papeeria":true},{"feature":"WYSIWYG","cocalc":false,"overleaf":{"type":true,"note":"This is only a partial WYSIWYG-like mode."},"authorea":true,"papeeria":false},{"feature":"Equation editor","cocalc":false,"overleaf":false,"authorea":true,"papeeria":false},{"feature":"Bibliography","cocalc":{"type":true,"note":"Only BibTex via LaTeX (nothing sophisticated)"},"overleaf":true,"authorea":true,"papeeria":{"type":true,"note":"Limited"}},{"feature":"Preloaded journal templates","cocalc":{"type":false,"note":"However, you can easily upload a template from a journal."},"overleaf":true,"authorea":true,"papeeria":false},{"feature":"Run Python, R and other scripts as part of compilation","cocalc":{"type":true,"note":"CoCalc is particularly good at this."},"overleaf":{"type":true,"note":"But limited."},"authorea":false,"papeeria":false},{"feature":"R/Knitr","cocalc":true,"overleaf":"Limited - very few packages, limited syntax, no caching, slow","authorea":false,"papeeria":false},{"feature":"SageTex","cocalc":true,"overleaf":false,"authorea":false,"papeeria":false},{"feature":"PythonTex","cocalc":true,"overleaf":false,"authorea":false,"papeeria":false},{"feature":"Self hosting","cocalc":true,"overleaf":true,"authorea":false,"papeeria":false}]},{"name":"terminal","title":"Online Linux Terminal","link":"/features/terminal","products":[{"key":"cocalc","name":"CoCalc","link":"https://cocalc.com"},{"key":"cloud","name":"GCE/AWS/Azure Clouds"},{"key":"lxd","name":"LXD.org","link":"https://linuxcontainers.org/"},{"key":"webminal","name":"Webminal","link":"https://www.webminal.org/"}],"rows":[{"feature":"Free access for unlimited time","cocalc":true,"cloud":{"type":false,"note":"Limited trial with credit card"},"lxd":true,"webminal":true},{"feature":"Full Linux","cocalc":true,"cloud":true,"lxd":true},{"feature":"Count of of pre-installed packages, by running \'apt list --installed | wc -l\' or \'rpm -qa | wc -l\'","cocalc":"~ 9500","cloud":null,"lxd":"~ 200","webminal":"~ 700"},{"feature":"Copy/paste","cocalc":true,"cloud":true,"lxd":true},{"feature":"Periodic backups of your data","cocalc":true,"cloud":true,"lxd":false,"webminal":false},{"feature":"Persistent of your data","cocalc":true,"cloud":true,"lxd":false},{"feature":"Ease of setup and configuration","cocalc":"Easy","cloud":"Hard","lxd":"Very Easy","webminal":"Medium"},{"feature":"Root access","cocalc":false,"cloud":true,"lxd":true,"webminal":{"note":"Limited"}}]}]');
// EXTERNAL MODULE: ../frontend/dist/components/icon.js
var icon = __webpack_require__(807772);
// EXTERNAL MODULE: ./components/landing/contact.tsx
var contact = __webpack_require__(892771);
;// CONCATENATED MODULE: ./components/landing/compare.tsx






function Compare({ name , disclaimer , title  }) {
    const v = [];
    for (const table of compare_namespaceObject){
        if (name != null && table.name != name) continue;
        v.push(/*#__PURE__*/ jsx_runtime_.jsx(ComparisonTable, {
            table: table,
            disclaimer: disclaimer,
            title: title
        }, table.name));
    }
    return /*#__PURE__*/ jsx_runtime_.jsx("div", {
        style: {
            background: "white",
            width: "100%"
        },
        children: v
    });
};
function cmp(a, b) {
    a = `${a}`;
    b = `${b}`;
    if (a < b) return -1;
    if (a > b) return 1;
    return 0;
}
function ComparisonTable({ table , disclaimer , title  }) {
    const columns = [
        {
            title: "Feature",
            dataIndex: "feature",
            key: "feature",
            width: "25%"
        }, 
    ];
    for (const product of table.products){
        columns.push({
            width: `${75 / table.products.length}%`,
            title: product.link ? /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                href: product.link,
                alt: "Link to information about this product",
                children: product.name
            }) : product.name,
            key: product.key,
            dataIndex: product.key,
            // @ts-ignore
            render: (support)=>{
                if (support === undefined) {
                    return /*#__PURE__*/ jsx_runtime_.jsx(icon.Icon, {
                        name: "question-circle",
                        style: {
                            color: "#888",
                            fontSize: "20px"
                        }
                    });
                }
                if (typeof support == "boolean" || support === null) {
                    return /*#__PURE__*/ jsx_runtime_.jsx(SupportMarker, {
                        type: support
                    });
                }
                let type;
                let note;
                let link = "";
                if (typeof support == "string") {
                    type = true;
                    note = support;
                } else {
                    type = support.type;
                    note = support.note;
                    link = support.link;
                }
                return /*#__PURE__*/ (0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
                    children: [
                        /*#__PURE__*/ jsx_runtime_.jsx(SupportMarker, {
                            type: type
                        }),
                        " ",
                        type !== undefined && /*#__PURE__*/ jsx_runtime_.jsx("br", {}),
                        note && /*#__PURE__*/ jsx_runtime_.jsx("div", {
                            style: {
                                color: "#666",
                                fontSize: "9pt"
                            },
                            children: note
                        }),
                        link && /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                            style: {
                                fontSize: "7pt"
                            },
                            href: link,
                            children: link
                        })
                    ]
                });
            },
            sorter: (a, b)=>cmp(a[product.key], b[product.key])
        });
    }
    return /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
        style: {
            margin: "auto",
            padding: "30px",
            overflowX: "auto"
        },
        children: [
            title ? title : /*#__PURE__*/ (0,jsx_runtime_.jsxs)("h1", {
                style: {
                    textAlign: "center"
                },
                children: [
                    table.title,
                    "\xa0\xa0\xa0\xa0",
                    /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                        href: table.link,
                        style: {
                            fontSize: "11pt"
                        },
                        alt: "Link to learn more about this",
                        children: "learn more"
                    })
                ]
            }),
            /*#__PURE__*/ jsx_runtime_.jsx(external_antd_.Table, {
                dataSource: table.rows,
                columns: columns,
                bordered: true,
                pagination: false,
                rowKey: "feature"
            }),
            disclaimer && /*#__PURE__*/ jsx_runtime_.jsx(Disclaimer, {})
        ]
    });
}
function SupportMarker({ type  }) {
    if (type === true) {
        return /*#__PURE__*/ jsx_runtime_.jsx(icon.Icon, {
            name: "check",
            style: {
                color: "green",
                fontSize: "20px"
            }
        });
    } else if (type === false) {
        return /*#__PURE__*/ jsx_runtime_.jsx(icon.Icon, {
            name: "times",
            style: {
                color: "red",
                fontSize: "20px"
            }
        });
    } else if (type === null) {
        return /*#__PURE__*/ jsx_runtime_.jsx("span", {
            style: {
                color: "#888"
            },
            children: "N/A"
        });
    } else {
        return null;
    }
}
function Disclaimer() {
    return /*#__PURE__*/ jsx_runtime_.jsx(external_antd_.Alert, {
        style: {
            margin: "30px auto",
            maxWidth: "900px"
        },
        message: "",
        description: /*#__PURE__*/ (0,jsx_runtime_.jsxs)("span", {
            style: {
                fontSize: "10pt"
            },
            children: [
                "These comparisons were made in good faith; however, they may contain errors, since we know CoCalc better and the products are constantly improving. ",
                /*#__PURE__*/ jsx_runtime_.jsx(contact/* default */.Z, {}),
                " if anything looks wrong or incomplete!"
            ]
        }),
        type: "warning",
        showIcon: true
    });
}


/***/ }),

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

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

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  "default": () => (/* binding */ Terminal),
  "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/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/misc/A.tsx
var A = __webpack_require__(940981);
// 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/code.tsx
var code = __webpack_require__(556815);
// 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: ./pages/features/linux.tsx + 2 modules
var linux = __webpack_require__(388867);
// EXTERNAL MODULE: ./components/landing/compare.tsx + 1 modules
var compare = __webpack_require__(661774);
// EXTERNAL MODULE: ../frontend/dist/components/icon.js
var icon = __webpack_require__(807772);
// EXTERNAL MODULE: ./public/features/terminal.png
var terminal = __webpack_require__(538125);
// EXTERNAL MODULE: ./public/features/linux-logo.svg
var linux_logo = __webpack_require__(441285);
// EXTERNAL MODULE: ./public/features/cocalc-terminal-collab.gif
var cocalc_terminal_collab = __webpack_require__(564561);
// EXTERNAL MODULE: ./public/features/cocalc-shell-script-run.png
var cocalc_shell_script_run = __webpack_require__(965944);
;// CONCATENATED MODULE: ./public/features/terminal-software.png
/* harmony default export */ const terminal_software = ({"src":"/_next/static/media/terminal-software.58cc4e1b.png","height":1116,"width":2138,"blurDataURL":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAMAAACEE47CAAAAD1BMVEXy8vL6+vvn5+fe3t/s7Oz6lTA2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIUlEQVQImR3JsQ0AAAzCsBD4/+ZK9WoSQgeZINBWdYx8HQOHADaYhC9HAAAAAElFTkSuQmCC"});
;// CONCATENATED MODULE: ./pages/features/terminal.tsx
















const component = "a Linux Terminal";
const title = `Online Linux Terminal`;





function Terminal({ 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: "terminal"
                    }),
                    /*#__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: component,
                                    logo: linux_logo/* default */.Z,
                                    title: title,
                                    subtitle: "A Linux Terminal that can't mess up your own computer.",
                                    subtitleBelow: true,
                                    image: terminal/* default */.Z,
                                    alt: "Running Sage in a Terminal"
                                })
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx(linux.FullLinuxTerminal, {}),
                            /*#__PURE__*/ jsx_runtime_.jsx(sign_in/* default */.Z, {
                                startup: component
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx(info/* default.Heading */.Z.Heading, {
                                description: /*#__PURE__*/ (0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
                                    children: [
                                        "There are many ways to use ",
                                        component,
                                        " online via CoCalc."
                                    ]
                                }),
                                children: "Feature Overview"
                            }),
                            /*#__PURE__*/ (0,jsx_runtime_.jsxs)(info/* default */.Z, {
                                title: "Realtime collaboration",
                                icon: "users",
                                image: cocalc_terminal_collab/* default */.Z,
                                anchor: "a-realtimecollab",
                                alt: "Video showing synchronized terminals",
                                wide: true,
                                children: [
                                    /*#__PURE__*/ jsx_runtime_.jsx("p", {
                                        children: "The same terminal can be opened by two or more users. Both see the same view, which adaptively resizes to a common size."
                                    }),
                                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)("p", {
                                        children: [
                                            "Additionally, open a",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://doc.cocalc.com/chat.html",
                                                children: "side chat"
                                            }),
                                            " panel to exchange thoughts and ideas."
                                        ]
                                    }),
                                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)("p", {
                                        children: [
                                            "This is ideal for getting advice by a colleague or",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://doc.cocalc.com/teaching-interactions.html",
                                                children: "helping a student of yours"
                                            }),
                                            "."
                                        ]
                                    })
                                ]
                            }),
                            /*#__PURE__*/ (0,jsx_runtime_.jsxs)(info/* default */.Z, {
                                title: "Run Bash, Python, R, etc.",
                                icon: "r",
                                image: cocalc_shell_script_run/* default */.Z,
                                anchor: "a-shell-script",
                                alt: "Screenshot of editing and running a shell script",
                                caption: /*#__PURE__*/ (0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
                                    children: [
                                        "Bash ",
                                        /*#__PURE__*/ jsx_runtime_.jsx(code/* default */.Z, {
                                            children: "script.sh"
                                        }),
                                        " file (left),",
                                        " ",
                                        /*#__PURE__*/ jsx_runtime_.jsx(code/* default */.Z, {
                                            children: "bash -f script.sh"
                                        }),
                                        " to run (right)"
                                    ]
                                }),
                                children: [
                                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)("p", {
                                        children: [
                                            "CoCalc's",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://doc.cocalc.com/frame-editor.html",
                                                children: "frame editor"
                                            }),
                                            " ",
                                            "supports ",
                                            /*#__PURE__*/ jsx_runtime_.jsx("strong", {
                                                children: "editing script files"
                                            }),
                                            " side-by-side with a",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx("strong", {
                                                children: /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                    href: "https://doc.cocalc.com/terminal.html",
                                                    children: "terminal"
                                                })
                                            }),
                                            "."
                                        ]
                                    }),
                                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)("p", {
                                        children: [
                                            "To get started, create a file with a suitable ending, e.g.",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(code/* default */.Z, {
                                                children: ".py"
                                            }),
                                            ", ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(code/* default */.Z, {
                                                children: ".sh"
                                            }),
                                            ", ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(code/* default */.Z, {
                                                children: ".r"
                                            }),
                                            ", ... Then open that file (via ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(code/* default */.Z, {
                                                children: "open filename.ext"
                                            }),
                                            ") and you can edit it with ",
                                            /*#__PURE__*/ jsx_runtime_.jsx("strong", {
                                                children: "syntax highlighting"
                                            }),
                                            ". Finally, split the frame and select the Terminal, like you can see it in the screenshot. Execute ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(code/* default */.Z, {
                                                children: "python3 script.py"
                                            }),
                                            ",",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(code/* default */.Z, {
                                                children: "bash -f script.sh"
                                            }),
                                            ", ... to run it.",
                                            " "
                                        ]
                                    })
                                ]
                            }),
                            /*#__PURE__*/ (0,jsx_runtime_.jsxs)(info/* default */.Z, {
                                title: "Comprehensive software stack",
                                icon: "server",
                                image: terminal_software,
                                anchor: "a-stack",
                                alt: "Terminals software",
                                caption: "Linux Terminals using vim, emacs, clang, mysql, cpp, maxim and zsh!",
                                wide: true,
                                children: [
                                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)("p", {
                                        children: [
                                            "Many ",
                                            /*#__PURE__*/ jsx_runtime_.jsx("strong", {
                                                children: "popular applications"
                                            }),
                                            " are included in CoCalc:",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://git-scm.com/",
                                                children: "Git"
                                            }),
                                            " to interact with",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://www.github.com",
                                                children: "GitHub"
                                            }),
                                            ",",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://www.vim.org/",
                                                children: "VIM"
                                            }),
                                            ",",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://www.gnu.org/software/emacs/",
                                                children: "Emacs"
                                            }),
                                            ", various programming shells like ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://ipython.org/",
                                                children: "IPython"
                                            }),
                                            ", ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://www.r-project.org/",
                                                children: "R"
                                            }),
                                            ",",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://www.gnu.org/software/octave/index",
                                                children: "Octave"
                                            }),
                                            " and",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://www.sagemath.org/",
                                                children: "SageMath"
                                            }),
                                            "."
                                        ]
                                    }),
                                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)("p", {
                                        children: [
                                            "There is also support for many programming languages and compilers. ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "/features/python",
                                                children: "Python"
                                            }),
                                            ", JAVA, C/C++ via",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://gcc.gnu.org/",
                                                children: "GCC"
                                            }),
                                            " and",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://clang.llvm.org/",
                                                children: "Clang"
                                            }),
                                            ",",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://ziglang.org/",
                                                children: "Zig"
                                            }),
                                            ",",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://en.wikipedia.org/wiki/Ada_(programming_language)",
                                                children: "Ada"
                                            }),
                                            ",",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://en.wikipedia.org/wiki/Haskell_(programming_language)",
                                                children: "Haskell"
                                            }),
                                            ", ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://en.wikipedia.org/wiki/Smalltalk",
                                                children: "Smalltalk"
                                            }),
                                            ",",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                href: "https://www.rust-lang.org/",
                                                children: "Rust"
                                            }),
                                            " and many more."
                                        ]
                                    }),
                                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)("p", {
                                        children: [
                                            "Look at our",
                                            " ",
                                            /*#__PURE__*/ jsx_runtime_.jsx("strong", {
                                                children: /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                                                    href: "/software/executables",
                                                    children: "list of executables"
                                                })
                                            }),
                                            " ",
                                            "to check what is available!",
                                            " "
                                        ]
                                    })
                                ]
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx(snapshots/* default */.Z, {}),
                            /*#__PURE__*/ jsx_runtime_.jsx(compare/* default */.Z, {
                                name: "terminal",
                                disclaimer: true,
                                title: /*#__PURE__*/ (0,jsx_runtime_.jsxs)("h2", {
                                    style: {
                                        textAlign: "center"
                                    },
                                    children: [
                                        /*#__PURE__*/ jsx_runtime_.jsx(icon.Icon, {
                                            name: "bolt"
                                        }),
                                        " Terminals in CoCalc versus the competition"
                                    ]
                                })
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx(sign_in/* default */.Z, {
                                startup: component
                            })
                        ]
                    }),
                    /*#__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, [549,6918,3429,2952,1746,1664,7545,3734,2208,5654,9925,9715,2448,9066,981,5997,5409,6087,722,3624,9924,5379,5490,6952,5863,8572,4868,5123,8867], () => (__webpack_exec__(919956)));
module.exports = __webpack_exports__;

})();