diff --git a/404.html b/404.html index eb1f2f7..810df86 100644 --- a/404.html +++ b/404.html @@ -4,13 +4,13 @@ Page Not Found | Intern Onboarding Guide - +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- + \ No newline at end of file diff --git a/about/index.html b/about/index.html index ebf1f56..f6b7470 100644 --- a/about/index.html +++ b/about/index.html @@ -4,13 +4,13 @@ 🍃 About the Guide | Intern Onboarding Guide - +
Skip to main content

🍃 About the Guide

This guide serves as a reference for new interns at datHere.

🔍 Found a mistake in the guide?

Feel free to contribute to this site by clicking the "Edit this page" button at the bottom of any page on the guide to make a PR on our GitHub repository.

It helps keeping content up to date and accurate for future interns and for your own reference! 🌌

- + \ No newline at end of file diff --git a/assets/js/f269bf4d.b2d0df23.js b/assets/js/f269bf4d.b2d0df23.js new file mode 100644 index 0000000..4cdbfa3 --- /dev/null +++ b/assets/js/f269bf4d.b2d0df23.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkde_intern_tutorial=self.webpackChunkde_intern_tutorial||[]).push([[985],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(n),m=o,k=c["".concat(l,".").concat(m)]||c[m]||d[m]||r;return n?a.createElement(k,i(i({ref:t},u),{},{components:n})):a.createElement(k,i({ref:t},u))}));function k(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:o,i[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var a=n(7462),o=(n(7294),n(3905));const r={sidebar_position:4},i="\ud83d\udcca CKAN Setup",s={unversionedId:"onboarding/ckan-setup",id:"onboarding/ckan-setup",title:"\ud83d\udcca CKAN Setup",description:"In this section we'll go over how to install CKAN v2.10.6 and get it running on your Ubuntu VM.",source:"@site/docs/onboarding/ckan-setup.mdx",sourceDirName:"onboarding",slug:"/onboarding/ckan-setup",permalink:"/de-intern-guide/onboarding/ckan-setup",draft:!1,editUrl:"https://github.com/dathere/de-intern-guide/tree/main/docs/onboarding/ckan-setup.mdx",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"guideSidebar",previous:{title:"\u26a1 qsv Setup",permalink:"/de-intern-guide/onboarding/qsv-setup"},next:{title:"\ud83d\udcee DataPusher+ Setup",permalink:"/de-intern-guide/onboarding/datapusher-plus-setup"}},l={},p=[{value:"\ud83d\udcdd Written Tutorial",id:"-written-tutorial",level:2},{value:"Upgrade packages",id:"upgrade-packages",level:2},{value:"Set up SSH (optional)",id:"set-up-ssh-optional",level:2},{value:"Install Docker",id:"install-docker",level:2},{value:"Install docker-compose",id:"install-docker-compose",level:2},{value:"Download Ahoy and add to $PATH",id:"download-ahoy-and-add-to-path",level:2},{value:"Set up ckan-compose (provides you with PostgreSQL, Redis, and SOLR 9)",id:"set-up-ckan-compose-provides-you-with-postgresql-redis-and-solr-9",level:2},{value:"CKAN steps 1-4 with caveats",id:"ckan-steps-1-4-with-caveats",level:2},{value:"When restarting your server",id:"when-restarting-your-server",level:2}],u={toc:p},c="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(c,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"-ckan-setup"},"\ud83d\udcca CKAN Setup"),(0,o.kt)("p",null,"In this section we'll go over how to install ",(0,o.kt)("a",{parentName:"p",href:"https://ckan.org"},"CKAN")," v2.10.6 and get it running on your Ubuntu VM."),(0,o.kt)("h2",{id:"-written-tutorial"},"\ud83d\udcdd Written Tutorial"),(0,o.kt)("p",null,"Prerequisites:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"New installation of Ubuntu 22.04 (",(0,o.kt)("a",{parentName:"li",href:"/onboarding/ubuntu-vm-setup"},"virtual machine"),", VPS, local device, etc.) connected to the Internet.")),(0,o.kt)("p",null,"For these installation notes we'll assume the username in Ubuntu is ",(0,o.kt)("inlineCode",{parentName:"p"},"rzmk"),", so change it to yours when applicable."),(0,o.kt)("h2",{id:"upgrade-packages"},"Upgrade packages"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"sudo apt update -y && sudo apt upgrade -y\n")),(0,o.kt)("admonition",{title:"Can't paste commands into your VM terminal?",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"If you're unable to paste text into the VM, you may either:"),(0,o.kt)("ul",{parentName:"admonition"},(0,o.kt)("li",{parentName:"ul"},"Search through the VM settings/configuration to enable copying/pasting text"),(0,o.kt)("li",{parentName:"ul"},"SSH into the VM and paste into your local terminal"))),(0,o.kt)("h2",{id:"set-up-ssh-optional"},"Set up SSH (optional)"),(0,o.kt)("p",null,"If you're using a VM then it may be easier when developing to SSH into the VM from a code editor such as VSCode, VSCodium, or Zed."),(0,o.kt)("p",null,"To enable SSH on the VM install ",(0,o.kt)("inlineCode",{parentName:"p"},"openssh-server"),", and to identify the VM IP address to use when using SSH install ",(0,o.kt)("inlineCode",{parentName:"p"},"net-tools"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"sudo apt install openssh-server net-tools -y\n")),(0,o.kt)("p",null,"Run the ",(0,o.kt)("inlineCode",{parentName:"p"},"ifconfig")," command to identify your IP address, then use SSH on your local device and code editor to access the environment:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"ssh rzmk@IPADDRESSHERE\n")),(0,o.kt)("h2",{id:"install-docker"},"Install Docker"),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"Notes for this section based on ",(0,o.kt)("a",{parentName:"p",href:"https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-22-04"},"https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-22-04"),".")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},'sudo apt update\nsudo apt install apt-transport-https ca-certificates curl software-properties-common -y\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg\necho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null\nsudo apt update\napt-cache policy docker-ce\nsudo apt install docker-ce -y\n')),(0,o.kt)("p",null,"Also add your user to the sudo group to run Docker without ",(0,o.kt)("inlineCode",{parentName:"p"},"sudo"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"sudo usermod -aG docker ${USER}\nsu - ${USER}\n")),(0,o.kt)("h2",{id:"install-docker-compose"},"Install ",(0,o.kt)("inlineCode",{parentName:"h2"},"docker-compose")),(0,o.kt)("p",null,"We use ",(0,o.kt)("inlineCode",{parentName:"p"},"docker-compose")," to set up and run ",(0,o.kt)("inlineCode",{parentName:"p"},"ckan-compose"),"."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"sudo apt install docker-compose -y\n")),(0,o.kt)("h2",{id:"download-ahoy-and-add-to-path"},"Download Ahoy and add to $PATH"),(0,o.kt)("p",null,"We'll be using ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/tino097/ckan-compose"},"ckan-compose")," to handle the PostgreSQL, Redis, and SOLR setup. One of the prerequisites for using ckan-compose is installing ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/ahoy-cli/ahoy"},"Ahoy"),"."),(0,o.kt)("p",null,"Go to ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/ahoy-cli/ahoy/releases/latest"},"https://github.com/ahoy-cli/ahoy/releases/latest")," and download the ",(0,o.kt)("inlineCode",{parentName:"p"},"ahoy-bin-linux-amd64")," file and move it to your ",(0,o.kt)("inlineCode",{parentName:"p"},"$PATH")," named as ",(0,o.kt)("inlineCode",{parentName:"p"},"ahoy"),"."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"sudo mv ~/Downloads/ahoy-bin-linux-amd64 /usr/local/bin/ahoy\nsudo chmod +x /usr/local/bin/ahoy\n")),(0,o.kt)("h2",{id:"set-up-ckan-compose-provides-you-with-postgresql-redis-and-solr-9"},"Set up ckan-compose (provides you with PostgreSQL, Redis, and SOLR 9)"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"cd ~/\nsudo apt install docker-compose -y\ngit clone https://github.com/tino097/ckan-compose.git\ncd ckan-compose\ngit switch solr-9-impl\nahoy generate-env\nahoy up\n")),(0,o.kt)("admonition",{title:"Apple Silicon?",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"If you're using macOS, you may need to change the postgis image used in ",(0,o.kt)("inlineCode",{parentName:"p"},"ckan-compose/postgres/Dockerfile"),". Change ",(0,o.kt)("inlineCode",{parentName:"p"},"FROM postgis/postgis:16-3.4-alpine")," to FROM ",(0,o.kt)("inlineCode",{parentName:"p"},"imresamu/postgis:16-3.4-bundle0-bookworm")," (based on ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/dathere/de-intern-guide/issues/29"},"this issue"),").")),(0,o.kt)("admonition",{title:"Permission denied?",type:"info"},(0,o.kt)("p",{parentName:"admonition"},'If you get a "Permission denied" error, you may need to run ',(0,o.kt)("inlineCode",{parentName:"p"},"sudo ahoy up")," instead of ",(0,o.kt)("inlineCode",{parentName:"p"},"ahoy up"),".")),(0,o.kt)("p",null,"You may get asked after ",(0,o.kt)("inlineCode",{parentName:"p"},"ahoy generate-env")," to provide a ",(0,o.kt)("inlineCode",{parentName:"p"},"PROJECT_NAME"),", this can be anything so we'll put ",(0,o.kt)("inlineCode",{parentName:"p"},"myproject"),". You may also use the defaults for ",(0,o.kt)("inlineCode",{parentName:"p"},"DATASTORE_READONLY_PASSWORD")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"POSTGRES_PASSWORD")," for development."),(0,o.kt)("h2",{id:"ckan-steps-1-4-with-caveats"},"CKAN steps 1-4 with caveats"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"sudo apt-get install python3-dev libpq-dev python3-pip python3-venv git-core redis-server -y\nsudo mkdir -p /usr/lib/ckan/default\nsudo chown `whoami` /usr/lib/ckan/default\npython3 -m venv /usr/lib/ckan/default\n. /usr/lib/ckan/default/bin/activate\npip install --upgrade pip\npip install -e 'git+https://github.com/ckan/ckan.git@ckan-2.10.6#egg=ckan[requirements]'\ndeactivate\n. /usr/lib/ckan/default/bin/activate\nsudo mkdir -p /etc/ckan/default\nsudo chown -R `whoami` /etc/ckan/\nckan generate config /etc/ckan/default/ckan.ini\nln -s /usr/lib/ckan/default/src/ckan/who.ini /etc/ckan/default/who.ini\n")),(0,o.kt)("p",null,"Next you must modify the CKAN config at ",(0,o.kt)("inlineCode",{parentName:"p"},"/etc/ckan/default/ckan.ini"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},"debug = true\nckan.debug_supress_header = False\n")),(0,o.kt)("p",null,"Also replace the following values to this:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"ckan.devserver.threaded = true\nckan.max_resource_size = 10000\nckan.max_image_size = 5\n")),(0,o.kt)("p",null,"Continue to step 7 while in the virtual environment (replace ",(0,o.kt)("inlineCode",{parentName:"p"},"rzmk")," with your group then username for the ",(0,o.kt)("inlineCode",{parentName:"p"},"chown")," command and your CKAN details for the CKAN sysadmin account generation command). You may be prompted to add a sysadmin username and password (the password may need to be at least 8 characters)."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"cd /usr/lib/ckan/default/src/ckan\npip install flask-debugtoolbar==0.14.1\ncd /var/lib\nsudo mkdir -p ckan/default\nsudo chown rzmk.rzmk ckan/default\nckan -c /etc/ckan/default/ckan.ini db init\nckan -c /etc/ckan/default/ckan.ini sysadmin add rzmk email=rzmk@localhost name=rzmk\nckan -c /etc/ckan/default/ckan.ini run\n")),(0,o.kt)("p",null,"Now you should be able to view your locally running CKAN instance at ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:5000"},"http://localhost:5000"),"."),(0,o.kt)("h2",{id:"when-restarting-your-server"},"When restarting your server"),(0,o.kt)("p",null,"If you shut down your Ubuntu instance and then start it again, you may want to run the following commands to get the CKAN instance running again:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"/etc/init.d/redis-server stop\ncd ckan-compose\nahoy up\n")),(0,o.kt)("p",null,"Then run the following (e.g., after you SSH from your preferred terminal):"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"cd /usr/lib/ckan/default/\n. ./bin/activate\ncd src/ckan\nckan -c /etc/ckan/default/ckan.ini run\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f269bf4d.bf7ee4a0.js b/assets/js/f269bf4d.bf7ee4a0.js deleted file mode 100644 index 8e8d279..0000000 --- a/assets/js/f269bf4d.bf7ee4a0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkde_intern_tutorial=self.webpackChunkde_intern_tutorial||[]).push([[985],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},k=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=u(n),k=o,m=p["".concat(s,".").concat(k)]||p[k]||d[k]||r;return n?a.createElement(m,i(i({ref:t},c),{},{components:n})):a.createElement(m,i({ref:t},c))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=k;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>l,toc:()=>u});var a=n(7462),o=(n(7294),n(3905));const r={sidebar_position:4},i="\ud83d\udcca CKAN Setup",l={unversionedId:"onboarding/ckan-setup",id:"onboarding/ckan-setup",title:"\ud83d\udcca CKAN Setup",description:"In this section we'll go over how to install CKAN v2.10.6 and get it running on your Ubuntu VM.",source:"@site/docs/onboarding/ckan-setup.mdx",sourceDirName:"onboarding",slug:"/onboarding/ckan-setup",permalink:"/de-intern-guide/onboarding/ckan-setup",draft:!1,editUrl:"https://github.com/dathere/de-intern-guide/tree/main/docs/onboarding/ckan-setup.mdx",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"guideSidebar",previous:{title:"\u26a1 qsv Setup",permalink:"/de-intern-guide/onboarding/qsv-setup"},next:{title:"\ud83d\udcee DataPusher+ Setup",permalink:"/de-intern-guide/onboarding/datapusher-plus-setup"}},s={},u=[{value:"\ud83d\udcdd Written Tutorial",id:"-written-tutorial",level:2},{value:"Upgrade packages",id:"upgrade-packages",level:2},{value:"Set up SSH (optional)",id:"set-up-ssh-optional",level:2},{value:"Install Docker",id:"install-docker",level:2},{value:"Install docker-compose",id:"install-docker-compose",level:2},{value:"Download Ahoy and add to $PATH",id:"download-ahoy-and-add-to-path",level:2},{value:"Set up ckan-compose",id:"set-up-ckan-compose",level:2},{value:"CKAN steps 1-4 with caveats",id:"ckan-steps-1-4-with-caveats",level:2},{value:"When restarting your server",id:"when-restarting-your-server",level:2}],c={toc:u},p="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,a.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"-ckan-setup"},"\ud83d\udcca CKAN Setup"),(0,o.kt)("p",null,"In this section we'll go over how to install ",(0,o.kt)("a",{parentName:"p",href:"https://ckan.org"},"CKAN")," v2.10.6 and get it running on your Ubuntu VM."),(0,o.kt)("h2",{id:"-written-tutorial"},"\ud83d\udcdd Written Tutorial"),(0,o.kt)("p",null,"Prerequisites:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"New installation of Ubuntu 22.04 (",(0,o.kt)("a",{parentName:"li",href:"/onboarding/ubuntu-vm-setup"},"virtual machine"),", VPS, local device, etc.) connected to the Internet.")),(0,o.kt)("p",null,"For these installation notes we'll assume the username in Ubuntu is ",(0,o.kt)("inlineCode",{parentName:"p"},"rzmk"),", so change it to yours when applicable."),(0,o.kt)("h2",{id:"upgrade-packages"},"Upgrade packages"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"sudo apt update -y && sudo apt upgrade -y\n")),(0,o.kt)("admonition",{title:"Can't paste commands into your VM terminal?",type:"info"},(0,o.kt)("p",{parentName:"admonition"},"If you're unable to paste text into the VM, you may either:"),(0,o.kt)("ul",{parentName:"admonition"},(0,o.kt)("li",{parentName:"ul"},"Search through the VM settings/configuration to enable copying/pasting text"),(0,o.kt)("li",{parentName:"ul"},"SSH into the VM and paste into your local terminal"))),(0,o.kt)("h2",{id:"set-up-ssh-optional"},"Set up SSH (optional)"),(0,o.kt)("p",null,"If you're using a VM then it may be easier when developing to SSH into the VM from a code editor such as VSCode, VSCodium, or Zed."),(0,o.kt)("p",null,"To enable SSH on the VM install ",(0,o.kt)("inlineCode",{parentName:"p"},"openssh-server"),", and to identify the VM IP address to use when using SSH install ",(0,o.kt)("inlineCode",{parentName:"p"},"net-tools"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"sudo apt install openssh-server net-tools -y\n")),(0,o.kt)("p",null,"Run the ",(0,o.kt)("inlineCode",{parentName:"p"},"ifconfig")," command to identify your IP address, then use SSH on your local device and code editor to access the environment:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"ssh rzmk@IPADDRESSHERE\n")),(0,o.kt)("h2",{id:"install-docker"},"Install Docker"),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"Notes for this section based on ",(0,o.kt)("a",{parentName:"p",href:"https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-22-04"},"https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-22-04"),".")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},'sudo apt update\nsudo apt install apt-transport-https ca-certificates curl software-properties-common -y\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg\necho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null\nsudo apt update\napt-cache policy docker-ce\nsudo apt install docker-ce -y\n')),(0,o.kt)("p",null,"Also add your user to the sudo group to run Docker without ",(0,o.kt)("inlineCode",{parentName:"p"},"sudo"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"sudo usermod -aG docker ${USER}\nsu - ${USER}\n")),(0,o.kt)("h2",{id:"install-docker-compose"},"Install ",(0,o.kt)("inlineCode",{parentName:"h2"},"docker-compose")),(0,o.kt)("p",null,"We use ",(0,o.kt)("inlineCode",{parentName:"p"},"docker-compose")," to set up and run ",(0,o.kt)("inlineCode",{parentName:"p"},"ckan-compose"),"."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"sudo apt install docker-compose -y\n")),(0,o.kt)("h2",{id:"download-ahoy-and-add-to-path"},"Download Ahoy and add to $PATH"),(0,o.kt)("p",null,"We'll be using ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/tino097/ckan-compose"},"ckan-compose")," to handle the PostgreSQL, Redis, and SOLR setup. One of the prerequisites for using ckan-compose is installing ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/ahoy-cli/ahoy"},"Ahoy"),"."),(0,o.kt)("p",null,"Go to ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/ahoy-cli/ahoy/releases/latest"},"https://github.com/ahoy-cli/ahoy/releases/latest")," and download the ",(0,o.kt)("inlineCode",{parentName:"p"},"ahoy-bin-linux-amd64")," file and move it to your ",(0,o.kt)("inlineCode",{parentName:"p"},"$PATH")," named as ",(0,o.kt)("inlineCode",{parentName:"p"},"ahoy"),"."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"sudo mv ~/Downloads/ahoy-bin-linux-amd64 /usr/local/bin/ahoy\nsudo chmod +x /usr/local/bin/ahoy\n")),(0,o.kt)("h2",{id:"set-up-ckan-compose"},"Set up ckan-compose"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"cd ~/\nsudo apt install docker-compose -y\ngit clone https://github.com/tino097/ckan-compose.git\ncd ckan-compose\nahoy generate-env\nahoy up\n")),(0,o.kt)("p",null,"You may get asked after ",(0,o.kt)("inlineCode",{parentName:"p"},"ahoy generate-env")," to provide a ",(0,o.kt)("inlineCode",{parentName:"p"},"PROJECT_NAME"),", this can be anything so we'll put ",(0,o.kt)("inlineCode",{parentName:"p"},"myproject"),". You may also use the defaults for ",(0,o.kt)("inlineCode",{parentName:"p"},"DATASTORE_READONLY_PASSWORD")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"POSTGRES_PASSWORD")," for development."),(0,o.kt)("h2",{id:"ckan-steps-1-4-with-caveats"},"CKAN steps 1-4 with caveats"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"sudo apt-get install python3-dev libpq-dev python3-pip python3-venv git-core redis-server -y\nsudo mkdir -p /usr/lib/ckan/default\nsudo chown `whoami` /usr/lib/ckan/default\npython3 -m venv /usr/lib/ckan/default\n. /usr/lib/ckan/default/bin/activate\npip install --upgrade pip\npip install -e 'git+https://github.com/ckan/ckan.git@ckan-2.10.6#egg=ckan[requirements]'\ndeactivate\n. /usr/lib/ckan/default/bin/activate\nsudo mkdir -p /etc/ckan/default\nsudo chown -R `whoami` /etc/ckan/\nckan generate config /etc/ckan/default/ckan.ini\nln -s /usr/lib/ckan/default/src/ckan/who.ini /etc/ckan/default/who.ini\n")),(0,o.kt)("p",null,"Next you must modify the CKAN config at ",(0,o.kt)("inlineCode",{parentName:"p"},"/etc/ckan/default/ckan.ini"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},"debug = true\nckan.debug_supress_header = False\n")),(0,o.kt)("p",null,"Also replace the following values to this:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"ckan.devserver.threaded = true\nckan.max_resource_size = 10000\nckan.max_image_size = 5\n")),(0,o.kt)("p",null,"Continue to step 7 while in the virtual environment (replace ",(0,o.kt)("inlineCode",{parentName:"p"},"rzmk")," with your group then username for the ",(0,o.kt)("inlineCode",{parentName:"p"},"chown")," command and your CKAN details for the CKAN sysadmin account generation command). You may be prompted to add a sysadmin username and password (the password may need to be at least 8 characters)."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"cd /usr/lib/ckan/default/src/ckan\npip install flask-debugtoolbar==0.14.1\ncd /var/lib\nsudo mkdir -p ckan/default\nsudo chown rzmk.rzmk ckan/default\nckan -c /etc/ckan/default/ckan.ini db init\nckan -c /etc/ckan/default/ckan.ini sysadmin add rzmk email=rzmk@localhost name=rzmk\nckan -c /etc/ckan/default/ckan.ini run\n")),(0,o.kt)("p",null,"Now you should be able to view your locally running CKAN instance at ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:5000"},"http://localhost:5000"),"."),(0,o.kt)("h2",{id:"when-restarting-your-server"},"When restarting your server"),(0,o.kt)("p",null,"If you shut down your Ubuntu instance and then start it again, you may want to run the following commands to get the CKAN instance running again:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"/etc/init.d/redis-server stop\ncd ckan-compose\nahoy up\n")),(0,o.kt)("p",null,"Then run the following (e.g., after you SSH from your preferred terminal):"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"cd /usr/lib/ckan/default/\n. ./bin/activate\ncd src/ckan\nckan -c /etc/ckan/default/ckan.ini run\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.5a8eeb80.js b/assets/js/runtime~main.c06543dd.js similarity index 98% rename from assets/js/runtime~main.5a8eeb80.js rename to assets/js/runtime~main.c06543dd.js index 04c7066..c389c31 100644 --- a/assets/js/runtime~main.5a8eeb80.js +++ b/assets/js/runtime~main.c06543dd.js @@ -1 +1 @@ -(()=>{"use strict";var e,t,a,r,o,f={},n={};function d(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={id:e,loaded:!1,exports:{}};return f[e].call(a.exports,a,a.exports,d),a.loaded=!0,a.exports}d.m=f,d.c=n,e=[],d.O=(t,a,r,o)=>{if(!a){var f=1/0;for(b=0;b=o)&&Object.keys(d.O).every((e=>d.O[e](a[c])))?a.splice(c--,1):(n=!1,o0&&e[b-1][2]>o;b--)e[b]=e[b-1];e[b]=[a,r,o]},d.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return d.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);d.r(o);var f={};t=t||[null,a({}),a([]),a(a)];for(var n=2&r&&e;"object"==typeof n&&!~t.indexOf(n);n=a(n))Object.getOwnPropertyNames(n).forEach((t=>f[t]=()=>e[t]));return f.default=()=>e,d.d(o,f),o},d.d=(e,t)=>{for(var a in t)d.o(t,a)&&!d.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce(((t,a)=>(d.f[a](e,t),t)),[])),d.u=e=>"assets/js/"+({53:"935f2afb",85:"1f391b9e",117:"356a0ac6",119:"a3696a00",152:"18d4c4b8",206:"f8409a7e",241:"01232042",262:"e27ea86e",329:"a9ca83f8",384:"eaaa789e",405:"a9ea4256",414:"393be207",432:"321014e7",514:"1be78505",617:"0ab13595",627:"b51a1159",762:"73ae107a",764:"0f1f73a8",795:"0f0cf65e",798:"a53e4d49",817:"14eb3368",827:"010f034f",838:"5a2b65ac",904:"1d769a5c",918:"17896441",920:"095073fd",935:"7aa35b29",985:"f269bf4d"}[e]||e)+"."+{53:"3247fd5f",85:"9cf78ad5",117:"14cf7ee2",119:"69839c27",152:"f4b1aff4",206:"cbf970c8",241:"9dc00bc5",262:"615cb4b9",329:"562eb44e",384:"1c99ddf4",405:"2a98d330",414:"1d2f2320",432:"a44e453a",455:"907a2712",514:"542f6b54",617:"03cbfe8d",627:"701a27cd",762:"26e546de",764:"eaeaad6c",795:"eb7870ee",798:"7f7217ba",817:"56d64c00",827:"437add93",838:"2e34f2be",904:"10e4e6d1",918:"e27ac847",920:"fea4e386",935:"0f72fac8",972:"0981a0e3",985:"bf7ee4a0"}[e]+".js",d.miniCssF=e=>{},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},o="de-intern-tutorial:",d.l=(e,t,a,f)=>{if(r[e])r[e].push(t);else{var n,c;if(void 0!==a)for(var i=document.getElementsByTagName("script"),b=0;b{n.onerror=n.onload=null,clearTimeout(s);var o=r[e];if(delete r[e],n.parentNode&&n.parentNode.removeChild(n),o&&o.forEach((e=>e(a))),t)return t(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=l.bind(null,n.onerror),n.onload=l.bind(null,n.onload),c&&document.head.appendChild(n)}},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.p="/de-intern-guide/",d.gca=function(e){return e={17896441:"918","935f2afb":"53","1f391b9e":"85","356a0ac6":"117",a3696a00:"119","18d4c4b8":"152",f8409a7e:"206","01232042":"241",e27ea86e:"262",a9ca83f8:"329",eaaa789e:"384",a9ea4256:"405","393be207":"414","321014e7":"432","1be78505":"514","0ab13595":"617",b51a1159:"627","73ae107a":"762","0f1f73a8":"764","0f0cf65e":"795",a53e4d49:"798","14eb3368":"817","010f034f":"827","5a2b65ac":"838","1d769a5c":"904","095073fd":"920","7aa35b29":"935",f269bf4d:"985"}[e]||e,d.p+d.u(e)},(()=>{var e={303:0,532:0};d.f.j=(t,a)=>{var r=d.o(e,t)?e[t]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var o=new Promise(((a,o)=>r=e[t]=[a,o]));a.push(r[2]=o);var f=d.p+d.u(t),n=new Error;d.l(f,(a=>{if(d.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=a&&("load"===a.type?"missing":a.type),f=a&&a.target&&a.target.src;n.message="Loading chunk "+t+" failed.\n("+o+": "+f+")",n.name="ChunkLoadError",n.type=o,n.request=f,r[1](n)}}),"chunk-"+t,t)}},d.O.j=t=>0===e[t];var t=(t,a)=>{var r,o,f=a[0],n=a[1],c=a[2],i=0;if(f.some((t=>0!==e[t]))){for(r in n)d.o(n,r)&&(d.m[r]=n[r]);if(c)var b=c(d)}for(t&&t(a);i{"use strict";var e,t,a,r,o,f={},n={};function d(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={id:e,loaded:!1,exports:{}};return f[e].call(a.exports,a,a.exports,d),a.loaded=!0,a.exports}d.m=f,d.c=n,e=[],d.O=(t,a,r,o)=>{if(!a){var f=1/0;for(b=0;b=o)&&Object.keys(d.O).every((e=>d.O[e](a[c])))?a.splice(c--,1):(n=!1,o0&&e[b-1][2]>o;b--)e[b]=e[b-1];e[b]=[a,r,o]},d.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return d.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);d.r(o);var f={};t=t||[null,a({}),a([]),a(a)];for(var n=2&r&&e;"object"==typeof n&&!~t.indexOf(n);n=a(n))Object.getOwnPropertyNames(n).forEach((t=>f[t]=()=>e[t]));return f.default=()=>e,d.d(o,f),o},d.d=(e,t)=>{for(var a in t)d.o(t,a)&&!d.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce(((t,a)=>(d.f[a](e,t),t)),[])),d.u=e=>"assets/js/"+({53:"935f2afb",85:"1f391b9e",117:"356a0ac6",119:"a3696a00",152:"18d4c4b8",206:"f8409a7e",241:"01232042",262:"e27ea86e",329:"a9ca83f8",384:"eaaa789e",405:"a9ea4256",414:"393be207",432:"321014e7",514:"1be78505",617:"0ab13595",627:"b51a1159",762:"73ae107a",764:"0f1f73a8",795:"0f0cf65e",798:"a53e4d49",817:"14eb3368",827:"010f034f",838:"5a2b65ac",904:"1d769a5c",918:"17896441",920:"095073fd",935:"7aa35b29",985:"f269bf4d"}[e]||e)+"."+{53:"3247fd5f",85:"9cf78ad5",117:"14cf7ee2",119:"69839c27",152:"f4b1aff4",206:"cbf970c8",241:"9dc00bc5",262:"615cb4b9",329:"562eb44e",384:"1c99ddf4",405:"2a98d330",414:"1d2f2320",432:"a44e453a",455:"907a2712",514:"542f6b54",617:"03cbfe8d",627:"701a27cd",762:"26e546de",764:"eaeaad6c",795:"eb7870ee",798:"7f7217ba",817:"56d64c00",827:"437add93",838:"2e34f2be",904:"10e4e6d1",918:"e27ac847",920:"fea4e386",935:"0f72fac8",972:"0981a0e3",985:"b2d0df23"}[e]+".js",d.miniCssF=e=>{},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},o="de-intern-tutorial:",d.l=(e,t,a,f)=>{if(r[e])r[e].push(t);else{var n,c;if(void 0!==a)for(var i=document.getElementsByTagName("script"),b=0;b{n.onerror=n.onload=null,clearTimeout(s);var o=r[e];if(delete r[e],n.parentNode&&n.parentNode.removeChild(n),o&&o.forEach((e=>e(a))),t)return t(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=l.bind(null,n.onerror),n.onload=l.bind(null,n.onload),c&&document.head.appendChild(n)}},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.p="/de-intern-guide/",d.gca=function(e){return e={17896441:"918","935f2afb":"53","1f391b9e":"85","356a0ac6":"117",a3696a00:"119","18d4c4b8":"152",f8409a7e:"206","01232042":"241",e27ea86e:"262",a9ca83f8:"329",eaaa789e:"384",a9ea4256:"405","393be207":"414","321014e7":"432","1be78505":"514","0ab13595":"617",b51a1159:"627","73ae107a":"762","0f1f73a8":"764","0f0cf65e":"795",a53e4d49:"798","14eb3368":"817","010f034f":"827","5a2b65ac":"838","1d769a5c":"904","095073fd":"920","7aa35b29":"935",f269bf4d:"985"}[e]||e,d.p+d.u(e)},(()=>{var e={303:0,532:0};d.f.j=(t,a)=>{var r=d.o(e,t)?e[t]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var o=new Promise(((a,o)=>r=e[t]=[a,o]));a.push(r[2]=o);var f=d.p+d.u(t),n=new Error;d.l(f,(a=>{if(d.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=a&&("load"===a.type?"missing":a.type),f=a&&a.target&&a.target.src;n.message="Loading chunk "+t+" failed.\n("+o+": "+f+")",n.name="ChunkLoadError",n.type=o,n.request=f,r[1](n)}}),"chunk-"+t,t)}},d.O.j=t=>0===e[t];var t=(t,a)=>{var r,o,f=a[0],n=a[1],c=a[2],i=0;if(f.some((t=>0!==e[t]))){for(r in n)d.o(n,r)&&(d.m[r]=n[r]);if(c)var b=c(d)}for(t&&t(a);i ✈ Onboarding Setup | Intern Onboarding Guide - + - + \ No newline at end of file diff --git a/category/-qsv/index.html b/category/-qsv/index.html index 621c6cb..a9a346d 100644 --- a/category/-qsv/index.html +++ b/category/-qsv/index.html @@ -4,13 +4,13 @@ ⚡ qsv | Intern Onboarding Guide - + - + \ No newline at end of file diff --git a/category/-technical-writing/index.html b/category/-technical-writing/index.html index 07e17f0..ccedd05 100644 --- a/category/-technical-writing/index.html +++ b/category/-technical-writing/index.html @@ -4,13 +4,13 @@ ✍ Technical Writing | Intern Onboarding Guide - + - + \ No newline at end of file diff --git a/index.html b/index.html index c9b7b3b..81cd066 100644 --- a/index.html +++ b/index.html @@ -4,13 +4,13 @@ 👋 Welcome to datHere! | Intern Onboarding Guide - +

👋 Welcome to datHere!

✨ Overview

Glad to have you here 🎉! This guide serves as a reference for new interns at datHere.

If you have any more questions that aren't answered here, please reach out to your team members on Slack.

🙌 Sounds great! How do I get started?

Click the "Next" button below to get started!

You can also navigate the guide using the sidebar on the left.

If you're on a mobile device you can click on the three lines in the top left corner to open the sidebar.

- + \ No newline at end of file diff --git a/markdown-page/index.html b/markdown-page/index.html index 1ab4a13..062accc 100644 --- a/markdown-page/index.html +++ b/markdown-page/index.html @@ -4,13 +4,13 @@ Markdown page example | Intern Onboarding Guide - +

Markdown page example

You don't need React to write simple standalone pages.

- + \ No newline at end of file diff --git a/onboarding/ckan-setup/index.html b/onboarding/ckan-setup/index.html index 826f148..5752e25 100644 --- a/onboarding/ckan-setup/index.html +++ b/onboarding/ckan-setup/index.html @@ -4,13 +4,13 @@ 📊 CKAN Setup | Intern Onboarding Guide - +
-

📊 CKAN Setup

In this section we'll go over how to install CKAN v2.10.6 and get it running on your Ubuntu VM.

📝 Written Tutorial

Prerequisites:

  • New installation of Ubuntu 22.04 (virtual machine, VPS, local device, etc.) connected to the Internet.

For these installation notes we'll assume the username in Ubuntu is rzmk, so change it to yours when applicable.

Upgrade packages

sudo apt update -y && sudo apt upgrade -y
Can't paste commands into your VM terminal?

If you're unable to paste text into the VM, you may either:

  • Search through the VM settings/configuration to enable copying/pasting text
  • SSH into the VM and paste into your local terminal

Set up SSH (optional)

If you're using a VM then it may be easier when developing to SSH into the VM from a code editor such as VSCode, VSCodium, or Zed.

To enable SSH on the VM install openssh-server, and to identify the VM IP address to use when using SSH install net-tools:

sudo apt install openssh-server net-tools -y

Run the ifconfig command to identify your IP address, then use SSH on your local device and code editor to access the environment:

ssh rzmk@IPADDRESSHERE

Install Docker

Notes for this section based on https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-22-04.

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce -y

Also add your user to the sudo group to run Docker without sudo:

sudo usermod -aG docker ${USER}
su - ${USER}

Install docker-compose

We use docker-compose to set up and run ckan-compose.

sudo apt install docker-compose -y

Download Ahoy and add to $PATH

We'll be using ckan-compose to handle the PostgreSQL, Redis, and SOLR setup. One of the prerequisites for using ckan-compose is installing Ahoy.

Go to https://github.com/ahoy-cli/ahoy/releases/latest and download the ahoy-bin-linux-amd64 file and move it to your $PATH named as ahoy.

sudo mv ~/Downloads/ahoy-bin-linux-amd64 /usr/local/bin/ahoy
sudo chmod +x /usr/local/bin/ahoy

Set up ckan-compose

cd ~/
sudo apt install docker-compose -y
git clone https://github.com/tino097/ckan-compose.git
cd ckan-compose
ahoy generate-env
ahoy up

You may get asked after ahoy generate-env to provide a PROJECT_NAME, this can be anything so we'll put myproject. You may also use the defaults for DATASTORE_READONLY_PASSWORD and POSTGRES_PASSWORD for development.

CKAN steps 1-4 with caveats

sudo apt-get install python3-dev libpq-dev python3-pip python3-venv git-core redis-server -y
sudo mkdir -p /usr/lib/ckan/default
sudo chown `whoami` /usr/lib/ckan/default
python3 -m venv /usr/lib/ckan/default
. /usr/lib/ckan/default/bin/activate
pip install --upgrade pip
pip install -e 'git+https://github.com/ckan/ckan.git@ckan-2.10.6#egg=ckan[requirements]'
deactivate
. /usr/lib/ckan/default/bin/activate
sudo mkdir -p /etc/ckan/default
sudo chown -R `whoami` /etc/ckan/
ckan generate config /etc/ckan/default/ckan.ini
ln -s /usr/lib/ckan/default/src/ckan/who.ini /etc/ckan/default/who.ini

Next you must modify the CKAN config at /etc/ckan/default/ckan.ini:

debug = true
ckan.debug_supress_header = False

Also replace the following values to this:

ckan.devserver.threaded = true
ckan.max_resource_size = 10000
ckan.max_image_size = 5

Continue to step 7 while in the virtual environment (replace rzmk with your group then username for the chown command and your CKAN details for the CKAN sysadmin account generation command). You may be prompted to add a sysadmin username and password (the password may need to be at least 8 characters).

cd /usr/lib/ckan/default/src/ckan
pip install flask-debugtoolbar==0.14.1
cd /var/lib
sudo mkdir -p ckan/default
sudo chown rzmk.rzmk ckan/default
ckan -c /etc/ckan/default/ckan.ini db init
ckan -c /etc/ckan/default/ckan.ini sysadmin add rzmk email=rzmk@localhost name=rzmk
ckan -c /etc/ckan/default/ckan.ini run

Now you should be able to view your locally running CKAN instance at http://localhost:5000.

When restarting your server

If you shut down your Ubuntu instance and then start it again, you may want to run the following commands to get the CKAN instance running again:

/etc/init.d/redis-server stop
cd ckan-compose
ahoy up

Then run the following (e.g., after you SSH from your preferred terminal):

cd /usr/lib/ckan/default/
. ./bin/activate
cd src/ckan
ckan -c /etc/ckan/default/ckan.ini run
- +

📊 CKAN Setup

In this section we'll go over how to install CKAN v2.10.6 and get it running on your Ubuntu VM.

📝 Written Tutorial

Prerequisites:

  • New installation of Ubuntu 22.04 (virtual machine, VPS, local device, etc.) connected to the Internet.

For these installation notes we'll assume the username in Ubuntu is rzmk, so change it to yours when applicable.

Upgrade packages

sudo apt update -y && sudo apt upgrade -y
Can't paste commands into your VM terminal?

If you're unable to paste text into the VM, you may either:

  • Search through the VM settings/configuration to enable copying/pasting text
  • SSH into the VM and paste into your local terminal

Set up SSH (optional)

If you're using a VM then it may be easier when developing to SSH into the VM from a code editor such as VSCode, VSCodium, or Zed.

To enable SSH on the VM install openssh-server, and to identify the VM IP address to use when using SSH install net-tools:

sudo apt install openssh-server net-tools -y

Run the ifconfig command to identify your IP address, then use SSH on your local device and code editor to access the environment:

ssh rzmk@IPADDRESSHERE

Install Docker

Notes for this section based on https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-22-04.

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce -y

Also add your user to the sudo group to run Docker without sudo:

sudo usermod -aG docker ${USER}
su - ${USER}

Install docker-compose

We use docker-compose to set up and run ckan-compose.

sudo apt install docker-compose -y

Download Ahoy and add to $PATH

We'll be using ckan-compose to handle the PostgreSQL, Redis, and SOLR setup. One of the prerequisites for using ckan-compose is installing Ahoy.

Go to https://github.com/ahoy-cli/ahoy/releases/latest and download the ahoy-bin-linux-amd64 file and move it to your $PATH named as ahoy.

sudo mv ~/Downloads/ahoy-bin-linux-amd64 /usr/local/bin/ahoy
sudo chmod +x /usr/local/bin/ahoy

Set up ckan-compose (provides you with PostgreSQL, Redis, and SOLR 9)

cd ~/
sudo apt install docker-compose -y
git clone https://github.com/tino097/ckan-compose.git
cd ckan-compose
git switch solr-9-impl
ahoy generate-env
ahoy up
Apple Silicon?

If you're using macOS, you may need to change the postgis image used in ckan-compose/postgres/Dockerfile. Change FROM postgis/postgis:16-3.4-alpine to FROM imresamu/postgis:16-3.4-bundle0-bookworm (based on this issue).

Permission denied?

If you get a "Permission denied" error, you may need to run sudo ahoy up instead of ahoy up.

You may get asked after ahoy generate-env to provide a PROJECT_NAME, this can be anything so we'll put myproject. You may also use the defaults for DATASTORE_READONLY_PASSWORD and POSTGRES_PASSWORD for development.

CKAN steps 1-4 with caveats

sudo apt-get install python3-dev libpq-dev python3-pip python3-venv git-core redis-server -y
sudo mkdir -p /usr/lib/ckan/default
sudo chown `whoami` /usr/lib/ckan/default
python3 -m venv /usr/lib/ckan/default
. /usr/lib/ckan/default/bin/activate
pip install --upgrade pip
pip install -e 'git+https://github.com/ckan/ckan.git@ckan-2.10.6#egg=ckan[requirements]'
deactivate
. /usr/lib/ckan/default/bin/activate
sudo mkdir -p /etc/ckan/default
sudo chown -R `whoami` /etc/ckan/
ckan generate config /etc/ckan/default/ckan.ini
ln -s /usr/lib/ckan/default/src/ckan/who.ini /etc/ckan/default/who.ini

Next you must modify the CKAN config at /etc/ckan/default/ckan.ini:

debug = true
ckan.debug_supress_header = False

Also replace the following values to this:

ckan.devserver.threaded = true
ckan.max_resource_size = 10000
ckan.max_image_size = 5

Continue to step 7 while in the virtual environment (replace rzmk with your group then username for the chown command and your CKAN details for the CKAN sysadmin account generation command). You may be prompted to add a sysadmin username and password (the password may need to be at least 8 characters).

cd /usr/lib/ckan/default/src/ckan
pip install flask-debugtoolbar==0.14.1
cd /var/lib
sudo mkdir -p ckan/default
sudo chown rzmk.rzmk ckan/default
ckan -c /etc/ckan/default/ckan.ini db init
ckan -c /etc/ckan/default/ckan.ini sysadmin add rzmk email=rzmk@localhost name=rzmk
ckan -c /etc/ckan/default/ckan.ini run

Now you should be able to view your locally running CKAN instance at http://localhost:5000.

When restarting your server

If you shut down your Ubuntu instance and then start it again, you may want to run the following commands to get the CKAN instance running again:

/etc/init.d/redis-server stop
cd ckan-compose
ahoy up

Then run the following (e.g., after you SSH from your preferred terminal):

cd /usr/lib/ckan/default/
. ./bin/activate
cd src/ckan
ckan -c /etc/ckan/default/ckan.ini run
+ \ No newline at end of file diff --git a/onboarding/datapusher-plus-setup/index.html b/onboarding/datapusher-plus-setup/index.html index 56dc18d..a21093a 100644 --- a/onboarding/datapusher-plus-setup/index.html +++ b/onboarding/datapusher-plus-setup/index.html @@ -4,13 +4,13 @@ 📮 DataPusher+ Setup | Intern Onboarding Guide - + - + \ No newline at end of file diff --git a/onboarding/github-setup/index.html b/onboarding/github-setup/index.html index 4a46f02..86a5d8b 100644 --- a/onboarding/github-setup/index.html +++ b/onboarding/github-setup/index.html @@ -4,13 +4,13 @@ 🖥 GitHub Setup | Intern Onboarding Guide - +

🖥 GitHub Setup

👋 Welcome!

You may have seen GitHub before or heard about it, and now it's time to learn more and set up your GitHub account!

💭 What's GitHub?

GitHub is like a virtual playground for coders. You may store your code, share it with others, and even collaborate on projects using Git.

Git & GitHub: What's the difference?
  • Git is a version control system (also a command line tool) which can assist in managing code history.
  • GitHub is a service where code can be hosted.

There are many more differences and explanations, so feel free to take a search in your search engine!

✨ Cool Features

Here are some very brief descriptions of features you may find often using GitHub:

FeatureBrief description
Version controlGitHub can host code repositories which use Git, and GitHub provides a GUI that works with Git
CollaborationWork with friends, coworkers, or even anyone random users from around the world on projects
IssuesTrack ideas, tasks, feedback, bugs, plans, and more
Pull requestsPropose a set of (code) changes from one branch to another and review changes (commonly abbreviated as 'PR')
ProjectsProject management tool that can help keep track of issues & PRs, including views like kanban boards & tables
DiscussionsSimilar to an online forum, another avenue for a repository's community to connect

There are plenty more features GitHub has to offer. Get started with GitHub by following the quest below!

🗺 Your GitHub Quest

  1. Create a GitHub account at github.com.
  2. Explore repositories and find one you think is interesting.
  3. Skim the issues for the repository and see if you think you can solve one of them.
  4. Fork the repository.
  5. Clone the fork to your device, make changes, push the changes to your fork, then create a PR to the original repository.

If you get stuck, are not sure what something means, or can't find an issue that you think you can solve, try searching on your search engine and if that doesn't work then contact your team.

💻 Your GitHub Super Move: Collaboration

GitHub is not just for code; it's for making cool (and hopefully useful!) things together. Try collaborating on a project, and have fun working with people around the world!

🚀 Ready to code?

Explore, collaborate, and have fun coding! 👋

- + \ No newline at end of file diff --git a/onboarding/qsv-pro-setup/index.html b/onboarding/qsv-pro-setup/index.html index 79b8370..8827c25 100644 --- a/onboarding/qsv-pro-setup/index.html +++ b/onboarding/qsv-pro-setup/index.html @@ -4,13 +4,13 @@ ⚙️ qsv pro Setup | Intern Onboarding Guide - +

⚙️ qsv pro Setup

ℹ About qsv pro

Welcome to qsv pro, a powerful desktop app designed for spreadsheet data wrangling. Built on the foundation of the qsv CLI tool, qsv pro offers a feature-packed local GUI for an enhanced user experience.

Learn more about qsv pro at qsvpro.dathere.com or read the intern guide post.

🗺 Installation Guide

Follow these steps to install and try out qsv pro on your system.

📥 Step 1: Download the Installer

Visit the qsv pro Releases page on GitHub.

💻 Step 2: Choose the Installer Package

Select and download the installer package compatible with your operating system.

🛠 Step 3: Installation Procedure

Run the installer and complete the installation procedure following the on-screen instructions for your operating system.

🧪 Step 4: Testing (Under Development)

Explore qsv pro's features! Manipulate spreadsheets, navigate the user interface, and provide valuable feedback to the development team.

🚀 Step 5: Have fun!

Have fun experiencing the efficiency and convenience of qsv pro's data wrangling capabilities on your computer!

- + \ No newline at end of file diff --git a/onboarding/qsv-setup/index.html b/onboarding/qsv-setup/index.html index 1f4e9f7..fb1cd20 100644 --- a/onboarding/qsv-setup/index.html +++ b/onboarding/qsv-setup/index.html @@ -4,13 +4,13 @@ ⚡ qsv Setup | Intern Onboarding Guide - +

⚡ qsv Setup

In this section we'll go over how to install qsv and get it running on your Ubuntu VM.

📝 Written Tutorial

There are various methods for installing qsv. We've categorized the installation options based on your objective.

💻 Install qsv for general usage

If you intend on using qsv as a command line tool anywhere on your system (globally), then choose and complete the steps for one of the following options to install qsv:

🛠 Install qsv for development

If you intend on developing, maintaining, and/or contributing to qsv, complete the steps for option 4 to install qsv within a folder (locally).

- + \ No newline at end of file diff --git a/onboarding/setup-overview/index.html b/onboarding/setup-overview/index.html index 52c979b..4e5891c 100644 --- a/onboarding/setup-overview/index.html +++ b/onboarding/setup-overview/index.html @@ -4,13 +4,13 @@ 🗺 Setup Overview | Intern Onboarding Guide - +

🗺 Setup Overview

Before you start diving into awesome projects and working with your team, you'll need the right equipment 🛠💼.

Refer to the upcoming sections to help you install everything. For now, let's take a look at the cool tools you'll be setting up 🤘!

😎 Cool Tools!

Software/ToolDescription
VirtualBoxVirtualBox is a virtualization software that allows you to run a virtual machine on your computer. Simply put, this program lets you have virtual computers inside your computer!
UbuntuUbuntu is a free and open-source operating system. It is a Linux distribution and is often useful for running on virtual machines.
qsvqsv is a command line program for indexing, slicing, analyzing, filtering, enriching, validating & joining CSV files. Commands are simple, fast & composable.
CKANCKAN is an open-source DMS (data management system) for powering data hubs and data portals. CKAN makes it easy to publish, share, and use data. It powers hundreds of data portals worldwide.
DataPusher+ with DockerDataPusher+ is standalone web service that pushes data into the CKAN DataStore fast & reliably. We'll be setting up a containerized version of DataPusher+ by using Docker.

🧩 Putting It All Together

We'll use VirtualBox to create a virtual machine (VM) running Ubuntu. On your VM you can use and contribute to qsv, CKAN (including CKAN extensions), DataPusher+, and much more! 🚀

One more thing! 🎈

Though using a VM is not required and you can do development on your own setup, the guide will cover running an Ubuntu guest OS through a VM using VirtualBox on a Windows 10 host OS. If you're using a different setup (such as a different host OS), you may need to adjust your steps accordingly.

- + \ No newline at end of file diff --git a/onboarding/ubuntu-vm-setup/index.html b/onboarding/ubuntu-vm-setup/index.html index cc5abc9..d3081ee 100644 --- a/onboarding/ubuntu-vm-setup/index.html +++ b/onboarding/ubuntu-vm-setup/index.html @@ -4,13 +4,13 @@ 💻 Ubuntu VM Setup | Intern Onboarding Guide - +

💻 Ubuntu VM Setup

In this section we cover how to install VirtualBox on your operating system (OS) and run Ubuntu 22.04.2 LTS on a virtual machine (VM).

Using macOS?

If you're using macOS, you may also look into UTM and VMWare Fusion Pro (see this issue for more info) instead of VirtualBox.

📝 Written Tutorial

You may find more comprehensive instructions and details on the online user manual for VirtualBox 7.0.

📥 Download VirtualBox & the Extension Pack

  1. Go to the VirtualBox downloads page.
  2. Download the VirtualBox platform package based on your computer's OS.

For example, since I'm on a computer running Windows 10 as my OS, then I would choose "Windows hosts".

  1. Download the VirtualBox Oracle VM VirtualBox Extension Pack.

VirtualBox download page

🛠 Install VirtualBox & the Extension Pack

  1. Run the VirtualBox installer. Select Yes if prompted to allow VirtualBox Installer to make changes to your device.

VirtualBox Installer Yes

Click here if you get an error that says:

Oracle VM VirtualBox needs the Microsoft Visual C++ 2019 Redistributable Package being installed first. Please install and restart the installation of Oracle VM Virtualbox.

VirtualBox Installer Error

To fix this issue, install the appropriate package for your system from this website.

Choose the correct download link for your system. On Windows 10 you can find your system type by opening the System Information app and reading the System Type value.

System Information

System Type

Visual Package Download Page

Agree to the license terms and conditions, press Install, press Yes if prompted to allow the program to make changes to your device, and the setup should successfully complete and you can click Close.

  1. On the installation wizard popup, click "Next".

VirtualBox Wizard

  1. You may change the location for installing VirtualBox by clicking the Browse button. Then click Next.

  2. Click Yes for the Warning: Network Interfaces and Missing Dependencies Python Core / win32api sections.

  3. Click Install and wait for the installation to complete. Then click Finish.

You have now successfully installed VirtualBox.

  1. Run the VirtualBox Extension Pack that you downloaded before. Select Yes if prompted to allow VirtualBox Installer to make changes to your device.

VirtualBox Extension Pack Install

You have now successfully installed the VirtualBox Extension Pack.

📥 Download Ubuntu 22.04.2 LTS

caution

Make sure your computer fulfills recommended system requirements for Ubuntu 22.04.2 LTS:

  • 2 GHz dual-core processor or better
  • 4 GB system memory
  • 25 GB of free hard drive space

You'll also need ~5 GB of space for the downloaded .iso file, though you can delete the file once you've fully setup the VM.

  1. Go to the Ubuntu Desktop downloads page.
  2. Download Ubuntu 22.04.2 LTS by clicking the green Download 22.04.2 button.

Ubuntu download page

🖥 Setup a Virtual Machine (VM)

  1. Open up VirtualBox and click the New button (you can also click on the Machine menu then press New).

VirtualBox New Button

  1. On the new popup, provide a name that you'd like to identify your VM, the folder in which you'd like to install your VM, and the Ubuntu .iso file that you've downloaded. Then click Next.

VirtualBox Name & OS

  1. Enter a valid username, password, hostname (this is what Ubuntu considers its name as), and enable Guest Additions along with pointing to its .iso file. Then click Next.

VirtualBox Guest OS Setup

  1. Set the Base Memory and Processors to the appropriate settings. You may have different values but a general guideline is to stay anywhere within the green section up until the border with the orange section. Generally the more you allocate, the faster the VM. Then click Next.

VirtualBox Hardware

  1. Select Create a Virtual Hard Disk Now and set a Disk Size of at least 25 GB. Then click Next.

VirtualBox Hard Disk

  1. Click Finish on the Summary page. Your VM should now be powering up and it may take a while for Ubuntu to install.

🏁 Final Steps

  1. On your Ubuntu VM, login to your account with the username and password you set earlier.

Ubuntu Login

  1. Click Skip or Next on the top right for the welcome screen that appears (adjust any settings based on your preferences).

  2. Click Done to finish the welcome screen.

You have now successfully installed Ubuntu.

Ubuntu Desktop

✨ Bonus Tips

  • Take a snapshot of your virtual machine now!
  • Learn more about the terminal and things to do after installing Ubuntu here.
  • You can modify the display size and other settings from the View menu option:

VirtualBox display size setting

- + \ No newline at end of file diff --git a/qsv/100/index.html b/qsv/100/index.html index 23c9550..77afb51 100644 --- a/qsv/100/index.html +++ b/qsv/100/index.html @@ -4,13 +4,13 @@ 📖 100.dathere.com | Intern Onboarding Guide - +
- + \ No newline at end of file diff --git a/qsv/qsv-cli/index.html b/qsv/qsv-cli/index.html index 2d4e0bc..02da210 100644 --- a/qsv/qsv-cli/index.html +++ b/qsv/qsv-cli/index.html @@ -4,13 +4,13 @@ ⚡ qsv | Intern Onboarding Guide - +

⚡ qsv

Meet qsv, your new command line tool for data wrangling!

💭 What's qsv?

qsv is a command line tool with 50+ commands that can perform data wrangling tasks in a relatively efficient manner.

For example, if I had a csv file that looked like this:

prices.csv
id,fruit,cost
1,apple,5.00
2,banana,10.00
3,celery,2.00

Then I can use qsv to perform all sorts of commands based on the data. Maybe I want to simply count how many rows there are (not including the header row). I can run:

qsv count prices.csv

And the output would be 3. But I can add flags for even more options like additionally getting the number of characters in the longest row by adding --width (e.g., qsv count prices.csv --width), and other commands also have subcommands!

✨ Cool Features

  • 50+ commands: There's plenty of options for users for all sorts of backgrounds to use qsv in their workflow
  • Blazingly fast: qsv is built primarily with the Rust programming language, offering fast speeds even for very large datasets
  • Mix and match: Combine different qsv commands and integrate qsv with other tools to enhance data wrangling

🛠 Install qsv

  1. Install qsv.
  2. Once installed, run qsv --list to list the commands available to you, and you can further learn about them by running qsv <command> --help where <command> is the command you want to learn about (e.g., qsv count --help).
  3. Try running qsv commands on your files!

📊 Your first command: qsv count

Navigate to your desired .csv file on the terminal and try typing qsv count <filename> (where <filename> is the name of your file) and see what happens!

See if you can try following along in the intro-to-count.ipynb notebook.

🚀 Ready for some data wrangling?

That's just the beginning! Explore more commands, use qsv to perform various transformations, and have fun wrangling data with qsv!

Remember, qsv can help make data exciting and easy, even if you're just starting on your data journey!

- + \ No newline at end of file diff --git a/qsv/qsv-pro/index.html b/qsv/qsv-pro/index.html index 069639f..7d5801f 100644 --- a/qsv/qsv-pro/index.html +++ b/qsv/qsv-pro/index.html @@ -4,13 +4,13 @@ 💻 qsv pro | Intern Onboarding Guide - +

💻 qsv pro

Get ready to level up your data game with qsv pro! 🚀

💭 What's qsv pro?

qsv pro is a spreadsheet data wrangling desktop app.

It offers a graphical user interface (GUI) based on the qsv command line interface (CLI).

✨ Super Features

Spreadsheet data table viewer

Data table viewer demo

Stats, frequency, and metadata data tables

Recipes (scripts) to transform data

CKAN upload workflow

The upload feature is getting a major update soon!

Resizable panels

Light & Dark themes

Theme switch demo

🌊 Let's Dive In!

  1. Set up qsv pro.
  2. Launch qsv pro and explore the various features on your files. Just drag and drop a spreadsheet (CSV, Excel file, and more) into qsv pro and watch what happens!
  3. Share your experience with your team and provide feedback to the developers.

🚀 Ready for a pro experience?

View, transform, and upload your spreadsheets with a streamlined GUI using qsv pro.

- + \ No newline at end of file diff --git a/qsv/qsv-web/index.html b/qsv/qsv-web/index.html index 846f802..5a107ca 100644 --- a/qsv/qsv-web/index.html +++ b/qsv/qsv-web/index.html @@ -4,13 +4,13 @@ 🖱 qsv.dathere.com | Intern Onboarding Guide - +

🖱 qsv.dathere.com

qsv is also available on the web! A subset of qsv commands are available to run at qsv.dathere.com.

🌱 Benefits

Here are some benefits of qsv.dathere.com:

  • 👋 User-Friendly Interface: Built with daisyUI, qsv.dathere.com is a neat way to interact with qsv
  • 🔌 No Installation Required: Hosted on the web and powered by the qsv CLI, no need to install the qsv CLI or qsv pro GUI
  • 📱 Platform Independence: Simply go to the web app on a desktop/mobile browser
  • 📊 Interactive Data Previews: A data table is generated based on command outputs

🌐 Accessing qsv.dathere.com

To access the qsv.dathere.com, simply visit the website: qsv.dathere.com. It's a user-friendly platform that provides powerful data manipulation tools with just a few clicks. 🚀

🗺 UI Overview

🏡Home

"Home" is your starting point for qsv.dathere.com, a welcome page where you may begin browsing.

Home GIF

🌐 Web

"Web" is where you may run various qsv commands on your file(s) with a point-and-click UI without having to type any CLI commands.

Web GIF

⏱️ Benchmarks

"Benchmarks" is where you may data on qsv's performance and compare against previous versions of qsv.

Benchmarks GIF

💻 Web commands

On the Web commands page, you'll find a grid of qsv commands with brief descriptions, many of which you may use in the browser.

Simply click on the qsv command you want to use, provide your input file(s), select various flags and potentially subcommands, then press the run button.

Why can't I select certain commands?

Certain commands are unavailable since there currently isn't an automated process for integrating qsv into a web UI, so many commands were manually added for the web app.

Web commands GIF

Command example

For instance, let's choose the "behead" command.

This is a relatively simple command that removes the first row from your CSV, removing the header row.

Upload by clicking the 'Choose File' buttonor Drag and Drop
File upload exampleDrag and drop example

Once you've uploaded the CSV file you want to work with, simply click on the 'RUN BEHEAD!' button and see what happens!

Run button example

Command preview

Data table preview

Raw output preview

- + \ No newline at end of file diff --git a/technical-writing/daily-standups/index.html b/technical-writing/daily-standups/index.html index 2e7c140..29310c2 100644 --- a/technical-writing/daily-standups/index.html +++ b/technical-writing/daily-standups/index.html @@ -4,13 +4,13 @@ ☕ Daily Standups | Intern Onboarding Guide - +

☕ Daily Standups

You'll often greet your workday with a standup meeting. This is a meeting where you and your team members share what you've accomplished since the last standup meeting, what you plan to work on next, and any blockers you're facing.

To stay on track on a daily basis, it can be very helpful to organize yourself before, during, and after this meeting.

🏁 Before the Standup

Try to write down the following before your standup meeting:

  • 🎉 What you've accomplished since the last standup meeting
  • 🛠 What you plan to continue working on or work on next
  • ❌ "Blockers" you are facing, which are things that stop you from continuing work on a task or project
  • ❓ Questions you have for any team member (or in general) that you couldn't get answered over your team communication platform

🏎 During the Standup

When it's your turn, cover the points you wrote down without going into too much extensive detail (as you should put any extra details in your notes or kanban board). Ask to setup a meeting with any team member you have questions for if you can't get them answered during the standup or if what you're working on requires more discussion and doesn't need the entire team's attention.

Also make sure to write down any new tasks or to-dos assigned to you during the standup. 📃

🏆 After the Standup

Review what you've written down and make sure you've answered all your questions and resolved any blockers. If you haven't, make sure to follow up with the appropriate team members. If you use a kanban board or any tracker for your tasks and projects, add any new tasks assigned to you to your board and update any notes or progress you've made on your tasks.

Now you have a good idea of what you need to do for the day. Get to work! 💼

🧩 Daily Standup Notes Template

Here's a Markdown template you can use daily to keep track of your standup notes:

# 📅 [Date] Daily Standup

## 🎉 Accomplished

> What tasks you've completed or goals you've accomplished or made progress on.

-

## 🛠 Working On

> What you are currently working on or plan to start working on and how much progress you expect to make. Also when you complete or make progress on your tasks, write down what you've done for tomorrow's Accomplished section.

-

## ❌ Blockers

> Problems you're facing that stop you from continuing work.

-

## ❓ Questions

> Any specific questions you have for any team member or in general. Make sure you write down the answers when you get them too.

-

## 📃 Todo

> Any new tasks assigned, meetings to setup, etc. that you may also add to your kanban board.

- [ ]

Personally I like to use Obsidian to keep track of my daily standup notes (especially with its Daily Notes plugin), but you can use any note-taking app you like. Note that with Obsidian you may need to purchase a commercial use license in order to use Obsidian as your program. Another option is to use Visual Studio Code.

- + \ No newline at end of file diff --git a/technical-writing/kanban-boards/index.html b/technical-writing/kanban-boards/index.html index 083554e..3a2c35a 100644 --- a/technical-writing/kanban-boards/index.html +++ b/technical-writing/kanban-boards/index.html @@ -4,13 +4,13 @@ 🛹 Kanban Boards | Intern Onboarding Guide - +

🛹 Kanban Boards

A kanban board is a great way to organize your tasks and projects.

Kanban boards help organize your work and keep track of what you need to do, and it can be helpful to share a kanban board with your team so everyone understands what everyone else is working on and can potentially collaborate or help each other out.

There's a project management approach called Agile that can often be used in conjunction with kanban boards.

🎈 Kanban Board Example

Here's an example of a Kanban board that keeps track of a team's tasks using Notion:

Kanban board exampleKanban board example

🏗 Kanban Board Structure

📊 Columns

A kanban board is comprised of columns that represent the status of a card. For example, a common kanban board has columns for Not Started, In Progress, and Done.

💳 Cards

Within each column are cards that represent a task or project. These cards can be moved across columns to represent their status.

You may assign a card to a team member and set a due date, a priority, the estimated amount of effort to complete the task, and more. Some tools allow you to write notes in your cards, which can help organize your research and also get others up to speed on what you're working on.

🧩 Card Template

Here's a Markdown template you can use for your kanban cards:

## 🗺 Overview

## 📌 Tasks

- [ ]

## ❌ Blockers

-

## 🔍 Notes & Research

-

## 💡 Ideas

-

## ✨ Resources & References

-

🛠 Tools & Software

There are many tools you can use to work with a kanban board. Here are some common ones:

- + \ No newline at end of file diff --git a/technical-writing/markdown/index.html b/technical-writing/markdown/index.html index 4442538..74db310 100644 --- a/technical-writing/markdown/index.html +++ b/technical-writing/markdown/index.html @@ -4,13 +4,13 @@ 📝 Markdown | Intern Onboarding Guide - +

📝 Markdown

Markdown is a markup language that is very useful for taking notes and writing documentation.

In fact, the page you're reading right now is built based on Markdown!

📚 Markdown Resources

🏫 Learn Markdown

📓 Markdown Editors

Here are some Markdown editors you can use for taking notes:

note

These programs often have extra features that can be useful for taking notes, such as the ability to create kanban boards, embed images, and more. However, they do support Markdown. Also, you can instead make a new Markdown file in your favorite text editor like Visual Studio Code by saving a file with the .md extension.

- + \ No newline at end of file diff --git a/technical-writing/technical-writing-overview/index.html b/technical-writing/technical-writing-overview/index.html index e287d91..83ca105 100644 --- a/technical-writing/technical-writing-overview/index.html +++ b/technical-writing/technical-writing-overview/index.html @@ -4,13 +4,13 @@ 🗺 Technical Writing Overview | Intern Onboarding Guide - +

🗺 Technical Writing Overview

Though using a programming language may be important for your projects, communicating effectively is crucial for documenting your work. You may spend a lot more time on planning, organizing, and writing technical documentation. We'll cover some tips and tricks that may help you communicate your ideas clearly and effectively through technical writing.

💭 Why Learn About Technical Writing?

Technical writing offers several benefits that can enhance your professional communication skills and help others make sense of your work, be it a codebase, a project, or any other technical subject.

Here are some benefits of technical writing:

✅ Clear communication

Technical writing isn't about using overly complex language that just ends up being difficult to understand. It's about taking complex information and conveying them in a clear and concise manner.

👔 Professional documentation

Technical writing can help you create professional documentation for your projects, which can help others understand your work and potentially contribute to it. Writing professional reports, proposals, presentations, and more in an organized manner can enhance your professional credibility and communication skills.

👍 User-friendly content

Understanding your audience and what their needs, preferences, and level of expertise can help you create content that is easy to understand and accessible. This can be very helpful for creating user-friendly documentation, such as tutorials, guides, and manuals.

🛠 Maintainable projects

Just like building furniture without instructions can be like a nightmare, working and maintaining a project without documentation can be like a nightmare. Technical writing can help you share documentation that can help you and others maintain your projects and codebases.

🚀 Improvement & collaboration

Sharing your work with others can help you get valuable feedback from your audience to improve your work, while also allowing others to learn from your work and potentially contribute to it.

📝 Where Can I Practice Technical Writing?

You can practice technical writing in many different scenarios, such as:

🔍 Where Can I Learn More?

Practicing technical writing while getting feedback from others is a great way to learn where you can improve.

If you'd like to take courses on technical writing, here are a few technical writing courses from Google that you can take for free:

CourseSummary
Technical Writing OneLearn the critical basics of technical writing. Take this course before taking any of the other courses.
Technical Writing TwoPractice four intermediate topics in technical writing.
Writing Helpful Error MessagesWrite clearer, more effective error messages, whether they appear in IDEs, command lines, or GUIs.

I suggest adding course recommendations to your kanban board and updating your progress as you go through them.

More importantly however, I suggest practicing technical writing in various scenarios and getting feedback from others.

- + \ No newline at end of file