\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[a4paper, margin=0.75in]{geometry}

% set up hyperlink coloring
\usepackage{hyperref}
\hypersetup{
    colorlinks=true,
    linkcolor=blue,
    filecolor=magenta,
    urlcolor=cyan
}

\setlength{\parindent}{0pt} % no indentation

\renewcommand{\familydefault}{\sfdefault} % default to sans serif

%%%%%%%%%%%%%%%%
\begin{document}

\title{Homework 1\\Welcome, Setup, and Some Light Reading}
\author{EECS 201 Winter 2020}
\date{}
\maketitle

\section*{Submission Instructions}
Answer the bolded text that begins with a ``\textbf{Q}''.
Submit this assignment on \href{https://gradescope.com}{Gradescope}.
\textbf{When submitting please select the right pages for each question or we will not grade the question}.
You may find the free online tool \href{https://www.pdfescape.com}{PDFescape} helpful to edit and fill out this PDF.
You may also print, handwrite, and scan this assignment.
\\\\
If you feel enterprising, you can edit the TeX file directly, compile it to a PDF, and submit that!
I ask that if you do so, please make the answer text stand out from the rest of the homework.

\section{Set Up an Ubuntu Virtual Machine}
One of the goals of this class is to understand systems work so that you can
customize and improve them for yourself.
On CAEN, course environments are already set up and everything ``just works''.
On a brand new Ubuntu install, however, we will have to find, install, set up
and manage many tools ourselves.
\\\\
Recall from lecture that a virtual machine (VM) is a fake computer running as
a program. We'll use a VM in this course as a playground to test things out
and work without risking anything on your day-to-day machine. To kick things
off, we start by getting a basic environment set up this week.
\\\\
\textit{One final thought:} Homework in this class will often be a little
underspecified. You are expected to Google, to try things, and to fail from
time to time. Making mistakes is highly encouraged, it's how you learn. We
have many office hours if you find yourself getting stuck, but we will always
start with the questions, ``What have you tried so far?'' and ``Why do you
think that didn't work?''

\begin{enumerate}
    \item Get a copy of the \textbf{Desktop} version of \textbf{Ubuntu 18.04}
          (this is a big download, consider doing it on campus).
    \item Download and install \href{https://www.virtualbox.org}{VirtualBox}.
          \textit{If you are on Windows and using WSL2 or some other Hyper-V application,
                  VirtualBox may or may not work.
                  If it doesn't, you'll have to turn off Hyper-V when using VirtualBox.
                  Here's a workaround on \href{https://stackoverflow.com/questions/30496116/how-to-disable-hyper-v-in-command-line}{StackOverflow}.
                  }
    \item Set up a new virtual machine.
          For the most part the defaults are fine.
          Ubuntu 18.04 requires at least 2 GB of RAM, so set the memory size to at least 2 GB.
          If your computer has more than 2 logical cores
          (i.e. hardware threads: a 4-core CPU with hardware multithreading will generally have 8 hardware threads presented as 8 logical cores to the operating systems),
          I recommend setting at least 2 CPUs to make things a bit more zippy.
          The default hard drive size of 8 GB is a little small:
          I recommend going bigger (50 GB or so).
          By default, disk images are \textit{sparse},
          which means it won't take 50 GB of real disk space to create a fake disk,
          rather the fake disk will grow on demand as it's used,
          so there's not a lot of harm in choosing a big number.
    \item Install Ubuntu on your new virtual machine.
          I recommend ``Downloading updates while installing''.
    \item Once Ubuntu is running, install the Guest Additions
          (try VirtualBox's Devices menu $\rightarrow$ Insert Guest Additions CD Image;
          you'll need to reboot once this finishes).
          \\
          \textbf{Q: What are Guest Additions? What do they do? What changed after you installed them and rebooted your VM?}
    \vspace{3.5cm}
    \item Play around with your new machine!
          Try writing and running a Hello World program.
          What about other tools you've used before?
          Can you get an old course project running?
          How is it different than a CAEN environment?
\end{enumerate}

\section{Readings}

Each of these are short blog posts: 5-10~minute reads.
I selected these to give you a little exposure to some varying perspectives.
The authors, Joel in particular, have several other very interesting posts that I highly encourage exploring.
After each reading, write a response for the given question.
\\\\
\textbf{Biculturalism} by Joel Spolsky\\
\url{http://www.joelonsoftware.com/articles/Biculturalism.html}\\
\\\\
\textbf{Q: Has your computing experience thus far aligned more with ``Windows culture'' or ``unix culture''? What makes you feel that way?}

\vspace{7cm}

\textit{These two articles use the word ``research'' a lot, but the points made apply well to any work in computer science.}
\\\\
\textbf{Helping my students overcome command-line bullshittery} by Phillip Guo\\
\url{http://www.pgbovine.net/command-line-bullshittery.htm}\\
and the counter-point\\
\textbf{On the value of command-line ``bullshittery''} by Eytan Adar\\
\url{https://medium.com/@eytanadar/on-the-value-of-command-line-bullshittery-94dc19ec8c61}\\
\\\\
\textbf{Q: What did you take away from these articles?}

\end{document}
