<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ischool.gccis.rit.edu/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ganskop</id>
	<title>iSchool Reference - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://ischool.gccis.rit.edu/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ganskop"/>
	<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/wiki/Special:Contributions/Ganskop"/>
	<updated>2026-04-06T07:10:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=92</id>
		<title>RLES Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=92"/>
		<updated>2026-02-11T19:12:42Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: /* Access Outside of RLES */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GCCIS's Remote Laboratory Emulation System (RLES; pronounced &amp;quot;are-less&amp;quot;) is a virtual private network that's not accessible to the outside world, with an environment set up just for our class. &lt;br /&gt;
&lt;br /&gt;
==== Getting Started ====&lt;br /&gt;
'''Access RLES at https://rlescloud.main.ad.rit.edu/vcac/#csp.cs.ui.catalog.list'''&lt;br /&gt;
&lt;br /&gt;
(Deprecated: Access New RLES at https://rles-cloud.rit.edu/automation/#/service/catalog/)&lt;br /&gt;
&lt;br /&gt;
Sign in with your RIT computer account credentials.&lt;br /&gt;
&lt;br /&gt;
You can use VMRC to access your VMs. Download the VMRC installer for your OS:&lt;br /&gt;
&lt;br /&gt;
* [https://ischool.gccis.rit.edu/vmrc/vmrc_windows.zip Windows]&lt;br /&gt;
* [https://ischool.gccis.rit.edu/vmrc/vmrc_macos.dmg MacOS]&lt;br /&gt;
Note that  Those VMRC downloads are on the Solace web server, which is restricted to the RIT network. You just need to connect to the RIT VPN before you can download them: &amp;lt;nowiki&amp;gt;https://www.rit.edu/its/virtual-private-network-vpn&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Provisioning a VM =====&lt;br /&gt;
When you first log into RLES, you'll land on the Catalog, where you'll see all of the virtual machine images that you have access to. Click on 'Request' to provision a VM instance.&lt;br /&gt;
&lt;br /&gt;
On the next screen, note the option selected in the &amp;quot;Business group&amp;quot; dropdown. If you're going to be using this VM in a group project, make sure your group's name is selected in this dropdown.&lt;br /&gt;
&lt;br /&gt;
Update the &amp;quot;Description&amp;quot; field with a meaningful value. For example, if you're going to use this VM to test out building a LAMP stack for ISTE-444, you could enter a description of &amp;quot;LAMP stack for ISTE-444&amp;quot;. Having useful descriptions will really help you out when you've got multiple VMs provisioned.&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Submit&amp;quot; button to send the request to have your new VM provisioned. It should take a few minutes before the new VM is ready.&lt;br /&gt;
&lt;br /&gt;
Note: RLES VMs only persist for two months (so we don't end up with a ton of unused VMs hanging around). If you need yours longer than two months, you'll have to extend the VM's lease.&lt;br /&gt;
&lt;br /&gt;
===== Accessing a VM =====&lt;br /&gt;
RLES VMs are, by default, only accessible within RLES. To access a VM that you've provisioned, go to the &amp;quot;Deployments&amp;quot; tab and find the entry for the VM that you're looking for.&lt;br /&gt;
[[File:RLES test deployment.png|right|450x450px|RLES test deployment]]&lt;br /&gt;
RLES VMs typically automatically suspend after 6 hours in order to conserve RLES resources, so if the status of your VM is &amp;quot;Off&amp;quot;, click the &amp;quot;Actions&amp;quot; dropdown (on the top right) and choose &amp;quot;Power on deployment&amp;quot; (then click &amp;quot;Submit&amp;quot; on the next screen). It should take a minute or so for the VM to turn back on.&lt;br /&gt;
&lt;br /&gt;
Once a VM is powered on, click the VM's name (not the network), and then click the &amp;quot;Actions&amp;quot; (gear) dropdown to see available options (see image at right).&lt;br /&gt;
&lt;br /&gt;
To access a VM, you can use a browser, or you can use VMware's Remote Console (VMRC). Using a browser to access the VM is quick and easy, but it won't allow for copy/pasting from your host computer. To use the browser, click &amp;quot;Connect to Remote Console&amp;quot; in the context menu.&lt;br /&gt;
&lt;br /&gt;
To use VMware's Remote Console, click &amp;quot;Connect using VMRC&amp;quot; (see above for links to the VRMC download). A new browser tab will open with a link for connecting to the VM. Click the &amp;quot;Connect to console using VMRC&amp;quot; to open your VM using the VMRC application.&lt;br /&gt;
&lt;br /&gt;
==== Access Outside of RLES ====&lt;br /&gt;
You can request that your VM be accessible outside of RLES. To do so, send an email to gccisit@rit.edu that includes:&lt;br /&gt;
&lt;br /&gt;
# The '''name of your VM''' (e.g., &amp;quot;ubuntu-1234&amp;quot;) or '''local IP address''' (e.g., 172.16.xxx.xxx)&lt;br /&gt;
# What '''port(s)''' your web server is listening on (e.g. 80, 443, 3000, etc.)&lt;br /&gt;
# What '''hostname''' you want in DNS (e.g. &amp;quot;awesome-site&amp;quot;, which will become &amp;quot;awesome-site.webdev.gccis.rit.edu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Once an entry has been made in the RLES reverse proxy, you'll be assigned an IP address that is mapped to your DNS name.  Set that static IP address on your VM, and set the subnet mask to 255.255.254.0 and gateway to 172.16.1.254, like so:&lt;br /&gt;
&lt;br /&gt;
[[File:Static IP settings.png|alt=Static IP settings|400x400px]]&lt;br /&gt;
&lt;br /&gt;
Once the setup is complete, you'll be able to access your site from any browser outside of RLES at:&amp;lt;blockquote&amp;gt;https://[hostname].webdev.gccis.rit.edu&amp;lt;/blockquote&amp;gt;Note that a TLS certificate is automatically added by the RLES reverse proxy, so you'll access your site over HTTPS even though you haven't configured your web server for it, and port 443 will be mapped to the port that your web server is listening on. That means that if you can access your site on your VM at &amp;quot;&amp;lt;nowiki&amp;gt;http://localhost:3000&amp;lt;/nowiki&amp;gt;&amp;quot; and &amp;quot;&amp;lt;nowiki&amp;gt;http://172.16.0.1:3000&amp;lt;/nowiki&amp;gt;&amp;quot;, and 172.16.0.1 has been mapped in the proxy to awesome-site.webdev.gccis.rit.edu, you would access your site outside of RLES at &amp;quot;&amp;lt;nowiki&amp;gt;https://awesome-site.webdev.gccis.rit.edu&amp;lt;/nowiki&amp;gt;&amp;quot; (note the 's' in 'https' and that no port is specified).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can SSH into your VM too (as long as SSH is enabled on the VM), but you must be on [https://www.rit.edu/its/virtual-private-network-vpn the RIT network] to do so (note that there'll be a custom port for each VM):&amp;lt;blockquote&amp;gt;ssh [username]@[hostname].webdev.gccis.rit.edu -p[port]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Group Work====&lt;br /&gt;
You should all be able to see your groups VMs; if, on the Deployments page, you don't see a VM that someone else in your group created, click the filter icon next to &amp;quot;Deployments&amp;quot; and clear the checkmark next to your name.&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
'''VM loses connectivity'''&amp;lt;br&amp;gt;If your VM loses connectivity, try toggling the wired connection: Click the power icon in the top right corner, click &amp;quot;Wired Connected&amp;quot;, and click &amp;quot;Turn Off&amp;quot;. Then again click the power icon, click &amp;quot;Wired Off&amp;quot;, and then &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Freezing'''&amp;lt;br&amp;gt;If your VM appears to freeze, try exiting VMRC or your host computer's browser tab, and then reconnect to the VM.&lt;br /&gt;
&lt;br /&gt;
'''No VM access outside of RLES'''&amp;lt;br&amp;gt;If you've followed the steps above for &amp;quot;[[RLES Guide#Access Outside of RLES|Access Outside of RLES]]&amp;quot;, and you're still not able to access your VM outside of RLES, try these steps:&lt;br /&gt;
&lt;br /&gt;
# First, make sure that you're able to access your application inside the VM on localhost (and specify the port). E.g., &amp;lt;nowiki&amp;gt;http://localhost:3000&amp;lt;/nowiki&amp;gt;. If you can't access your app on localhost, then you've got something wrong with how you're serving your app - you need to look at your server code or web server.&lt;br /&gt;
# Still inside the VM, make sure that you can access your application on the assigned IP address (with the specified port. E.g., &amp;lt;nowiki&amp;gt;http://172.16.0.1:3000&amp;lt;/nowiki&amp;gt;. If you can't access your app on the assigned VM, then you probably have the network settings misconfigured. Check out the steps above, under &amp;quot;Access Outside of RLES&amp;quot;, for setting a manual IP address.&lt;br /&gt;
# Once you've confirmed that you can access your app by IP on your VM, ensure that you can access it on other VMs in RLES. Spin up another VM and try to access your app on the specified IP and port. If your app won't load, then you probably have a firewall issue on your app's VM.&lt;br /&gt;
# Finally, test out accessing your app outside of RLES by using the assigned DNS name, e.g., &amp;lt;nowiki&amp;gt;https://awesome-site.webdev.gccis.rit.edu&amp;lt;/nowiki&amp;gt;. Do ''not'' specify a port. If you can access your app inside RLES but not outside, then there's probably a configuration issue in the reverse proxy, and you should email gccisit@rit.edu.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=SQL_Coding_Standards&amp;diff=91</id>
		<title>SQL Coding Standards</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=SQL_Coding_Standards&amp;diff=91"/>
		<updated>2025-08-11T15:58:14Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: Update standards to require underscores instead of camel case&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Any place that you work in the technology industry typically has standards for how code is written, which you are expected to follow.  This course is no different.&lt;br /&gt;
&lt;br /&gt;
We will be requiring (and enforcing) the following standards on homework assignments (HWs), practice exercises (PEs), zyLabs, and examinations.  In all cases, these are not part of the total points, but rather result in additional deductions (1 point for any occurrence per each item, with up to 7 points deducted if none are followed).&lt;br /&gt;
&lt;br /&gt;
=== Relational Notation Standards: ===&lt;br /&gt;
&lt;br /&gt;
* Relation (entity) names must be in UPPERCASE; multi-word relations are separated by an underscore.&amp;lt;br&amp;gt;Examples:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;STUDENT(…)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;STUDENT_ADVISOR(…)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Relation names are singular.&amp;lt;br&amp;gt;Example:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;STUDENT(…)&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;STUDENTS(…)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Primary keys are underlined.&amp;lt;br&amp;gt;Example:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;STUDENT(&amp;lt;u&amp;gt;univ_id&amp;lt;/u&amp;gt;, …)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Foreign key are italicized when typed, dash-underlined when written   &amp;lt;br&amp;gt;Example:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;STUDENT(&amp;lt;u&amp;gt;univ_id&amp;lt;/u&amp;gt;, ''college_id'', …)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Attribute names that would otherwise include a space as a separator must include an underscore instead.&amp;lt;br&amp;gt;Example:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;STUDENT(univ_id, ''college_id'', first_name, last_name, expected_grad_year, …)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Implementation (Coding) Standards: ===&lt;br /&gt;
&lt;br /&gt;
* One clause per line (&amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FROM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WHERE&amp;lt;/code&amp;gt;, etc.)&amp;lt;br&amp;gt;Example:&lt;br /&gt;
 SELECT univ_id, first_name, last_name    &lt;br /&gt;
 FROM student&lt;br /&gt;
 WHERE city = 'Rochester' AND state = 'NY';&lt;br /&gt;
* Keywords and data types must be in UPPERCASE  &amp;lt;br&amp;gt;Example: &lt;br /&gt;
 CREATE TABLE test (&lt;br /&gt;
     test_id CHAR(9),&lt;br /&gt;
     test_count INT,&lt;br /&gt;
     test_desc VARCHAR(255),&lt;br /&gt;
     CONSTRAINT test_pk PRIMARY KEY(test_id)&lt;br /&gt;
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;&lt;br /&gt;
* Table names and attribute names that would otherwise include a space as a separator must include an underscore instead.  Don't use camel case to separate words, since capital letters in identifiers cause problems with Postgres, SQLite, and Oracle (even though they're fine in MySQL/MariaDB). E.g., in Postgres, if an identifier contains a capital letter, any time that identifier is referenced, it must be written in double quotes. In Oracle, even if identifiers are created with camel case, the database reports them as all caps.&amp;lt;br&amp;gt;Example:&lt;br /&gt;
 SELECT univ_id, college_id, first_name, last_name&lt;br /&gt;
* Single quotes for a string literal. Double quotes do not work for string literals in all DBMSs.&amp;lt;br&amp;gt;Example:&lt;br /&gt;
 WHERE city = 'Rochester' AND state = 'NY'&lt;br /&gt;
* Double quotes for any alias that includes a space  &amp;lt;br&amp;gt;Example:     &lt;br /&gt;
 SELECT univ_id, first_name &amp;quot;First Name&amp;quot;, last_name &amp;quot;Last Name&amp;quot;&lt;br /&gt;
* Script submission must include a syntactically correct comment with student’s name and a syntactically correct comment identifying each task number.  Comment options include:&lt;br /&gt;
 -- single line comment (a space MUST be included after --)&lt;br /&gt;
 # single line comment&lt;br /&gt;
 /* block comment (can span multiple lines) */&lt;br /&gt;
* Script submission must be an executable script file (i.e. only comments and SQL statements). Common violations:&lt;br /&gt;
** Submitting a log file&lt;br /&gt;
** Including the MySQL prompt along with the statement&lt;br /&gt;
** Including an uncommented result set&lt;br /&gt;
&lt;br /&gt;
=== Suggestions: ===&lt;br /&gt;
&lt;br /&gt;
* Include whitespace around operators  &amp;lt;br&amp;gt;Example:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;city = 'Rochester'&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;city='Rochester'&amp;lt;/code&amp;gt;&lt;br /&gt;
* Prefix column names with a table identifier&amp;lt;br&amp;gt;Example, in table student:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;stu_univ_id&amp;lt;/code&amp;gt;     &amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;stu_first_name&amp;lt;/code&amp;gt;      &amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;stu_last_name&amp;lt;/code&amp;gt;     &amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;stu_maj_id&amp;lt;/code&amp;gt;&lt;br /&gt;
* Indent each hierarchical level  &amp;lt;br&amp;gt;Example:&lt;br /&gt;
 SELECT stu_univ_id, stu_first_name, stu_last_name, stu_maj_id&lt;br /&gt;
 FROM student&lt;br /&gt;
 JOIN major&lt;br /&gt;
     ON stu_maj_id = maj_id&lt;br /&gt;
         AND maj_active = TRUE&lt;br /&gt;
 WHERE stu_city = 'Rochester'&lt;br /&gt;
     AND stu_state = 'NY'&lt;br /&gt;
     AND stu_year_lvl &amp;gt;= 3;&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=90</id>
		<title>RLES Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=90"/>
		<updated>2025-02-26T17:29:23Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GCCIS's Remote Laboratory Emulation System (RLES; pronounced &amp;quot;are-less&amp;quot;) is a virtual private network that's not accessible to the outside world, with an environment set up just for our class. &lt;br /&gt;
&lt;br /&gt;
==== Getting Started ====&lt;br /&gt;
'''Access RLES at https://rlescloud.main.ad.rit.edu/vcac/#csp.cs.ui.catalog.list'''&lt;br /&gt;
&lt;br /&gt;
(Deprecated: Access New RLES at https://rles-cloud.rit.edu/automation/#/service/catalog/)&lt;br /&gt;
&lt;br /&gt;
Sign in with your RIT computer account credentials.&lt;br /&gt;
&lt;br /&gt;
You can use VMRC to access your VMs. Download the VMRC installer for your OS:&lt;br /&gt;
&lt;br /&gt;
* [https://ischool.gccis.rit.edu/vmrc/vmrc_windows.zip Windows]&lt;br /&gt;
* [https://ischool.gccis.rit.edu/vmrc/vmrc_macos.dmg MacOS]&lt;br /&gt;
Note that  Those VMRC downloads are on the Solace web server, which is restricted to the RIT network. You just need to connect to the RIT VPN before you can download them: &amp;lt;nowiki&amp;gt;https://www.rit.edu/its/virtual-private-network-vpn&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Provisioning a VM =====&lt;br /&gt;
When you first log into RLES, you'll land on the Catalog, where you'll see all of the virtual machine images that you have access to. Click on 'Request' to provision a VM instance.&lt;br /&gt;
&lt;br /&gt;
On the next screen, note the option selected in the &amp;quot;Business group&amp;quot; dropdown. If you're going to be using this VM in a group project, make sure your group's name is selected in this dropdown.&lt;br /&gt;
&lt;br /&gt;
Update the &amp;quot;Description&amp;quot; field with a meaningful value. For example, if you're going to use this VM to test out building a LAMP stack for ISTE-444, you could enter a description of &amp;quot;LAMP stack for ISTE-444&amp;quot;. Having useful descriptions will really help you out when you've got multiple VMs provisioned.&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Submit&amp;quot; button to send the request to have your new VM provisioned. It should take a few minutes before the new VM is ready.&lt;br /&gt;
&lt;br /&gt;
Note: RLES VMs only persist for two months (so we don't end up with a ton of unused VMs hanging around). If you need yours longer than two months, you'll have to extend the VM's lease.&lt;br /&gt;
&lt;br /&gt;
===== Accessing a VM =====&lt;br /&gt;
RLES VMs are, by default, only accessible within RLES. To access a VM that you've provisioned, go to the &amp;quot;Deployments&amp;quot; tab and find the entry for the VM that you're looking for.&lt;br /&gt;
[[File:RLES test deployment.png|right|450x450px|RLES test deployment]]&lt;br /&gt;
RLES VMs typically automatically suspend after 6 hours in order to conserve RLES resources, so if the status of your VM is &amp;quot;Off&amp;quot;, click the &amp;quot;Actions&amp;quot; dropdown (on the top right) and choose &amp;quot;Power on deployment&amp;quot; (then click &amp;quot;Submit&amp;quot; on the next screen). It should take a minute or so for the VM to turn back on.&lt;br /&gt;
&lt;br /&gt;
Once a VM is powered on, click the VM's name (not the network), and then click the &amp;quot;Actions&amp;quot; (gear) dropdown to see available options (see image at right).&lt;br /&gt;
&lt;br /&gt;
To access a VM, you can use a browser, or you can use VMware's Remote Console (VMRC). Using a browser to access the VM is quick and easy, but it won't allow for copy/pasting from your host computer. To use the browser, click &amp;quot;Connect to Remote Console&amp;quot; in the context menu.&lt;br /&gt;
&lt;br /&gt;
To use VMware's Remote Console, click &amp;quot;Connect using VMRC&amp;quot; (see above for links to the VRMC download). A new browser tab will open with a link for connecting to the VM. Click the &amp;quot;Connect to console using VMRC&amp;quot; to open your VM using the VMRC application.&lt;br /&gt;
&lt;br /&gt;
==== Access Outside of RLES ====&lt;br /&gt;
You can request that your VM be accessible outside of RLES. To do so, send an email to gccisit@rit.edu that includes:&lt;br /&gt;
&lt;br /&gt;
# The '''name of your VM''' (e.g. &amp;quot;ubuntu-1234&amp;quot;)&lt;br /&gt;
# What '''port(s)''' your web server is listening on (e.g. 80, 443, 3000, etc.)&lt;br /&gt;
# What '''hostname''' you want in DNS (e.g. &amp;quot;awesome-site&amp;quot;, which will become &amp;quot;awesome-site.webdev.gccis.rit.edu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Once an entry has been made in the RLES reverse proxy, you'll be assigned an IP address that is mapped to your DNS name.  Set that static IP address on your VM, and set the subnet mask to 255.255.254.0 and gateway to 172.16.1.254, like so:&lt;br /&gt;
&lt;br /&gt;
[[File:Static IP settings.png|alt=Static IP settings|400x400px]]&lt;br /&gt;
&lt;br /&gt;
Once the setup is complete, you'll be able to access your site from any browser outside of RLES at:&amp;lt;blockquote&amp;gt;https://[hostname].webdev.gccis.rit.edu&amp;lt;/blockquote&amp;gt;Note that a TLS certificate is automatically added by the RLES reverse proxy, so you'll access your site over HTTPS even though you haven't configured your web server for it, and port 443 will be mapped to the port that your web server is listening on. That means that if you can access your site on your VM at &amp;quot;&amp;lt;nowiki&amp;gt;http://localhost:3000&amp;lt;/nowiki&amp;gt;&amp;quot; and &amp;quot;&amp;lt;nowiki&amp;gt;http://172.16.0.1:3000&amp;lt;/nowiki&amp;gt;&amp;quot;, and 172.16.0.1 has been mapped in the proxy to awesome-site.webdev.gccis.rit.edu, you would access your site outside of RLES at &amp;quot;&amp;lt;nowiki&amp;gt;https://awesome-site.webdev.gccis.rit.edu&amp;lt;/nowiki&amp;gt;&amp;quot; (note the 's' in 'https' and that no port is specified).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can SSH into your VM too (as long as SSH is enabled on the VM), but you must be on [https://www.rit.edu/its/virtual-private-network-vpn the RIT network] to do so (note that there'll be a custom port for each VM):&amp;lt;blockquote&amp;gt;ssh [username]@[hostname].webdev.gccis.rit.edu -p[port]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Group Work====&lt;br /&gt;
You should all be able to see your groups VMs; if, on the Deployments page, you don't see a VM that someone else in your group created, click the filter icon next to &amp;quot;Deployments&amp;quot; and clear the checkmark next to your name.&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
'''VM loses connectivity'''&amp;lt;br&amp;gt;If your VM loses connectivity, try toggling the wired connection: Click the power icon in the top right corner, click &amp;quot;Wired Connected&amp;quot;, and click &amp;quot;Turn Off&amp;quot;. Then again click the power icon, click &amp;quot;Wired Off&amp;quot;, and then &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Freezing'''&amp;lt;br&amp;gt;If your VM appears to freeze, try exiting VMRC or your host computer's browser tab, and then reconnect to the VM.&lt;br /&gt;
&lt;br /&gt;
'''No VM access outside of RLES'''&amp;lt;br&amp;gt;If you've followed the steps above for &amp;quot;[[RLES Guide#Access Outside of RLES|Access Outside of RLES]]&amp;quot;, and you're still not able to access your VM outside of RLES, try these steps:&lt;br /&gt;
&lt;br /&gt;
# First, make sure that you're able to access your application inside the VM on localhost (and specify the port). E.g., &amp;lt;nowiki&amp;gt;http://localhost:3000&amp;lt;/nowiki&amp;gt;. If you can't access your app on localhost, then you've got something wrong with how you're serving your app - you need to look at your server code or web server.&lt;br /&gt;
# Still inside the VM, make sure that you can access your application on the assigned IP address (with the specified port. E.g., &amp;lt;nowiki&amp;gt;http://172.16.0.1:3000&amp;lt;/nowiki&amp;gt;. If you can't access your app on the assigned VM, then you probably have the network settings misconfigured. Check out the steps above, under &amp;quot;Access Outside of RLES&amp;quot;, for setting a manual IP address.&lt;br /&gt;
# Once you've confirmed that you can access your app by IP on your VM, ensure that you can access it on other VMs in RLES. Spin up another VM and try to access your app on the specified IP and port. If your app won't load, then you probably have a firewall issue on your app's VM.&lt;br /&gt;
# Finally, test out accessing your app outside of RLES by using the assigned DNS name, e.g., &amp;lt;nowiki&amp;gt;https://awesome-site.webdev.gccis.rit.edu&amp;lt;/nowiki&amp;gt;. Do ''not'' specify a port. If you can access your app inside RLES but not outside, then there's probably a configuration issue in the reverse proxy, and you should email gccisit@rit.edu.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=Git_Guide&amp;diff=89</id>
		<title>Git Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=Git_Guide&amp;diff=89"/>
		<updated>2025-02-05T14:57:29Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: Add prompt customization&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
=== What is Git? ===&lt;br /&gt;
Git is a distributed version control system used for tracking changes in source code and other files during software development. It was created by Linus Torvalds in 2005 for managing the development of the Linux kernel. Git allows developers to work on a codebase simultaneously and independently, without overwriting each other's changes.&lt;br /&gt;
&lt;br /&gt;
Git is designed to be fast, efficient, and secure. It keeps a complete history of changes made to a project, allowing developers to revert to previous versions if necessary. Git uses a branching model, which enables developers to work on different features or bug fixes in parallel and merge changes back into the main codebase.&lt;br /&gt;
&lt;br /&gt;
Git has become the industry standard for version control and is widely used in software development. It also has a large and active open-source community, which provides a wealth of resources and tools for developers.&lt;br /&gt;
&lt;br /&gt;
Git stores code in repositories (or &amp;quot;repos&amp;quot; [pronounced ree-poe]); you can &amp;quot;check out&amp;quot; a repository to get the latest version of the code.&lt;br /&gt;
&lt;br /&gt;
'''It's important to remember that when we're talking about Git repositories, we're typically talking about ''two'' versions of the repository: one that's running on a server (aka the &amp;quot;remote&amp;quot; or &amp;quot;origin&amp;quot;), such as GitHub, and one that's running on your computer (aka the &amp;quot;local&amp;quot;, which is &amp;quot;cloned&amp;quot; from the remote). When you commit changes to your local repo, those changes are not available to anyone else in your group until you &amp;quot;push&amp;quot; the changes to the remote.'''&lt;br /&gt;
&lt;br /&gt;
=== Access Tokens ===&lt;br /&gt;
In order to access iSchool repos on GitHub Education, you’ll need to create a personal access token, which will be used like a password. [https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token#creating-a-personal-access-token-classic Follow the steps in the GitHub documentation] to create your personal access token. Make sure you save your access token someplace where you'll be able to find it again; once you leave the GitHub page where the token was created, you won't be able to see it there again.&lt;br /&gt;
&lt;br /&gt;
Note that when you're prompted for a password, like when calling &amp;lt;code&amp;gt;git push&amp;lt;/code&amp;gt;, you actually need to enter your access token.&lt;br /&gt;
&lt;br /&gt;
=== Installing Git ===&lt;br /&gt;
If you don’t already have Git on your computer, you’ll need to [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git install it].&lt;br /&gt;
&lt;br /&gt;
== Gitflow==&lt;br /&gt;
This suggested workflow is based on [https://docs.github.com/en/get-started/quickstart/github-flow the GitHub flow].&lt;br /&gt;
&lt;br /&gt;
If you're working on a larger project, especially one with multiple versions in production simultaneously, [https://nvie.com/posts/a-successful-git-branching-model/ check out the branching model from Vincent Driessen].&lt;br /&gt;
&lt;br /&gt;
=== Create and check out the branch ===&lt;br /&gt;
In the GitHub issue, click &amp;quot;Create a branch&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:Create a branch.png|alt=create a branch|313x313px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This will automatically name the branch with the issue's ID and name:&lt;br /&gt;
&lt;br /&gt;
[[File:Branch name.png|alt=branch name|322x322px]]&lt;br /&gt;
&lt;br /&gt;
Then check out the branch in your local repository (where &amp;lt;feature-branch&amp;gt; is the name of the branch, e.g., &amp;quot;4-create-upload-page&amp;quot;). You'll have to fetch first so that the local repo knows that the branch exists.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git fetch&lt;br /&gt;
git checkout &amp;lt;feature-branch&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can create the branch locally, but you should still use the same naming convention. Retrieve the main branch, make sure it's up-to-date (with &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;), and then create your feature branch from that, where &amp;lt;feature-branch&amp;gt; is the ID and name of the GitHub issue, such as &amp;quot;4-create-upload-page&amp;quot;. &amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout main&lt;br /&gt;
git pull&lt;br /&gt;
git checkout -b &amp;lt;feature-branch&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you create a branch through the GitHub issue, it'll automatically be linked with the issue. If you create the branch locally, you'll have to link the branch manually in the GitHub issue:&lt;br /&gt;
&lt;br /&gt;
[[File:Link branch.png|alt=link branch|291x291px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When resuming work on a feature, retrieve your branch:&lt;br /&gt;
&amp;lt;pre&amp;gt;git checkout &amp;lt;feature-branch&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Write Code===&lt;br /&gt;
Do work.&lt;br /&gt;
&lt;br /&gt;
Save changes to your branch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add .    # only needed if you've added or deleted files&lt;br /&gt;
&lt;br /&gt;
git commit -a -m &amp;quot;&amp;lt;message&amp;gt;&amp;quot; &lt;br /&gt;
git push&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Periodically merge develop into your feature branch. The following is key: it will get whatever was added to develop since you did your last fetch from origin and try to apply your changes in &amp;lt;branch&amp;gt; on top of them, if it can. You need to resolve any conflicts on your branch; that way, we keep develop clean and safe for everyone.&lt;br /&gt;
&lt;br /&gt;
From time to time, repeat these so your branch doesn't get behind. And be sure to ''always'' do this before creating a pull request.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git fetch&lt;br /&gt;
git merge origin/main&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When ready to push to GitHub and create a pull request, do a last review of all of your changes with &amp;lt;code&amp;gt;git diff&amp;lt;/code&amp;gt;. Make sure you didn’t forget any experimental or debugging code, such as log statements. Then commit one last time:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git diff&lt;br /&gt;
&lt;br /&gt;
git commit -a -m &amp;quot;&amp;lt;message&amp;gt;&amp;quot;&lt;br /&gt;
git push&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Push and Review Code ===&lt;br /&gt;
Log into GitHub and create the pull request (PR) to merge the feature branch into main, by clicking the &amp;quot;New pull request&amp;quot; button on the &amp;quot;Branches&amp;quot; page:&lt;br /&gt;
&lt;br /&gt;
[[File:New Pull Request.png|alt=New Pull Request|161x161px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Creating the PR (rather than directly merging the feature branch into main) is important! Doing so:&lt;br /&gt;
&lt;br /&gt;
*provides the visual diff in GitHub of the lines changed, so the work can be reviewed, commented upon, and approved by your group&lt;br /&gt;
*allows for a history of merged PRs in GitHub, so all of the work merged for the PR can be seen in one place; without that, the only option is for commit-by-commit diffs&lt;br /&gt;
*shows the PR(s) in the GitHub project page, so it’s clear what target branches that code has ended up on: [[File:Linked Pull Requests.png|alt=Linked Pull Requests|162x162px]]&lt;br /&gt;
&lt;br /&gt;
==Git Commands Reference==&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt;======&lt;br /&gt;
Download a copy of a repository into a new directory.&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git checkout [-b]&amp;lt;/code&amp;gt;======&lt;br /&gt;
Switch to a different branch; specify the -b flag to create a new branch.&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt; ======&lt;br /&gt;
Place new files under version control.&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git status&amp;lt;/code&amp;gt;======&lt;br /&gt;
Show the current state of the working tree (i.e., the files that you’re working on).&lt;br /&gt;
&lt;br /&gt;
Use the -s flag for a shortened view.&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git commit [-am]&amp;lt;/code&amp;gt;======&lt;br /&gt;
Record changes that you’ve made to the repository.&lt;br /&gt;
&lt;br /&gt;
Use the -a flag to automatically include files that you’ve modified or deleted; you’ll still need to use “git add .” to include any new files that you’ve created.&lt;br /&gt;
&lt;br /&gt;
Use the -m flag to include a commit message; best practice is to preface your commit message with the ticket ID for whatever task you’re working on.&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git push&amp;lt;/code&amp;gt;======&lt;br /&gt;
Update the remote repository (i.e., GitHub Classroom) with the changes that you’ve committed to your local repository.&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git merge&amp;lt;/code&amp;gt; ======&lt;br /&gt;
Join two branches together.&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git log&amp;lt;/code&amp;gt;======&lt;br /&gt;
See a history of commits for your current branch.&lt;br /&gt;
&lt;br /&gt;
Use “git log --graph --decorate --oneline” for a concise view.&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;code&amp;gt;git branch [-D]&amp;lt;/code&amp;gt;======&lt;br /&gt;
See the name of the branch that you’re currently on.&lt;br /&gt;
&lt;br /&gt;
Use the -D flag to delete the branch.&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;======&lt;br /&gt;
Retrieve the latest commits on a branch from a remote repository.&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git fetch&amp;lt;/code&amp;gt;======&lt;br /&gt;
Get the list of available branches from a remote repository; often needed before “git pull”&lt;br /&gt;
&lt;br /&gt;
==gitconfig==&lt;br /&gt;
gitconfig lets you customize your Git behaves in your repositories. There are a couple different places where it can live:&lt;br /&gt;
&lt;br /&gt;
* a file named &amp;lt;code&amp;gt;.gitconfig&amp;lt;/code&amp;gt; (note the leading dot in the name) in your home directory&lt;br /&gt;
**e.g., in &amp;lt;code&amp;gt;C:\Users\&amp;lt;username&amp;gt;\&amp;lt;/code&amp;gt; on Windows or &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;/Users/&amp;lt;username&amp;gt;/&amp;lt;/code&amp;gt;) on macOS/Linux&lt;br /&gt;
** this file is global and will affect all repos on your system&lt;br /&gt;
*a file named &amp;lt;code&amp;gt;config&amp;lt;/code&amp;gt; in the hidden .git directory in your project directory &lt;br /&gt;
** this file is local and only affects the repo that contains it&lt;br /&gt;
**settings in this file override the settings in the global .gitconfig&lt;br /&gt;
&lt;br /&gt;
Include the following in your gitconfig:&lt;br /&gt;
 [user]&lt;br /&gt;
    name = First Last&lt;br /&gt;
    email = username@rit.edu&lt;br /&gt;
 [gui]&lt;br /&gt;
 [alias]&lt;br /&gt;
   st = status -s&lt;br /&gt;
   ci = commit&lt;br /&gt;
   co = checkout&lt;br /&gt;
   df = diff&lt;br /&gt;
   lol = log --graph --decorate --oneline&lt;br /&gt;
   clr = &amp;quot;!f() { git reset --hard &amp;amp;&amp;amp; git clean -f -d; }; f&amp;quot;&lt;br /&gt;
 [diff]&lt;br /&gt;
   tool = vimdiff&lt;br /&gt;
 [push]&lt;br /&gt;
     default = current&lt;br /&gt;
 [color]&lt;br /&gt;
    branch = auto&lt;br /&gt;
    diff = auto&lt;br /&gt;
    status = auto&lt;br /&gt;
 [credential]&lt;br /&gt;
    helper = cache --timeout=604800&lt;br /&gt;
This gitconfig provides a few benefits:&lt;br /&gt;
&lt;br /&gt;
*it sets a bunch of aliases, so, for example, you can just type git co instead of git checkout&lt;br /&gt;
* when pushing a branch to the remote repo, it'll default to the current branch name (which is almost always what you want) so you don't have to specify a remote name&lt;br /&gt;
*it'll cache your password/token for 604,800 seconds (1 week)&lt;br /&gt;
&lt;br /&gt;
== Prompt Customization ==&lt;br /&gt;
You can (and should!) use a tool like [https://github.com/diogocavilha/fancy-git fancy-git] to include the Git branch name and status in your terminal prompt.&lt;br /&gt;
&lt;br /&gt;
[[File:Fancy-git.png|alt=fancy-git|365x365px]]&lt;br /&gt;
&lt;br /&gt;
A simpler version is [https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh git-prompt] with [https://github.com/git/git/blob/master/contrib/completion/git-completion.bash git-completion] (both from the actual Git project).&lt;br /&gt;
&lt;br /&gt;
[[File:Git-prompt.png|alt=git-prompt|319x319px]]&lt;br /&gt;
&lt;br /&gt;
==Commit Message Best Practices==&lt;br /&gt;
Short example:&lt;br /&gt;
 PROJ-123 Refactor function foobar() to reduce complexity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Longer example:&lt;br /&gt;
 PROJ-123 Refactor function foobar() to reduce complexity&lt;br /&gt;
 &lt;br /&gt;
 * Remove nested loops&lt;br /&gt;
 * Add meaningful variable names&lt;br /&gt;
 * Convert nested tertiary operators to 'if' statements&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are the general rules to keep in mind when writing a commit message: &lt;br /&gt;
&lt;br /&gt;
#Start each commit message with a ticket number, such as from Jira or Azure DevOps  &lt;br /&gt;
#*This is really important! Branches disappear, but commit messages remain forever&lt;br /&gt;
#*Including the ticket number makes it ''a lot'' easier to figure out which task corresponds to that commit&lt;br /&gt;
#*In the example: &amp;quot;PROJ-123&amp;quot; would correspond to a ticket in Jira or Azure DevOps&lt;br /&gt;
#Include a pithy subject line for each commit; add a longer body for larger commits  &lt;br /&gt;
#*In the longer example: the subject line (the first line) is kept short, and then more details are added in the body&lt;br /&gt;
#Use bullets (asterisks) for the body, when necessary, to clearly indicate all the work done in the commit &lt;br /&gt;
#* In the longer example: three bullets are used to itemize the work that was actually done to refactor the function&lt;br /&gt;
#Separate subject from body with a blank line&lt;br /&gt;
#*In the longer example: see how there's nothing on the second line?&lt;br /&gt;
#Limit the subject line to 80 characters and wrap the body at 80 characters&lt;br /&gt;
#*In the example: even with the ticket number, the total length of the subject line is 56 characters&lt;br /&gt;
#Capitalize the subject line&lt;br /&gt;
#* In the example: the first letter is capitalized in &amp;quot;Refactor&amp;quot;, &amp;quot;Remove&amp;quot;, &amp;quot;Add&amp;quot;, and &amp;quot;Convert&amp;quot;&lt;br /&gt;
#Do not end the subject line with a period&lt;br /&gt;
#*In the example: witness no periods. If the lines in the body grow longer, then it's find to separate sentences with periods or other punctuation&lt;br /&gt;
#Use the imperative mood in the subject line; i.e., write it as a present-tense command.&lt;br /&gt;
#*In the example: it's &amp;quot;Refactor function&amp;quot;, not &amp;quot;Refactored function&amp;quot; or &amp;quot;Refactors function&amp;quot;&lt;br /&gt;
#*When you're reading through commits and determining what will happen if you merge the commit into your branch, you should be able to prepend each commit message with, &amp;quot;If I merge this commit, it'll &amp;lt;commit message&amp;gt;&amp;quot;.   E.g., &amp;quot;If I merge this commit, it'll refactor function foobar() to reduce complexity&amp;quot;&lt;br /&gt;
#Use the body to explain ''what'' and ''why'', not ''how'' &lt;br /&gt;
#*E.g., don't say: &amp;quot;Call  filter_var( $input,  FILTER_SANITIZE_EMAIL )&amp;quot; ''Do'' say: &amp;quot;Sanitize email input to prevent CSS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Most of these rules are taken from Chris Beams. [https://cbea.ms/git-commit/#seven-rules See his blog post] for a more thorough explanation of these rules.&lt;br /&gt;
&lt;br /&gt;
== Git Stash ==&lt;br /&gt;
When you have code that you have modified and you need to switch between branches, but you don't yet want to commit your changes, you can utilize Git's built-in command called 'stash':&lt;br /&gt;
&lt;br /&gt;
Check out [https://git-scm.com/book/en/v2/Git-Tools-Stashing-and-Cleaning Pro Git: Stashing and Cleaning], which is where this info came from.&lt;br /&gt;
&lt;br /&gt;
You can check what the current status is of your git repo vs. your local files by calling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git status &lt;br /&gt;
&lt;br /&gt;
On branch main &lt;br /&gt;
Changes to be committed:&lt;br /&gt;
  (use &amp;quot;git reset HEAD &amp;lt;file&amp;gt;...&amp;quot; to unstage)&lt;br /&gt;
&lt;br /&gt;
    modified:   README.md&lt;br /&gt;
    modified:   src/pages/registration.js&lt;br /&gt;
&lt;br /&gt;
Changes not staged for commit:&lt;br /&gt;
  (use &amp;quot;git add &amp;lt;file&amp;gt;...&amp;quot; to update what will be committed)&lt;br /&gt;
  (use &amp;quot;git checkout -- &amp;lt;file&amp;gt;...&amp;quot; to discard changes in working directory)&lt;br /&gt;
&lt;br /&gt;
    modified:   src/pages/login.js&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then once you have established that there are changes you want to keep track of, stash them:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git stash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you call &amp;lt;code&amp;gt;git status&amp;lt;/code&amp;gt;, you can see that your repo has been reverted and your changes are safely stored away:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git status &lt;br /&gt;
&lt;br /&gt;
# On branch main &lt;br /&gt;
nothing to commit, working directory clean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can have multiple stashes, so make sure you check to see where in the list of stashes this is located:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git stash list &lt;br /&gt;
stash@{0}: WIP on 2-create-registration: 47a498d #2 Add desc to readme&lt;br /&gt;
stash@{1}: WIP on 4-create-upload-page: c264051 #4 Add upload handling &lt;br /&gt;
stash@{2}: WIP on 4-create-upload-page: 21d80a5 #4 Create upload page&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you want to get your stash out of hiding, you use the &amp;lt;code&amp;gt;pop&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git stash pop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And you can specify which stash to retrieve by supplying a stash index:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git stash pop stash@{2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=File:Fancy-git.png&amp;diff=88</id>
		<title>File:Fancy-git.png</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=File:Fancy-git.png&amp;diff=88"/>
		<updated>2025-02-05T14:56:47Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;fancy-git&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=File:Git-prompt.png&amp;diff=87</id>
		<title>File:Git-prompt.png</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=File:Git-prompt.png&amp;diff=87"/>
		<updated>2025-02-05T14:55:17Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;git-prompt&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=86</id>
		<title>RLES Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=86"/>
		<updated>2025-02-05T14:16:48Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GCCIS's Remote Laboratory Emulation System (RLES; pronounced &amp;quot;are-less&amp;quot;) is a virtual private network that's not accessible to the outside world, with an environment set up just for our class. &lt;br /&gt;
&lt;br /&gt;
==== Getting Started ====&lt;br /&gt;
'''Access RLES at https://rlescloud.main.ad.rit.edu/vcac/#csp.cs.ui.catalog.list'''&lt;br /&gt;
&lt;br /&gt;
(Deprecated: Access New RLES at https://rles-cloud.rit.edu/automation/#/service/catalog/)&lt;br /&gt;
&lt;br /&gt;
Sign in with your RIT computer account credentials.&lt;br /&gt;
&lt;br /&gt;
You can use VMRC to access your VMs. Download the VMRC installer for your OS:&lt;br /&gt;
&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_windows.zip Windows]&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_macos.dmg MacOS]&lt;br /&gt;
&lt;br /&gt;
===== Provisioning a VM =====&lt;br /&gt;
When you first log into RLES, you'll land on the Catalog, where you'll see all of the virtual machine images that you have access to. Click on 'Request' to provision a VM instance.&lt;br /&gt;
&lt;br /&gt;
On the next screen, note the option selected in the &amp;quot;Business group&amp;quot; dropdown. If you're going to be using this VM in a group project, make sure your group's name is selected in this dropdown.&lt;br /&gt;
&lt;br /&gt;
Update the &amp;quot;Description&amp;quot; field with a meaningful value. For example, if you're going to use this VM to test out building a LAMP stack for ISTE-444, you could enter a description of &amp;quot;LAMP stack for ISTE-444&amp;quot;. Having useful descriptions will really help you out when you've got multiple VMs provisioned.&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Submit&amp;quot; button to send the request to have your new VM provisioned. It should take a few minutes before the new VM is ready.&lt;br /&gt;
&lt;br /&gt;
Note: RLES VMs only persist for two months (so we don't end up with a ton of unused VMs hanging around). If you need yours longer than two months, you'll have to extend the VM's lease.&lt;br /&gt;
&lt;br /&gt;
===== Accessing a VM =====&lt;br /&gt;
RLES VMs are, by default, only accessible within RLES. To access a VM that you've provisioned, go to the &amp;quot;Deployments&amp;quot; tab and find the entry for the VM that you're looking for.&lt;br /&gt;
[[File:RLES test deployment.png|right|450x450px|RLES test deployment]]&lt;br /&gt;
RLES VMs typically automatically suspend after 6 hours in order to conserve RLES resources, so if the status of your VM is &amp;quot;Off&amp;quot;, click the &amp;quot;Actions&amp;quot; dropdown (on the top right) and choose &amp;quot;Power on deployment&amp;quot; (then click &amp;quot;Submit&amp;quot; on the next screen). It should take a minute or so for the VM to turn back on.&lt;br /&gt;
&lt;br /&gt;
Once a VM is powered on, click the VM's name (not the network), and then click the &amp;quot;Actions&amp;quot; (gear) dropdown to see available options (see image at right).&lt;br /&gt;
&lt;br /&gt;
To access a VM, you can use a browser, or you can use VMware's Remote Console (VMRC). Using a browser to access the VM is quick and easy, but it won't allow for copy/pasting from your host computer. To use the browser, click &amp;quot;Connect to Remote Console&amp;quot; in the context menu.&lt;br /&gt;
&lt;br /&gt;
To use VMware's Remote Console, click &amp;quot;Connect using VMRC&amp;quot; (see above for links to the VRMC download). A new browser tab will open with a link for connecting to the VM. Click the &amp;quot;Connect to console using VMRC&amp;quot; to open your VM using the VMRC application.&lt;br /&gt;
&lt;br /&gt;
==== Access Outside of RLES ====&lt;br /&gt;
You can request that your VM be accessible outside of RLES. To do so, send an email to gccisit@rit.edu that includes:&lt;br /&gt;
&lt;br /&gt;
# The '''name of your VM''' (e.g. &amp;quot;ubuntu-1234&amp;quot;)&lt;br /&gt;
# What '''port(s)''' your web server is listening on (e.g. 80, 443, 3000, etc.)&lt;br /&gt;
# What '''hostname''' you want in DNS (e.g. &amp;quot;awesome-site&amp;quot;, which will become &amp;quot;awesome-site.webdev.gccis.rit.edu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Once an entry has been made in the RLES reverse proxy, you'll be assigned an IP address that is mapped to your DNS name.  Set that static IP address on your VM, and set the subnet mask to 255.255.254.0 and gateway to 172.16.1.254, like so:&lt;br /&gt;
&lt;br /&gt;
[[File:Static IP settings.png|alt=Static IP settings|400x400px]]&lt;br /&gt;
&lt;br /&gt;
Once the setup is complete, you'll be able to access your site from any browser outside of RLES at:&amp;lt;blockquote&amp;gt;https://[hostname].webdev.gccis.rit.edu&amp;lt;/blockquote&amp;gt;Note that a TLS certificate is automatically added by the RLES reverse proxy, so you'll access your site over HTTPS even though you haven't configured your web server for it, and port 443 will be mapped to the port that your web server is listening on. That means that if you can access your site on your VM at &amp;quot;&amp;lt;nowiki&amp;gt;http://localhost:3000&amp;lt;/nowiki&amp;gt;&amp;quot; and &amp;quot;&amp;lt;nowiki&amp;gt;http://172.16.0.1:3000&amp;lt;/nowiki&amp;gt;&amp;quot;, and 172.16.0.1 has been mapped in the proxy to awesome-site.webdev.gccis.rit.edu, you would access your site outside of RLES at &amp;quot;&amp;lt;nowiki&amp;gt;https://awesome-site.webdev.gccis.rit.edu&amp;lt;/nowiki&amp;gt;&amp;quot; (note the 's' in 'https' and that no port is specified).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can SSH into your VM too (as long as SSH is enabled on the VM), but you must be on [https://www.rit.edu/its/virtual-private-network-vpn the RIT network] to do so (note that there'll be a custom port for each VM):&amp;lt;blockquote&amp;gt;ssh [username]@[hostname].webdev.gccis.rit.edu -p[port]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Group Work====&lt;br /&gt;
You should all be able to see your groups VMs; if, on the Deployments page, you don't see a VM that someone else in your group created, click the filter icon next to &amp;quot;Deployments&amp;quot; and clear the checkmark next to your name.&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
'''VM loses connectivity'''&amp;lt;br&amp;gt;If your VM loses connectivity, try toggling the wired connection: Click the power icon in the top right corner, click &amp;quot;Wired Connected&amp;quot;, and click &amp;quot;Turn Off&amp;quot;. Then again click the power icon, click &amp;quot;Wired Off&amp;quot;, and then &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Freezing'''&amp;lt;br&amp;gt;If your VM appears to freeze, try exiting VMRC or your host computer's browser tab, and then reconnect to the VM.&lt;br /&gt;
&lt;br /&gt;
'''No VM access outside of RLES'''&amp;lt;br&amp;gt;If you've followed the steps above for &amp;quot;[[RLES Guide#Access Outside of RLES|Access Outside of RLES]]&amp;quot;, and you're still not able to access your VM outside of RLES, try these steps:&lt;br /&gt;
&lt;br /&gt;
# First, make sure that you're able to access your application inside the VM on localhost (and specify the port). E.g., &amp;lt;nowiki&amp;gt;http://localhost:3000&amp;lt;/nowiki&amp;gt;. If you can't access your app on localhost, then you've got something wrong with how you're serving your app - you need to look at your server code or web server.&lt;br /&gt;
# Still inside the VM, make sure that you can access your application on the assigned IP address (with the specified port. E.g., &amp;lt;nowiki&amp;gt;http://172.16.0.1:3000&amp;lt;/nowiki&amp;gt;. If you can't access your app on the assigned VM, then you probably have the network settings misconfigured. Check out the steps above, under &amp;quot;Access Outside of RLES&amp;quot;, for setting a manual IP address.&lt;br /&gt;
# Once you've confirmed that you can access your app by IP on your VM, ensure that you can access it on other VMs in RLES. Spin up another VM and try to access your app on the specified IP and port. If your app won't load, then you probably have a firewall issue on your app's VM.&lt;br /&gt;
# Finally, test out accessing your app outside of RLES by using the assigned DNS name, e.g., &amp;lt;nowiki&amp;gt;https://awesome-site.webdev.gccis.rit.edu&amp;lt;/nowiki&amp;gt;. Do ''not'' specify a port. If you can access your app inside RLES but not outside, then there's probably a configuration issue in the reverse proxy, and you should email gccisit@rit.edu.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=85</id>
		<title>RLES Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=85"/>
		<updated>2025-02-05T14:10:05Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GCCIS's Remote Laboratory Emulation System (RLES; pronounced &amp;quot;are-less&amp;quot;) is a virtual private network that's not accessible to the outside world, with an environment set up just for our class. &lt;br /&gt;
&lt;br /&gt;
==== Getting Started ====&lt;br /&gt;
'''Access RLES at https://rlescloud.main.ad.rit.edu/vcac/#csp.cs.ui.catalog.list'''&lt;br /&gt;
&lt;br /&gt;
(Deprecated: Access New RLES at https://rles-cloud.rit.edu/automation/#/service/catalog/)&lt;br /&gt;
&lt;br /&gt;
Sign in with your RIT computer account credentials.&lt;br /&gt;
&lt;br /&gt;
You can use VMRC to access your VMs. Download the VMRC installer for your OS:&lt;br /&gt;
&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_windows.zip Windows]&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_macos.dmg MacOS]&lt;br /&gt;
&lt;br /&gt;
===== Provisioning a VM =====&lt;br /&gt;
When you first log into RLES, you'll land on the Catalog, where you'll see all of the virtual machine images that you have access to. Click on 'Request' to provision a VM instance.&lt;br /&gt;
&lt;br /&gt;
On the next screen, note the option selected in the &amp;quot;Business group&amp;quot; dropdown. If you're going to be using this VM in a group project, make sure your group's name is selected in this dropdown.&lt;br /&gt;
&lt;br /&gt;
Update the &amp;quot;Description&amp;quot; field with a meaningful value. For example, if you're going to use this VM to test out building a LAMP stack for ISTE-444, you could enter a description of &amp;quot;LAMP stack for ISTE-444&amp;quot;. Having useful descriptions will really help you out when you've got multiple VMs provisioned.&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Submit&amp;quot; button to send the request to have your new VM provisioned. It should take a few minutes before the new VM is ready.&lt;br /&gt;
&lt;br /&gt;
Note: RLES VMs only persist for two months (so we don't end up with a ton of unused VMs hanging around). If you need yours longer than two months, you'll have to extend the VM's lease.&lt;br /&gt;
&lt;br /&gt;
===== Accessing a VM =====&lt;br /&gt;
RLES VMs are, by default, only accessible within RLES. To access a VM that you've provisioned, go to the &amp;quot;Deployments&amp;quot; tab and find the entry for the VM that you're looking for.&lt;br /&gt;
[[File:RLES test deployment.png|right|450x450px|RLES test deployment]]&lt;br /&gt;
RLES VMs typically automatically suspend after 6 hours in order to conserve RLES resources, so if the status of your VM is &amp;quot;Off&amp;quot;, click the &amp;quot;Actions&amp;quot; dropdown (on the top right) and choose &amp;quot;Power on deployment&amp;quot; (then click &amp;quot;Submit&amp;quot; on the next screen). It should take a minute or so for the VM to turn back on.&lt;br /&gt;
&lt;br /&gt;
Once a VM is powered on, click the VM's name (not the network), and then click the &amp;quot;Actions&amp;quot; (gear) dropdown to see available options (see image at right).&lt;br /&gt;
&lt;br /&gt;
To access a VM, you can use a browser, or you can use VMware's Remote Console (VMRC). Using a browser to access the VM is quick and easy, but it won't allow for copy/pasting from your host computer. To use the browser, click &amp;quot;Connect to Remote Console&amp;quot; in the context menu.&lt;br /&gt;
&lt;br /&gt;
To use VMware's Remote Console, click &amp;quot;Connect using VMRC&amp;quot; (see above for links to the VRMC download). A new browser tab will open with a link for connecting to the VM. Click the &amp;quot;Connect to console using VMRC&amp;quot; to open your VM using the VMRC application.&lt;br /&gt;
&lt;br /&gt;
==== Access Outside of RLES ====&lt;br /&gt;
You can request that your VM be accessible outside of RLES. To do so, send an email to gccisit@rit.edu that includes:&lt;br /&gt;
&lt;br /&gt;
# The '''name of your VM''' (e.g. &amp;quot;ubuntu-1234&amp;quot;)&lt;br /&gt;
# What '''port(s)''' your web server is listening on (e.g. 80, 443, 3000, etc.)&lt;br /&gt;
# What '''hostname''' you want in DNS (e.g. &amp;quot;awesome-site&amp;quot;, which will become &amp;quot;awesome-site.webdev.gccis.rit.edu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Once an entry has been made in the RLES reverse proxy, you'll be assigned an IP address that is mapped to your DNS name.  Set that static IP address on your VM, and set the subnet mask to 255.255.254.0 and gateway to 172.16.1.254, like so:&lt;br /&gt;
&lt;br /&gt;
[[File:Static IP settings.png|alt=Static IP settings|400x400px]]&lt;br /&gt;
&lt;br /&gt;
Once the setup is complete, you'll be able to access your site from any browser outside of RLES at:&amp;lt;blockquote&amp;gt;https://[hostname].webdev.gccis.rit.edu&amp;lt;/blockquote&amp;gt;Note that a TLS certificate is automatically added by the RLES reverse proxy, so you'll access your site over HTTPS even though you haven't configured your web server for it, and port 443 will be mapped to the port that your web server is listening on. That means that if you can access your site on your VM at &amp;quot;&amp;lt;nowiki&amp;gt;http://localhost:3000&amp;lt;/nowiki&amp;gt;&amp;quot; and &amp;quot;&amp;lt;nowiki&amp;gt;http://172.16.0.1:3000&amp;lt;/nowiki&amp;gt;&amp;quot;, and 172.16.0.1 has been mapped in the proxy to awesome-site.webdev.gccis.rit.edu, you would access your site outside of RLES at &amp;quot;&amp;lt;nowiki&amp;gt;https://awesome-site.webdev.gccis.rit.edu&amp;lt;/nowiki&amp;gt;&amp;quot; (note the 's' in 'https' and that no port is specified).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can SSH into your VM too (as long as SSH is enabled on the VM), but you must be on the RIT network to do so (note that there'll be a custom port for each VM):&amp;lt;blockquote&amp;gt;ssh [username]@[hostname].webdev.gccis.rit.edu -p[port]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Group Work====&lt;br /&gt;
You should all be able to see your groups VMs; if, on the Deployments page, you don't see a VM that someone else in your group created, click the filter icon next to &amp;quot;Deployments&amp;quot; and clear the checkmark next to your name.&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
'''VM loses connectivity'''&amp;lt;br&amp;gt;If your VM loses connectivity, try toggling the wired connection: Click the power icon in the top right corner, click &amp;quot;Wired Connected&amp;quot;, and click &amp;quot;Turn Off&amp;quot;. Then again click the power icon, click &amp;quot;Wired Off&amp;quot;, and then &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Freezing'''&amp;lt;br&amp;gt;If your VM appears to freeze, try exiting VMRC or your host computer's browser tab, and then reconnect to the VM.&lt;br /&gt;
&lt;br /&gt;
'''No VM access outside of RLES'''&amp;lt;br&amp;gt;If you've followed above for &amp;quot;Access Outside of RLES&amp;quot;, and you're still not able to access your VM outside of RLES, try these steps:&lt;br /&gt;
&lt;br /&gt;
# First, make sure that you're able to access your application inside the VM on localhost (and specify the port). E.g., &amp;lt;nowiki&amp;gt;http://localhost:3000&amp;lt;/nowiki&amp;gt;. If you can't access your app on localhost, then you've got something wrong with how you're serving your app - you need to look at your server code or web server.&lt;br /&gt;
# Still inside the VM, make sure that you can access your application on the assigned IP address (with the specified port. E.g., &amp;lt;nowiki&amp;gt;http://172.16.0.1:3000&amp;lt;/nowiki&amp;gt;. If you can't access your app on the assigned VM, then you probably have the network settings misconfigured. Check out the steps above, under &amp;quot;Access Outside of RLES&amp;quot;, for setting a manual IP address.&lt;br /&gt;
# Once you've confirmed that you can access your app by IP on your VM, ensure that you can access it on other VMs in RLES. Spin up another VM and try to access your app on the specified IP and port. If your app won't load, then you probably have a firewall issue on your app's VM.&lt;br /&gt;
# Finally, test out accessing your app outside of RLES by using the assigned DNS name, e.g., &amp;lt;nowiki&amp;gt;https://awesome-site.webdev.gccis.rit.edu&amp;lt;/nowiki&amp;gt;. Do ''not'' specify a port. If you can access your app inside RLES but not outside, then there's probably a configuration issue in the reverse proxy, and you should email gccisit@rit.edu.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=84</id>
		<title>RLES Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=84"/>
		<updated>2025-02-05T14:08:01Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GCCIS's Remote Laboratory Emulation System (RLES; pronounced &amp;quot;are-less&amp;quot;) is a virtual private network that's not accessible to the outside world, with an environment set up just for our class. &lt;br /&gt;
&lt;br /&gt;
==== Getting Started ====&lt;br /&gt;
'''Access RLES at https://rlescloud.main.ad.rit.edu/vcac/#csp.cs.ui.catalog.list'''&lt;br /&gt;
&lt;br /&gt;
(Deprecated: Access New RLES at https://rles-cloud.rit.edu/automation/#/service/catalog/)&lt;br /&gt;
&lt;br /&gt;
Sign in with your RIT computer account credentials.&lt;br /&gt;
&lt;br /&gt;
You can use VMRC to access your VMs. Download the VMRC installer for your OS:&lt;br /&gt;
&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_windows.zip Windows]&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_macos.dmg MacOS]&lt;br /&gt;
&lt;br /&gt;
===== Provisioning a VM =====&lt;br /&gt;
When you first log into RLES, you'll land on the Catalog, where you'll see all of the virtual machine images that you have access to. Click on 'Request' to provision a VM instance.&lt;br /&gt;
&lt;br /&gt;
On the next screen, note the option selected in the &amp;quot;Business group&amp;quot; dropdown. If you're going to be using this VM in a group project, make sure your group's name is selected in this dropdown.&lt;br /&gt;
&lt;br /&gt;
Update the &amp;quot;Description&amp;quot; field with a meaningful value. For example, if you're going to use this VM to test out building a LAMP stack for ISTE-444, you could enter a description of &amp;quot;LAMP stack for ISTE-444&amp;quot;. Having useful descriptions will really help you out when you've got multiple VMs provisioned.&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Submit&amp;quot; button to send the request to have your new VM provisioned. It should take a few minutes before the new VM is ready.&lt;br /&gt;
&lt;br /&gt;
Note: RLES VMs only persist for two months (so we don't end up with a ton of unused VMs hanging around). If you need yours longer than two months, you'll have to extend the VM's lease.&lt;br /&gt;
&lt;br /&gt;
===== Accessing a VM =====&lt;br /&gt;
RLES VMs are, by default, only accessible within RLES. To access a VM that you've provisioned, go to the &amp;quot;Deployments&amp;quot; tab and find the entry for the VM that you're looking for.&lt;br /&gt;
[[File:RLES test deployment.png|right|450x450px|RLES test deployment]]&lt;br /&gt;
RLES VMs typically automatically suspend after 6 hours in order to conserve RLES resources, so if the status of your VM is &amp;quot;Off&amp;quot;, click the &amp;quot;Actions&amp;quot; dropdown (on the top right) and choose &amp;quot;Power on deployment&amp;quot; (then click &amp;quot;Submit&amp;quot; on the next screen). It should take a minute or so for the VM to turn back on.&lt;br /&gt;
&lt;br /&gt;
Once a VM is powered on, click the VM's name (not the network), and then click the &amp;quot;Actions&amp;quot; (gear) dropdown to see available options (see image at right).&lt;br /&gt;
&lt;br /&gt;
To access a VM, you can use a browser, or you can use VMware's Remote Console (VMRC). Using a browser to access the VM is quick and easy, but it won't allow for copy/pasting from your host computer. To use the browser, click &amp;quot;Connect to Remote Console&amp;quot; in the context menu.&lt;br /&gt;
&lt;br /&gt;
To use VMware's Remote Console, click &amp;quot;Connect using VMRC&amp;quot; (see above for links to the VRMC download). A new browser tab will open with a link for connecting to the VM. Click the &amp;quot;Connect to console using VMRC&amp;quot; to open your VM using the VMRC application.&lt;br /&gt;
&lt;br /&gt;
==== Access Outside of RLES ====&lt;br /&gt;
You can request that your VM be accessible outside of RLES. To do so, send an email to gccisit@rit.edu that includes:&lt;br /&gt;
&lt;br /&gt;
# The '''name of your VM''' (e.g. &amp;quot;ubuntu-1234&amp;quot;)&lt;br /&gt;
# What '''port(s)''' your web server is listening on (e.g. 80, 443, 3000, etc.)&lt;br /&gt;
# What '''hostname''' you want in DNS (e.g. &amp;quot;awesome-site&amp;quot;, which will become &amp;quot;awesome-site.webdev.gccis.rit.edu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Once an entry has been made in the RLES reverse proxy, you'll be assigned an IP address that is mapped to your DNS name.  Set that static IP address on your VM, and set the subnet mask to 255.255.254.0 and gateway to 172.16.1.254, like so:&lt;br /&gt;
&lt;br /&gt;
[[File:Static IP settings.png|alt=Static IP settings|400x400px]]&lt;br /&gt;
&lt;br /&gt;
Once the setup is complete, you'll be able to access your site from any browser outside of RLES at:&amp;lt;blockquote&amp;gt;https://[hostname].webdev.gccis.rit.edu&amp;lt;/blockquote&amp;gt;Note that a TLS certificate is automatically added by the RLES reverse proxy, so you'll access your site over HTTPS even though you haven't configured your web server for it, and port 443 will be mapped to the port that your web server is listening on. That means that if you can access your site on your VM at &amp;quot;&amp;lt;nowiki&amp;gt;http://localhost:3000&amp;lt;/nowiki&amp;gt;&amp;quot; and &amp;quot;&amp;lt;nowiki&amp;gt;http://172.16.0.1:3000&amp;lt;/nowiki&amp;gt;&amp;quot;, and 172.16.0.1 has been mapped in the proxy to awesome-site.webdev.gccis.rit.edu, you would access your site outside of RLES at &amp;quot;&amp;lt;nowiki&amp;gt;https://awesome-site.webdev.gccis.rit.edu&amp;lt;/nowiki&amp;gt;&amp;quot; (note the 's' in 'https' and that no port is specified).&lt;br /&gt;
&lt;br /&gt;
You can SSH into your VM too (as long as SSH is enabled on the VM), but you must be on the RIT network to do so (note that there'll be a custom port for each VM):&amp;lt;blockquote&amp;gt;ssh [username]@[hostname].webdev.gccis.rit.edu -p[port]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Group Work====&lt;br /&gt;
You should all be able to see your groups VMs; if, on the Deployments page, you don't see a VM that someone else in your group created, click the filter icon next to &amp;quot;Deployments&amp;quot; and clear the checkmark next to your name.&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
'''VM loses connectivity'''&amp;lt;br&amp;gt;If your VM loses connectivity, try toggling the wired connection: Click the power icon in the top right corner, click &amp;quot;Wired Connected&amp;quot;, and click &amp;quot;Turn Off&amp;quot;. Then again click the power icon, click &amp;quot;Wired Off&amp;quot;, and then &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Freezing'''&amp;lt;br&amp;gt;If your VM appears to freeze, try exiting VMRC or your host computer's browser tab, and then reconnect to the VM.&lt;br /&gt;
&lt;br /&gt;
'''No VM access outside of RLES'''&amp;lt;br&amp;gt;If you've followed above for &amp;quot;Access Outside of RLES&amp;quot;, and you're still not able to access your VM outside of RLES, try these steps:&lt;br /&gt;
&lt;br /&gt;
# First, make sure that you're able to access your application inside the VM on localhost (and specify the port). E.g., &amp;lt;nowiki&amp;gt;http://localhost:3000&amp;lt;/nowiki&amp;gt;. If you can't access your app on localhost, then you've got something wrong with how you're serving your app - you need to look at your server code or web server.&lt;br /&gt;
# Still inside the VM, make sure that you can access your application on the assigned IP address (with the specified port. E.g., &amp;lt;nowiki&amp;gt;http://172.16.0.1:3000&amp;lt;/nowiki&amp;gt;. If you can't access your app on the assigned VM, then you probably have the network settings misconfigured. Check out the steps above, under &amp;quot;Access Outside of RLES&amp;quot;, for setting a manual IP address.&lt;br /&gt;
# Once you've confirmed that you can access your app by IP on your VM, ensure that you can access it on other VMs in RLES. Spin up another VM and try to access your app on the specified IP and port. If your app won't load, then you probably have a firewall issue on your app's VM.&lt;br /&gt;
# Finally, test out accessing your app outside of RLES by using the assigned DNS name, e.g., &amp;lt;nowiki&amp;gt;https://awesome-site.webdev.gccis.rit.edu&amp;lt;/nowiki&amp;gt;. Do ''not'' specify a port. If you can access your app inside RLES but not outside, then there's probably a configuration issue in the reverse proxy, and you should email gccisit@rit.edu.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=83</id>
		<title>RLES Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=83"/>
		<updated>2025-02-05T14:07:32Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: Added information for configuring VMs for access outside of RLES&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GCCIS's Remote Laboratory Emulation System (RLES; pronounced &amp;quot;are-less&amp;quot;) is a virtual private network that's not accessible to the outside world, with an environment set up just for our class. &lt;br /&gt;
&lt;br /&gt;
==== Getting Started ====&lt;br /&gt;
'''Access RLES at https://rlescloud.main.ad.rit.edu/vcac/#csp.cs.ui.catalog.list'''&lt;br /&gt;
&lt;br /&gt;
(Deprecated: Access New RLES at https://rles-cloud.rit.edu/automation/#/service/catalog/)&lt;br /&gt;
&lt;br /&gt;
Sign in with your RIT computer account credentials.&lt;br /&gt;
&lt;br /&gt;
You can use VMRC to access your VMs. Download the VMRC installer for your OS:&lt;br /&gt;
&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_windows.zip Windows]&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_macos.dmg MacOS]&lt;br /&gt;
&lt;br /&gt;
===== Provisioning a VM =====&lt;br /&gt;
When you first log into RLES, you'll land on the Catalog, where you'll see all of the virtual machine images that you have access to. Click on 'Request' to provision a VM instance.&lt;br /&gt;
&lt;br /&gt;
On the next screen, note the option selected in the &amp;quot;Business group&amp;quot; dropdown. If you're going to be using this VM in a group project, make sure your group's name is selected in this dropdown.&lt;br /&gt;
&lt;br /&gt;
Update the &amp;quot;Description&amp;quot; field with a meaningful value. For example, if you're going to use this VM to test out building a LAMP stack for ISTE-444, you could enter a description of &amp;quot;LAMP stack for ISTE-444&amp;quot;. Having useful descriptions will really help you out when you've got multiple VMs provisioned.&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Submit&amp;quot; button to send the request to have your new VM provisioned. It should take a few minutes before the new VM is ready.&lt;br /&gt;
&lt;br /&gt;
Note: RLES VMs only persist for two months (so we don't end up with a ton of unused VMs hanging around). If you need yours longer than two months, you'll have to extend the VM's lease.&lt;br /&gt;
&lt;br /&gt;
===== Accessing a VM =====&lt;br /&gt;
RLES VMs are, by default, only accessible within RLES. To access a VM that you've provisioned, go to the &amp;quot;Deployments&amp;quot; tab and find the entry for the VM that you're looking for.&lt;br /&gt;
[[File:RLES test deployment.png|right|450x450px|RLES test deployment]]&lt;br /&gt;
RLES VMs typically automatically suspend after 6 hours in order to conserve RLES resources, so if the status of your VM is &amp;quot;Off&amp;quot;, click the &amp;quot;Actions&amp;quot; dropdown (on the top right) and choose &amp;quot;Power on deployment&amp;quot; (then click &amp;quot;Submit&amp;quot; on the next screen). It should take a minute or so for the VM to turn back on.&lt;br /&gt;
&lt;br /&gt;
Once a VM is powered on, click the VM's name (not the network), and then click the &amp;quot;Actions&amp;quot; (gear) dropdown to see available options (see image at right).&lt;br /&gt;
&lt;br /&gt;
To access a VM, you can use a browser, or you can use VMware's Remote Console (VMRC). Using a browser to access the VM is quick and easy, but it won't allow for copy/pasting from your host computer. To use the browser, click &amp;quot;Connect to Remote Console&amp;quot; in the context menu.&lt;br /&gt;
&lt;br /&gt;
To use VMware's Remote Console, click &amp;quot;Connect using VMRC&amp;quot; (see above for links to the VRMC download). A new browser tab will open with a link for connecting to the VM. Click the &amp;quot;Connect to console using VMRC&amp;quot; to open your VM using the VMRC application.&lt;br /&gt;
&lt;br /&gt;
==== Access Outside of RLES ====&lt;br /&gt;
You can request that your VM be accessible outside of RLES. To do so, send an email to gccisit@rit.edu that includes:&lt;br /&gt;
&lt;br /&gt;
# The '''name of your VM''' (e.g. &amp;quot;ubuntu-1234&amp;quot;)&lt;br /&gt;
# What '''port(s)''' your web server is listening on (e.g. 80, 443, 3000, etc.)&lt;br /&gt;
# What '''hostname''' you want in DNS (e.g. &amp;quot;awesome-site&amp;quot;, which will become &amp;quot;awesome-site.webdev.gccis.rit.edu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Once an entry has been made in the RLES reverse proxy, you'll be assigned an IP address that is mapped to your DNS name.  Set that static IP address on your VM, and set the subnet mask to 255.255.254.0 and gateway to 172.16.1.254, like so:&lt;br /&gt;
&lt;br /&gt;
[[File:Static IP settings.png|alt=Static IP settings|400x400px]]&lt;br /&gt;
&lt;br /&gt;
Once the setup is complete, you'll be able to access your site from any browser outside of RLES at:&amp;lt;blockquote&amp;gt;https://[hostname].webdev.gccis.rit.edu&amp;lt;/blockquote&amp;gt;Note that a TLS certificate is automatically added by the RLES reverse proxy, so you'll access your site over HTTPS even though you haven't configured your web server for it, and port 443 will be mapped to the port that your web server is listening on. That means that if you can access your site on your VM at &amp;quot;&amp;lt;nowiki&amp;gt;http://localhost:3000&amp;lt;/nowiki&amp;gt;&amp;quot; and &amp;quot;&amp;lt;nowiki&amp;gt;http://172.16.0.1:3000&amp;lt;/nowiki&amp;gt;&amp;quot;, and 172.16.0.1 has been mapped in the proxy to awesome-site.webdev.gccis.rit.edu, you would access your site outside of RLES at &amp;quot;&amp;lt;nowiki&amp;gt;https://awesome-site.webdev.gccis.rit.edu&amp;lt;/nowiki&amp;gt;&amp;quot; (note the 's' in 'https' and that no port is specified).&lt;br /&gt;
You can SSH into your VM too (as long as SSH is enabled on the VM), but you must be on the RIT network to do so (note that there'll be a custom port for each VM):&amp;lt;blockquote&amp;gt;ssh [username]@[hostname].webdev.gccis.rit.edu -p[port]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Group Work====&lt;br /&gt;
You should all be able to see your groups VMs; if, on the Deployments page, you don't see a VM that someone else in your group created, click the filter icon next to &amp;quot;Deployments&amp;quot; and clear the checkmark next to your name.&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
'''VM loses connectivity'''&amp;lt;br&amp;gt;If your VM loses connectivity, try toggling the wired connection: Click the power icon in the top right corner, click &amp;quot;Wired Connected&amp;quot;, and click &amp;quot;Turn Off&amp;quot;. Then again click the power icon, click &amp;quot;Wired Off&amp;quot;, and then &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Freezing'''&amp;lt;br&amp;gt;If your VM appears to freeze, try exiting VMRC or your host computer's browser tab, and then reconnect to the VM.&lt;br /&gt;
&lt;br /&gt;
'''No VM access outside of RLES'''&amp;lt;br&amp;gt;If you've followed above for &amp;quot;Access Outside of RLES&amp;quot;, and you're still not able to access your VM outside of RLES, try these steps:&lt;br /&gt;
&lt;br /&gt;
# First, make sure that you're able to access your application inside the VM on localhost (and specify the port). E.g., &amp;lt;nowiki&amp;gt;http://localhost:3000&amp;lt;/nowiki&amp;gt;. If you can't access your app on localhost, then you've got something wrong with how you're serving your app - you need to look at your server code or web server.&lt;br /&gt;
# Still inside the VM, make sure that you can access your application on the assigned IP address (with the specified port. E.g., &amp;lt;nowiki&amp;gt;http://172.16.0.1:3000&amp;lt;/nowiki&amp;gt;. If you can't access your app on the assigned VM, then you probably have the network settings misconfigured. Check out the steps above, under &amp;quot;Access Outside of RLES&amp;quot;, for setting a manual IP address.&lt;br /&gt;
# Once you've confirmed that you can access your app by IP on your VM, ensure that you can access it on other VMs in RLES. Spin up another VM and try to access your app on the specified IP and port. If your app won't load, then you probably have a firewall issue on your app's VM.&lt;br /&gt;
# Finally, test out accessing your app outside of RLES by using the assigned DNS name, e.g., &amp;lt;nowiki&amp;gt;https://awesome-site.webdev.gccis.rit.edu&amp;lt;/nowiki&amp;gt;. Do ''not'' specify a port. If you can access your app inside RLES but not outside, then there's probably a configuration issue in the reverse proxy, and you should email gccisit@rit.edu.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=File:Static_IP_settings.png&amp;diff=82</id>
		<title>File:Static IP settings.png</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=File:Static_IP_settings.png&amp;diff=82"/>
		<updated>2025-02-05T13:53:06Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Static IP settings&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=81</id>
		<title>RLES Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=81"/>
		<updated>2025-02-03T17:16:44Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: /* Access Outside of RLES [only for Old RLES] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GCCIS's Remote Laboratory Emulation System (RLES; pronounced &amp;quot;are-less&amp;quot;) is a virtual private network that's not accessible to the outside world, with an environment set up just for our class. &lt;br /&gt;
&lt;br /&gt;
==== Getting Started ====&lt;br /&gt;
'''Access RLES at https://rlescloud.main.ad.rit.edu/vcac/#csp.cs.ui.catalog.list'''&lt;br /&gt;
&lt;br /&gt;
(Deprecated: Access New RLES at https://rles-cloud.rit.edu/automation/#/service/catalog/)&lt;br /&gt;
&lt;br /&gt;
Sign in with your RIT computer account credentials.&lt;br /&gt;
&lt;br /&gt;
You can use VMRC to access your VMs. Download the VMRC installer for your OS:&lt;br /&gt;
&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_windows.zip Windows]&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_macos.dmg MacOS]&lt;br /&gt;
&lt;br /&gt;
===== Provisioning a VM =====&lt;br /&gt;
When you first log into RLES, you'll land on the Catalog, where you'll see all of the virtual machine images that you have access to. Click on 'Request' to provision a VM instance.&lt;br /&gt;
&lt;br /&gt;
On the next screen, note the option selected in the &amp;quot;Business group&amp;quot; dropdown. If you're going to be using this VM in a group project, make sure your group's name is selected in this dropdown.&lt;br /&gt;
&lt;br /&gt;
Update the &amp;quot;Description&amp;quot; field with a meaningful value. For example, if you're going to use this VM to test out building a LAMP stack for ISTE-444, you could enter a description of &amp;quot;LAMP stack for ISTE-444&amp;quot;. Having useful descriptions will really help you out when you've got multiple VMs provisioned.&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Submit&amp;quot; button to send the request to have your new VM provisioned. It should take a few minutes before the new VM is ready.&lt;br /&gt;
&lt;br /&gt;
Note: RLES VMs only persist for two months (so we don't end up with a ton of unused VMs hanging around). If you need yours longer than two months, you'll have to extend the VM's lease.&lt;br /&gt;
&lt;br /&gt;
===== Accessing a VM =====&lt;br /&gt;
RLES VMs are, by default, only accessible within RLES. To access a VM that you've provisioned, go to the &amp;quot;Deployments&amp;quot; tab and find the entry for the VM that you're looking for.&lt;br /&gt;
[[File:RLES test deployment.png|right|450x450px|RLES test deployment]]&lt;br /&gt;
RLES VMs typically automatically suspend after 6 hours in order to conserve RLES resources, so if the status of your VM is &amp;quot;Off&amp;quot;, click the &amp;quot;Actions&amp;quot; dropdown (on the top right) and choose &amp;quot;Power on deployment&amp;quot; (then click &amp;quot;Submit&amp;quot; on the next screen). It should take a minute or so for the VM to turn back on.&lt;br /&gt;
&lt;br /&gt;
Once a VM is powered on, click the VM's name (not the network), and then click the &amp;quot;Actions&amp;quot; (gear) dropdown to see available options (see image at right).&lt;br /&gt;
&lt;br /&gt;
To access a VM, you can use a browser, or you can use VMware's Remote Console (VMRC). Using a browser to access the VM is quick and easy, but it won't allow for copy/pasting from your host computer. To use the browser, click &amp;quot;Connect to Remote Console&amp;quot; in the context menu.&lt;br /&gt;
&lt;br /&gt;
To use VMware's Remote Console, click &amp;quot;Connect using VMRC&amp;quot; (see above for links to the VRMC download). A new browser tab will open with a link for connecting to the VM. Click the &amp;quot;Connect to console using VMRC&amp;quot; to open your VM using the VMRC application.&lt;br /&gt;
&lt;br /&gt;
==== Access Outside of RLES ====&lt;br /&gt;
You can request that your VM be accessible outside of RLES. To do so, send an email to gccisit@rit.edu that includes:&lt;br /&gt;
&lt;br /&gt;
# The '''name of your VM''' (e.g. &amp;quot;ubuntu-1234&amp;quot;)&lt;br /&gt;
# What '''port(s)''' your web server is listening on (e.g. 80, 443, 3000, etc.)&lt;br /&gt;
# What '''hostname''' you want in DNS (e.g. &amp;quot;awesome-site&amp;quot;, which will become &amp;quot;awesome-site.webdev.gccis.rit.edu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Once the setup is complete, you'll be able to access your site from any browser outside of RLES at:&amp;lt;blockquote&amp;gt;https://[hostname].webdev.gccis.rit.edu&amp;lt;/blockquote&amp;gt;Note that a TLS certificate is automatically added by the RLES proxy, so you'll access your site over HTTPS even though you haven't configured your web server for it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can SSH into your VM too (as long as SSH is enabled on the VM), but you must be on the RIT network to do so (note that there'll be a custom port for each VM):&amp;lt;blockquote&amp;gt;ssh [username]@[hostname].webdev.gccis.rit.edu -p[port]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Group Work====&lt;br /&gt;
You should all be able to see your groups VMs; if, on the Deployments page, you don't see a VM that someone else in your group created, click the filter icon next to &amp;quot;Deployments&amp;quot; and clear the checkmark next to your name.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
'''VM loses connectivity'''&amp;lt;br&amp;gt;If your VM loses connectivity, try toggling the wired connection: Click the power icon in the top right corner, click &amp;quot;Wired Connected&amp;quot;, and click &amp;quot;Turn Off&amp;quot;. Then again click the power icon, click &amp;quot;Wired Off&amp;quot;, and then &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Freezing'''&amp;lt;br&amp;gt;If your VM appears to freeze, try exiting VMRC or your host computer's browser tab, and then reconnect to the VM.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=80</id>
		<title>RLES Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=80"/>
		<updated>2025-02-03T17:16:29Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: /* Accessing a VM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GCCIS's Remote Laboratory Emulation System (RLES; pronounced &amp;quot;are-less&amp;quot;) is a virtual private network that's not accessible to the outside world, with an environment set up just for our class. &lt;br /&gt;
&lt;br /&gt;
==== Getting Started ====&lt;br /&gt;
'''Access RLES at https://rlescloud.main.ad.rit.edu/vcac/#csp.cs.ui.catalog.list'''&lt;br /&gt;
&lt;br /&gt;
(Deprecated: Access New RLES at https://rles-cloud.rit.edu/automation/#/service/catalog/)&lt;br /&gt;
&lt;br /&gt;
Sign in with your RIT computer account credentials.&lt;br /&gt;
&lt;br /&gt;
You can use VMRC to access your VMs. Download the VMRC installer for your OS:&lt;br /&gt;
&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_windows.zip Windows]&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_macos.dmg MacOS]&lt;br /&gt;
&lt;br /&gt;
===== Provisioning a VM =====&lt;br /&gt;
When you first log into RLES, you'll land on the Catalog, where you'll see all of the virtual machine images that you have access to. Click on 'Request' to provision a VM instance.&lt;br /&gt;
&lt;br /&gt;
On the next screen, note the option selected in the &amp;quot;Business group&amp;quot; dropdown. If you're going to be using this VM in a group project, make sure your group's name is selected in this dropdown.&lt;br /&gt;
&lt;br /&gt;
Update the &amp;quot;Description&amp;quot; field with a meaningful value. For example, if you're going to use this VM to test out building a LAMP stack for ISTE-444, you could enter a description of &amp;quot;LAMP stack for ISTE-444&amp;quot;. Having useful descriptions will really help you out when you've got multiple VMs provisioned.&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Submit&amp;quot; button to send the request to have your new VM provisioned. It should take a few minutes before the new VM is ready.&lt;br /&gt;
&lt;br /&gt;
Note: RLES VMs only persist for two months (so we don't end up with a ton of unused VMs hanging around). If you need yours longer than two months, you'll have to extend the VM's lease.&lt;br /&gt;
&lt;br /&gt;
===== Accessing a VM =====&lt;br /&gt;
RLES VMs are, by default, only accessible within RLES. To access a VM that you've provisioned, go to the &amp;quot;Deployments&amp;quot; tab and find the entry for the VM that you're looking for.&lt;br /&gt;
[[File:RLES test deployment.png|right|450x450px|RLES test deployment]]&lt;br /&gt;
RLES VMs typically automatically suspend after 6 hours in order to conserve RLES resources, so if the status of your VM is &amp;quot;Off&amp;quot;, click the &amp;quot;Actions&amp;quot; dropdown (on the top right) and choose &amp;quot;Power on deployment&amp;quot; (then click &amp;quot;Submit&amp;quot; on the next screen). It should take a minute or so for the VM to turn back on.&lt;br /&gt;
&lt;br /&gt;
Once a VM is powered on, click the VM's name (not the network), and then click the &amp;quot;Actions&amp;quot; (gear) dropdown to see available options (see image at right).&lt;br /&gt;
&lt;br /&gt;
To access a VM, you can use a browser, or you can use VMware's Remote Console (VMRC). Using a browser to access the VM is quick and easy, but it won't allow for copy/pasting from your host computer. To use the browser, click &amp;quot;Connect to Remote Console&amp;quot; in the context menu.&lt;br /&gt;
&lt;br /&gt;
To use VMware's Remote Console, click &amp;quot;Connect using VMRC&amp;quot; (see above for links to the VRMC download). A new browser tab will open with a link for connecting to the VM. Click the &amp;quot;Connect to console using VMRC&amp;quot; to open your VM using the VMRC application.&lt;br /&gt;
&lt;br /&gt;
==== Access Outside of RLES [only for Old RLES] ====&lt;br /&gt;
You can request that your VM be accessible outside of RLES. To do so, send an email to gccisit@rit.edu that includes:&lt;br /&gt;
&lt;br /&gt;
# The '''name of your VM''' (e.g. &amp;quot;ubuntu-1234&amp;quot;)&lt;br /&gt;
# What '''port(s)''' your web server is listening on (e.g. 80, 443, 3000, etc.)&lt;br /&gt;
# What '''hostname''' you want in DNS (e.g. &amp;quot;awesome-site&amp;quot;, which will become &amp;quot;awesome-site.webdev.gccis.rit.edu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Once the setup is complete, you'll be able to access your site from any browser outside of RLES at:&amp;lt;blockquote&amp;gt;https://[hostname].webdev.gccis.rit.edu&amp;lt;/blockquote&amp;gt;Note that a TLS certificate is automatically added by the RLES proxy, so you'll access your site over HTTPS even though you haven't configured your web server for it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can SSH into your VM too (as long as SSH is enabled on the VM), but you must be on the RIT network to do so (note that there'll be a custom port for each VM):&amp;lt;blockquote&amp;gt;ssh [username]@[hostname].webdev.gccis.rit.edu -p[port]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Group Work====&lt;br /&gt;
You should all be able to see your groups VMs; if, on the Deployments page, you don't see a VM that someone else in your group created, click the filter icon next to &amp;quot;Deployments&amp;quot; and clear the checkmark next to your name.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
'''VM loses connectivity'''&amp;lt;br&amp;gt;If your VM loses connectivity, try toggling the wired connection: Click the power icon in the top right corner, click &amp;quot;Wired Connected&amp;quot;, and click &amp;quot;Turn Off&amp;quot;. Then again click the power icon, click &amp;quot;Wired Off&amp;quot;, and then &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Freezing'''&amp;lt;br&amp;gt;If your VM appears to freeze, try exiting VMRC or your host computer's browser tab, and then reconnect to the VM.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=79</id>
		<title>RLES Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=79"/>
		<updated>2025-02-03T17:16:15Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: /* Accessing a VM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GCCIS's Remote Laboratory Emulation System (RLES; pronounced &amp;quot;are-less&amp;quot;) is a virtual private network that's not accessible to the outside world, with an environment set up just for our class. &lt;br /&gt;
&lt;br /&gt;
==== Getting Started ====&lt;br /&gt;
'''Access RLES at https://rlescloud.main.ad.rit.edu/vcac/#csp.cs.ui.catalog.list'''&lt;br /&gt;
&lt;br /&gt;
(Deprecated: Access New RLES at https://rles-cloud.rit.edu/automation/#/service/catalog/)&lt;br /&gt;
&lt;br /&gt;
Sign in with your RIT computer account credentials.&lt;br /&gt;
&lt;br /&gt;
You can use VMRC to access your VMs. Download the VMRC installer for your OS:&lt;br /&gt;
&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_windows.zip Windows]&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_macos.dmg MacOS]&lt;br /&gt;
&lt;br /&gt;
===== Provisioning a VM =====&lt;br /&gt;
When you first log into RLES, you'll land on the Catalog, where you'll see all of the virtual machine images that you have access to. Click on 'Request' to provision a VM instance.&lt;br /&gt;
&lt;br /&gt;
On the next screen, note the option selected in the &amp;quot;Business group&amp;quot; dropdown. If you're going to be using this VM in a group project, make sure your group's name is selected in this dropdown.&lt;br /&gt;
&lt;br /&gt;
Update the &amp;quot;Description&amp;quot; field with a meaningful value. For example, if you're going to use this VM to test out building a LAMP stack for ISTE-444, you could enter a description of &amp;quot;LAMP stack for ISTE-444&amp;quot;. Having useful descriptions will really help you out when you've got multiple VMs provisioned.&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Submit&amp;quot; button to send the request to have your new VM provisioned. It should take a few minutes before the new VM is ready.&lt;br /&gt;
&lt;br /&gt;
Note: RLES VMs only persist for two months (so we don't end up with a ton of unused VMs hanging around). If you need yours longer than two months, you'll have to extend the VM's lease.&lt;br /&gt;
&lt;br /&gt;
===== Accessing a VM =====&lt;br /&gt;
RLES VMs are, by default, only accessible within RLES. To access a VM that you've provisioned, go to the &amp;quot;Deployments&amp;quot; tab and find the entry for the VM that you're looking for.&lt;br /&gt;
[[File:RLES test deployment.png|right|450x450px|RLES test deployment]]&lt;br /&gt;
RLES VMs typically automatically suspend after 6 hours in order to conserve RLES resources, so if the status of your VM is &amp;quot;Off&amp;quot;, click the &amp;quot;Actions&amp;quot; dropdown (on the top right) and choose &amp;quot;Power on deployment&amp;quot; (then click &amp;quot;Submit&amp;quot; on the next screen). It should take a minute or so for the VM to turn back on.&lt;br /&gt;
&lt;br /&gt;
Once a VM is powered on, click the VM's name (not the network), and then click the &amp;quot;Actions&amp;quot; (gear) dropdown to see available options (see image at right.&lt;br /&gt;
&lt;br /&gt;
To access a VM, you can use a browser, or you can use VMware's Remote Console (VMRC). Using a browser to access the VM is quick and easy, but it won't allow for copy/pasting from your host computer. To use the browser, click &amp;quot;Connect to Remote Console&amp;quot; in the context menu.&lt;br /&gt;
&lt;br /&gt;
To use VMware's Remote Console, click &amp;quot;Connect using VMRC&amp;quot; (see above for links to the VRMC download). A new browser tab will open with a link for connecting to the VM. Click the &amp;quot;Connect to console using VMRC&amp;quot; to open your VM using the VMRC application.&lt;br /&gt;
&lt;br /&gt;
==== Access Outside of RLES [only for Old RLES] ====&lt;br /&gt;
You can request that your VM be accessible outside of RLES. To do so, send an email to gccisit@rit.edu that includes:&lt;br /&gt;
&lt;br /&gt;
# The '''name of your VM''' (e.g. &amp;quot;ubuntu-1234&amp;quot;)&lt;br /&gt;
# What '''port(s)''' your web server is listening on (e.g. 80, 443, 3000, etc.)&lt;br /&gt;
# What '''hostname''' you want in DNS (e.g. &amp;quot;awesome-site&amp;quot;, which will become &amp;quot;awesome-site.webdev.gccis.rit.edu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Once the setup is complete, you'll be able to access your site from any browser outside of RLES at:&amp;lt;blockquote&amp;gt;https://[hostname].webdev.gccis.rit.edu&amp;lt;/blockquote&amp;gt;Note that a TLS certificate is automatically added by the RLES proxy, so you'll access your site over HTTPS even though you haven't configured your web server for it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can SSH into your VM too (as long as SSH is enabled on the VM), but you must be on the RIT network to do so (note that there'll be a custom port for each VM):&amp;lt;blockquote&amp;gt;ssh [username]@[hostname].webdev.gccis.rit.edu -p[port]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Group Work====&lt;br /&gt;
You should all be able to see your groups VMs; if, on the Deployments page, you don't see a VM that someone else in your group created, click the filter icon next to &amp;quot;Deployments&amp;quot; and clear the checkmark next to your name.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
'''VM loses connectivity'''&amp;lt;br&amp;gt;If your VM loses connectivity, try toggling the wired connection: Click the power icon in the top right corner, click &amp;quot;Wired Connected&amp;quot;, and click &amp;quot;Turn Off&amp;quot;. Then again click the power icon, click &amp;quot;Wired Off&amp;quot;, and then &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Freezing'''&amp;lt;br&amp;gt;If your VM appears to freeze, try exiting VMRC or your host computer's browser tab, and then reconnect to the VM.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=78</id>
		<title>RLES Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=78"/>
		<updated>2025-02-03T17:15:49Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: Add screenshot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GCCIS's Remote Laboratory Emulation System (RLES; pronounced &amp;quot;are-less&amp;quot;) is a virtual private network that's not accessible to the outside world, with an environment set up just for our class. &lt;br /&gt;
&lt;br /&gt;
==== Getting Started ====&lt;br /&gt;
'''Access RLES at https://rlescloud.main.ad.rit.edu/vcac/#csp.cs.ui.catalog.list'''&lt;br /&gt;
&lt;br /&gt;
(Deprecated: Access New RLES at https://rles-cloud.rit.edu/automation/#/service/catalog/)&lt;br /&gt;
&lt;br /&gt;
Sign in with your RIT computer account credentials.&lt;br /&gt;
&lt;br /&gt;
You can use VMRC to access your VMs. Download the VMRC installer for your OS:&lt;br /&gt;
&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_windows.zip Windows]&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_macos.dmg MacOS]&lt;br /&gt;
&lt;br /&gt;
===== Provisioning a VM =====&lt;br /&gt;
When you first log into RLES, you'll land on the Catalog, where you'll see all of the virtual machine images that you have access to. Click on 'Request' to provision a VM instance.&lt;br /&gt;
&lt;br /&gt;
On the next screen, note the option selected in the &amp;quot;Business group&amp;quot; dropdown. If you're going to be using this VM in a group project, make sure your group's name is selected in this dropdown.&lt;br /&gt;
&lt;br /&gt;
Update the &amp;quot;Description&amp;quot; field with a meaningful value. For example, if you're going to use this VM to test out building a LAMP stack for ISTE-444, you could enter a description of &amp;quot;LAMP stack for ISTE-444&amp;quot;. Having useful descriptions will really help you out when you've got multiple VMs provisioned.&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Submit&amp;quot; button to send the request to have your new VM provisioned. It should take a few minutes before the new VM is ready.&lt;br /&gt;
&lt;br /&gt;
Note: RLES VMs only persist for two months (so we don't end up with a ton of unused VMs hanging around). If you need yours longer than two months, you'll have to extend the VM's lease.&lt;br /&gt;
&lt;br /&gt;
===== Accessing a VM =====&lt;br /&gt;
RLES VMs are, by default, only accessible within RLES. To access a VM that you've provisioned, go to the &amp;quot;Deployments&amp;quot; tab and find the entry for the VM that you're looking for.&lt;br /&gt;
[[File:RLES test deployment.png|right|450x450px|RLES test deployment]]&lt;br /&gt;
RLES VMs typically automatically suspend after 6 hours in order to conserve RLES resources, so if the status of your VM is &amp;quot;Off&amp;quot;, click the &amp;quot;Actions&amp;quot; dropdown (on the top right) and choose &amp;quot;Power on deployment&amp;quot; (then click &amp;quot;Submit&amp;quot; on the next screen). It should take a minute or so for the VM to turn back on.&lt;br /&gt;
Once a VM is powered on, click the VM's name (not the network), and then click the &amp;quot;Actions&amp;quot; (gear) dropdown to see available options (see image at right.&lt;br /&gt;
To access a VM, you can use a browser, or you can use VMware's Remote Console (VMRC). Using a browser to access the VM is quick and easy, but it won't allow for copy/pasting from your host computer. To use the browser, click &amp;quot;Connect to Remote Console&amp;quot; in the context menu.&lt;br /&gt;
&lt;br /&gt;
To use VMware's Remote Console, click &amp;quot;Connect using VMRC&amp;quot; (see above for links to the VRMC download). A new browser tab will open with a link for connecting to the VM. Click the &amp;quot;Connect to console using VMRC&amp;quot; to open your VM using the VMRC application.&lt;br /&gt;
&lt;br /&gt;
==== Access Outside of RLES [only for Old RLES] ====&lt;br /&gt;
You can request that your VM be accessible outside of RLES. To do so, send an email to gccisit@rit.edu that includes:&lt;br /&gt;
&lt;br /&gt;
# The '''name of your VM''' (e.g. &amp;quot;ubuntu-1234&amp;quot;)&lt;br /&gt;
# What '''port(s)''' your web server is listening on (e.g. 80, 443, 3000, etc.)&lt;br /&gt;
# What '''hostname''' you want in DNS (e.g. &amp;quot;awesome-site&amp;quot;, which will become &amp;quot;awesome-site.webdev.gccis.rit.edu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Once the setup is complete, you'll be able to access your site from any browser outside of RLES at:&amp;lt;blockquote&amp;gt;https://[hostname].webdev.gccis.rit.edu&amp;lt;/blockquote&amp;gt;Note that a TLS certificate is automatically added by the RLES proxy, so you'll access your site over HTTPS even though you haven't configured your web server for it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can SSH into your VM too (as long as SSH is enabled on the VM), but you must be on the RIT network to do so (note that there'll be a custom port for each VM):&amp;lt;blockquote&amp;gt;ssh [username]@[hostname].webdev.gccis.rit.edu -p[port]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Group Work====&lt;br /&gt;
You should all be able to see your groups VMs; if, on the Deployments page, you don't see a VM that someone else in your group created, click the filter icon next to &amp;quot;Deployments&amp;quot; and clear the checkmark next to your name.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
'''VM loses connectivity'''&amp;lt;br&amp;gt;If your VM loses connectivity, try toggling the wired connection: Click the power icon in the top right corner, click &amp;quot;Wired Connected&amp;quot;, and click &amp;quot;Turn Off&amp;quot;. Then again click the power icon, click &amp;quot;Wired Off&amp;quot;, and then &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Freezing'''&amp;lt;br&amp;gt;If your VM appears to freeze, try exiting VMRC or your host computer's browser tab, and then reconnect to the VM.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=File:RLES_test_deployment.png&amp;diff=77</id>
		<title>File:RLES test deployment.png</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=File:RLES_test_deployment.png&amp;diff=77"/>
		<updated>2025-02-03T17:13:46Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RLES test deployment&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=76</id>
		<title>RLES Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=76"/>
		<updated>2025-02-03T16:56:10Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GCCIS's Remote Laboratory Emulation System (RLES; pronounced &amp;quot;are-less&amp;quot;) is a virtual private network that's not accessible to the outside world, with an environment set up just for our class. &lt;br /&gt;
&lt;br /&gt;
==== Getting Started ====&lt;br /&gt;
'''Access RLES at https://rlescloud.main.ad.rit.edu/vcac/#csp.cs.ui.catalog.list'''&lt;br /&gt;
&lt;br /&gt;
(Deprecated: Access New RLES at https://rles-cloud.rit.edu/automation/#/service/catalog/)&lt;br /&gt;
&lt;br /&gt;
Sign in with your RIT computer account credentials.&lt;br /&gt;
&lt;br /&gt;
You can use VMRC to access your VMs. Download the VMRC installer for your OS:&lt;br /&gt;
&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_windows.zip Windows]&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_macos.dmg MacOS]&lt;br /&gt;
&lt;br /&gt;
===== Provisioning a VM =====&lt;br /&gt;
When you first log into RLES, you'll land on the Catalog, where you'll see all of the virtual machine images that you have access to. Click on 'Request' to provision a VM instance.&lt;br /&gt;
&lt;br /&gt;
On the next screen, note the option selected in the &amp;quot;Business group&amp;quot; dropdown. If you're going to be using this VM in a group project, make sure your group's name is selected in this dropdown.&lt;br /&gt;
&lt;br /&gt;
Update the &amp;quot;Description&amp;quot; field with a meaningful value. For example, if you're going to use this VM to test out building a LAMP stack for ISTE-444, you could enter a description of &amp;quot;LAMP stack for ISTE-444&amp;quot;. Having useful descriptions will really help you out when you've got multiple VMs provisioned.&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Submit&amp;quot; button to send the request to have your new VM provisioned. It should take a few minutes before the new VM is ready.&lt;br /&gt;
&lt;br /&gt;
Note: RLES VMs only persist for two months (so we don't end up with a ton of unused VMs hanging around). If you need yours longer than two months, you'll have to extend the VM's lease.&lt;br /&gt;
&lt;br /&gt;
===== Accessing a VM =====&lt;br /&gt;
RLES VMs are, by default, only accessible within RLES. To access a VM that you've provisioned, go to the &amp;quot;Deployments&amp;quot; tab and find the entry for the VM that you're looking for.&lt;br /&gt;
&lt;br /&gt;
RLES VMs typically automatically suspend after 6 hours in order to conserve RLES resources, so if the status of your VM is &amp;quot;Off&amp;quot;, click the &amp;quot;Actions&amp;quot; dropdown (on the top right) and choose &amp;quot;Power on deployment&amp;quot; (then click &amp;quot;Submit&amp;quot; on the next screen). It should take a minute or so for the VM to turn back on.&lt;br /&gt;
[[File:RLES actions menu.png|alt=RLES VM context menu|thumb|502x502px|RLES VM context menu]]&lt;br /&gt;
Once a VM is powered on, click the VM's name, and then in the panel on the right, click the &amp;quot;Actions&amp;quot; (gear) dropdown to see available options.&lt;br /&gt;
&lt;br /&gt;
To access a VM, you can use a browser, or you can use VMware's Remote Console (VMRC). Using a browser to access the VM is quick and easy, but it won't allow for copy/pasting from your host computer. To use the browser, click &amp;quot;Connect to Remote Console&amp;quot; in the context menu.&lt;br /&gt;
&lt;br /&gt;
To use VMware's Remote Console, click &amp;quot;Connect using VMRC&amp;quot; (see above for links to the VRMC download). A new browser tab will open with a link for connecting to the VM. Click the &amp;quot;Connect to console using VMRC&amp;quot; to open your VM using the VMRC application.&lt;br /&gt;
&lt;br /&gt;
==== Access Outside of RLES [only for Old RLES] ====&lt;br /&gt;
You can request that your VM be accessible outside of RLES. To do so, send an email to gccisit@rit.edu that includes:&lt;br /&gt;
&lt;br /&gt;
# The '''name of your VM''' (e.g. &amp;quot;ubuntu-1234&amp;quot;)&lt;br /&gt;
# What '''port(s)''' your web server is listening on (e.g. 80, 443, 3000, etc.)&lt;br /&gt;
# What '''hostname''' you want in DNS (e.g. &amp;quot;awesome-site&amp;quot;, which will become &amp;quot;awesome-site.webdev.gccis.rit.edu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Once the setup is complete, you'll be able to access your site from any browser outside of RLES at:&amp;lt;blockquote&amp;gt;https://[hostname].webdev.gccis.rit.edu&amp;lt;/blockquote&amp;gt;Note that a TLS certificate is automatically added by the RLES proxy, so you'll access your site over HTTPS even though you haven't configured your web server for it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can SSH into your VM too (as long as SSH is enabled on the VM), but you must be on the RIT network to do so (note that there'll be a custom port for each VM):&amp;lt;blockquote&amp;gt;ssh [username]@[hostname].webdev.gccis.rit.edu -p[port]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Group Work====&lt;br /&gt;
You should all be able to see your groups VMs; if, on the Deployments page, you don't see a VM that someone else in your group created, click the filter icon next to &amp;quot;Deployments&amp;quot; and clear the checkmark next to your name.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
'''VM loses connectivity'''&amp;lt;br&amp;gt;If your VM loses connectivity, try toggling the wired connection: Click the power icon in the top right corner, click &amp;quot;Wired Connected&amp;quot;, and click &amp;quot;Turn Off&amp;quot;. Then again click the power icon, click &amp;quot;Wired Off&amp;quot;, and then &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Freezing'''&amp;lt;br&amp;gt;If your VM appears to freeze, try exiting VMRC or your host computer's browser tab, and then reconnect to the VM.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=MySQL_Configuration&amp;diff=75</id>
		<title>MySQL Configuration</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=MySQL_Configuration&amp;diff=75"/>
		<updated>2025-01-23T02:00:20Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: /* On Macs: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
See the MySQL Server SQL Mode specs at https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html&lt;br /&gt;
&lt;br /&gt;
== On Windows: ==&lt;br /&gt;
Edit &amp;lt;code&amp;gt;C:\ProgramData\MySQL\MySQL Server 8.0\my.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change:&lt;br /&gt;
 sql-mode=&amp;quot;STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION&amp;quot;&lt;br /&gt;
To:&lt;br /&gt;
 sql-mode=&amp;quot;ANSI,TRADITIONAL&amp;quot;&lt;br /&gt;
Restart the MySQL server (search for services.msc → search for MySQL 8 in the list of services → click restart link)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that ProgramData is a hidden folder and that my.ini is read-only for non-admins, so its perms have to be adjusted before editing it. To edit the permissions:&lt;br /&gt;
&lt;br /&gt;
* Right click on my.ini&lt;br /&gt;
* Go to Properties&lt;br /&gt;
* Go to Security tab&lt;br /&gt;
* Click Edit button&lt;br /&gt;
* Click Users&lt;br /&gt;
* Check &amp;quot;Full Control&amp;quot; in Allow column&lt;br /&gt;
* Click OK, OK&lt;br /&gt;
&lt;br /&gt;
== On Macs: ==&lt;br /&gt;
Edit: &amp;lt;code&amp;gt;/private/etc/my.cnf&amp;lt;/code&amp;gt; (if the file doesn't already exist, you can just create it)&lt;br /&gt;
&lt;br /&gt;
That's specified at System Preferences → MySQL → Configuration tab → Configuration File&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Include:&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 sql_mode  = &amp;quot;ANSI,TRADITIONAL&amp;quot;&lt;br /&gt;
Restart the MySQL server with System Preferences → MySQL → Configuration tab → Stop MySQL Server&lt;br /&gt;
&lt;br /&gt;
The MySQL server has to be restarted after editing my.cnf (or my.ini on Windows; use services.msc to restart it)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Temporary Changes ==&lt;br /&gt;
To just change the settings for the current session, this query can be used:&lt;br /&gt;
 SET SESSION sql_mode = &amp;quot;ANSI,TRADITIONAL&amp;quot;;&lt;br /&gt;
And can be checked with:&lt;br /&gt;
 SELECT @@SESSION.SQL_MODE;&lt;br /&gt;
The global settings can be checked with:&lt;br /&gt;
 SELECT @@GLOBAL.SQL_MODE;&lt;br /&gt;
&lt;br /&gt;
== Why? ==&lt;br /&gt;
Given this example in the GROUP BY spec:&lt;br /&gt;
 CREATE TABLE mytable (&lt;br /&gt;
    id INT UNSIGNED NOT NULL PRIMARY KEY,&lt;br /&gt;
    a VARCHAR(10),&lt;br /&gt;
    b INT&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
 INSERT INTO mytable&lt;br /&gt;
 VALUES (1, 'abc', 1000),&lt;br /&gt;
        (2, 'abc', 2000),&lt;br /&gt;
        (3, 'def', 4000);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This should return an error:&lt;br /&gt;
 SELECT a, SUM(b) FROM mytable;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also,&lt;br /&gt;
 SELECT &amp;quot;foo&amp;quot;;&lt;br /&gt;
Will return&lt;br /&gt;
 Unknown column 'foo' in 'field list'&lt;br /&gt;
since strings should be enclosed in single quotes, not double quotes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And the SQL concatenation operator will work. I.e.,&lt;br /&gt;
 SELECT 'foo' || 'bar';&lt;br /&gt;
Will return&lt;br /&gt;
 foobar&lt;br /&gt;
instead of 0&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
Both &amp;lt;code&amp;gt;ANSI&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TRADITIONAL&amp;lt;/code&amp;gt; are combination modes. Therefore, &lt;br /&gt;
 sql_mode=&amp;quot;ANSI,TRADITIONAL&amp;quot;&lt;br /&gt;
is actually the equivalent of:&lt;br /&gt;
 sql_mode=&amp;quot;REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MySQL Workbench has an error relating to &amp;lt;code&amp;gt;ANSI_QUOTES&amp;lt;/code&amp;gt;. If &amp;lt;code&amp;gt;sql_mode&amp;lt;/code&amp;gt; contains &amp;lt;code&amp;gt;ANSI_QUOTES&amp;lt;/code&amp;gt;, the Reverse Engineering functionality will throw this error for all tables in the selected database: &amp;lt;code&amp;gt;is not valid at this position for this server version, expecting an identifier&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You can get around this error by omitting &amp;lt;code&amp;gt;ANSI_QUOTES&amp;lt;/code&amp;gt;:&lt;br /&gt;
 SET GLOBAL sql_mode = 'REAL_AS_FLOAT,PIPES_AS_CONCAT,IGNORE_SPACE,ONLY_FULL_GROUP_BY,TRADITIONAL';&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=MySQL_Configuration&amp;diff=74</id>
		<title>MySQL Configuration</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=MySQL_Configuration&amp;diff=74"/>
		<updated>2025-01-23T01:58:29Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
See the MySQL Server SQL Mode specs at https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html&lt;br /&gt;
&lt;br /&gt;
== On Windows: ==&lt;br /&gt;
Edit &amp;lt;code&amp;gt;C:\ProgramData\MySQL\MySQL Server 8.0\my.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change:&lt;br /&gt;
 sql-mode=&amp;quot;STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION&amp;quot;&lt;br /&gt;
To:&lt;br /&gt;
 sql-mode=&amp;quot;ANSI,TRADITIONAL&amp;quot;&lt;br /&gt;
Restart the MySQL server (search for services.msc → search for MySQL 8 in the list of services → click restart link)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that ProgramData is a hidden folder and that my.ini is read-only for non-admins, so its perms have to be adjusted before editing it. To edit the permissions:&lt;br /&gt;
&lt;br /&gt;
* Right click on my.ini&lt;br /&gt;
* Go to Properties&lt;br /&gt;
* Go to Security tab&lt;br /&gt;
* Click Edit button&lt;br /&gt;
* Click Users&lt;br /&gt;
* Check &amp;quot;Full Control&amp;quot; in Allow column&lt;br /&gt;
* Click OK, OK&lt;br /&gt;
&lt;br /&gt;
== On Macs: ==&lt;br /&gt;
Edit: &amp;lt;code&amp;gt;/private/etc/my.cnf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That's specified at System Preferences → MySQL → Configuration tab → Configuration File&lt;br /&gt;
&lt;br /&gt;
Include:&lt;br /&gt;
 [mysqld]&lt;br /&gt;
 sql_mode  = &amp;quot;ANSI,TRADITIONAL&amp;quot;&lt;br /&gt;
Restart the MySQL server with System Preferences → MySQL → Configuration tab → Stop MySQL Server&lt;br /&gt;
&lt;br /&gt;
The MySQL server has to be restarted after editing my.cnf (or my.ini on Windows; use services.msc to restart it)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Temporary Changes ==&lt;br /&gt;
To just change the settings for the current session, this query can be used:&lt;br /&gt;
 SET SESSION sql_mode = &amp;quot;ANSI,TRADITIONAL&amp;quot;;&lt;br /&gt;
And can be checked with:&lt;br /&gt;
 SELECT @@SESSION.SQL_MODE;&lt;br /&gt;
The global settings can be checked with:&lt;br /&gt;
 SELECT @@GLOBAL.SQL_MODE;&lt;br /&gt;
&lt;br /&gt;
== Why? ==&lt;br /&gt;
Given this example in the GROUP BY spec:&lt;br /&gt;
 CREATE TABLE mytable (&lt;br /&gt;
    id INT UNSIGNED NOT NULL PRIMARY KEY,&lt;br /&gt;
    a VARCHAR(10),&lt;br /&gt;
    b INT&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
 INSERT INTO mytable&lt;br /&gt;
 VALUES (1, 'abc', 1000),&lt;br /&gt;
        (2, 'abc', 2000),&lt;br /&gt;
        (3, 'def', 4000);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This should return an error:&lt;br /&gt;
 SELECT a, SUM(b) FROM mytable;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also,&lt;br /&gt;
 SELECT &amp;quot;foo&amp;quot;;&lt;br /&gt;
Will return&lt;br /&gt;
 Unknown column 'foo' in 'field list'&lt;br /&gt;
since strings should be enclosed in single quotes, not double quotes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And the SQL concatenation operator will work. I.e.,&lt;br /&gt;
 SELECT 'foo' || 'bar';&lt;br /&gt;
Will return&lt;br /&gt;
 foobar&lt;br /&gt;
instead of 0&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
Both &amp;lt;code&amp;gt;ANSI&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TRADITIONAL&amp;lt;/code&amp;gt; are combination modes. Therefore, &lt;br /&gt;
 sql_mode=&amp;quot;ANSI,TRADITIONAL&amp;quot;&lt;br /&gt;
is actually the equivalent of:&lt;br /&gt;
 sql_mode=&amp;quot;REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MySQL Workbench has an error relating to &amp;lt;code&amp;gt;ANSI_QUOTES&amp;lt;/code&amp;gt;. If &amp;lt;code&amp;gt;sql_mode&amp;lt;/code&amp;gt; contains &amp;lt;code&amp;gt;ANSI_QUOTES&amp;lt;/code&amp;gt;, the Reverse Engineering functionality will throw this error for all tables in the selected database: &amp;lt;code&amp;gt;is not valid at this position for this server version, expecting an identifier&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You can get around this error by omitting &amp;lt;code&amp;gt;ANSI_QUOTES&amp;lt;/code&amp;gt;:&lt;br /&gt;
 SET GLOBAL sql_mode = 'REAL_AS_FLOAT,PIPES_AS_CONCAT,IGNORE_SPACE,ONLY_FULL_GROUP_BY,TRADITIONAL';&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=SQL_Coding_Standards&amp;diff=73</id>
		<title>SQL Coding Standards</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=SQL_Coding_Standards&amp;diff=73"/>
		<updated>2025-01-14T19:06:03Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: /* Relational Notation Standards: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Any place that you work in the technology industry typically has standards for how code is written, which you are expected to follow.  This course is no different.&lt;br /&gt;
&lt;br /&gt;
We will be requiring (and enforcing) the following standards on homework assignments (HWs), practice exercises (PEs), zyLabs, and examinations.  In all cases, these are not part of the total points, but rather result in additional deductions (1 point for any occurrence per each item, with up to 7 points deducted if none are followed).&lt;br /&gt;
&lt;br /&gt;
=== Relational Notation Standards: ===&lt;br /&gt;
&lt;br /&gt;
* Relation (entity) names must be in UPPERCASE; multi-word relations are separated by an underscore&amp;lt;br&amp;gt;Examples:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;STUDENT(…)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;STUDENT_ADVISOR(…)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Relation names are singular  &amp;lt;br&amp;gt;Example:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;STUDENT(…)&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;STUDENTS(…)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Primary keys are underlined  &amp;lt;br&amp;gt;Example:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;STUDENT(univID, …)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Foreign key are italicized when typed, dash-underlined when written   &amp;lt;br&amp;gt;Example:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;STUDENT(univID, ''collegeID'', …)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* Attribute names that would otherwise include a space or an underscore as a separator are to be in camelCase   ID exception:  &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; is commonly used as an abbreviation for ‘identifier’.  Attributes that include ‘ID’ can be stated as &amp;lt;code&amp;gt;attrID&amp;lt;/code&amp;gt;, instead of the strict camelCase of &amp;lt;code&amp;gt;attrId&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;Example:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;STUDENT(univID, ''collegeID'', firstName, lastName, expectedGradYear, …)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Implementation (Coding) Standards: ===&lt;br /&gt;
&lt;br /&gt;
* One clause per line (&amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FROM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WHERE&amp;lt;/code&amp;gt;, etc.)&amp;lt;br&amp;gt;Example:&lt;br /&gt;
 SELECT univID, firstName, lastName    &lt;br /&gt;
 FROM student&lt;br /&gt;
 WHERE city = 'Rochester' AND state = 'NY';&lt;br /&gt;
* Keywords and data types must be in UPPERCASE  &amp;lt;br&amp;gt;Example: &lt;br /&gt;
 CREATE TABLE test (&lt;br /&gt;
     testID CHAR(9),&lt;br /&gt;
     testCount INT,&lt;br /&gt;
     testDesc VARCHAR(255),&lt;br /&gt;
     CONSTRAINT test_pk PRIMARY KEY(testID)&lt;br /&gt;
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;&lt;br /&gt;
* Table names and attribute names that would otherwise include as space or an underscore as a separator must be in camelCase ID exception:  &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; is commonly used as an abbreviation for ‘identifier’.  Attributes that include ‘ID’ can be stated as &amp;lt;code&amp;gt;attrID&amp;lt;/code&amp;gt;, instead of the strict camelCase of &amp;lt;code&amp;gt;attrId&amp;lt;/code&amp;gt;  &amp;lt;br&amp;gt;Example:&lt;br /&gt;
 SELECT univID, collegeID, firstName, lastName&lt;br /&gt;
* Single quotes for a string literal Double quotes do not work for string literals in all DBMSs  &amp;lt;br&amp;gt;Example:&lt;br /&gt;
 WHERE city = 'Rochester' AND state = 'NY'&lt;br /&gt;
* Double quotes for any alias that includes a space  &amp;lt;br&amp;gt;Example:     &lt;br /&gt;
 SELECT univID, firstName &amp;quot;First Name&amp;quot;, lastName &amp;quot;Last Name&amp;quot;&lt;br /&gt;
* Script submission must include a syntactically correct comment with student’s name and a syntactically correct comment identifying each task number  Comment options include:&lt;br /&gt;
 -- single line comment (a space MUST be included after --)&lt;br /&gt;
 # single line comment&lt;br /&gt;
 /* block comment (can span multiple lines) */&lt;br /&gt;
* Script submission must be an executable script file (i.e. only comments and SQL statements). Common violations:&lt;br /&gt;
** Submitting a log file&lt;br /&gt;
** Including the MySQL prompt along with the statement&lt;br /&gt;
** Including an uncommented result set&lt;br /&gt;
&lt;br /&gt;
=== Suggestions: ===&lt;br /&gt;
&lt;br /&gt;
* Include whitespace around operators  &amp;lt;br&amp;gt;Example:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;city = 'Rochester'&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;city='Rochester'&amp;lt;/code&amp;gt;&lt;br /&gt;
* Prefix column names with a table identifier&amp;lt;br&amp;gt;Example, in table student:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;stuUnivID&amp;lt;/code&amp;gt;     &amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;stuFirstName&amp;lt;/code&amp;gt;      &amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;stuLastName&amp;lt;/code&amp;gt;     &amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;stuMajID&amp;lt;/code&amp;gt;&lt;br /&gt;
* Indent each hierarchical level  &amp;lt;br&amp;gt;Example:&lt;br /&gt;
 SELECT stuUnivID, stuFirstName, stuLastName, majName&lt;br /&gt;
 FROM student&lt;br /&gt;
 JOIN major&lt;br /&gt;
     ON stuMajorID = majID&lt;br /&gt;
         AND majActive = TRUE&lt;br /&gt;
 WHERE stuCity = 'Rochester'&lt;br /&gt;
     AND stuState = 'NY'&lt;br /&gt;
     AND stuYearLvl &amp;gt;= 3;&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=MySQL_on_Lab_Computers&amp;diff=72</id>
		<title>MySQL on Lab Computers</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=MySQL_on_Lab_Computers&amp;diff=72"/>
		<updated>2025-01-14T15:47:30Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Starting MySQL ==&lt;br /&gt;
&lt;br /&gt;
# Log into computer with your RIT computer account&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
# Type verbose into the search bar and run &amp;quot;MySQL Verbose&amp;quot;: &amp;lt;br&amp;gt;[[File:MySQL Verbose screenshot.png|alt=MySQL Verbose screenshot]] &amp;lt;br&amp;gt;&amp;quot;MySQL Verbose&amp;quot; will launch both the MySQL server as well as the command line client.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
# Enter the MySQL root user password:  '''student'''&lt;br /&gt;
&lt;br /&gt;
== Starting the MySQL Command Line Client ==&lt;br /&gt;
Once the MySQL service is running, you can run the MySQL Command Line Client or MySQL Workbench to connect to it.&lt;br /&gt;
&lt;br /&gt;
# Search for mysql and run &amp;quot;MySQL 8.0 Command Line Client&amp;quot; &amp;lt;br&amp;gt;[[File:MySQL Command Line Client screenshot.png|alt=MySQL Command Line Client screenshot]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
# It's a good idea to right click on the &amp;quot;MySQL 8.0 Command Line Client&amp;quot; icon and choose &amp;quot;Pin to Start&amp;quot; so that it'll always be quickly accessible from the start menu. You could also drag it from the Start menu to the desktop as a shortcut.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=SQL_Coding_Standards&amp;diff=71</id>
		<title>SQL Coding Standards</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=SQL_Coding_Standards&amp;diff=71"/>
		<updated>2025-01-14T15:45:56Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Any place that you work in the technology industry typically has standards for how code is written, which you are expected to follow.  This course is no different.&lt;br /&gt;
&lt;br /&gt;
We will be requiring (and enforcing) the following standards on homework assignments (HWs), practice exercises (PEs), zyLabs, and examinations.  In all cases, these are not part of the total points, but rather result in additional deductions (1 point for any occurrence per each item, with up to 7 points deducted if none are followed).&lt;br /&gt;
&lt;br /&gt;
=== Relational Notation Standards: ===&lt;br /&gt;
&lt;br /&gt;
* Relation (entity) names must be in UPPERCASE; multi-word relations are separated by an underscore&amp;lt;br&amp;gt;Examples:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;STUDENT(…)&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;STUDENT_ADVISOR(…)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Relation names are singular  &amp;lt;br&amp;gt;Example:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;STUDENT(…)&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;STUDENTS(…)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Primary keys are underlined  &amp;lt;br&amp;gt;Example:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;STUDENT(univID, …)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Foreign key are italicized when typed, dash-underlined when written   &amp;lt;br&amp;gt;Example:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;STUDENT(univID, ''collegeID'', …)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Attribute names that would otherwise include a space or an underscore as a separator are to be in camelCase   ID exception:  &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; is commonly used as an abbreviation for ‘identifier’.  Attributes that include ‘ID’ can be stated as &amp;lt;code&amp;gt;attrID&amp;lt;/code&amp;gt;, instead of the strict camelCase of &amp;lt;code&amp;gt;attrId&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;Example:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;STUDENT(univID, ''collegeID'', firstName, lastName, expectedGradYear, …)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Implementation (Coding) Standards: ===&lt;br /&gt;
&lt;br /&gt;
* One clause per line (&amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FROM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WHERE&amp;lt;/code&amp;gt;, etc.)&amp;lt;br&amp;gt;Example:&lt;br /&gt;
 SELECT univID, firstName, lastName    &lt;br /&gt;
 FROM student&lt;br /&gt;
 WHERE city = 'Rochester' AND state = 'NY';&lt;br /&gt;
* Keywords and data types must be in UPPERCASE  &amp;lt;br&amp;gt;Example: &lt;br /&gt;
 CREATE TABLE test (&lt;br /&gt;
     testID CHAR(9),&lt;br /&gt;
     testCount INT,&lt;br /&gt;
     testDesc VARCHAR(255),&lt;br /&gt;
     CONSTRAINT test_pk PRIMARY KEY(testID)&lt;br /&gt;
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;&lt;br /&gt;
* Table names and attribute names that would otherwise include as space or an underscore as a separator must be in camelCase ID exception:  &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; is commonly used as an abbreviation for ‘identifier’.  Attributes that include ‘ID’ can be stated as &amp;lt;code&amp;gt;attrID&amp;lt;/code&amp;gt;, instead of the strict camelCase of &amp;lt;code&amp;gt;attrId&amp;lt;/code&amp;gt;  &amp;lt;br&amp;gt;Example:&lt;br /&gt;
 SELECT univID, collegeID, firstName, lastName&lt;br /&gt;
* Single quotes for a string literal Double quotes do not work for string literals in all DBMSs  &amp;lt;br&amp;gt;Example:&lt;br /&gt;
 WHERE city = 'Rochester' AND state = 'NY'&lt;br /&gt;
* Double quotes for any alias that includes a space  &amp;lt;br&amp;gt;Example:     &lt;br /&gt;
 SELECT univID, firstName &amp;quot;First Name&amp;quot;, lastName &amp;quot;Last Name&amp;quot;&lt;br /&gt;
* Script submission must include a syntactically correct comment with student’s name and a syntactically correct comment identifying each task number  Comment options include:&lt;br /&gt;
 -- single line comment (a space MUST be included after --)&lt;br /&gt;
 # single line comment&lt;br /&gt;
 /* block comment (can span multiple lines) */&lt;br /&gt;
* Script submission must be an executable script file (i.e. only comments and SQL statements). Common violations:&lt;br /&gt;
** Submitting a log file&lt;br /&gt;
** Including the MySQL prompt along with the statement&lt;br /&gt;
** Including an uncommented result set&lt;br /&gt;
&lt;br /&gt;
=== Suggestions: ===&lt;br /&gt;
&lt;br /&gt;
* Include whitespace around operators  &amp;lt;br&amp;gt;Example:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;city = 'Rochester'&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;city='Rochester'&amp;lt;/code&amp;gt;&lt;br /&gt;
* Prefix column names with a table identifier&amp;lt;br&amp;gt;Example, in table student:&amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;stuUnivID&amp;lt;/code&amp;gt;     &amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;stuFirstName&amp;lt;/code&amp;gt;      &amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;stuLastName&amp;lt;/code&amp;gt;     &amp;lt;br&amp;gt;&amp;amp;emsp;&amp;amp;emsp;&amp;lt;code&amp;gt;stuMajID&amp;lt;/code&amp;gt;&lt;br /&gt;
* Indent each hierarchical level  &amp;lt;br&amp;gt;Example:&lt;br /&gt;
 SELECT stuUnivID, stuFirstName, stuLastName, majName&lt;br /&gt;
 FROM student&lt;br /&gt;
 JOIN major&lt;br /&gt;
     ON stuMajorID = majID&lt;br /&gt;
         AND majActive = TRUE&lt;br /&gt;
 WHERE stuCity = 'Rochester'&lt;br /&gt;
     AND stuState = 'NY'&lt;br /&gt;
     AND stuYearLvl &amp;gt;= 3;&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=SQL_Coding_Standards&amp;diff=70</id>
		<title>SQL Coding Standards</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=SQL_Coding_Standards&amp;diff=70"/>
		<updated>2025-01-14T15:37:48Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Any place that you work in the technology industry typically has standards for how code is written, which you are expected to follow.  This course is no different.&lt;br /&gt;
&lt;br /&gt;
We will be requiring (and enforcing) the following standards on homework assignments (HWs), practice exercises (PEs), zyLabs, and examinations.  In all cases, these are not part of the total points, but rather result in additional deductions (1 point for any occurrence per each item, with up to 7 points deducted if none are followed).&lt;br /&gt;
&lt;br /&gt;
=== Relational Notation Standards: ===&lt;br /&gt;
&lt;br /&gt;
* Relation (entity) names must be in UPPERCASE; multi-word relations are separated by an underscore&amp;lt;br&amp;gt;&lt;br /&gt;
Examples:    &amp;lt;code&amp;gt;STUDENT(…)&amp;lt;/code&amp;gt;      &amp;lt;code&amp;gt;STUDENT_ADVISOR(…)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Relation names are singular  Example:     &amp;lt;code&amp;gt;STUDENT(…)&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;STUDENTS(…)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Primary keys are underlined  Example:     &amp;lt;code&amp;gt;STUDENT(univID, …)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Foreign key are italicized when typed, dash-underlined when written   Example:     &amp;lt;code&amp;gt;STUDENT(univID, ''collegeID'', …)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Attribute names that would otherwise include a space or an underscore as a separator are to be in camelCase   ID exception:  &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; is commonly used as an abbreviation for ‘identifier’.  Attributes that include ‘ID’ can be stated as &amp;lt;code&amp;gt;attrID&amp;lt;/code&amp;gt;, instead of the strict camelCase of &amp;lt;code&amp;gt;attrId&amp;lt;/code&amp;gt;   Example:    &amp;lt;code&amp;gt;STUDENT(univID, ''collegeID'', firstName, lastName, expectedGradYear, …)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Implementation (Coding) Standards: ===&lt;br /&gt;
&lt;br /&gt;
* One clause per line (&amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FROM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WHERE&amp;lt;/code&amp;gt;, etc.)  Example:&lt;br /&gt;
 SELECT univID, firstName, lastName    &lt;br /&gt;
 FROM student&lt;br /&gt;
 WHERE city = 'Rochester' AND state = 'NY';&lt;br /&gt;
* Keywords and data types must be in UPPERCASE  Example: &lt;br /&gt;
 CREATE TABLE test (&lt;br /&gt;
     testID CHAR(9),&lt;br /&gt;
     testCount INT,&lt;br /&gt;
     testDesc VARCHAR(255),&lt;br /&gt;
     CONSTRAINT test_pk PRIMARY KEY(testID)&lt;br /&gt;
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;&lt;br /&gt;
* Table names and attribute names that would otherwise include as space or an underscore as a separator must be in camelCase ID exception:  &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; is commonly used as an abbreviation for ‘identifier’.  Attributes that include ‘ID’ can be stated as &amp;lt;code&amp;gt;attrID&amp;lt;/code&amp;gt;, instead of the strict camelCase of &amp;lt;code&amp;gt;attrId&amp;lt;/code&amp;gt;  Example:&lt;br /&gt;
 SELECT univID, collegeID, firstName, lastName&lt;br /&gt;
* Single quotes for a string literal Double quotes do not work for string literals in all DBMSs  Example:&lt;br /&gt;
 WHERE city = 'Rochester' AND state = 'NY'&lt;br /&gt;
* Double quotes for any alias that includes a space  Example:     &lt;br /&gt;
 SELECT univID, firstName &amp;quot;First Name&amp;quot;, lastName &amp;quot;Last Name&amp;quot;&lt;br /&gt;
* Script submission must include a syntactically correct comment with student’s name and a syntactically correct comment identifying each task number  Comment options include:&lt;br /&gt;
 -- single line comment (a space MUST be included after --)&lt;br /&gt;
&lt;br /&gt;
 # single line comment&lt;br /&gt;
&lt;br /&gt;
 /* block comment (can span multiple lines) */&lt;br /&gt;
* Script submission must be an executable script file (i.e. only comments and SQL statements). Common violations:&lt;br /&gt;
** Submitting a log file&lt;br /&gt;
** Including the MySQL prompt along with the statement&lt;br /&gt;
** Including an uncommented result set&lt;br /&gt;
&lt;br /&gt;
=== Suggestions: ===&lt;br /&gt;
&lt;br /&gt;
* Include whitespace around operators  Example:     &amp;lt;code&amp;gt;city = 'Rochester'&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;city='Rochester'&amp;lt;/code&amp;gt;&lt;br /&gt;
* Prefix column names with a table identifier  Example, in table student:    &amp;lt;code&amp;gt;stuUnivID&amp;lt;/code&amp;gt;     &amp;lt;code&amp;gt;stuFirstName&amp;lt;/code&amp;gt;      &amp;lt;code&amp;gt;stuLastName&amp;lt;/code&amp;gt;     &amp;lt;code&amp;gt;stuMajID&amp;lt;/code&amp;gt;&lt;br /&gt;
* Indent each hierarchical level  Example:&lt;br /&gt;
 SELECT stuUnivID, stuFirstName, stuLastName, majName&lt;br /&gt;
 FROM student&lt;br /&gt;
 JOIN major&lt;br /&gt;
     ON stuMajorID = majID&lt;br /&gt;
         AND majActive = TRUE&lt;br /&gt;
 WHERE stuCity = 'Rochester'&lt;br /&gt;
     AND stuState = 'NY'&lt;br /&gt;
     AND stuYearLvl &amp;gt;= 3;&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=SQL_Coding_Standards&amp;diff=69</id>
		<title>SQL Coding Standards</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=SQL_Coding_Standards&amp;diff=69"/>
		<updated>2025-01-14T15:37:28Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Any place that you work in the technology industry typically has standards for how code is written, which you are expected to follow.  This course is no different.&lt;br /&gt;
&lt;br /&gt;
We will be requiring (and enforcing) the following standards on homework assignments (HWs), practice exercises (PEs), zyLabs, and examinations.  In all cases, these are not part of the total points, but rather result in additional deductions (1 point for any occurrence per each item, with up to 7 points deducted if none are followed).&lt;br /&gt;
&lt;br /&gt;
=== Relational Notation Standards: ===&lt;br /&gt;
&lt;br /&gt;
* Relation (entity) names must be in UPPERCASE; multi-word relations are separated by an underscore&amp;lt;nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/nowiki&amp;gt; Examples:    &amp;lt;code&amp;gt;STUDENT(…)&amp;lt;/code&amp;gt;      &amp;lt;code&amp;gt;STUDENT_ADVISOR(…)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Relation names are singular  Example:     &amp;lt;code&amp;gt;STUDENT(…)&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;STUDENTS(…)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Primary keys are underlined  Example:     &amp;lt;code&amp;gt;STUDENT(univID, …)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Foreign key are italicized when typed, dash-underlined when written   Example:     &amp;lt;code&amp;gt;STUDENT(univID, ''collegeID'', …)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Attribute names that would otherwise include a space or an underscore as a separator are to be in camelCase   ID exception:  &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; is commonly used as an abbreviation for ‘identifier’.  Attributes that include ‘ID’ can be stated as &amp;lt;code&amp;gt;attrID&amp;lt;/code&amp;gt;, instead of the strict camelCase of &amp;lt;code&amp;gt;attrId&amp;lt;/code&amp;gt;   Example:    &amp;lt;code&amp;gt;STUDENT(univID, ''collegeID'', firstName, lastName, expectedGradYear, …)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Implementation (Coding) Standards: ===&lt;br /&gt;
&lt;br /&gt;
* One clause per line (&amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FROM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WHERE&amp;lt;/code&amp;gt;, etc.)  Example:&lt;br /&gt;
 SELECT univID, firstName, lastName    &lt;br /&gt;
 FROM student&lt;br /&gt;
 WHERE city = 'Rochester' AND state = 'NY';&lt;br /&gt;
* Keywords and data types must be in UPPERCASE  Example: &lt;br /&gt;
 CREATE TABLE test (&lt;br /&gt;
     testID CHAR(9),&lt;br /&gt;
     testCount INT,&lt;br /&gt;
     testDesc VARCHAR(255),&lt;br /&gt;
     CONSTRAINT test_pk PRIMARY KEY(testID)&lt;br /&gt;
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;&lt;br /&gt;
* Table names and attribute names that would otherwise include as space or an underscore as a separator must be in camelCase ID exception:  &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; is commonly used as an abbreviation for ‘identifier’.  Attributes that include ‘ID’ can be stated as &amp;lt;code&amp;gt;attrID&amp;lt;/code&amp;gt;, instead of the strict camelCase of &amp;lt;code&amp;gt;attrId&amp;lt;/code&amp;gt;  Example:&lt;br /&gt;
 SELECT univID, collegeID, firstName, lastName&lt;br /&gt;
* Single quotes for a string literal Double quotes do not work for string literals in all DBMSs  Example:&lt;br /&gt;
 WHERE city = 'Rochester' AND state = 'NY'&lt;br /&gt;
* Double quotes for any alias that includes a space  Example:     &lt;br /&gt;
 SELECT univID, firstName &amp;quot;First Name&amp;quot;, lastName &amp;quot;Last Name&amp;quot;&lt;br /&gt;
* Script submission must include a syntactically correct comment with student’s name and a syntactically correct comment identifying each task number  Comment options include:&lt;br /&gt;
 -- single line comment (a space MUST be included after --)&lt;br /&gt;
&lt;br /&gt;
 # single line comment&lt;br /&gt;
&lt;br /&gt;
 /* block comment (can span multiple lines) */&lt;br /&gt;
* Script submission must be an executable script file (i.e. only comments and SQL statements). Common violations:&lt;br /&gt;
** Submitting a log file&lt;br /&gt;
** Including the MySQL prompt along with the statement&lt;br /&gt;
** Including an uncommented result set&lt;br /&gt;
&lt;br /&gt;
=== Suggestions: ===&lt;br /&gt;
&lt;br /&gt;
* Include whitespace around operators  Example:     &amp;lt;code&amp;gt;city = 'Rochester'&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;city='Rochester'&amp;lt;/code&amp;gt;&lt;br /&gt;
* Prefix column names with a table identifier  Example, in table student:    &amp;lt;code&amp;gt;stuUnivID&amp;lt;/code&amp;gt;     &amp;lt;code&amp;gt;stuFirstName&amp;lt;/code&amp;gt;      &amp;lt;code&amp;gt;stuLastName&amp;lt;/code&amp;gt;     &amp;lt;code&amp;gt;stuMajID&amp;lt;/code&amp;gt;&lt;br /&gt;
* Indent each hierarchical level  Example:&lt;br /&gt;
 SELECT stuUnivID, stuFirstName, stuLastName, majName&lt;br /&gt;
 FROM student&lt;br /&gt;
 JOIN major&lt;br /&gt;
     ON stuMajorID = majID&lt;br /&gt;
         AND majActive = TRUE&lt;br /&gt;
 WHERE stuCity = 'Rochester'&lt;br /&gt;
     AND stuState = 'NY'&lt;br /&gt;
     AND stuYearLvl &amp;gt;= 3;&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=SQL_Coding_Standards&amp;diff=68</id>
		<title>SQL Coding Standards</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=SQL_Coding_Standards&amp;diff=68"/>
		<updated>2025-01-14T15:36:37Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Any place that you work in the technology industry typically has standards for how code is written, which you are expected to follow.  This course is no different.&lt;br /&gt;
&lt;br /&gt;
We will be requiring (and enforcing) the following standards on homework assignments (HWs), practice exercises (PEs), zyLabs, and examinations.  In all cases, these are not part of the total points, but rather result in additional deductions (1 point for any occurrence per each item, with up to 7 points deducted if none are followed).&lt;br /&gt;
&lt;br /&gt;
=== Relational Notation Standards: ===&lt;br /&gt;
&lt;br /&gt;
* Relation (entity) names must be in UPPERCASE; multi-word relations are separated by an underscore   Examples:    &amp;lt;code&amp;gt;STUDENT(…)&amp;lt;/code&amp;gt;      &amp;lt;code&amp;gt;STUDENT_ADVISOR(…)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Relation names are singular  Example:     &amp;lt;code&amp;gt;STUDENT(…)&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;STUDENTS(…)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Primary keys are underlined  Example:     &amp;lt;code&amp;gt;STUDENT(univID, …)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Foreign key are italicized when typed, dash-underlined when written   Example:     &amp;lt;code&amp;gt;STUDENT(univID, ''collegeID'', …)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Attribute names that would otherwise include a space or an underscore as a separator are to be in camelCase   ID exception:  &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; is commonly used as an abbreviation for ‘identifier’.  Attributes that include ‘ID’ can be stated as &amp;lt;code&amp;gt;attrID&amp;lt;/code&amp;gt;, instead of the strict camelCase of &amp;lt;code&amp;gt;attrId&amp;lt;/code&amp;gt;   Example:    &amp;lt;code&amp;gt;STUDENT(univID, ''collegeID'', firstName, lastName, expectedGradYear, …)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Implementation (Coding) Standards: ===&lt;br /&gt;
&lt;br /&gt;
* One clause per line (&amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FROM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WHERE&amp;lt;/code&amp;gt;, etc.)  Example:&lt;br /&gt;
 SELECT univID, firstName, lastName    &lt;br /&gt;
 FROM student&lt;br /&gt;
 WHERE city = 'Rochester' AND state = 'NY';&lt;br /&gt;
* Keywords and data types must be in UPPERCASE  Example: &lt;br /&gt;
 CREATE TABLE test (&lt;br /&gt;
     testID CHAR(9),&lt;br /&gt;
     testCount INT,&lt;br /&gt;
     testDesc VARCHAR(255),&lt;br /&gt;
     CONSTRAINT test_pk PRIMARY KEY(testID)&lt;br /&gt;
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;&lt;br /&gt;
* Table names and attribute names that would otherwise include as space or an underscore as a separator must be in camelCase ID exception:  &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; is commonly used as an abbreviation for ‘identifier’.  Attributes that include ‘ID’ can be stated as &amp;lt;code&amp;gt;attrID&amp;lt;/code&amp;gt;, instead of the strict camelCase of &amp;lt;code&amp;gt;attrId&amp;lt;/code&amp;gt;  Example:&lt;br /&gt;
 SELECT univID, collegeID, firstName, lastName&lt;br /&gt;
* Single quotes for a string literal Double quotes do not work for string literals in all DBMSs  Example:&lt;br /&gt;
 WHERE city = 'Rochester' AND state = 'NY'&lt;br /&gt;
* Double quotes for any alias that includes a space  Example:     &lt;br /&gt;
 SELECT univID, firstName &amp;quot;First Name&amp;quot;, lastName &amp;quot;Last Name&amp;quot;&lt;br /&gt;
* Script submission must include a syntactically correct comment with student’s name and a syntactically correct comment identifying each task number  Comment options include:&lt;br /&gt;
 -- single line comment (a space MUST be included after --)&lt;br /&gt;
&lt;br /&gt;
 # single line comment&lt;br /&gt;
&lt;br /&gt;
 /* block comment (can span multiple lines) */&lt;br /&gt;
* Script submission must be an executable script file (i.e. only comments and SQL statements). Common violations:&lt;br /&gt;
** Submitting a log file&lt;br /&gt;
** Including the MySQL prompt along with the statement&lt;br /&gt;
** Including an uncommented result set&lt;br /&gt;
&lt;br /&gt;
=== Suggestions: ===&lt;br /&gt;
&lt;br /&gt;
* Include whitespace around operators  Example:     &amp;lt;code&amp;gt;city = 'Rochester'&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;city='Rochester'&amp;lt;/code&amp;gt;&lt;br /&gt;
* Prefix column names with a table identifier  Example, in table student:    &amp;lt;code&amp;gt;stuUnivID&amp;lt;/code&amp;gt;     &amp;lt;code&amp;gt;stuFirstName&amp;lt;/code&amp;gt;      &amp;lt;code&amp;gt;stuLastName&amp;lt;/code&amp;gt;     &amp;lt;code&amp;gt;stuMajID&amp;lt;/code&amp;gt;&lt;br /&gt;
* Indent each hierarchical level  Example:&lt;br /&gt;
 SELECT stuUnivID, stuFirstName, stuLastName, majName&lt;br /&gt;
 FROM student&lt;br /&gt;
 JOIN major&lt;br /&gt;
     ON stuMajorID = majID&lt;br /&gt;
         AND majActive = TRUE&lt;br /&gt;
 WHERE stuCity = 'Rochester'&lt;br /&gt;
     AND stuState = 'NY'&lt;br /&gt;
     AND stuYearLvl &amp;gt;= 3;&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=MediaWiki:Sidebar&amp;diff=67</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=MediaWiki:Sidebar&amp;diff=67"/>
		<updated>2025-01-14T15:32:08Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* Navigation&lt;br /&gt;
** Git_Guide|Git Guide&lt;br /&gt;
** RLES_Guide|RLES Guide&lt;br /&gt;
** SQL_Coding_Standards|SQL Coding Standards&lt;br /&gt;
** MySQL_Configuration|MySQL Configuration&lt;br /&gt;
** MySQL_on_Lab_Computers|MySQL on Lab Computers&lt;br /&gt;
* External Pages&lt;br /&gt;
** https://classroom.github.com/classrooms | GitHub Classroom&lt;br /&gt;
** https://rlescloud.main.ad.rit.edu/vcac/#csp.cs.ui.catalog.list | RLES&lt;br /&gt;
* For Faculty&lt;br /&gt;
** Faculty_GitHub_Classroom_Guide|Faculty GitHub Classroom Guide&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=SQL_Coding_Standards&amp;diff=66</id>
		<title>SQL Coding Standards</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=SQL_Coding_Standards&amp;diff=66"/>
		<updated>2025-01-14T15:30:13Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: Formatted &amp;quot;SQL Coding Standards&amp;quot; page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Any place that you work in the technology industry typically has standards for how code is written, which you are expected to follow.  This course is no different.&lt;br /&gt;
&lt;br /&gt;
We will be requiring (and enforcing) the following standards on homework assignments (HWs), practice exercises (PEs), zyLabs, and examinations.  In all cases, these are not part of the total points, but rather result in additional deductions (1 point for any occurrence per each item, with up to 7 points deducted if none are followed).&lt;br /&gt;
&lt;br /&gt;
=== Relational Notation Standards: ===&lt;br /&gt;
&lt;br /&gt;
* Relation (entity) names must be in UPPERCASE; multi-word relations are separated by an underscore  Examples:    &amp;lt;code&amp;gt;STUDENT(…)&amp;lt;/code&amp;gt;      &amp;lt;code&amp;gt;STUDENT_ADVISOR(…)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Relation names are singular  Example:     &amp;lt;code&amp;gt;STUDENT(…)&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;STUDENTS(…)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Primary keys are underlined  Example:     &amp;lt;code&amp;gt;STUDENT(univID, …)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Foreign key are italicized when typed, dash-underlined when written   Example:     &amp;lt;code&amp;gt;STUDENT(univID, ''collegeID'', …)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Attribute names that would otherwise include a space or an underscore as a separator are to be in camelCase   ID exception:  &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; is commonly used as an abbreviation for ‘identifier’.  Attributes that include ‘ID’ can be stated as &amp;lt;code&amp;gt;attrID&amp;lt;/code&amp;gt;, instead of the strict camelCase of &amp;lt;code&amp;gt;attrId&amp;lt;/code&amp;gt;   Example:    &amp;lt;code&amp;gt;STUDENT(univID, ''collegeID'', firstName, lastName, expectedGradYear, …)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Implementation (Coding) Standards: ===&lt;br /&gt;
&lt;br /&gt;
* One clause per line (&amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FROM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WHERE&amp;lt;/code&amp;gt;, etc.)  Example:&lt;br /&gt;
 SELECT univID, firstName, lastName    &lt;br /&gt;
 FROM student&lt;br /&gt;
 WHERE city = 'Rochester' AND state = 'NY';&lt;br /&gt;
* Keywords and data types must be in UPPERCASE  Example: &lt;br /&gt;
 CREATE TABLE test (&lt;br /&gt;
     testID CHAR(9),&lt;br /&gt;
     testCount INT,&lt;br /&gt;
     testDesc VARCHAR(255),&lt;br /&gt;
     CONSTRAINT test_pk PRIMARY KEY(testID)&lt;br /&gt;
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;&lt;br /&gt;
* Table names and attribute names that would otherwise include as space or an underscore as a separator must be in camelCase ID exception:  &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; is commonly used as an abbreviation for ‘identifier’.  Attributes that include ‘ID’ can be stated as &amp;lt;code&amp;gt;attrID&amp;lt;/code&amp;gt;, instead of the strict camelCase of &amp;lt;code&amp;gt;attrId&amp;lt;/code&amp;gt;  Example:&lt;br /&gt;
 SELECT univID, collegeID, firstName, lastName&lt;br /&gt;
* Single quotes for a string literal Double quotes do not work for string literals in all DBMSs  Example:&lt;br /&gt;
 WHERE city = 'Rochester' AND state = 'NY'&lt;br /&gt;
* Double quotes for any alias that includes a space  Example:     &lt;br /&gt;
 SELECT univID, firstName &amp;quot;First Name&amp;quot;, lastName &amp;quot;Last Name&amp;quot;&lt;br /&gt;
* Script submission must include a syntactically correct comment with student’s name and a syntactically correct comment identifying each task number  Comment options include:&lt;br /&gt;
 -- single line comment (a space MUST be included after --)&lt;br /&gt;
&lt;br /&gt;
 # single line comment&lt;br /&gt;
&lt;br /&gt;
 /* block comment (can span multiple lines) */&lt;br /&gt;
* Script submission must be an executable script file (i.e. only comments and SQL statements). Common violations:&lt;br /&gt;
** Submitting a log file&lt;br /&gt;
** Including the MySQL prompt along with the statement&lt;br /&gt;
** Including an uncommented result set&lt;br /&gt;
&lt;br /&gt;
=== Suggestions: ===&lt;br /&gt;
&lt;br /&gt;
* Include whitespace around operators  Example:     &amp;lt;code&amp;gt;city = 'Rochester'&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;city='Rochester'&amp;lt;/code&amp;gt;&lt;br /&gt;
* Prefix column names with a table identifier  Example, in table student:    &amp;lt;code&amp;gt;stuUnivID&amp;lt;/code&amp;gt;     &amp;lt;code&amp;gt;stuFirstName&amp;lt;/code&amp;gt;      &amp;lt;code&amp;gt;stuLastName&amp;lt;/code&amp;gt;     &amp;lt;code&amp;gt;stuMajID&amp;lt;/code&amp;gt;&lt;br /&gt;
* Indent each hierarchical level  Example:&lt;br /&gt;
 SELECT stuUnivID, stuFirstName, stuLastName, majName&lt;br /&gt;
 FROM student&lt;br /&gt;
 JOIN major&lt;br /&gt;
     ON stuMajorID = majID&lt;br /&gt;
         AND majActive = TRUE&lt;br /&gt;
 WHERE stuCity = 'Rochester'&lt;br /&gt;
     AND stuState = 'NY'&lt;br /&gt;
     AND stuYearLvl &amp;gt;= 3;&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=SQL_Coding_Standards&amp;diff=65</id>
		<title>SQL Coding Standards</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=SQL_Coding_Standards&amp;diff=65"/>
		<updated>2025-01-14T14:51:13Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: Added page for &amp;quot;SQL Coding Standards&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Any place that you work in the technology industry typically has standards for how code is written, which you are expected to follow.  This course is no different.&lt;br /&gt;
&lt;br /&gt;
We will be requiring (and enforcing) the following standards on homework assignments (HWs), practice exercises (PEs), zyLabs, and examinations.  In all cases, these are not part of the total points, but rather result in additional deductions (1 point for any occurrence per each item, with up to 7 points deducted if none are followed).&lt;br /&gt;
&lt;br /&gt;
=== Relational Notation Standards: ===&lt;br /&gt;
&lt;br /&gt;
* Relation (entity) names must be in UPPERCASE; multi-word relations are separated by an underscore Examples:      &amp;lt;code&amp;gt;STUDENT(…)&amp;lt;/code&amp;gt;     &amp;lt;code&amp;gt;STUDENT_ADVISOR(…)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Relation names are singular Example:     &amp;lt;code&amp;gt;STUDENT(…)&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;STUDENTS(…)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Primary keys are underlined Example:     &amp;lt;code&amp;gt;STUDENT(univID, …)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Foreign key are italicized when typed, dash-underlined when written  Example:     &amp;lt;code&amp;gt;STUDENT(univID, ''collegeID'', …)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Attribute names that would otherwise include a space or an underscore as a separator are to be in camelCase  ID exception:  &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; is commonly used as an abbreviation for ‘identifier’.  Attributes that include ‘ID’ can be stated as &amp;lt;code&amp;gt;attrID&amp;lt;/code&amp;gt;, instead of the strict camelCase of &amp;lt;code&amp;gt;attrId&amp;lt;/code&amp;gt;  Example:      &amp;lt;code&amp;gt;STUDENT(univID, ''collegeID'', firstName, lastName, expectedGradYear, …)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Implementation (Coding) Standards: ===&lt;br /&gt;
&lt;br /&gt;
* One clause per line (&amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FROM&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WHERE&amp;lt;/code&amp;gt;, etc.) Example: &amp;lt;code&amp;gt;    SELECT univID, firstName, lastName&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;    FROM student&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;    WHERE city = 'Rochester' AND state = 'NY';&amp;lt;/code&amp;gt;&lt;br /&gt;
* Keywords and data types must be in UPPERCASE Example: &amp;lt;code&amp;gt;    CREATE TABLE test (&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;        testID CHAR(9),&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;        testCount INT,&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;        testDesc VARCHAR(255),&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;        CONSTRAINT test_pk PRIMARY KEY(testID)&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Table names and attribute names that would otherwise include as space or an underscore as a separator must be in camelCase ID exception:  &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; is commonly used as an abbreviation for ‘identifier’.  Attributes that include ‘ID’ can be stated as &amp;lt;code&amp;gt;attrID&amp;lt;/code&amp;gt;, instead of the strict camelCase of &amp;lt;code&amp;gt;attrId&amp;lt;/code&amp;gt; Example:     &amp;lt;code&amp;gt;SELECT univID, collegeID, firstName, lastName&amp;lt;/code&amp;gt;&lt;br /&gt;
* Single quotes for a string literal Double quotes do not work for string literals in all DBMSs Example:     &amp;lt;code&amp;gt;WHERE city = 'Rochester' AND state = 'NY'&amp;lt;/code&amp;gt;&lt;br /&gt;
* Double quotes for any alias that includes a space Example:     &amp;lt;code&amp;gt;SELECT univID, firstName &amp;quot;First Name&amp;quot;, lastName &amp;quot;Last Name&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Script submission must include a syntactically correct comment with student’s name and a syntactically correct comment identifying each task number Comment options include:     &amp;lt;code&amp;gt;-- single line comment (a space MUST be included after --)&amp;lt;/code&amp;gt;     &amp;lt;code&amp;gt;# single line comment&amp;lt;/code&amp;gt;     &amp;lt;code&amp;gt;/* block comment (can span multiple lines) */&amp;lt;/code&amp;gt;&lt;br /&gt;
* Script submission must be an executable script file (i.e. only comments and SQL statements). Common violations:&lt;br /&gt;
** Submitting a log file&lt;br /&gt;
** Including the MySQL prompt along with the statement&lt;br /&gt;
** Including an uncommented result set&lt;br /&gt;
&lt;br /&gt;
=== Suggestions: ===&lt;br /&gt;
&lt;br /&gt;
* Include whitespace around operators Example:     &amp;lt;code&amp;gt;city = 'Rochester'&amp;lt;/code&amp;gt;, not &amp;lt;code&amp;gt;city='Rochester'&amp;lt;/code&amp;gt;&lt;br /&gt;
* Prefix column names with a table identifier Example, in table student:     &amp;lt;code&amp;gt;stuUnivID&amp;lt;/code&amp;gt;     &amp;lt;code&amp;gt;stuFirstName&amp;lt;/code&amp;gt;     &amp;lt;code&amp;gt;stuLastName&amp;lt;/code&amp;gt;     &amp;lt;code&amp;gt;stuMajID&amp;lt;/code&amp;gt;&lt;br /&gt;
* Indent each hierarchical level Example: &amp;lt;code&amp;gt;    SELECT stuUnivID, stuFirstName, stuLastName, majName&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;    FROM student&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;    JOIN major&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;        ON stuMajorID = majID&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;            AND majActive = TRUE&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;    WHERE stuCity = 'Rochester'&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;        AND stuState = 'NY'&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;        AND stuYearLvl &amp;gt;= 3;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=MySQL_on_Lab_Computers&amp;diff=64</id>
		<title>MySQL on Lab Computers</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=MySQL_on_Lab_Computers&amp;diff=64"/>
		<updated>2025-01-14T14:50:13Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: Added page for &amp;quot;MySQL on Lab Computers&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Starting MySQL ==&lt;br /&gt;
&lt;br /&gt;
# Log into computer with your RIT computer account&lt;br /&gt;
# Type verbose into the search bar and run &amp;quot;MySQL Verbose&amp;quot;: [[File:MySQL Verbose screenshot.png|alt=MySQL Verbose screenshot]] &amp;quot;MySQL Verbose&amp;quot; will launch both the MySQL server as well as the command line client.&lt;br /&gt;
# Enter the MySQL root user password:  '''student'''&lt;br /&gt;
&lt;br /&gt;
== Starting the MySQL Command Line Client ==&lt;br /&gt;
Once the MySQL service is running, you can run the MySQL Command Line Client or MySQL Workbench to connect to it.&lt;br /&gt;
&lt;br /&gt;
# Search for mysql and run &amp;quot;MySQL 8.0 Command Line Client&amp;quot; [[File:MySQL Command Line Client screenshot.png|alt=MySQL Command Line Client screenshot]]&lt;br /&gt;
# It's a good idea to right click on the &amp;quot;MySQL 8.0 Command Line Client&amp;quot; icon and choose &amp;quot;Pin to Start&amp;quot; so that it'll always be quickly accessible from the start menu. You could also drag it from the Start menu to the desktop as a shortcut.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=File:MySQL_Command_Line_Client_screenshot.png&amp;diff=63</id>
		<title>File:MySQL Command Line Client screenshot.png</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=File:MySQL_Command_Line_Client_screenshot.png&amp;diff=63"/>
		<updated>2025-01-14T14:49:33Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MySQL Command Line Client screenshot&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=File:MySQL_Verbose_screenshot.png&amp;diff=62</id>
		<title>File:MySQL Verbose screenshot.png</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=File:MySQL_Verbose_screenshot.png&amp;diff=62"/>
		<updated>2025-01-14T14:47:15Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MySQL Verbose screenshot&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=MySQL_Configuration&amp;diff=61</id>
		<title>MySQL Configuration</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=MySQL_Configuration&amp;diff=61"/>
		<updated>2025-01-14T14:45:52Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: Created the &amp;quot;MySQL Configuration&amp;quot; page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
See the MySQL Server SQL Mode specs at https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html&lt;br /&gt;
&lt;br /&gt;
== On Windows: ==&lt;br /&gt;
Edit &amp;lt;code&amp;gt;C:\ProgramData\MySQL\MySQL Server 8.0\my.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change:&lt;br /&gt;
 sql-mode=&amp;quot;STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION&amp;quot;&lt;br /&gt;
To:&lt;br /&gt;
 sql-mode=&amp;quot;ANSI,TRADITIONAL&amp;quot;&lt;br /&gt;
Restart the MySQL server (search for services.msc → search for MySQL 8 in the list of services → click restart link)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that ProgramData is a hidden folder and that my.ini is read-only for non-admins, so its perms have to be adjusted before editing it. To edit the permissions:&lt;br /&gt;
&lt;br /&gt;
* Right click on my.ini&lt;br /&gt;
* Go to Properties&lt;br /&gt;
* Go to Security tab&lt;br /&gt;
* Click Edit button&lt;br /&gt;
* Click Users&lt;br /&gt;
* Check &amp;quot;Full Control&amp;quot; in Allow column&lt;br /&gt;
* Click OK, OK&lt;br /&gt;
&lt;br /&gt;
== On Macs: ==&lt;br /&gt;
Edit: &amp;lt;code&amp;gt;/private/etc/my.cnf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That's specified at System Preferences → MySQL → Configuration tab → Configuration File&lt;br /&gt;
&lt;br /&gt;
Include:&lt;br /&gt;
 [mysqld]&lt;br /&gt;
&lt;br /&gt;
 sql_mode         = &amp;quot;ANSI,TRADITIONAL&amp;quot;&lt;br /&gt;
Restart the MySQL server with System Preferences → MySQL → Configuration tab → Stop MySQL Server&lt;br /&gt;
&lt;br /&gt;
The MySQL server has to be restarted after editing my.cnf (or my.ini on Windows; use services.msc to restart it)&lt;br /&gt;
&lt;br /&gt;
== Temporary Changes ==&lt;br /&gt;
To just change the settings for the current session, this query can be used:&lt;br /&gt;
 SET SESSION sql_mode = &amp;quot;ANSI,TRADITIONAL&amp;quot;;&lt;br /&gt;
And can be checked with:&lt;br /&gt;
 SELECT @@SESSION.SQL_MODE;&lt;br /&gt;
The global settings can be checked with:&lt;br /&gt;
 SELECT @@GLOBAL.SQL_MODE;&lt;br /&gt;
&lt;br /&gt;
== Why? ==&lt;br /&gt;
Given this example in the GROUP BY spec:&lt;br /&gt;
 CREATE TABLE mytable (&lt;br /&gt;
    id INT UNSIGNED NOT NULL PRIMARY KEY,&lt;br /&gt;
    a VARCHAR(10),&lt;br /&gt;
    b INT&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
 INSERT INTO mytable&lt;br /&gt;
 VALUES (1, 'abc', 1000),&lt;br /&gt;
        (2, 'abc', 2000),&lt;br /&gt;
        (3, 'def', 4000);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This should return an error:&lt;br /&gt;
 SELECT a, SUM(b) FROM mytable;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also,&lt;br /&gt;
 SELECT &amp;quot;foo&amp;quot;;&lt;br /&gt;
Will return&lt;br /&gt;
 Unknown column 'foo' in 'field list'&lt;br /&gt;
since strings should be enclosed in single quotes, not double quotes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And the SQL concatenation operator will work. I.e.,&lt;br /&gt;
 SELECT 'foo' || 'bar';&lt;br /&gt;
Will return&lt;br /&gt;
 foobar&lt;br /&gt;
instead of 0&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
Both &amp;lt;code&amp;gt;ANSI&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;TRADITIONAL&amp;lt;/code&amp;gt; are combination modes. Therefore, &lt;br /&gt;
 sql_mode=&amp;quot;ANSI,TRADITIONAL&amp;quot;&lt;br /&gt;
is actually the equivalent of:&lt;br /&gt;
 sql_mode=&amp;quot;REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MySQL Workbench has an error relating to &amp;lt;code&amp;gt;ANSI_QUOTES&amp;lt;/code&amp;gt;. If &amp;lt;code&amp;gt;sql_mode&amp;lt;/code&amp;gt; contains &amp;lt;code&amp;gt;ANSI_QUOTES&amp;lt;/code&amp;gt;, the Reverse Engineering functionality will throw this error for all tables in the selected database: &amp;lt;code&amp;gt;is not valid at this position for this server version, expecting an identifier&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You can get around this error by omitting &amp;lt;code&amp;gt;ANSI_QUOTES&amp;lt;/code&amp;gt;:&lt;br /&gt;
 SET GLOBAL sql_mode = 'REAL_AS_FLOAT,PIPES_AS_CONCAT,IGNORE_SPACE,ONLY_FULL_GROUP_BY,TRADITIONAL';&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=Main_Page&amp;diff=60</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=Main_Page&amp;diff=60"/>
		<updated>2025-01-14T14:44:36Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: Added links for additional pages regarding MySQL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== iSchool Reference ==&lt;br /&gt;
* [[Git Guide]]&lt;br /&gt;
* [[RLES Guide]]&lt;br /&gt;
* [[MySQL Configuration]]&lt;br /&gt;
* [[MySQL on Lab Computers]]&lt;br /&gt;
* [[SQL Coding Standards]]&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=59</id>
		<title>RLES Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=59"/>
		<updated>2024-11-13T13:55:06Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: /* Access Outside of RLES [not available during summer 2024] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GCCIS's Remote Laboratory Emulation System (RLES; pronounced &amp;quot;are-less&amp;quot;) is a virtual private network that's not accessible to the outside world, with an environment set up just for our class. &lt;br /&gt;
&lt;br /&gt;
==== Getting Started ====&lt;br /&gt;
'''Access Old RLES at''' https://rlescloud.main.ad.rit.edu/vcac/#csp.cs.ui.catalog.list&lt;br /&gt;
&lt;br /&gt;
'''Access New RLES at''' https://rles-cloud.rit.edu/automation/#/service/catalog/&lt;br /&gt;
&lt;br /&gt;
Sign in with your RIT computer account credentials.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can use VMRC to access your VMs. Download the VMRC installer for your OS:&lt;br /&gt;
&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_windows.zip Windows]&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_macos.dmg MacOS]&lt;br /&gt;
&lt;br /&gt;
===== Provisioning a VM =====&lt;br /&gt;
When you first log into RLES, you'll land on the Overview. Go to Catalog, and you'll see all of the virtual machine images that you have access to. Click on 'Request' to provision a VM instance.&lt;br /&gt;
&lt;br /&gt;
On the next screen, note the option selected in the &amp;quot;Project&amp;quot; dropdown. If you're going to be using this VM in a group project, make sure your group's name is selected in this dropdown.&lt;br /&gt;
&lt;br /&gt;
Update the &amp;quot;Description&amp;quot; field with a meaningful value. For example, if you're going to use this VM to test out building a LAMP stack for ISTE-444, you could enter a description of &amp;quot;LAMP stack for ISTE-444&amp;quot;. Having useful descriptions will really help you out when you've got multiple VMs provisioned.&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Submit&amp;quot; button to send the request to have your new VM provisioned. It should take a few minutes before the new VM is ready.&lt;br /&gt;
&lt;br /&gt;
Note: RLES VMs only persist for two months (so we don't end up with a ton of unused VMs hanging around). If you need yours longer than two months, you'll have to extend the VM's lease.&lt;br /&gt;
&lt;br /&gt;
===== Accessing a VM =====&lt;br /&gt;
RLES VMs are, by default, only accessible within RLES. To access a VM that you've provisioned, go to the &amp;quot;Deployments&amp;quot; tab and find the entry for the VM that you're looking for.&lt;br /&gt;
&lt;br /&gt;
RLES VMs typically automatically suspend after 6 hours in order to conserve RLES resources, so if the status of your VM is &amp;quot;Off&amp;quot;, click the &amp;quot;Available actions&amp;quot; dropdown (the dot-dot-dot on the left) and choose &amp;quot;Power On&amp;quot; (then click &amp;quot;Submit&amp;quot; on the next screen). It should take a minute or so for the VM to turn back on.&lt;br /&gt;
[[File:RLES actions menu.png|alt=RLES VM context menu|thumb|502x502px|RLES VM context menu]]&lt;br /&gt;
Once a VM is powered on, click the VM's name, and then in the panel on the right, click the &amp;quot;Actions&amp;quot; dropdown to access available options.&lt;br /&gt;
&lt;br /&gt;
To access a VM, you can use a browser, or you can use VMware's Remote Console (VMRC). Using a browser to access the VM is quick and easy, but it won't allow for copy/pasting from your host computer. To use the browser, click &amp;quot;Connect to Remote Console&amp;quot; in the context menu.&lt;br /&gt;
&lt;br /&gt;
To use VMware's Remote Console, click &amp;quot;Connect using VMRC&amp;quot;. A new browser tab will open with a link for connecting to the VM. If you haven't used VMRC before, click the &amp;quot;Download VMRC&amp;quot; link and follow the instructions for your operating system. Once VMRC is installed, you can click the &amp;quot;Connect to console using VMRC&amp;quot; to open your VM using the VMRC application.&lt;br /&gt;
&lt;br /&gt;
==== Access Outside of RLES [only for Old RLES] ====&lt;br /&gt;
You can request that your VM be accessible outside of RLES. To do so, send an email to gccisit@rit.edu that includes:&lt;br /&gt;
&lt;br /&gt;
# The '''name of your VM''' (e.g. &amp;quot;ubuntu-1234&amp;quot;)&lt;br /&gt;
# What '''port(s)''' your web server is listening on (e.g. 80, 443, 3000, etc.)&lt;br /&gt;
# What '''hostname''' you want in DNS (e.g. &amp;quot;awesome-site&amp;quot;, which will become &amp;quot;awesome-site.webdev.gccis.rit.edu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Once the setup is complete, you'll be able to access your site from any browser outside of RLES at:&amp;lt;blockquote&amp;gt;https://[hostname].webdev.gccis.rit.edu&amp;lt;/blockquote&amp;gt;Note that a TLS certificate is automatically added by the RLES proxy, so you'll access your site over HTTPS even though you haven't configured your web server for it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can SSH into your VM too (as long as SSH is enabled on the VM), but you must be on the RIT network to do so (note that there'll be a custom port for each VM):&amp;lt;blockquote&amp;gt;ssh [username]@[hostname].webdev.gccis.rit.edu -p[port]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Group Work====&lt;br /&gt;
You should all be able to see your groups VMs; if, on the Deployments page, you don't see a VM that someone else in your group created, click the filter icon next to &amp;quot;Deployments&amp;quot; and clear the checkmark next to your name.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
'''VM loses connectivity'''&amp;lt;br&amp;gt;If your VM loses connectivity, try toggling the wired connection: Click the power icon in the top right corner, click &amp;quot;Wired Connected&amp;quot;, and click &amp;quot;Turn Off&amp;quot;. Then again click the power icon, click &amp;quot;Wired Off&amp;quot;, and then &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Freezing'''&amp;lt;br&amp;gt;&lt;br /&gt;
If your VM appears to freeze, try exiting VMRC or your host computer's browser tab, and then reconnect to the VM.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=58</id>
		<title>RLES Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=58"/>
		<updated>2024-09-19T17:20:45Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: Add VMRC download links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GCCIS's Remote Laboratory Emulation System (RLES; pronounced &amp;quot;are-less&amp;quot;) is a virtual private network that's not accessible to the outside world, with an environment set up just for our class. &lt;br /&gt;
&lt;br /&gt;
==== Getting Started ====&lt;br /&gt;
'''Access Old RLES at''' https://rlescloud.main.ad.rit.edu/vcac/#csp.cs.ui.catalog.list&lt;br /&gt;
&lt;br /&gt;
'''Access New RLES at''' https://rles-cloud.rit.edu/automation/#/service/catalog/&lt;br /&gt;
&lt;br /&gt;
Sign in with your RIT computer account credentials.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can use VMRC to access your VMs. Download the VMRC installer for your OS:&lt;br /&gt;
&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_windows.zip Windows]&lt;br /&gt;
* [https://solace.ist.rit.edu/~dmgics/vmrc/vmrc_macos.dmg MacOS]&lt;br /&gt;
&lt;br /&gt;
===== Provisioning a VM =====&lt;br /&gt;
When you first log into RLES, you'll land on the Overview. Go to Catalog, and you'll see all of the virtual machine images that you have access to. Click on 'Request' to provision a VM instance.&lt;br /&gt;
&lt;br /&gt;
On the next screen, note the option selected in the &amp;quot;Project&amp;quot; dropdown. If you're going to be using this VM in a group project, make sure your group's name is selected in this dropdown.&lt;br /&gt;
&lt;br /&gt;
Update the &amp;quot;Description&amp;quot; field with a meaningful value. For example, if you're going to use this VM to test out building a LAMP stack for ISTE-444, you could enter a description of &amp;quot;LAMP stack for ISTE-444&amp;quot;. Having useful descriptions will really help you out when you've got multiple VMs provisioned.&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Submit&amp;quot; button to send the request to have your new VM provisioned. It should take a few minutes before the new VM is ready.&lt;br /&gt;
&lt;br /&gt;
Note: RLES VMs only persist for two months (so we don't end up with a ton of unused VMs hanging around). If you need yours longer than two months, you'll have to extend the VM's lease.&lt;br /&gt;
&lt;br /&gt;
===== Accessing a VM =====&lt;br /&gt;
RLES VMs are, by default, only accessible within RLES. To access a VM that you've provisioned, go to the &amp;quot;Deployments&amp;quot; tab and find the entry for the VM that you're looking for.&lt;br /&gt;
&lt;br /&gt;
RLES VMs typically automatically suspend after 6 hours in order to conserve RLES resources, so if the status of your VM is &amp;quot;Off&amp;quot;, click the &amp;quot;Available actions&amp;quot; dropdown (the dot-dot-dot on the left) and choose &amp;quot;Power On&amp;quot; (then click &amp;quot;Submit&amp;quot; on the next screen). It should take a minute or so for the VM to turn back on.&lt;br /&gt;
[[File:RLES actions menu.png|alt=RLES VM context menu|thumb|502x502px|RLES VM context menu]]&lt;br /&gt;
Once a VM is powered on, click the VM's name, and then in the panel on the right, click the &amp;quot;Actions&amp;quot; dropdown to access available options.&lt;br /&gt;
&lt;br /&gt;
To access a VM, you can use a browser, or you can use VMware's Remote Console (VMRC). Using a browser to access the VM is quick and easy, but it won't allow for copy/pasting from your host computer. To use the browser, click &amp;quot;Connect to Remote Console&amp;quot; in the context menu.&lt;br /&gt;
&lt;br /&gt;
To use VMware's Remote Console, click &amp;quot;Connect using VMRC&amp;quot;. A new browser tab will open with a link for connecting to the VM. If you haven't used VMRC before, click the &amp;quot;Download VMRC&amp;quot; link and follow the instructions for your operating system. Once VMRC is installed, you can click the &amp;quot;Connect to console using VMRC&amp;quot; to open your VM using the VMRC application.&lt;br /&gt;
&lt;br /&gt;
==== Access Outside of RLES [not available during summer 2024] ====&lt;br /&gt;
You can request that your VM be accessible outside of RLES. To do so, send an email to gccisit@rit.edu that includes:&lt;br /&gt;
&lt;br /&gt;
# The '''name of your VM''' (e.g. &amp;quot;ubuntu-1234&amp;quot;)&lt;br /&gt;
# What '''port(s)''' your web server is listening on (e.g. 80, 443, 3000, etc.)&lt;br /&gt;
# What '''hostname''' you want in DNS (e.g. &amp;quot;awesome-site&amp;quot;, which will become &amp;quot;awesome-site.webdev.gccis.rit.edu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Once the setup is complete, you'll be able to access your site from any browser outside of RLES at:&amp;lt;blockquote&amp;gt;https://[hostname].webdev.gccis.rit.edu&amp;lt;/blockquote&amp;gt;Note that a TLS certificate is automatically added by the RLES proxy, so you'll access your site over HTTPS even though you haven't configured your web server for it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can SSH into your VM too (as long as SSH is enabled on the VM), but you must be on the RIT network to do so (note that there'll be a custom port for each VM):&amp;lt;blockquote&amp;gt;ssh [username]@[hostname].webdev.gccis.rit.edu -p[port]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Group Work====&lt;br /&gt;
You should all be able to see your groups VMs; if, on the Deployments page, you don't see a VM that someone else in your group created, click the filter icon next to &amp;quot;Deployments&amp;quot; and clear the checkmark next to your name.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
'''VM loses connectivity'''&amp;lt;br&amp;gt;If your VM loses connectivity, try toggling the wired connection: Click the power icon in the top right corner, click &amp;quot;Wired Connected&amp;quot;, and click &amp;quot;Turn Off&amp;quot;. Then again click the power icon, click &amp;quot;Wired Off&amp;quot;, and then &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Freezing'''&amp;lt;br&amp;gt;&lt;br /&gt;
If your VM appears to freeze, try exiting VMRC or your host computer's browser tab, and then reconnect to the VM.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=57</id>
		<title>RLES Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=57"/>
		<updated>2024-09-18T19:16:03Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GCCIS's Remote Laboratory Emulation System (RLES; pronounced &amp;quot;are-less&amp;quot;) is a virtual private network that's not accessible to the outside world, with an environment set up just for our class. &lt;br /&gt;
&lt;br /&gt;
==== Getting Started ====&lt;br /&gt;
'''Access Old RLES at''' https://rlescloud.main.ad.rit.edu/vcac/#csp.cs.ui.catalog.list&lt;br /&gt;
&lt;br /&gt;
'''Access New RLES at''' https://rles-cloud.rit.edu/automation/#/service/catalog/&lt;br /&gt;
&lt;br /&gt;
Sign in with your RIT computer account credentials.&lt;br /&gt;
&lt;br /&gt;
===== Provisioning a VM =====&lt;br /&gt;
When you first log into RLES, you'll land on the Overview. Go to Catalog, and you'll see all of the virtual machine images that you have access to. Click on 'Request' to provision a VM instance.&lt;br /&gt;
&lt;br /&gt;
On the next screen, note the option selected in the &amp;quot;Project&amp;quot; dropdown. If you're going to be using this VM in a group project, make sure your group's name is selected in this dropdown.&lt;br /&gt;
&lt;br /&gt;
Update the &amp;quot;Description&amp;quot; field with a meaningful value. For example, if you're going to use this VM to test out building a LAMP stack for ISTE-444, you could enter a description of &amp;quot;LAMP stack for ISTE-444&amp;quot;. Having useful descriptions will really help you out when you've got multiple VMs provisioned.&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Submit&amp;quot; button to send the request to have your new VM provisioned. It should take a few minutes before the new VM is ready.&lt;br /&gt;
&lt;br /&gt;
Note: RLES VMs only persist for two months (so we don't end up with a ton of unused VMs hanging around). If you need yours longer than two months, you'll have to extend the VM's lease.&lt;br /&gt;
&lt;br /&gt;
===== Accessing a VM =====&lt;br /&gt;
RLES VMs are, by default, only accessible within RLES. To access a VM that you've provisioned, go to the &amp;quot;Deployments&amp;quot; tab and find the entry for the VM that you're looking for.&lt;br /&gt;
&lt;br /&gt;
RLES VMs typically automatically suspend after 6 hours in order to conserve RLES resources, so if the status of your VM is &amp;quot;Off&amp;quot;, click the &amp;quot;Available actions&amp;quot; dropdown (the dot-dot-dot on the left) and choose &amp;quot;Power On&amp;quot; (then click &amp;quot;Submit&amp;quot; on the next screen). It should take a minute or so for the VM to turn back on.&lt;br /&gt;
[[File:RLES actions menu.png|alt=RLES VM context menu|thumb|502x502px|RLES VM context menu]]&lt;br /&gt;
Once a VM is powered on, click the VM's name, and then in the panel on the right, click the &amp;quot;Actions&amp;quot; dropdown to access available options.&lt;br /&gt;
&lt;br /&gt;
To access a VM, you can use a browser, or you can use VMware's Remote Console (VMRC). Using a browser to access the VM is quick and easy, but it won't allow for copy/pasting from your host computer. To use the browser, click &amp;quot;Connect to Remote Console&amp;quot; in the context menu.&lt;br /&gt;
&lt;br /&gt;
To use VMware's Remote Console, click &amp;quot;Connect using VMRC&amp;quot;. A new browser tab will open with a link for connecting to the VM. If you haven't used VMRC before, click the &amp;quot;Download VMRC&amp;quot; link and follow the instructions for your operating system. Once VMRC is installed, you can click the &amp;quot;Connect to console using VMRC&amp;quot; to open your VM using the VMRC application.&lt;br /&gt;
&lt;br /&gt;
==== Access Outside of RLES [not available during summer 2024] ====&lt;br /&gt;
You can request that your VM be accessible outside of RLES. To do so, send an email to gccisit@rit.edu that includes:&lt;br /&gt;
&lt;br /&gt;
# The '''name of your VM''' (e.g. &amp;quot;ubuntu-1234&amp;quot;)&lt;br /&gt;
# What '''port(s)''' your web server is listening on (e.g. 80, 443, 3000, etc.)&lt;br /&gt;
# What '''hostname''' you want in DNS (e.g. &amp;quot;awesome-site&amp;quot;, which will become &amp;quot;awesome-site.webdev.gccis.rit.edu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Once the setup is complete, you'll be able to access your site from any browser outside of RLES at:&amp;lt;blockquote&amp;gt;https://[hostname].webdev.gccis.rit.edu&amp;lt;/blockquote&amp;gt;Note that a TLS certificate is automatically added by the RLES proxy, so you'll access your site over HTTPS even though you haven't configured your web server for it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can SSH into your VM too (as long as SSH is enabled on the VM), but you must be on the RIT network to do so (note that there'll be a custom port for each VM):&amp;lt;blockquote&amp;gt;ssh [username]@[hostname].webdev.gccis.rit.edu -p[port]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Group Work====&lt;br /&gt;
You should all be able to see your groups VMs; if, on the Deployments page, you don't see a VM that someone else in your group created, click the filter icon next to &amp;quot;Deployments&amp;quot; and clear the checkmark next to your name.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
'''VM loses connectivity'''&amp;lt;br&amp;gt;If your VM loses connectivity, try toggling the wired connection: Click the power icon in the top right corner, click &amp;quot;Wired Connected&amp;quot;, and click &amp;quot;Turn Off&amp;quot;. Then again click the power icon, click &amp;quot;Wired Off&amp;quot;, and then &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Freezing'''&amp;lt;br&amp;gt;&lt;br /&gt;
If your VM appears to freeze, try exiting VMRC or your host computer's browser tab, and then reconnect to the VM.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=56</id>
		<title>RLES Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=56"/>
		<updated>2024-05-28T20:17:59Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: Updated for new RLES&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GCCIS's Remote Laboratory Emulation System (RLES; pronounced &amp;quot;are-less&amp;quot;) is a virtual private network that's not accessible to the outside world, with an environment set up just for our class. &lt;br /&gt;
&lt;br /&gt;
==== Getting Started ====&lt;br /&gt;
'''Access RLES at''' https://rles-cloud.rit.edu/automation/#/service/catalog/&lt;br /&gt;
&lt;br /&gt;
Sign in with your RIT computer account credentials.&lt;br /&gt;
&lt;br /&gt;
===== Provisioning a VM =====&lt;br /&gt;
When you first log into RLES, you'll land on the Overview. Go to Catalog, and you'll see all of the virtual machine images that you have access to. Click on 'Request' to provision a VM instance.&lt;br /&gt;
&lt;br /&gt;
On the next screen, note the option selected in the &amp;quot;Project&amp;quot; dropdown. If you're going to be using this VM in a group project, make sure your group's name is selected in this dropdown.&lt;br /&gt;
&lt;br /&gt;
Update the &amp;quot;Description&amp;quot; field with a meaningful value. For example, if you're going to use this VM to test out building a LAMP stack for ISTE-444, you could enter a description of &amp;quot;LAMP stack for ISTE-444&amp;quot;. Having useful descriptions will really help you out when you've got multiple VMs provisioned.&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Submit&amp;quot; button to send the request to have your new VM provisioned. It should take a few minutes before the new VM is ready.&lt;br /&gt;
&lt;br /&gt;
Note: RLES VMs only persist for two months (so we don't end up with a ton of unused VMs hanging around). If you need yours longer than two months, you'll have to extend the VM's lease.&lt;br /&gt;
&lt;br /&gt;
===== Accessing a VM =====&lt;br /&gt;
RLES VMs are, by default, only accessible within RLES. To access a VM that you've provisioned, go to the &amp;quot;Deployments&amp;quot; tab and find the entry for the VM that you're looking for.&lt;br /&gt;
&lt;br /&gt;
RLES VMs typically automatically suspend after 6 hours in order to conserve RLES resources, so if the status of your VM is &amp;quot;Off&amp;quot;, click the &amp;quot;Available actions&amp;quot; dropdown (the dot-dot-dot on the left) and choose &amp;quot;Power On&amp;quot; (then click &amp;quot;Submit&amp;quot; on the next screen). It should take a minute or so for the VM to turn back on.&lt;br /&gt;
[[File:RLES actions menu.png|alt=RLES VM context menu|thumb|502x502px|RLES VM context menu]]&lt;br /&gt;
Once a VM is powered on, click the VM's name, and then in the panel on the right, click the &amp;quot;Actions&amp;quot; dropdown to access available options.&lt;br /&gt;
&lt;br /&gt;
To access a VM, you can use a browser, or you can use VMware's Remote Console (VMRC). Using a browser to access the VM is quick and easy, but it won't allow for copy/pasting from your host computer. To use the browser, click &amp;quot;Connect to Remote Console&amp;quot; in the context menu.&lt;br /&gt;
&lt;br /&gt;
To use VMware's Remote Console, click &amp;quot;Connect using VMRC&amp;quot;. A new browser tab will open with a link for connecting to the VM. If you haven't used VMRC before, click the &amp;quot;Download VMRC&amp;quot; link and follow the instructions for your operating system. Once VMRC is installed, you can click the &amp;quot;Connect to console using VMRC&amp;quot; to open your VM using the VMRC application.&lt;br /&gt;
&lt;br /&gt;
==== Access Outside of RLES [not available during summer 2024] ====&lt;br /&gt;
You can request that your VM be accessible outside of RLES. To do so, send an email to gccisit@rit.edu that includes:&lt;br /&gt;
&lt;br /&gt;
# The '''name of your VM''' (e.g. &amp;quot;ubuntu-1234&amp;quot;)&lt;br /&gt;
# What '''port(s)''' your web server is listening on (e.g. 80, 443, 3000, etc.)&lt;br /&gt;
# What '''hostname''' you want in DNS (e.g. &amp;quot;awesome-site&amp;quot;, which will become &amp;quot;awesome-site.webdev.gccis.rit.edu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Once the setup is complete, you'll be able to access your site from any browser outside of RLES at:&amp;lt;blockquote&amp;gt;https://[hostname].webdev.gccis.rit.edu&amp;lt;/blockquote&amp;gt;Note that a TLS certificate is automatically added by the RLES proxy, so you'll access your site over HTTPS even though you haven't configured your web server for it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can SSH into your VM too (as long as SSH is enabled on the VM), but you must be on the RIT network to do so (note that there'll be a custom port for each VM):&amp;lt;blockquote&amp;gt;ssh [username]@[hostname].webdev.gccis.rit.edu -p[port]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Group Work====&lt;br /&gt;
You should all be able to see your groups VMs; if, on the Deployments page, you don't see a VM that someone else in your group created, click the filter icon next to &amp;quot;Deployments&amp;quot; and clear the checkmark next to your name.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
'''VM loses connectivity'''&amp;lt;br&amp;gt;If your VM loses connectivity, try toggling the wired connection: Click the power icon in the top right corner, click &amp;quot;Wired Connected&amp;quot;, and click &amp;quot;Turn Off&amp;quot;. Then again click the power icon, click &amp;quot;Wired Off&amp;quot;, and then &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Freezing'''&amp;lt;br&amp;gt;&lt;br /&gt;
If your VM appears to freeze, try exiting VMRC or your host computer's browser tab, and then reconnect to the VM.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=File:RLES_actions_menu.png&amp;diff=55</id>
		<title>File:RLES actions menu.png</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=File:RLES_actions_menu.png&amp;diff=55"/>
		<updated>2024-05-28T20:13:56Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RLES actions menu&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=Faculty_GitHub_Classroom_Guide&amp;diff=54</id>
		<title>Faculty GitHub Classroom Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=Faculty_GitHub_Classroom_Guide&amp;diff=54"/>
		<updated>2024-02-29T20:20:28Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The iSchool has a GitHub Organization page at https://github.com/RIT-iSchool&lt;br /&gt;
&lt;br /&gt;
[[File:ISchool Organization.png|alt=iSchool Organization[[File:ISchool Organization.png|alt=iSchool Organization]]&lt;br /&gt;
&lt;br /&gt;
====Set up a New Classroom====&lt;br /&gt;
Click the &amp;quot;+ New classroom&amp;quot; button at https://classroom.github.com/classrooms and choose the &amp;quot;RIT-iSchool&amp;quot; organization on the next page.&lt;br /&gt;
&lt;br /&gt;
Enter a classroom name in the format:&lt;br /&gt;
    ISTE-[course #]-[section #]_[semester code]&lt;br /&gt;
E.g.,&lt;br /&gt;
    ISTE-610-01_2235&lt;br /&gt;
Then click the &amp;quot;Create classroom&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to invite TAs or other instructors, you can do so on the next screen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On the &amp;quot;Add Students to Roster&amp;quot; page, if you already know your students' GitHub usernames, you can enter them in the &amp;quot;Create your roster manually&amp;quot; text area (or upload a CSV with them). Otherwise, just click &amp;quot;Continue&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Create an assignment&amp;quot;, and enter the assignment details. Be sure to set the &amp;quot;Repository visibility&amp;quot; to private. You probably want to check &amp;quot;Grant students admin access to their repository&amp;quot; so that they can change things such as deciding which branch is the main branch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you have starter code that you want the students to work from, you can link it as a template on the next screen. On the screen after that, you can add autograding tests, and you can enable feedback pull requests so that when students submit code to the repository, a pull request is automatically created, allowing you to provide feedback on the code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finally, you can share the invitation link with your students so that they can access the project.&lt;br /&gt;
[[File:Confirmation message.png|none|thumb|529x529px]]&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=File:Confirmation_message.png&amp;diff=53</id>
		<title>File:Confirmation message.png</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=File:Confirmation_message.png&amp;diff=53"/>
		<updated>2024-02-29T20:20:01Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Confirmation message&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=Faculty_GitHub_Classroom_Guide&amp;diff=52</id>
		<title>Faculty GitHub Classroom Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=Faculty_GitHub_Classroom_Guide&amp;diff=52"/>
		<updated>2024-02-28T14:55:42Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: Add process for creating GitHub Classroom project&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The iSchool has a GitHub Organization page at https://github.com/RIT-iSchool&lt;br /&gt;
&lt;br /&gt;
[[File:ISchool Organization.png|alt=iSchool Organization[[File:ISchool Organization.png|alt=iSchool Organization]]&lt;br /&gt;
&lt;br /&gt;
====Set up a New Classroom====&lt;br /&gt;
Click the &amp;quot;+ New classroom&amp;quot; button at https://classroom.github.com/classrooms and choose the &amp;quot;RIT-iSchool&amp;quot; organization on the next page.&lt;br /&gt;
&lt;br /&gt;
Enter a classroom name in the format:&lt;br /&gt;
    ISTE-[course #]-[section #]_[semester code]&lt;br /&gt;
E.g.,&lt;br /&gt;
    ISTE-610-01_2235&lt;br /&gt;
Then click the &amp;quot;Create classroom&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to invite TAs or other instructors, you can do so on the next screen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On the &amp;quot;Add Students to Roster&amp;quot; page, if you already know your students' GitHub usernames, you can enter them in the &amp;quot;Create your roster manually&amp;quot; text area (or upload a CSV with them). Otherwise, just click &amp;quot;Continue&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Create an assignment&amp;quot;, and enter the assignment details. Be sure to set the &amp;quot;Repository visibility&amp;quot; to private. You probably want to check &amp;quot;Grant students admin access to their repository&amp;quot; so that they can change things such as deciding which branch is the main branch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you have starter code that you want the students to work from, you can link it as a template on the next screen. On the screen after that, you can add autograding tests, and you can enable feedback pull requests so that when students submit code to the repository, a pull request is automatically created, allowing you to provide feedback on the code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finally, you can share the invitation link with your students so that they can access the project.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=51</id>
		<title>RLES Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=51"/>
		<updated>2024-01-18T18:57:25Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GCCIS's Remote Laboratory Emulation System (RLES; pronounced &amp;quot;are-less&amp;quot;) is a virtual private network that's not accessible to the outside world, with an environment set up just for our class. &lt;br /&gt;
&lt;br /&gt;
==== Getting Started ====&lt;br /&gt;
'''Access RLES at https://rlescloud.rit.edu/'''&lt;br /&gt;
&lt;br /&gt;
Sign in with your RIT computer account credentials.&lt;br /&gt;
&lt;br /&gt;
===== Provisioning a VM =====&lt;br /&gt;
When you first log into RLES, you'll land on the Catalog tab, where you'll see all of the virtual machine images that you have access to. Click on 'Request' to provision a VM instance.&lt;br /&gt;
&lt;br /&gt;
On the next screen, note the option selected in the &amp;quot;Business group&amp;quot; dropdown. If you're going to be using this VM in a group project, make sure your group's name is selected in this dropdown.&lt;br /&gt;
&lt;br /&gt;
Update the &amp;quot;Description&amp;quot; field with a meaningful value. For example, if you're going to use this VM to test out building a LAMP stack for ISTE-444, you could enter a description of &amp;quot;LAMP stack for ISTE-444&amp;quot;. Having useful descriptions will really help you out when you've got multiple VMs provisioned.&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Submit&amp;quot; button to send the request to have your new VM provisioned. It should take a few minutes before the new VM is ready.&lt;br /&gt;
&lt;br /&gt;
Note: RLES VMs only persist for two months (so we don't end up with a ton of unused VMs hanging around). If you need yours longer than two months, you'll have to extend the VM's lease.&lt;br /&gt;
&lt;br /&gt;
===== Accessing a VM =====&lt;br /&gt;
RLES VMs are, by default, only accessible within RLES. To access a VM that you've provisioned, go to the &amp;quot;Deployments&amp;quot; tab and find the entry for the VM that you're looking for.&lt;br /&gt;
&lt;br /&gt;
RLES VMs typically automatically suspend after 6 hours in order to conserve RLES resources, so if the status of your VM is &amp;quot;Off&amp;quot;, click the &amp;quot;Actions&amp;quot; dropdown and choose &amp;quot;Power on deployment&amp;quot; (then click &amp;quot;Submit&amp;quot; on the next screen). It should take a minute or so for the VM to turn back on.&lt;br /&gt;
[[File:RLES VM context menu.png|alt=RLES VM context menu|thumb|RLES VM context menu]]&lt;br /&gt;
&lt;br /&gt;
Once a VM is powered on, click the VM's name, and then in the &amp;quot;Components&amp;quot; section, click on the VM entry (not the network). Click the gear icon that appears to the right of the VM entry to display a context menu.&lt;br /&gt;
&lt;br /&gt;
To access a VM, you can use a browser, or you can use VMware's Remote Console (VMRC). Using a browser to access the VM is quick and easy, but it won't allow for copy/pasting from your host computer. To use the browser, click &amp;quot;Connect to Remote Console&amp;quot; in the context menu.&lt;br /&gt;
&lt;br /&gt;
To use VMware's Remote Console, click &amp;quot;Connect using VMRC&amp;quot;. A new browser tab will open with a link for connecting to the VM. If you haven't used VMRC before, click the &amp;quot;Download VMRC&amp;quot; link and follow the instructions for your operating system. Once VMRC is installed, you can click the &amp;quot;Connect to console using VMRC&amp;quot; to open your VM using the VMRC application.&lt;br /&gt;
&lt;br /&gt;
==== Access Outside of RLES ====&lt;br /&gt;
You can request that your VM be accessible outside of RLES. To do so, send an email to gccisit@rit.edu that includes:&lt;br /&gt;
&lt;br /&gt;
# The '''name of your VM''' (e.g. &amp;quot;ubuntu-1234&amp;quot;)&lt;br /&gt;
# What '''port(s)''' your web server is listening on (e.g. 80, 443, 3000, etc.)&lt;br /&gt;
# What '''hostname''' you want in DNS (e.g. &amp;quot;awesome-site&amp;quot;, which will become &amp;quot;awesome-site.webdev.gccis.rit.edu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Once the setup is complete, you'll be able to access your site from any browser outside of RLES at:&amp;lt;blockquote&amp;gt;https://[hostname].webdev.gccis.rit.edu&amp;lt;/blockquote&amp;gt;Note that a TLS certificate is automatically added by the RLES proxy, so you'll access your site over HTTPS even though you haven't configured your web server for it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can SSH into your VM too (as long as SSH is enabled on the VM), but you must be on the RIT network to do so (note that there'll be a custom port for each VM):&amp;lt;blockquote&amp;gt;ssh [username]@[hostname].webdev.gccis.rit.edu -p[port]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Group Work====&lt;br /&gt;
You should all be able to see your groups VMs; if, on the Deployments page, you don't see a VM that someone else in your group created, click the filter icon next to &amp;quot;Deployments&amp;quot; and clear the checkmark next to your name.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
'''VM loses connectivity'''&amp;lt;br&amp;gt;If your VM loses connectivity, try toggling the wired connection: Click the power icon in the top right corner, click &amp;quot;Wired Connected&amp;quot;, and click &amp;quot;Turn Off&amp;quot;. Then again click the power icon, click &amp;quot;Wired Off&amp;quot;, and then &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Freezing'''&amp;lt;br&amp;gt;&lt;br /&gt;
If your VM appears to freeze, try exiting VMRC or your host computer's browser tab, and then reconnect to the VM.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=50</id>
		<title>RLES Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=50"/>
		<updated>2024-01-18T18:56:06Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GCCIS's Remote Laboratory Emulation System (RLES; pronounced &amp;quot;are-less&amp;quot;) is a virtual private network that's not accessible to the outside world, with an environment set up just for our class. &lt;br /&gt;
&lt;br /&gt;
==== Getting Started ====&lt;br /&gt;
'''Access RLES at https://rlescloud.rit.edu/'''&lt;br /&gt;
&lt;br /&gt;
Sign in with your RIT computer account credentials.&lt;br /&gt;
&lt;br /&gt;
===== Provisioning a VM =====&lt;br /&gt;
When you first log into RLES, you'll land on the Catalog tab, where you'll see all of the virtual machine images that you have access to. Click on 'Request' to provision a VM instance.&lt;br /&gt;
&lt;br /&gt;
On the next screen, note the option selected in the &amp;quot;Business group&amp;quot; dropdown. If you're going to be using this VM in a group project, make sure your group's name is selected in this dropdown.&lt;br /&gt;
&lt;br /&gt;
Update the &amp;quot;Description&amp;quot; field with a meaningful value. For example, if you're going to use this VM to test out building a LAMP stack for ISTE-444, you could enter a description of &amp;quot;LAMP stack for ISTE-444&amp;quot;. Having useful descriptions will really help you out when you've got multiple VMs provisioned.&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Submit&amp;quot; button to send the request to have your new VM provisioned. It should take a few minutes before the new VM is ready.&lt;br /&gt;
&lt;br /&gt;
Note: RLES VMs only persist for two months (so we don't end up with a ton of unused VMs hanging around). If you need yours longer than two months, you'll have to extend the VM's lease.&lt;br /&gt;
&lt;br /&gt;
===== Accessing a VM =====&lt;br /&gt;
RLES VMs are, by default, only accessible within RLES. To access a VM that you've provisioned, go to the &amp;quot;Deployments&amp;quot; tab and find the entry for the VM that you're looking for.&lt;br /&gt;
&lt;br /&gt;
RLES VMs typically automatically suspend after 6 hours in order to conserve RLES resources, so if the status of your VM is &amp;quot;Off&amp;quot;, click the &amp;quot;Actions&amp;quot; dropdown and choose &amp;quot;Power on deployment&amp;quot; (then click &amp;quot;Submit&amp;quot; on the next screen). It should take a minute or so for the VM to turn back on.&lt;br /&gt;
[[File:RLES VM context menu.png|alt=RLES VM context menu|thumb|RLES VM context menu]]&lt;br /&gt;
&lt;br /&gt;
Once a VM is powered on, click the VM's name, and then in the &amp;quot;Components&amp;quot; section, click on the VM entry (not the network). Click the gear icon that appears to the right of the VM entry to display a context menu.&lt;br /&gt;
&lt;br /&gt;
To access a VM, you can use a browser, or you can use VMware's Remote Console (VMRC). Using a browser to access the VM is quick and easy, but it won't allow for copy/pasting from your host computer. To use the browser, click &amp;quot;Connect to Remote Console&amp;quot; in the context menu.&lt;br /&gt;
&lt;br /&gt;
To use VMware's Remote Console, click &amp;quot;Connect using VMRC&amp;quot;. A new browser tab will open with a link for connecting to the VM. If you haven't used VMRC before, click the &amp;quot;Download VMRC&amp;quot; link and follow the instructions for your operating system. Once VMRC is installed, you can click the &amp;quot;Connect to console using VMRC&amp;quot; to open your VM using the VMRC application.&lt;br /&gt;
&lt;br /&gt;
==== Access Outside of RLES ====&lt;br /&gt;
You can request that your VM be accessible outside of RLES. To do so, send an email to gccisit@rit.edu that includes:&lt;br /&gt;
&lt;br /&gt;
# The '''name of your VM''' (e.g. &amp;quot;ubuntu-1234&amp;quot;)&lt;br /&gt;
# What '''port(s)''' your web server is listening on (e.g. 80, 443, 3000, etc.)&lt;br /&gt;
# What '''hostname''' you want in DNS (e.g. &amp;quot;awesome-site&amp;quot;, which will become &amp;quot;awesome-site.webdev.gccis.rit.edu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Once the setup is complete, you'll be able to access your site from any browser outside of RLES at:&amp;lt;blockquote&amp;gt;https://[hostname].webdev.gccis.rit.edu&amp;lt;/blockquote&amp;gt;Note that a TLS certificate is automatically added by the RLES proxy, so you'll access your site over HTTPS even though you haven't configured your web server for it.&lt;br /&gt;
&lt;br /&gt;
You can SSH into your VM too, but you must be on the RIT network to do so (note that there'll be a custom port for each VM):&amp;lt;blockquote&amp;gt;ssh [username]@[hostname].webdev.gccis.rit.edu -p[port]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Group Work====&lt;br /&gt;
You should all be able to see your groups VMs; if, on the Deployments page, you don't see a VM that someone else in your group created, click the filter icon next to &amp;quot;Deployments&amp;quot; and clear the checkmark next to your name.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
'''VM loses connectivity'''&amp;lt;br&amp;gt;If your VM loses connectivity, try toggling the wired connection: Click the power icon in the top right corner, click &amp;quot;Wired Connected&amp;quot;, and click &amp;quot;Turn Off&amp;quot;. Then again click the power icon, click &amp;quot;Wired Off&amp;quot;, and then &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Freezing'''&amp;lt;br&amp;gt;&lt;br /&gt;
If your VM appears to freeze, try exiting VMRC or your host computer's browser tab, and then reconnect to the VM.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=49</id>
		<title>RLES Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=49"/>
		<updated>2024-01-18T18:22:51Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: /* Access Outside of RLES */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GCCIS's Remote Laboratory Emulation System (RLES; pronounced &amp;quot;are-less&amp;quot;) is a virtual private network that's not accessible to the outside world, with an environment set up just for our class. &lt;br /&gt;
&lt;br /&gt;
==== Getting Started ====&lt;br /&gt;
'''Access RLES at https://rlescloud.rit.edu/'''&lt;br /&gt;
&lt;br /&gt;
Sign in with your RIT computer account credentials.&lt;br /&gt;
&lt;br /&gt;
===== Provisioning a VM =====&lt;br /&gt;
When you first log into RLES, you'll land on the Catalog tab, where you'll see all of the virtual machine images that you have access to. Click on 'Request' to provision a VM instance.&lt;br /&gt;
&lt;br /&gt;
On the next screen, note the option selected in the &amp;quot;Business group&amp;quot; dropdown. If you're going to be using this VM in a group project, make sure your group's name is selected in this dropdown.&lt;br /&gt;
&lt;br /&gt;
Update the &amp;quot;Description&amp;quot; field with a meaningful value. For example, if you're going to use this VM to test out building a LAMP stack for ISTE-444, you could enter a description of &amp;quot;LAMP stack for ISTE-444&amp;quot;. Having useful descriptions will really help you out when you've got multiple VMs provisioned.&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Submit&amp;quot; button to send the request to have your new VM provisioned. It should take a few minutes before the new VM is ready.&lt;br /&gt;
&lt;br /&gt;
Note: RLES VMs only persist for two months (so we don't end up with a ton of unused VMs hanging around). If you need yours longer than two months, you'll have to extend the VM's lease.&lt;br /&gt;
&lt;br /&gt;
===== Accessing a VM =====&lt;br /&gt;
RLES VMs are, by default, only accessible within RLES. To access a VM that you've provisioned, go to the &amp;quot;Deployments&amp;quot; tab and find the entry for the VM that you're looking for.&lt;br /&gt;
&lt;br /&gt;
RLES VMs typically automatically suspend after 6 hours in order to conserve RLES resources, so if the status of your VM is &amp;quot;Off&amp;quot;, click the &amp;quot;Actions&amp;quot; dropdown and choose &amp;quot;Power on deployment&amp;quot; (then click &amp;quot;Submit&amp;quot; on the next screen). It should take a minute or so for the VM to turn back on.&lt;br /&gt;
[[File:RLES VM context menu.png|alt=RLES VM context menu|thumb|RLES VM context menu]]&lt;br /&gt;
&lt;br /&gt;
Once a VM is powered on, click the VM's name, and then in the &amp;quot;Components&amp;quot; section, click on the VM entry (not the network). Click the gear icon that appears to the right of the VM entry to display a context menu.&lt;br /&gt;
&lt;br /&gt;
To access a VM, you can use a browser, or you can use VMware's Remote Console (VMRC). Using a browser to access the VM is quick and easy, but it won't allow for copy/pasting from your host computer. To use the browser, click &amp;quot;Connect to Remote Console&amp;quot; in the context menu.&lt;br /&gt;
&lt;br /&gt;
To use VMware's Remote Console, click &amp;quot;Connect using VMRC&amp;quot;. A new browser tab will open with a link for connecting to the VM. If you haven't used VMRC before, click the &amp;quot;Download VMRC&amp;quot; link and follow the instructions for your operating system. Once VMRC is installed, you can click the &amp;quot;Connect to console using VMRC&amp;quot; to open your VM using the VMRC application.&lt;br /&gt;
&lt;br /&gt;
==== Access Outside of RLES ====&lt;br /&gt;
You can request that your VM be accessible outside of RLES. To do so, send an email to gccisit@rit.edu that includes:&lt;br /&gt;
&lt;br /&gt;
# The '''name of your VM''' (e.g. &amp;quot;ubuntu-1234&amp;quot;)&lt;br /&gt;
# What '''port(s)''' your web server is listening on (e.g. 80, 443, 3000, etc.)&lt;br /&gt;
# What '''hostname''' you want in DNS (e.g. &amp;quot;awesome-site&amp;quot;, which will become &amp;quot;awesome-site.webdev.gccis.rit.edu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Once the setup is complete, you'll be able to access your site from any browser outside of RLES at:&amp;lt;blockquote&amp;gt;https://[hostname].webdev.gccis.rit.edu&amp;lt;/blockquote&amp;gt;Note that a TLS certificate is automatically added by the RLES proxy, so you'll access your site over HTTPS even though you haven't configured your web server for it.&lt;br /&gt;
&lt;br /&gt;
You can SSH into your VM too, but you must be on the RIT network to do so:&amp;lt;blockquote&amp;gt;ssh [username]@[hostname].webdev.gccis.rit.edu -p22004&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Group Work====&lt;br /&gt;
You should all be able to see your groups VMs; if, on the Deployments page, you don't see a VM that someone else in your group created, click the filter icon next to &amp;quot;Deployments&amp;quot; and clear the checkmark next to your name.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
'''VM loses connectivity'''&amp;lt;br&amp;gt;If your VM loses connectivity, try toggling the wired connection: Click the power icon in the top right corner, click &amp;quot;Wired Connected&amp;quot;, and click &amp;quot;Turn Off&amp;quot;. Then again click the power icon, click &amp;quot;Wired Off&amp;quot;, and then &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Freezing'''&amp;lt;br&amp;gt;&lt;br /&gt;
If your VM appears to freeze, try exiting VMRC or your host computer's browser tab, and then reconnect to the VM.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=48</id>
		<title>RLES Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=RLES_Guide&amp;diff=48"/>
		<updated>2024-01-18T18:22:22Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: Added &amp;quot;Access Outside of RLES&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GCCIS's Remote Laboratory Emulation System (RLES; pronounced &amp;quot;are-less&amp;quot;) is a virtual private network that's not accessible to the outside world, with an environment set up just for our class. &lt;br /&gt;
&lt;br /&gt;
==== Getting Started ====&lt;br /&gt;
'''Access RLES at https://rlescloud.rit.edu/'''&lt;br /&gt;
&lt;br /&gt;
Sign in with your RIT computer account credentials.&lt;br /&gt;
&lt;br /&gt;
===== Provisioning a VM =====&lt;br /&gt;
When you first log into RLES, you'll land on the Catalog tab, where you'll see all of the virtual machine images that you have access to. Click on 'Request' to provision a VM instance.&lt;br /&gt;
&lt;br /&gt;
On the next screen, note the option selected in the &amp;quot;Business group&amp;quot; dropdown. If you're going to be using this VM in a group project, make sure your group's name is selected in this dropdown.&lt;br /&gt;
&lt;br /&gt;
Update the &amp;quot;Description&amp;quot; field with a meaningful value. For example, if you're going to use this VM to test out building a LAMP stack for ISTE-444, you could enter a description of &amp;quot;LAMP stack for ISTE-444&amp;quot;. Having useful descriptions will really help you out when you've got multiple VMs provisioned.&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;Submit&amp;quot; button to send the request to have your new VM provisioned. It should take a few minutes before the new VM is ready.&lt;br /&gt;
&lt;br /&gt;
Note: RLES VMs only persist for two months (so we don't end up with a ton of unused VMs hanging around). If you need yours longer than two months, you'll have to extend the VM's lease.&lt;br /&gt;
&lt;br /&gt;
===== Accessing a VM =====&lt;br /&gt;
RLES VMs are, by default, only accessible within RLES. To access a VM that you've provisioned, go to the &amp;quot;Deployments&amp;quot; tab and find the entry for the VM that you're looking for.&lt;br /&gt;
&lt;br /&gt;
RLES VMs typically automatically suspend after 6 hours in order to conserve RLES resources, so if the status of your VM is &amp;quot;Off&amp;quot;, click the &amp;quot;Actions&amp;quot; dropdown and choose &amp;quot;Power on deployment&amp;quot; (then click &amp;quot;Submit&amp;quot; on the next screen). It should take a minute or so for the VM to turn back on.&lt;br /&gt;
[[File:RLES VM context menu.png|alt=RLES VM context menu|thumb|RLES VM context menu]]&lt;br /&gt;
&lt;br /&gt;
Once a VM is powered on, click the VM's name, and then in the &amp;quot;Components&amp;quot; section, click on the VM entry (not the network). Click the gear icon that appears to the right of the VM entry to display a context menu.&lt;br /&gt;
&lt;br /&gt;
To access a VM, you can use a browser, or you can use VMware's Remote Console (VMRC). Using a browser to access the VM is quick and easy, but it won't allow for copy/pasting from your host computer. To use the browser, click &amp;quot;Connect to Remote Console&amp;quot; in the context menu.&lt;br /&gt;
&lt;br /&gt;
To use VMware's Remote Console, click &amp;quot;Connect using VMRC&amp;quot;. A new browser tab will open with a link for connecting to the VM. If you haven't used VMRC before, click the &amp;quot;Download VMRC&amp;quot; link and follow the instructions for your operating system. Once VMRC is installed, you can click the &amp;quot;Connect to console using VMRC&amp;quot; to open your VM using the VMRC application.&lt;br /&gt;
&lt;br /&gt;
==== Access Outside of RLES ====&lt;br /&gt;
You can request that your VM be accessible outside of RLES. To do so, send an email to gccisit@rit.edu that includes:&lt;br /&gt;
&lt;br /&gt;
# The '''name of your VM''' (e.g. &amp;quot;ubuntu-1234&amp;quot;)&lt;br /&gt;
# What '''port(s)''' your web server is listening on (e.g. 80, 443, 3000, etc.)&lt;br /&gt;
# What '''hostname''' you want in DNS (e.g. &amp;quot;awesome-site&amp;quot;, which will become &amp;quot;awesome-site.webdev.gccis.rit.edu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Once the setup is complete, you'll be able to access your site from any browser outside of RLES at:&lt;br /&gt;
&lt;br /&gt;
https://[hostname].webdev.gccis.rit.edu&lt;br /&gt;
&lt;br /&gt;
Note that a TLS certificate is automatically added by the RLES proxy, so you'll access your site over HTTPS even though you haven't configured your web server for it.&lt;br /&gt;
&lt;br /&gt;
You can SSH into your VM too, but you must be on the RIT network to do so:&amp;lt;blockquote&amp;gt;ssh [username]@[hostname].webdev.gccis.rit.edu -p22004&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Group Work====&lt;br /&gt;
You should all be able to see your groups VMs; if, on the Deployments page, you don't see a VM that someone else in your group created, click the filter icon next to &amp;quot;Deployments&amp;quot; and clear the checkmark next to your name.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
'''VM loses connectivity'''&amp;lt;br&amp;gt;If your VM loses connectivity, try toggling the wired connection: Click the power icon in the top right corner, click &amp;quot;Wired Connected&amp;quot;, and click &amp;quot;Turn Off&amp;quot;. Then again click the power icon, click &amp;quot;Wired Off&amp;quot;, and then &amp;quot;Connect&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Freezing'''&amp;lt;br&amp;gt;&lt;br /&gt;
If your VM appears to freeze, try exiting VMRC or your host computer's browser tab, and then reconnect to the VM.&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=Faculty_GitHub_Classroom_Guide&amp;diff=47</id>
		<title>Faculty GitHub Classroom Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=Faculty_GitHub_Classroom_Guide&amp;diff=47"/>
		<updated>2023-04-26T18:52:11Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The iSchool has a GitHub Organization page at https://github.com/RIT-iSchool&lt;br /&gt;
&lt;br /&gt;
[[File:ISchool Organization.png|alt=iSchool Organization]]&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=File:ISchool_Organization.png&amp;diff=46</id>
		<title>File:ISchool Organization.png</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=File:ISchool_Organization.png&amp;diff=46"/>
		<updated>2023-04-26T18:49:43Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;iSchool Organization&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=Faculty_GitHub_Classroom_Guide&amp;diff=45</id>
		<title>Faculty GitHub Classroom Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=Faculty_GitHub_Classroom_Guide&amp;diff=45"/>
		<updated>2023-04-26T18:11:49Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: Created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The iSchool has a GitHub Organization page at https://github.com/RIT-iSchool&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=MediaWiki:Sidebar&amp;diff=44</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=MediaWiki:Sidebar&amp;diff=44"/>
		<updated>2023-04-26T18:09:49Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* Navigation&lt;br /&gt;
** Git_Guide|Git Guide&lt;br /&gt;
** RLES_Guide|RLES Guide&lt;br /&gt;
** Faculty_GitHub_Classroom_Guide|Faculty GitHub Classroom Guide&lt;br /&gt;
* External Pages&lt;br /&gt;
** https://classroom.github.com/classrooms | GitHub Classroom&lt;br /&gt;
** https://rlescloud.main.ad.rit.edu/vcac/#csp.cs.ui.catalog.list | RLES&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
	<entry>
		<id>https://ischool.gccis.rit.edu/w/index.php?title=Git_Guide&amp;diff=43</id>
		<title>Git Guide</title>
		<link rel="alternate" type="text/html" href="https://ischool.gccis.rit.edu/w/index.php?title=Git_Guide&amp;diff=43"/>
		<updated>2023-04-26T17:44:34Z</updated>

		<summary type="html">&lt;p&gt;Ganskop: Add Git stash info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
=== What is Git? ===&lt;br /&gt;
Git is a distributed version control system used for tracking changes in source code and other files during software development. It was created by Linus Torvalds in 2005 for managing the development of the Linux kernel. Git allows developers to work on a codebase simultaneously and independently, without overwriting each other's changes.&lt;br /&gt;
&lt;br /&gt;
Git is designed to be fast, efficient, and secure. It keeps a complete history of changes made to a project, allowing developers to revert to previous versions if necessary. Git uses a branching model, which enables developers to work on different features or bug fixes in parallel and merge changes back into the main codebase.&lt;br /&gt;
&lt;br /&gt;
Git has become the industry standard for version control and is widely used in software development. It also has a large and active open-source community, which provides a wealth of resources and tools for developers.&lt;br /&gt;
&lt;br /&gt;
Git stores code in repositories (or &amp;quot;repos&amp;quot; [pronounced ree-poe]); you can &amp;quot;check out&amp;quot; a repository to get the latest version of the code.&lt;br /&gt;
&lt;br /&gt;
'''It's important to remember that when we're talking about Git repositories, we're typically talking about ''two'' versions of the repository: one that's running on a server (aka the &amp;quot;remote&amp;quot; or &amp;quot;origin&amp;quot;), such as GitHub, and one that's running on your computer (aka the &amp;quot;local&amp;quot;, which is &amp;quot;cloned&amp;quot; from the remote). When you commit changes to your local repo, those changes are not available to anyone else in your group until you &amp;quot;push&amp;quot; the changes to the remote.'''&lt;br /&gt;
&lt;br /&gt;
=== Access Tokens ===&lt;br /&gt;
In order to access iSchool repos on GitHub Education, you’ll need to create a personal access token, which will be used like a password. [https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token#creating-a-personal-access-token-classic Follow the steps in the GitHub documentation] to create your personal access token. Make sure you save your access token someplace where you'll be able to find it again; once you leave the GitHub page where the token was created, you won't be able to see it there again.&lt;br /&gt;
&lt;br /&gt;
Note that when you're prompted for a password, like when calling &amp;lt;code&amp;gt;git push&amp;lt;/code&amp;gt;, you actually need to enter your access token.&lt;br /&gt;
&lt;br /&gt;
=== Installing Git ===&lt;br /&gt;
If you don’t already have Git on your computer, you’ll need to [https://git-scm.com/book/en/v2/Getting-Started-Installing-Git install it].&lt;br /&gt;
&lt;br /&gt;
== Gitflow==&lt;br /&gt;
This suggested workflow is based on [https://docs.github.com/en/get-started/quickstart/github-flow the GitHub flow].&lt;br /&gt;
&lt;br /&gt;
If you're working on a larger project, especially one with multiple versions in production simultaneously, [https://nvie.com/posts/a-successful-git-branching-model/ check out the branching model from Vincent Driessen].&lt;br /&gt;
&lt;br /&gt;
=== Create and check out the branch ===&lt;br /&gt;
In the GitHub issue, click &amp;quot;Create a branch&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:Create a branch.png|alt=create a branch|313x313px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This will automatically name the branch with the issue's ID and name:&lt;br /&gt;
&lt;br /&gt;
[[File:Branch name.png|alt=branch name|322x322px]]&lt;br /&gt;
&lt;br /&gt;
Then check out the branch in your local repository (where &amp;lt;feature-branch&amp;gt; is the name of the branch, e.g., &amp;quot;4-create-upload-page&amp;quot;). You'll have to fetch first so that the local repo knows that the branch exists.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git fetch&lt;br /&gt;
git checkout &amp;lt;feature-branch&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can create the branch locally, but you should still use the same naming convention. Retrieve the main branch, make sure it's up-to-date (with &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;), and then create your feature branch from that, where &amp;lt;feature-branch&amp;gt; is the ID and name of the GitHub issue, such as &amp;quot;4-create-upload-page&amp;quot;. &amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout main&lt;br /&gt;
git pull&lt;br /&gt;
git checkout -b &amp;lt;feature-branch&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you create a branch through the GitHub issue, it'll automatically be linked with the issue. If you create the branch locally, you'll have to link the branch manually in the GitHub issue:&lt;br /&gt;
&lt;br /&gt;
[[File:Link branch.png|alt=link branch|291x291px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When resuming work on a feature, retrieve your branch:&lt;br /&gt;
&amp;lt;pre&amp;gt;git checkout &amp;lt;feature-branch&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Write Code===&lt;br /&gt;
Do work.&lt;br /&gt;
&lt;br /&gt;
Save changes to your branch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git add .    # only needed if you've added or deleted files&lt;br /&gt;
&lt;br /&gt;
git commit -a -m &amp;quot;&amp;lt;message&amp;gt;&amp;quot; &lt;br /&gt;
git push&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Periodically merge develop into your feature branch. The following is key: it will get whatever was added to develop since you did your last fetch from origin and try to apply your changes in &amp;lt;branch&amp;gt; on top of them, if it can. You need to resolve any conflicts on your branch; that way, we keep develop clean and safe for everyone.&lt;br /&gt;
&lt;br /&gt;
From time to time, repeat these so your branch doesn't get behind. And be sure to ''always'' do this before creating a pull request.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git fetch&lt;br /&gt;
git merge origin/main&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When ready to push to GitHub and create a pull request, do a last review of all of your changes with &amp;lt;code&amp;gt;git diff&amp;lt;/code&amp;gt;. Make sure you didn’t forget any experimental or debugging code, such as log statements. Then commit one last time:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git diff&lt;br /&gt;
&lt;br /&gt;
git commit -a -m &amp;quot;&amp;lt;message&amp;gt;&amp;quot;&lt;br /&gt;
git push&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Push and Review Code ===&lt;br /&gt;
Log into GitHub and create the pull request (PR) to merge the feature branch into main, by clicking the &amp;quot;New pull request&amp;quot; button on the &amp;quot;Branches&amp;quot; page:&lt;br /&gt;
&lt;br /&gt;
[[File:New Pull Request.png|alt=New Pull Request|161x161px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Creating the PR (rather than directly merging the feature branch into main) is important! Doing so:&lt;br /&gt;
&lt;br /&gt;
*provides the visual diff in GitHub of the lines changed, so the work can be reviewed, commented upon, and approved by your group&lt;br /&gt;
*allows for a history of merged PRs in GitHub, so all of the work merged for the PR can be seen in one place; without that, the only option is for commit-by-commit diffs&lt;br /&gt;
*shows the PR(s) in the GitHub project page, so it’s clear what target branches that code has ended up on: [[File:Linked Pull Requests.png|alt=Linked Pull Requests|162x162px]]&lt;br /&gt;
&lt;br /&gt;
==Git Commands Reference==&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git clone&amp;lt;/code&amp;gt;======&lt;br /&gt;
Download a copy of a repository into a new directory.&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git checkout [-b]&amp;lt;/code&amp;gt;======&lt;br /&gt;
Switch to a different branch; specify the -b flag to create a new branch.&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt; ======&lt;br /&gt;
Place new files under version control.&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git status&amp;lt;/code&amp;gt;======&lt;br /&gt;
Show the current state of the working tree (i.e., the files that you’re working on).&lt;br /&gt;
&lt;br /&gt;
Use the -s flag for a shortened view.&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git commit [-am]&amp;lt;/code&amp;gt;======&lt;br /&gt;
Record changes that you’ve made to the repository.&lt;br /&gt;
&lt;br /&gt;
Use the -a flag to automatically include files that you’ve modified or deleted; you’ll still need to use “git add .” to include any new files that you’ve created.&lt;br /&gt;
&lt;br /&gt;
Use the -m flag to include a commit message; best practice is to preface your commit message with the ticket ID for whatever task you’re working on.&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git push&amp;lt;/code&amp;gt;======&lt;br /&gt;
Update the remote repository (i.e., GitHub Classroom) with the changes that you’ve committed to your local repository.&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git merge&amp;lt;/code&amp;gt; ======&lt;br /&gt;
Join two branches together.&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git log&amp;lt;/code&amp;gt;======&lt;br /&gt;
See a history of commits for your current branch.&lt;br /&gt;
&lt;br /&gt;
Use “git log --graph --decorate --oneline” for a concise view.&lt;br /&gt;
&lt;br /&gt;
====== &amp;lt;code&amp;gt;git branch [-D]&amp;lt;/code&amp;gt;======&lt;br /&gt;
See the name of the branch that you’re currently on.&lt;br /&gt;
&lt;br /&gt;
Use the -D flag to delete the branch.&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;======&lt;br /&gt;
Retrieve the latest commits on a branch from a remote repository.&lt;br /&gt;
&lt;br /&gt;
======&amp;lt;code&amp;gt;git fetch&amp;lt;/code&amp;gt;======&lt;br /&gt;
Get the list of available branches from a remote repository; often needed before “git pull”&lt;br /&gt;
&lt;br /&gt;
==gitconfig==&lt;br /&gt;
gitconfig lets you customize your Git behaves in your repositories. There are a couple different places where it can live:&lt;br /&gt;
&lt;br /&gt;
* a file named &amp;lt;code&amp;gt;.gitconfig&amp;lt;/code&amp;gt; (note the leading dot in the name) in your home directory&lt;br /&gt;
**e.g., in &amp;lt;code&amp;gt;C:\Users\&amp;lt;username&amp;gt;\&amp;lt;/code&amp;gt; on Windows or &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;/Users/&amp;lt;username&amp;gt;/&amp;lt;/code&amp;gt;) on macOS/Linux&lt;br /&gt;
** this file is global and will affect all repos on your system&lt;br /&gt;
*a file named &amp;lt;code&amp;gt;config&amp;lt;/code&amp;gt; in the hidden .git directory in your project directory &lt;br /&gt;
** this file is local and only affects the repo that contains it&lt;br /&gt;
**settings in this file override the settings in the global .gitconfig&lt;br /&gt;
&lt;br /&gt;
Include the following in your gitconfig:&lt;br /&gt;
 [user]&lt;br /&gt;
    name = First Last&lt;br /&gt;
    email = username@rit.edu&lt;br /&gt;
 [gui]&lt;br /&gt;
 [alias]&lt;br /&gt;
   st = status -s&lt;br /&gt;
   ci = commit&lt;br /&gt;
   co = checkout&lt;br /&gt;
   df = diff&lt;br /&gt;
   lol = log --graph --decorate --oneline&lt;br /&gt;
   clr = &amp;quot;!f() { git reset --hard &amp;amp;&amp;amp; git clean -f -d; }; f&amp;quot;&lt;br /&gt;
 [diff]&lt;br /&gt;
   tool = vimdiff&lt;br /&gt;
 [push]&lt;br /&gt;
     default = current&lt;br /&gt;
 [color]&lt;br /&gt;
    branch = auto&lt;br /&gt;
    diff = auto&lt;br /&gt;
    status = auto&lt;br /&gt;
 [credential]&lt;br /&gt;
    helper = cache --timeout=604800&lt;br /&gt;
This gitconfig provides a few benefits:&lt;br /&gt;
&lt;br /&gt;
*it sets a bunch of aliases, so, for example, you can just type git co instead of git checkout&lt;br /&gt;
* when pushing a branch to the remote repo, it'll default to the current branch name (which is almost always what you want) so you don't have to specify a remote name&lt;br /&gt;
*it'll cache your password/token for 604,800 seconds (1 week)&lt;br /&gt;
&lt;br /&gt;
==Commit Message Best Practices==&lt;br /&gt;
Short example:&lt;br /&gt;
 PROJ-123 Refactor function foobar() to reduce complexity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Longer example:&lt;br /&gt;
 PROJ-123 Refactor function foobar() to reduce complexity&lt;br /&gt;
 &lt;br /&gt;
 * Remove nested loops&lt;br /&gt;
 * Add meaningful variable names&lt;br /&gt;
 * Convert nested tertiary operators to 'if' statements&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are the general rules to keep in mind when writing a commit message: &lt;br /&gt;
&lt;br /&gt;
#Start each commit message with a ticket number, such as from Jira or Azure DevOps  &lt;br /&gt;
#*This is really important! Branches disappear, but commit messages remain forever&lt;br /&gt;
#*Including the ticket number makes it ''a lot'' easier to figure out which task corresponds to that commit&lt;br /&gt;
#*In the example: &amp;quot;PROJ-123&amp;quot; would correspond to a ticket in Jira or Azure DevOps&lt;br /&gt;
#Include a pithy subject line for each commit; add a longer body for larger commits  &lt;br /&gt;
#*In the longer example: the subject line (the first line) is kept short, and then more details are added in the body&lt;br /&gt;
#Use bullets (asterisks) for the body, when necessary, to clearly indicate all the work done in the commit &lt;br /&gt;
#* In the longer example: three bullets are used to itemize the work that was actually done to refactor the function&lt;br /&gt;
#Separate subject from body with a blank line&lt;br /&gt;
#*In the longer example: see how there's nothing on the second line?&lt;br /&gt;
#Limit the subject line to 80 characters and wrap the body at 80 characters&lt;br /&gt;
#*In the example: even with the ticket number, the total length of the subject line is 56 characters&lt;br /&gt;
#Capitalize the subject line&lt;br /&gt;
#* In the example: the first letter is capitalized in &amp;quot;Refactor&amp;quot;, &amp;quot;Remove&amp;quot;, &amp;quot;Add&amp;quot;, and &amp;quot;Convert&amp;quot;&lt;br /&gt;
#Do not end the subject line with a period&lt;br /&gt;
#*In the example: witness no periods. If the lines in the body grow longer, then it's find to separate sentences with periods or other punctuation&lt;br /&gt;
#Use the imperative mood in the subject line; i.e., write it as a present-tense command.&lt;br /&gt;
#*In the example: it's &amp;quot;Refactor function&amp;quot;, not &amp;quot;Refactored function&amp;quot; or &amp;quot;Refactors function&amp;quot;&lt;br /&gt;
#*When you're reading through commits and determining what will happen if you merge the commit into your branch, you should be able to prepend each commit message with, &amp;quot;If I merge this commit, it'll &amp;lt;commit message&amp;gt;&amp;quot;.   E.g., &amp;quot;If I merge this commit, it'll refactor function foobar() to reduce complexity&amp;quot;&lt;br /&gt;
#Use the body to explain ''what'' and ''why'', not ''how'' &lt;br /&gt;
#*E.g., don't say: &amp;quot;Call  filter_var( $input,  FILTER_SANITIZE_EMAIL )&amp;quot; ''Do'' say: &amp;quot;Sanitize email input to prevent CSS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Most of these rules are taken from Chris Beams. [https://cbea.ms/git-commit/#seven-rules See his blog post] for a more thorough explanation of these rules.&lt;br /&gt;
&lt;br /&gt;
== Git Stash ==&lt;br /&gt;
When you have code that you have modified and you need to switch between branches, but you don't yet want to commit your changes, you can utilize Git's built-in command called 'stash':&lt;br /&gt;
&lt;br /&gt;
Check out [https://git-scm.com/book/en/v2/Git-Tools-Stashing-and-Cleaning Pro Git: Stashing and Cleaning], which is where this info came from.&lt;br /&gt;
&lt;br /&gt;
You can check what the current status is of your git repo vs. your local files by calling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git status &lt;br /&gt;
&lt;br /&gt;
On branch main &lt;br /&gt;
Changes to be committed:&lt;br /&gt;
  (use &amp;quot;git reset HEAD &amp;lt;file&amp;gt;...&amp;quot; to unstage)&lt;br /&gt;
&lt;br /&gt;
    modified:   README.md&lt;br /&gt;
    modified:   src/pages/registration.js&lt;br /&gt;
&lt;br /&gt;
Changes not staged for commit:&lt;br /&gt;
  (use &amp;quot;git add &amp;lt;file&amp;gt;...&amp;quot; to update what will be committed)&lt;br /&gt;
  (use &amp;quot;git checkout -- &amp;lt;file&amp;gt;...&amp;quot; to discard changes in working directory)&lt;br /&gt;
&lt;br /&gt;
    modified:   src/pages/login.js&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then once you have established that there are changes you want to keep track of, stash them:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git stash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you call &amp;lt;code&amp;gt;git status&amp;lt;/code&amp;gt;, you can see that your repo has been reverted and your changes are safely stored away:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git status &lt;br /&gt;
&lt;br /&gt;
# On branch main &lt;br /&gt;
nothing to commit, working directory clean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can have multiple stashes, so make sure you check to see where in the list of stashes this is located:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git stash list &lt;br /&gt;
stash@{0}: WIP on 2-create-registration: 47a498d #2 Add desc to readme&lt;br /&gt;
stash@{1}: WIP on 4-create-upload-page: c264051 #4 Add upload handling &lt;br /&gt;
stash@{2}: WIP on 4-create-upload-page: 21d80a5 #4 Create upload page&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you want to get your stash out of hiding, you use the &amp;lt;code&amp;gt;pop&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git stash pop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And you can specify which stash to retrieve by supplying a stash index:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git stash pop stash@{2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ganskop</name></author>
	</entry>
</feed>