User Tools

Site Tools


notes:c4eng:fall2023:projects:abc0

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
notes:c4eng:fall2023:projects:abc0 [2023/08/19 16:53] – [Log into Lab46 (shell)] mwinter4notes:c4eng:fall2023:projects:abc0 [2023/08/29 19:09] (current) – [Clone lab46 semester repo on your system] jparrish
Line 4: Line 4:
  
 ====Get on discord and into class channels==== ====Get on discord and into class channels====
-Join the Discord, invite found towards the top of the syllabus located [[https://lab46.g7n.org/haas/fall2023/c4eng|here]]. You may create a new account or join with an existing one. + 
-Once you've joined, introduce yourself with your name, and what classes you're taking so that appropriate roles can be assigned, granting you access to the class channels.+Join the Discord, the invite can be found towards the top of the syllabus located [[https://lab46.g7n.org/haas/fall2023/c4eng|here]].  
 +You may create a new account or join with an existing one. Once you've joined, introduce yourself with your name, and what classes you're taking so that appropriate roles can be assigned, granting you access to the class channels.
 ====Log into Lab46 (shell)==== ====Log into Lab46 (shell)====
 Instructions on how to log into Lab46 via shell can be found [[https://lab46.g7n.org/haas/spring2023/common/helpances/loginissues|here]]. Instructions on how to log into Lab46 via shell can be found [[https://lab46.g7n.org/haas/spring2023/common/helpances/loginissues|here]].
 ====Clone lab46 semester repo on lab46==== ====Clone lab46 semester repo on lab46====
 +After you've logged into lab46 via shell, we'll be using Mercurial to clone a remote repository. 
  
 +You can accomplish this by running **fixrepo** at the lab46 prompt:
 +
 +<cli>
 +lab46:~$ fixrepo
 +</cli>
 +
 +and follow and instructions, respond to any actions requested.
 +
 +Should you wish to do things more manually, do the following:
 +
 +This is done with the command: <code> hg clone ssh://cgaffne1@lab46.g7n.org//var/repos/hg/user/cgaffne1 ~/src </code>
 +Where uppercase **USER** is replaced with your lab46 username, and lowercase **user** remains unchanged. 
 +
 +This will clone the repository into a directory named //src// that is a subdirectory of your home (~) directory. 
 +
 +We will also be cloning a second repository for the semester, done with the command: <code> hg clone ssh://cgaffne1@lab46.g7n.org//var/repos/hg/user/cgaffne1/fall2023 ~/src/fall2023</code>
 +Where **SEMESTER** is your semester written as the name of the month in lowercase and then the year in YYYY format, without spaces, e.g. <wrap hi>fall2023</wrap>.
 ====Log into Lab46 wiki==== ====Log into Lab46 wiki====
 +At the top right of any lab46.g7n.org page should be a button to log in, shown here:
  
-====Set up personal development system====+{{:notes:c4eng:fall2023:projects:loginpic.png?400|}}
  
 +The username and password should be the same as the username and password you used to log into Lab46 via shell in previous steps. 
 +
 +====Set up personal development system====
 +Your personal development system will be the Raspberry Pi 4, a link to which will be in the [[https://lab46.g7n.org/haas/fall2023/c4eng|class syllabus]], in the "Referenced Books" section. Instructions on how to set up should be included in the purchased kit. 
 ====Clone lab46 semester repo on your system==== ====Clone lab46 semester repo on your system====
 +The steps here are very similar to the steps in the section "Clone lab46 semester repo on lab46"; however, assuming your development system has just been set up with Raspberry Pi OS, then Mercurial is not yet installed. Luckily, this is easy on most UNIX-like operating systems. Simply open your terminal, which should be located at the top of the desktop, and type <wrap hi>hg</wrap>. Once you enter that command, you should be prompted to install Mercurial. 
 +Once Mercurial is installed, you may proceed. 
 +You should start by creating a directory anywhere you'd like, using the mkdir command, i.e. <code> mkdir NAME </code> 
 +Where **NAME** is the name you'd like to give the directory. do not freak out when the terminal spits back nothing. the directory is created, and you should be able to see it by typing "ls".
  
 +After making this organizational directory, we will now clone the repo. 
 +To do so, we'll use Mercurial's <wrap hi>hg clone</wrap> command again, into a new src directory under our directory, like so: 
 +<code>hg clone ssh://cgaffne1@lab46.g7n.org//var/repos/hg/user/cgaffne1 /NAME/src </code>
 +Where **NAME** is the name you gave the directory, and you are currently in its parent directory. 
 +
 +Once that is done, we'll clone the semester repo: 
 +<code>hg clone ssh://cgaffne1@lab46.g7n.org//var/repos/hg/user/cgaffne1/SEMESTER /NAME/src/SEMESTER</code> 
 +
 +Recall that **SEMESTER** is the lowercase name of the month and the year in YYYY format, without spaces. e.g. <wrap hi>fall2023</wrap>
 +
 +Let's enter the **SEMESTER** directory using <wrap hi>cd</wrap>, as such: <code>cd /NAME/src/SEMESTER</code>
 +From here we'll create a class directory with the name of the class, e.g. <wrap hi>c4eng</wrap>, and a subdirectory of it for our project <wrap hi>abc0</wrap>:
 +<code>mkdir -p c4eng/abc0</code>
 +This is where we'll put our project files coming up in the next steps. 
 ====Create info.text file with information==== ====Create info.text file with information====
 +Assuming we are currently in the **SEMESTER** directory, we can enter the abc0 project directory using <code>cd c4eng/abc0</code>
 +To create and edit <wrap hi>info.text</wrap>, we can use the nano text editor via the terminal:
 +<code>nano info.text</code> 
 +This creates the file info.text and starts editing it. You can see all the commands at the bottom of the terminal, with <wrap hi>^</wrap> signifying that you must hold the CTRL key while pressing the respective letter. Now you can populate info.text with some information such as your preferred name, your program (e.g. Engineering Science), your preferred contact email, discord username, and any additional information you may want to supply to the professor. 
  
 +When you are finished editing the file, use the "Write Out" command and chose a format. Press enter to send the command. Then "Exit" the file. 
 +**Note, the ^ symbol correspond to the CRTL key and the M corresponds to the ALT key.** 
 +
 +If you wish to view this information, you can use the cat command:
 +<code>cat info.text</code>
 +This displays the content of the file on the terminal. It is most useful when you wish to view text files.
 ====Create and execute hello.c==== ====Create and execute hello.c====
 +Assuming we are still inside abc0, the next steps are writing a "Hello World" program in C, compiling, and then executing it. 
 +A "Hello World" program is a beginner program that demonstrates how to structure our code, invoke our code, and print some output, namely "Hello World", to the terminal. 
 +Let's start editing hello.c by typing <code>nano hello.c</code>
 +Now that we have a file named <wrap hi>hello.c</wrap> and we are now editing it, we can write the following code:
 +<code>#include <stdio.h> 
 +
 +int main(void)
 +{
 + printf("Hello World\n"); 
 + return 0; 
 +}</code>
 +Later we'll go into more depth on what the surrounding lines of code do, but for now we should know that <wrap hi>printf("");</wrap> prints text within the quotes to the screen. 
 +
 +Now we want to //compile// this code into instructions that the computer can understand. We can do that simply using the GCC compiler: <code>gcc hello.c -Wall -std=gnu18 -o hello</code>
 +
 +This will give us our executable as a file named hello, which we can now run by typing <code>./hello</code>
  
 +If everything has worked correctly, you should see "Hello World" printed to the terminal. 
 ====Locate journal and customize title and intro==== ====Locate journal and customize title and intro====
  
notes/c4eng/fall2023/projects/abc0.1692464030.txt.gz · Last modified: 2023/08/19 16:53 by mwinter4