{"data":{"mdx":{"code":{"body":"function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nreturn class MDXContent extends React.Component {\n  constructor(props) {\n    super(props);\n    this.layout = null;\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      components\n    } = _this$props,\n          props = _objectWithoutProperties(_this$props, [\"components\"]);\n\n    return React.createElement(MDXTag, {\n      name: \"wrapper\",\n      components: components\n    }, React.createElement(MDXTag, {\n      name: \"h1\",\n      components: components\n    }, `Ubuntu`), React.createElement(MDXTag, {\n      name: \"p\",\n      components: components\n    }, `I first used Ubuntu (8.04 Hardy Heron) as my primary OS in 2008 in my second year of university as my main C++ development environment (Code::Blocks debugger 💖).`), React.createElement(MDXTag, {\n      name: \"p\",\n      components: components\n    }, `I'm now using Ubuntu as my primary OS on my work laptop again, after having used MacOS / OS X for ~8 years, since we run mostly Debian in production and I've wanted to experiment with life outside the Apple ecosystem.`), React.createElement(MDXTag, {\n      name: \"p\",\n      components: components\n    }, `At university I \"volunteered\" (played games) in UCT's Shuttleworth Lab and tutored second-year students in their Linux lab sessions using Ubuntu.`), React.createElement(MDXTag, {\n      name: \"p\",\n      components: components\n    }, `I've used other Linux distributions since, but for personal servers have always come back to Ubuntu.`), React.createElement(MDXTag, {\n      name: \"h2\",\n      components: components\n    }, `Tips`), React.createElement(MDXTag, {\n      name: \"ul\",\n      components: components\n    }, React.createElement(MDXTag, {\n      name: \"li\",\n      components: components,\n      parentName: \"ul\"\n    }, `Ubuntu ships with a modern `, React.createElement(MDXTag, {\n      name: \"inlineCode\",\n      components: components,\n      parentName: \"li\"\n    }, `screen`), ` replacement / text-based window manager called `, React.createElement(MDXTag, {\n      name: \"a\",\n      components: components,\n      parentName: \"li\",\n      props: {\n        \"href\": \"http://byobu.co/\"\n      }\n    }, React.createElement(MDXTag, {\n      name: \"inlineCode\",\n      components: components,\n      parentName: \"a\"\n    }, `Byobu`)), `, great for servers. (Don't use it to run production services 😖, create a `, React.createElement(MDXTag, {\n      name: \"inlineCode\",\n      components: components,\n      parentName: \"li\"\n    }, `systemd`), ` service unit!)`), React.createElement(MDXTag, {\n      name: \"li\",\n      components: components,\n      parentName: \"ul\"\n    }, `If you haven't used them yet, check out `, React.createElement(MDXTag, {\n      name: \"inlineCode\",\n      components: components,\n      parentName: \"li\"\n    }, `systemd --user`), ` units. `, React.createElement(MDXTag, {\n      name: \"a\",\n      components: components,\n      parentName: \"li\",\n      props: {\n        \"href\": \"https://keybase.io/docs/linux-user-guide\"\n      }\n    }, `Keybase's Linux client`), ` is a great example.`)), React.createElement(MDXTag, {\n      name: \"h2\",\n      components: components\n    }, `Other *nixes`), React.createElement(MDXTag, {\n      name: \"p\",\n      components: components\n    }, `At Amazon we ran a RHEL-based distribution with a lot of internal tooling, called \"Amazon Linux\". It was based on a very old RHEL 5(?) at the time and had restrictive repos. 3/5 stars. :P`), React.createElement(MDXTag, {\n      name: \"p\",\n      components: components\n    }, `When Ryzen was still brand-new and I was building my SFF PC during a trip through the Unites States I needed a distribution that shipped with proprietary graphics drivers out of the box. Manjaro Linux was one of the first distros I got to work without a hitch, but running a distribution with rolling updates while restricted by data in Sierra Leone is pretty annoying. 4/5 stars.`));\n  }\n\n}"},"frontmatter":{"type":null,"dates":null,"org":null,"detail":null,"tech":null,"role":null}}},"pageContext":{"id":"d839bad9-9c6c-59cd-a9b9-cce561b0946b","slug":"/tech/ubuntu"}}