diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 956cdf4..0000000
--- a/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-$__StoryList.tid
diff --git a/tiddlers/content/Contents.tid b/tiddlers/content/Contents.tid
deleted file mode 100644
index a0bac24..0000000
--- a/tiddlers/content/Contents.tid
+++ /dev/null
@@ -1,23 +0,0 @@
-created: 20200702090327462
-modified: 20200702135439557
-tags:
-title: Contents
-type: text/vnd.tiddlywiki
-
-! Labs
-
-<$list filter="[tag[lab]!tag[hidden]sort[title]]">
-<$set name="strippedTitle" filter="[all[current]split[/]last[]]">
-<$link><>$link>
-$set>
-$list>
-
-
-
\ No newline at end of file
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_Adding a Default Main Class.md b/tiddlers/content/labs/lab01/_labs_lab01_Adding a Default Main Class.md
deleted file mode 100644
index 59fe2a0..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_Adding a Default Main Class.md
+++ /dev/null
@@ -1,36 +0,0 @@
-You have been running the `Main` class directly by explicitly selecting that class using the right mouse button. Remember that in Java, any class can have a main method. We will usually have one class that we consider to be the primary 'main' class that we want to run to start our application — we should tell Gradle which class we consider to be the 'main' class in our project.
-
-First, let's explore what happens when we don't set a main class. Try to run the entire project using < Run Project">>. You will probably find that the menu item is disabled since NetBeans recognises that this is not an executable project.
-
-Add the following to the <> file. It should go **inside** the curly braces of the `plugins` section, below the existing line.
-
-```
-id 'application'
-```
-
-This tells Gradle that our project is now an executable application.
-
-We also need to tell Gradle which class is the main class. Add the following to the bottom of the file **below** the plugins section (after the closing curly brace for that section).
-
-```
-mainClassName = 'lab01.Main'
-```
-
-The complete file should look like:
-
-```
-plugins {
- id 'java'
- id 'application'
-}
-
-mainClassName = 'lab01.Main'
-```
-
-Save the file, and left click on the root of the project — switching focus away from the file is enough to get NetBeans to reload the file which is why we are clicking the project root.
-
-You should now be able to run the project using < Run Project">>. The big green run button on the main tool bar will also run the project. You can also use the <> key to run the project.
-
-If you ever find yourself in a situation where Gradle is running the wrong main method, or complaining about a missing file, then it is likely that you have the `mainClassName` property pointing to the wrong class.
-
-You always have the option of explicitly right clicking a file in either the source editor, or the project pane and selecting <> — NetBeans will tell Gradle to run this file instead of using the default main class. The shortcut key for running the currently selected file is < F6">>.
\ No newline at end of file
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_Adding a Default Main Class.md.meta b/tiddlers/content/labs/lab01/_labs_lab01_Adding a Default Main Class.md.meta
deleted file mode 100644
index 8350003..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_Adding a Default Main Class.md.meta
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200705172311317
-modified: 20200705183201957
-section: 4.1
-tags: lab01
-title: /labs/lab01/Adding a Default Main Class
-type: text/x-markdown
\ No newline at end of file
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_Document Conventions.tid b/tiddlers/content/labs/lab01/_labs_lab01_Document Conventions.tid
deleted file mode 100644
index 555c9b5..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_Document Conventions.tid
+++ /dev/null
@@ -1,34 +0,0 @@
-created: 20200703064817063
-modified: 20200703083635773
-section: 1.4
-tags: lab01
-title: /labs/lab01/Document Conventions
-type: text/x-markdown
-
-The lab documents will use the following conventions:
-
-* Inline code (code that appears in the middle of a sentence) `looks like this`.
-
-* When we want you to perform an action in a user interface, such as selecting a menu it will look like: < New File > Java > Java Class">>, or if it is a single action: <>
-
-* If we want you to enter a keyboard shortcut command: < Space">>.
-
-* When we are referring to paths or folders/files on disk it will look like: <>.
-
-* Blocks of code look like:
-
- ```java
- public static void main(String[] args) {
- System.out.println("Hello World");
- }
- ```
-
-* Many operations in NetBeans are performed by right clicking the root folder of the project in the project pane. This will be abbreviated to <> which is short for 'right click the project'.
-
-* We will often describe a task that needs to be completed and then provide additional details on how you should go about completing that task. Students sometimes get confused because they stop at the "what" part of the task, before getting to the "how" part. If something is confusing then keep reading — you might not have got to the "how" part yet.
-
-* The INFO202 lab documents can be quite long.
-
- When introducing new concepts we try to provide all of the information that you will need to both understand and complete a task. There is a lot of material in these documents that explains the "what" and "why" part of a task rather than just the "how".
-
- The instructions will become less detailed as the course progresses. Basically, once you have learned a concept then there is no need for us to explain it again. We will just give you the "what" and leave the "how" and "why" up to you (we will refer you back to the documents that provide the "how" and "why" where needed).
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Create a Project.md b/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Create a Project.md
deleted file mode 100644
index 757c71f..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Create a Project.md
+++ /dev/null
@@ -1,25 +0,0 @@
-We will start with a simple Java project that prints 'hello world' to the ouput console. We created this project in INFO201 too, but this time we will be using it to explore NetBeans and Gradle a lot more that we did in INFO201.
-
-1. Start NetBeans 11. It should appear in the <> section of the application menu (the blue cross at the bottom left of the screen).
-
-2. Create a new Gradle project using < New Project > Java with Gradle > Java Application" >>.
-
- We will be looking into Gradle a bit more in the next section.
-
-3. Click <>.
-
-4. Add a <>. Using `lab01` would be a good choice. This name will be turned into a folder, so it is a good idea to stick to single words with no spaces and all lowercase to avoid problems later on.
-
- NetBeans will default to storing the project in a folder named <>. That location is fine for this week. We will create a proper repository folder next week.
-
-5. Click <>. Note that NetBeans needs to generate a lot of index files when you create your very first project. It might take a minute or two to complete this. These index files are used to provide the code completion features that we will be using in a later section.
-
-6. NetBeans will have generated a `Main` class for you that contains an empty `main` method. It can be a little bit confusing having both a method and a class with the same name. You should know enough from COMP160 to be able to distinguish between the class and the method. The standard [naming conventions](#/labs/lab01/Naming%20Conventions) can help here — the class starts with a a captital `M` and the method starts with a lowercase `m`.
-
- Add the code that prints `hello world` to the output console.
-
- {{$:/core/images/tip}} Tip: You can use a template — type `sout` and hit < Space">>. We will show you how to view the list of templates later in this lab.
-
-8. Run the class. Right click the class (either in the project pane, or the background of the source window) and select <>. You can also use the < F6">> key shortcut to run the file.
-
- You should see your message appear in the output console.
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Create a Project.md.meta b/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Create a Project.md.meta
deleted file mode 100644
index 716a693..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Create a Project.md.meta
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200703090720106
-modified: 20200703101525428
-section: 3
-tags: lab01
-title: /labs/lab01/Exercise: Create a Project
-type: text/x-markdown
\ No newline at end of file
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Debugging.md b/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Debugging.md
deleted file mode 100644
index 8da33a4..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Debugging.md
+++ /dev/null
@@ -1,42 +0,0 @@
-Sometimes you find yourself in the situation where you are getting an error while your program is running and you can’t figure out what is causing the problem.
-
-One approach to helping you figure out what is causing the problem is to put lots of `System.out.println` statements in your code to print out the value of variables and show the path that the execution takes through your code.
-
-A better solution is to use a debugger.
-
-1. Add the following code to your main method (delete everything else in the method):
-
- ```java
- for(int i=0; i<10; i++) {
- int x = i * 2;
- System.out.println(x);
- }
- ```
-
-2. Click on the line number to the left of the line of code that starts with `int x`.
-
- You should see a little red square appear where you clicked and the line will be highlighted red.
-
- This is what we call a break point. This will tell the debugger that we want it to stop the program at this point so that we can have a look at the internals of the program.
-
-3. Right click in the editor and select <>.
-
- This will start the debugger. The program will run until it hits the break point and then pause. You can tell which line of code the debugger has stopped at since it will be highlighted green.
-
-4. Hold your cursor over the `i` variable. You should see a tool-tip containing the current value of `i`.
-
-5. Notice that there are several new icons on the main toolbar when you are running the
-debugger. These are for controlling how the debugger will execute your program.
-
- Find the *Step Over* icon on the main toolbar. This will advance the execution to the next line.
-
-6. Keep clicking *Step Over* and notice how the execution cycles through your loop.
-
- Hold your cursor over the i and x variables and notice how the value changes.
-
-7. Open the local variables pane from < Debugging">> . This pane will show you all of the variables and their values.
-
-If you have a variable that is an object then you can drill down into the object to examine its
-contents.
-
-**Try to remember to use the debugger — if your program isn’t working the way you intended it to then the debugger will definitely help you figure out why.**
\ No newline at end of file
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Debugging.md.meta b/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Debugging.md.meta
deleted file mode 100644
index 31c9d97..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Debugging.md.meta
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200705191108083
-modified: 20200705192040793
-section: 6
-tags: lab01
-title: /labs/lab01/Exercise: Debugging
-type: text/x-markdown
\ No newline at end of file
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Exploring Gradle.md b/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Exploring Gradle.md
deleted file mode 100644
index 1539216..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Exploring Gradle.md
+++ /dev/null
@@ -1,22 +0,0 @@
-As you may remember from INFO201, NetBeans is just a fancy code editor. NetBeans delegates to a build tool to compile and run your projects. There are a bunch of build tools available for Java, and NetBeans supports several of them (Maven, Ant, and Gradle) — we will be using Gradle, since it is the most modern of the available tools. Maven and Gradle are the dominant build tools that you are likely to encounter when working with Java.
-
-Let's take a closer look at the Gradle build file. Expand <> in the project pane. You will see the <> file that NetBeans generated for you when you created the project.
-
-Delete all of the code in that file and replace it with the following:
-
-```
-plugins {
- id 'java'
-}
-```
-This is the bare minimum that we need to create a Java project using Gradle. Gradle supports many other programming languages and environments, so we at least need to tell what environment we are using so that it knows how to compile the code &mdash in this case, Java.
-
-You should still be able to run your `Main` class to display the 'hello world' message.
-
-Gradle has a default project layout, so as long as your files are using this default layout, this minimal build file is enough to allow Gradle to find and compile your code.
-
-You can read about the default project layout at:
-
-
-
-Since we are sticking to the default project layout, all we need in this file is to tell Gradle which sort of project we want — in this case a Java project.
\ No newline at end of file
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Exploring Gradle.md.meta b/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Exploring Gradle.md.meta
deleted file mode 100644
index ee78b49..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Exploring Gradle.md.meta
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200705165754654
-modified: 20200705175038562
-section: 4
-tags: lab01
-title: /labs/lab01/Exercise: Exploring Gradle
-type: text/x-markdown
\ No newline at end of file
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Java Review.md b/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Java Review.md
deleted file mode 100644
index 34c19cb..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Java Review.md
+++ /dev/null
@@ -1,5 +0,0 @@
-You used Java a little bit in INFO201 last semester so hopefully your Java skills are not too rusty. It is important that you get your Java skills back up to a working level ASAP since we cover a lot of material in a short amount of time in INFO202. If you struggle with basic Java then you will fall behind very quickly. We do not reteach Java in this course — we assume that if you passed COMP160 which is a prerequisite for this course then you are competent with basic Java.
-
-We have some review exercises that you can work through to test yourself and remind yourself how Java works. You can find this document in the < Labs">> section of Blackboard. We recommend that you try to complete these exercises over the first couple of weeks of the semester. Feel free to ask for help via email if you get stuck.
-
-Once you complete these exercises your Java skills should be where they need to be to take on INFO202.
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Java Review.md.meta b/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Java Review.md.meta
deleted file mode 100644
index 6d67fb4..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Java Review.md.meta
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200705192108058
-modified: 20200705192336059
-section: 7
-tags: lab01
-title: /labs/lab01/Exercise: Java Review
-type: text/x-markdown
\ No newline at end of file
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Making NetBeans Work For You.md b/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Making NetBeans Work For You.md
deleted file mode 100644
index 9cee6dc..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Making NetBeans Work For You.md
+++ /dev/null
@@ -1,79 +0,0 @@
-NetBeans (and IDEs in general) contains many features that help you write code and fix errors quickly. Much of this was covered in INFO201, but you will be a lot more efficient if you learn how to properly use these features, so it is worth going through again.
-
-Create a simple `Student` domain class that contains fields for name and ID:
-
-1. Create the class by right clicking the <> package in the project pane and selecting < Java Class">>. Name the class `Student`, and leave it in the `lab01` package.
-
-2. Start by declaring the two fields.
-
- Remember that a field (which is sometimes called an *attribute*, *property*, or *data field*) is declared at the class level (not inside a method). The declaration will consist of an access modifier (fields are usually `private`), a type (`String`, `Integer`, etc.), and an identifier (which is a name that identifies what the field will contain — in this case `name` or `id` (remember the convention that anything that isn't a class name should start with a lowercase letter).
-
-3. Generate the getters and setters (sometimes called accessors and mutators) using the < Insert Code ">> menu. Most of the items in the source menu are also available in the right click pop-up menu in the source editor.
-
-4. Generate a constructor that initialises both fields using the insert code feature again (using the same < Insert Code ">> menu).
-
-5. Declare another field called papers of type `ArrayList` using the following line of code:
- ```java
- private List papers = new ArrayList<>();
- ```
- You will get an error stating that `ArrayList` and `List` can not be found (hover your cursor over the red squiggly lines to see the error message). This is because you need to import the `java.util` package since that is where these classes are located.
-
- NetBeans will do this for you if you use the < Fix Imports">> menu item.
-
- Notice that there are multiple `List` classes. You will run into this problem frequently — you need to be careful to select the correct version of the class to import otherwise you will get more compiler errors. If you get the wrong one then go up and delete the incorrect `import` statement and try again.
-
-6. Delete the import statement that NetBeans added for you so that you get the same error again.
-
- Notice how there is a light bulb in the bar to the left of the error. This means that NetBeans thinks it knows how to fix this error for you.
-
- Click the light bulb. Examine the options presented to you and choose the best option to solve the problem.
-
- Again, you need to be careful with the *fix code* feature. Sometimes the suggestions that NetBeans makes do not make sense, or sometimes it has multiple suggestions. This feature is only there to save you from having to type so much — it is not there to save you from having to think about what you are doing and you can make a problem much worse if you always select the first option.
-
-7. Delete the `import` statement again and this time build your project using < Clean and Build">>. Notice how the compiler error now appears in the output pane.
-
- The errors are usually linked to the source code so you can click a link in the output pane to jump to the code that caused the error.
-
- Fix the error again using one of the mechanisms that you have just been shown.
-
-8. Use the following instructions to add a `toString` method that returns the name and ID:
-
- Click somewhere in the class (not inside a method) and hit < Insert">> . This is the shortcut for the insert code feature. Select <>.
-
- Select which fields that you want to be returned by the toString method (ID and name).
-
-9. Switch to the `Main` that you created earlier that contains the `main` method.
-
- Add code to the main method that will create an instance of your `Student` class and print out the result of calling the `toString()` method.
-
- If you have forgotten how to create an instance of a class, it looks like this:
- ```java
- // create a string instance
- String badger = new String("honey badger");
- ```
-
- Obviously, this code is creating an instance of `String`. Your code should create an instance of `Student`.
-
- Don’t forget about the `sout` template for generating the code to print to the console.
-
-10. Keep your code formatted nicely using < Shift > f">> or < Format">>.
-
-11. You can comment out a chunk of code by selecting it and using < /">>. The same again will uncomment the code.
-
-12. You might have noticed already that a menu pops up while you are typing in code sometimes. This feature is called code completion. Type `System` then press <> . You should see the pop-up menu that will show you all of the members that the `System` class has available.
-
- You can bring this menu up anytime using < Space">>.
-
-13. Type `sout` and hit < Space">> to complete the template. Delete everything between the brackets (if there is anything). Hit < p">>. This should pop up a menu showing you all of the parameter options that are available for this method. This is useful if you can’t remember which parameters a method accepts, or which order the parameters occur.
-
-14. When working on larger projects where you are working with lots of files you will start having trouble finding the file you are looking for. There are two more keyboard shortcuts that you will find useful:
-
- * < Tab">> and keep the <> key held down: This opens a file switcher that has the open files ordered by last access (the most recently accessed files will be at the top). You can easily navigate this pane using the arrow keys, so it is an effective mechanism to navigate your project without needing to reach for the mouse (which is a good habit to try to develop — you are much faster if you can stick to the keyboard alone).
-
- * You can also use < Tab">> to quickly toggle between two open files. This is useful if you find yourself switching between the same two files a lot which is quite a common occurrence.
-
- * < o">> : Allows you to search for a type (class/interface) by name which can be useful if your project contains a lot of files. Note that your INFO202 course project will contain a lot of files.
-
-15. Take a quick look at < Keyboard Shortcuts Card">> . This should open up a PDF containing the default keyboard shortcuts and templates. Try to learn the keyboard shortcuts for the features that we have used in this lab so far. You will be far more efficient at editing code if you can use the IDE to do most of the heavy lifting for you.
-
- Code that the IDE adds for you will generally be correct, conform to industry standards, and will not contain typos and spelling mistakes.
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Making NetBeans Work For You.md.meta b/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Making NetBeans Work For You.md.meta
deleted file mode 100644
index 184fa1e..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Making NetBeans Work For You.md.meta
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200705181955465
-modified: 20200705191049577
-section: 5
-tags: lab01
-title: /labs/lab01/Exercise: Making NetBeans Work For You
-type: text/x-markdown
\ No newline at end of file
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_Introduction.tid b/tiddlers/content/labs/lab01/_labs_lab01_Introduction.tid
deleted file mode 100644
index 4cb8a2f..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_Introduction.tid
+++ /dev/null
@@ -1,10 +0,0 @@
-created: 20200702091409467
-modified: 20200703100213044
-section: 1
-tags: lab01
-title: /labs/lab01/Introduction
-type: text/vnd.tiddlywiki
-
-Welcome to INFO202. In this course we will build on the knowledge that you gained in previous courses (primarily COMP101, COMP160, and INFO201) to show you how you can create large (compared to what you have done previously) business applications.
-
-This lab is about reintroducing you to some of the tools that we used in INFO201.
\ No newline at end of file
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_Lab 1_ Reintroduction.tid b/tiddlers/content/labs/lab01/_labs_lab01_Lab 1_ Reintroduction.tid
deleted file mode 100644
index 0a4f6ae..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_Lab 1_ Reintroduction.tid
+++ /dev/null
@@ -1,21 +0,0 @@
-created: 20200702091216358
-modified: 20200703092739746
-tags: lab01 lab
-title: /labs/lab01/Lab 1: Reintroduction
-type: text/vnd.tiddlywiki
-
-<$set name="labTag" value="lab01">
-
-Click the <
> button below to open all of the sections for this lab.
-
-!! Contents
-
-<$list filter="[tag!tag[hidden]!tag[lab]sort[section]]">
-<$set name="strippedTitle" filter="[all[current]split[/]last[]]">
-<$link>{{!!section}}. <>$link>
-$set>
-$list>
-
-
-<>
-$set>
\ No newline at end of file
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_Linux Desktop.tid b/tiddlers/content/labs/lab01/_labs_lab01_Linux Desktop.tid
deleted file mode 100644
index 86c9869..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_Linux Desktop.tid
+++ /dev/null
@@ -1,24 +0,0 @@
-created: 20200703045728499
-modified: 20200703050116437
-section: 1.3
-tags: lab01
-title: /labs/lab01/Linux Desktop
-type: text/vnd.tiddlywiki
-
-We will be using the Information Science Linux desktop in lab 3.27 for INFO202.
-
-If you are reading this document from the Windows desktop then reboot and choose the 'Information Science Linux Desktop' option from the boot menu. You can log in with your usual University username and password.
-
-We are using Linux because:
-
-* The performance is usually significantly better than the student desktop. IDEs are extremely sensitive to storage latency due to the indexing required for the code completion features to operate. We have optimised this environment to reduce as much of this latency as possible while still allowing you to store your files on a comparatively slow file server.
-
-* We have more control over the software. We often need to make changes to software during the semester and it can take a long time to go through ITS to make these changes happen in the Windows student desktop.
-
-One downside of using our own Linux desktop is that you currently only have access to it from lab 3.27. We will make sure that you are able to continue working on the Windows student desktop when you don't have access to lab 3.27. NetBeans, Gradle, and most of the other software that we will be using will also be available to you in the student desktop. Most of you will have NetBeans and Gradle installed on your own computers as a result of taking INFO201, so you can continue to use that in INFO202.
-
-Take a couple of minutes to read the 'Lab Information' document on your desktop to familiarise yourself with the Linux environment. Pay particular attention to the following sections since they contain information that you should be aware of:
-
-* Home Folder
-* Accessing your H: Drive
-* Printing
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_Naming Conventions.tid b/tiddlers/content/labs/lab01/_labs_lab01_Naming Conventions.tid
deleted file mode 100644
index d6fe93c..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_Naming Conventions.tid
+++ /dev/null
@@ -1,26 +0,0 @@
-created: 20200703090056774
-modified: 20200703095103922
-section: 2
-tags: lab01
-title: /labs/lab01/Naming Conventions
-type: text/x-markdown
-
-The following are the naming conventions that we want you to use in INFO202. The Java conventions are industry-wide conventions. The other conventions are to help you to avoid common problems with conflicting bits of software.
-
-* Project folders should be single-word (no spaces) and entirely lowercase.
-
- IDEs and build tools like Gradle often use shell commands to performs tasks on your files and shell commands can have problems with paths that contain spaces since spaces are usually treads as separators by these commands.
-
- We will, on occasion, use the command line to perform some actions on the project and you will have problems if your paths contain spaces.
-
- Also remember that Java is case-sensitive and both Windows and macOS only pretend to be case-sensitive. This can cause some weird problems, particularly when you rename folders, so the easiest way to avoid those problems is to stick to all-lower case for folder names. Linux file systems are usually case sensitive, so we can avoid a lot of weird problems by using Linux, however the network file servers that we are using are not-case sensitive, so we still have to be careful.
-
- Please also consider if the parent folder that you are putting your projects into contains any spaces. Putting your projects into the <> folder on Windows is a bad idea for the reasons mentioned above.
-
-* Java classes and interfaces should **always** start with an uppercase letter (which makes them easily distinguishable from other identifiers in your source code).
-
-* All other identifiers: packages, fields, variables, methods; **always** start with a lowercase letter.
-
-* Use camel case (`whereTheWordsAreSeparatedLikeThis`) rather than underscores for **all** identifiers.
-
- This is a standard Java convention and some libraries and tools assume that your classes will use camel case and will not work properly if you don't.
\ No newline at end of file
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_TiddlyWiki.tid b/tiddlers/content/labs/lab01/_labs_lab01_TiddlyWiki.tid
deleted file mode 100644
index 023ead3..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_TiddlyWiki.tid
+++ /dev/null
@@ -1,20 +0,0 @@
-created: 20200702113016814
-modified: 20200703102336509
-section: 1.2
-tags: lab01
-title: /labs/lab01/TiddlyWiki
-type: text/vnd.tiddlywiki
-
-We will be using TiddlyWiki for delivering the lab content in INFO202. You saw this in INFO201 so the following is a quick refresher:
-
-* When you have completed a section you can close it with the @@.ou-button-image {{$:/core/images/close-button}}@@ button at the top right of each section.
-* You can save the current state of your progress by clicking the @@.ou-button-image {{$:/core/images/permaview-button}}@@ icon on the side bar to the right. This will change the URL to include the state which you can then bookmark. If you open the bookmark the page will reappear in the exact state that you left it in.
-* You can reset back to the original state using the @@.ou-button-image
- {{$:/core/images/home-button}}@@ icon on the side bar on the right. This will close all open sections, so you will lose your progress.
-* You can reopen a closed section by clicking its link in the 'Contents' section.
-* There is a search box in the side bar on the right that can search the entire document. The search was a bit broken in the INFO201 version of the labs document, but we have fixed this problem for INFO202.
-* If you want a printed copy of this document, first reset the document back to its default state by clicking the @@.ou-button-image {{$:/core/images/home-button}}@@ home button and then the <> button to open all of the sections, then click the @@.ou-button-image {{$:/core/images/print-button}}@@ button on the side bar on the right to print the document in is current state.
-* You can show and hide the side bar using the @@.ou-button-image
- {{$:/core/images/chevron-right}}@@ button at the top right of the document.
-* You can download a copy of this document using the @@.ou-button-image
- {{$:/core/images/save-button}}@@ icon on the side bar on the right. Note that this is the only proper way to save the document. Using the browser's 'save page' feature will likely result in a corrupted document.
\ No newline at end of file
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_Using Gradle directly.md b/tiddlers/content/labs/lab01/_labs_lab01_Using Gradle directly.md
deleted file mode 100644
index 9fe0b11..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_Using Gradle directly.md
+++ /dev/null
@@ -1,38 +0,0 @@
-Now that we have an application project with a main class, we can use Gradle directly without using NetBeans. Gradle is a command line application, so you will need to use the terminal:
-
-1. Open your project folder in the file manager. The easiest way to do this is using < Open in File Manager">> .
-
-2. In the file manager, right click the background and select <>.
-
-3. Enter the following into the terminal:
-
- ```
- gradle run
- ```
- You will see the 'hello world' message appear in the terminal.
-
-4. Gradle is smart enough to know that it needs to first compile the code before running it, but only if necessary (Gradle will try to avoid compiling code has already been compiled and has not changed). Run the command again, but this time we will get it to tell us exactly what is going on by using the `-info` option:
- ```
- gradle -info run
- ```
-
- You will see that the `:compileJava` task is `UP-TO-DATE`, meaning that it does not need to compile the classes to run the application.
-
-5. Let's clean the project to remove the compiled classes:
- ```
- gradle clean
- ```
-
-6. Build the project again:
- ```
- gradle -info run
- ```
- This time you will see that the `:compileJava` task is not up to date, so Gradle will compile the classes before running the project.
-
-7. Enter `exit` to exit the terminal.
-
-Note that NetBeans was not involved here at all — we were interacting directly with the build tool (Gradle), rather than getting NetBeans to do that for us.
-
-Hopefully you can see now why build tools like Gradle are very useful. You can use any IDE (assuming it has Gradle support, which it almost certainly will), or if you are one of those stubborn masochists who refuses to give up your favourite text editor (Vim and Emacs are both installed on the lab machines btw) you can perform all build operations from the command line.
-
-If you are struggling to see the benefits — think team development. If you use Gradle projects then each team member can use their preferred IDE or editor without forcing their preferences on other team members.
\ No newline at end of file
diff --git a/tiddlers/content/labs/lab01/_labs_lab01_Using Gradle directly.md.meta b/tiddlers/content/labs/lab01/_labs_lab01_Using Gradle directly.md.meta
deleted file mode 100644
index ee8bd6a..0000000
--- a/tiddlers/content/labs/lab01/_labs_lab01_Using Gradle directly.md.meta
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200705175153821
-modified: 20200705181933526
-section: 4.1
-tags: lab01
-title: /labs/lab01/Using Gradle directly
-type: text/x-markdown
\ No newline at end of file
diff --git a/tiddlers/system/macros/$__ou_macros_EditMode.tid b/tiddlers/system/macros/$__ou_macros_EditMode.tid
deleted file mode 100644
index 7d71ecb..0000000
--- a/tiddlers/system/macros/$__ou_macros_EditMode.tid
+++ /dev/null
@@ -1,24 +0,0 @@
-created: 20200702100633703
-modified: 20200705195631007
-tags: $:/tags/Macro
-title: $:/ou/macros/EditMode
-type: text/vnd.tiddlywiki
-
-\define editMode()
-<$fieldmangler tiddler="$:/core/ui/SideBar/More">
-<$action-sendmessage $message="tm-add-tag" $param="$:/tags/SideBar"/>
-$fieldmangler>
-<$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-tiddler" text="show"/>
-<$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/edit" text="show"/>
-<$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions" text="show"/>
-\end
-
-\define publishMode()
-<$fieldmangler tiddler="$:/core/ui/SideBar/More">
-<$action-sendmessage $message="tm-remove-tag" $param="$:/tags/SideBar"/>
-$fieldmangler>
-<$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-tiddler" text="hide"/>
-<$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/edit" text="hide"/>
-<$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions" text="hide"/>
-\end
-
diff --git a/tiddlers/system/macros/$__ou_macros_MenuKeys.tid b/tiddlers/system/macros/$__ou_macros_MenuKeys.tid
deleted file mode 100644
index abb188d..0000000
--- a/tiddlers/system/macros/$__ou_macros_MenuKeys.tid
+++ /dev/null
@@ -1,53 +0,0 @@
-created: 20200703065308466
-modified: 20200703103856073
-tags: $:/tags/Macro
-title: $:/ou/macros/MenuKeys
-type: text/vnd.tiddlywiki
-
-\define keys(path)
-<$list filter="[[$path$]split[>]trim[]first[]]">
-<>
-$list>
-<$list filter="[[$path$]split[>]trim[]rest[]]">
-ᚐ <>
-$list>
-\end
-
-\define menu(path)
-<$list filter="[[$path$]split[>]trim[]first[]]">
-<>
-$list>
-<$list filter="[[$path$]split[>]trim[]rest[]]">
-❭ <>
-$list>
-\end
-
-\define path(path)
-{{$:/core/images/folder}} $path$
-\end
-
-
-!Usage:
-
-!!UI navigation
-```
-< New File > Blob" >>
-```
-< New File > Blob" >>
-
-!! Keyboard shortcuts
-```
-< Alt > 7" >>
-```
-< Alt > 7" >>
-
-!! Paths
-```
-<>
-```
-<>
-
-You can use both forward and back slashes, and colons in the path, so can represent file paths in all operating systems:
-
-<>
-<>
\ No newline at end of file
diff --git a/tiddlers/system/macros/$__ou_macros_OpenByFilter.tid b/tiddlers/system/macros/$__ou_macros_OpenByFilter.tid
deleted file mode 100644
index d0d85dd..0000000
--- a/tiddlers/system/macros/$__ou_macros_OpenByFilter.tid
+++ /dev/null
@@ -1,16 +0,0 @@
-created: 20200702092958496
-modified: 20200702110313440
-tags: $:/tags/Macro
-title: $:/ou/macros/OpenByFilter
-type: text/vnd.tiddlywiki
-
-\define openByFilter(filter)
-<$button>
-Open All
-<$list filter=$filter$>
-<$action-navigate $to={{!!title}}/>
-$list>
-$button>
-\end
-
-Opens all tiddlers matching the given filter.
diff --git a/tiddlers/system/macros/$__ou_macros_SortedTree.tid b/tiddlers/system/macros/$__ou_macros_SortedTree.tid
deleted file mode 100644
index d5eada2..0000000
--- a/tiddlers/system/macros/$__ou_macros_SortedTree.tid
+++ /dev/null
@@ -1,60 +0,0 @@
-created: 20200702112112330
-modified: 20200703005650408
-tags: $:/tags/Macro
-title: $:/ou/macros/SortedTree
-type: text/vnd.tiddlywiki
-
-\define sorted-leaf-link(full-title,chunk,separator: "/")
-<$link to=<<__full-title__>>><$text text=<<__chunk__>>/>$link>
-\end
-
-\define sorted-leaf-node(prefix,chunk)
-
-<$list filter="[<__prefix__>addsuffix<__chunk__>is[shadow]] [<__prefix__>addsuffix<__chunk__>is[tiddler]]" variable="full-title">
-<$list filter="[removeprefix<__prefix__>]" variable="chunk">
-{{$:/core/images/file}} <$macrocall $name="sorted-leaf-link" full-title=<> chunk=<>/>
-$list>
-$list>
-
-\end
-
-\define sorted-branch-node(prefix,chunk,separator: "/")
-
-<$set name="reveal-state" value={{{ [[$:/state/tree/]addsuffix<__prefix__>addsuffix<__chunk__>] }}}>
-<$reveal type="nomatch" stateTitle=<> text="show">
-<$button setTitle=<> setTo="show" class="tc-btn-invisible">
-{{$:/core/images/folder}} <$text text=<<__chunk__>>/>
-$button>
-$reveal>
-<$reveal type="match" stateTitle=<> text="show">
-<$button setTitle=<> setTo="hide" class="tc-btn-invisible">
-{{$:/core/images/folder}} <$text text=<<__chunk__>>/>
-$button>
-$reveal>
-(<$count filter="[all[shadows+tiddlers]removeprefix<__prefix__>removeprefix<__chunk__>] -[<__prefix__>addsuffix<__chunk__>]"/>)
-<$reveal type="match" stateTitle=<> text="show">
-<$macrocall $name="sorted-tree-node" prefix={{{ [<__prefix__>addsuffix<__chunk__>] }}} separator=<<__separator__>>/>
-$reveal>
-$set>
-
-\end
-
-\define sorted-tree-node(prefix,separator: "/")
-
-<$list filter="[all[tiddlers]!has[section]removeprefix<__prefix__>splitbefore<__separator__>sort[]!suffix<__separator__>][all[tiddlers]has[section]removeprefix<__prefix__>splitbefore<__separator__>sort[section]!suffix<__separator__>]" variable="chunk">
-<$macrocall $name="sorted-leaf-node" prefix=<<__prefix__>> chunk=<> separator=<<__separator__>>/>
-$list>
-<$list filter="[all[tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]suffix<__separator__>]" variable="chunk">
-<$macrocall $name="sorted-branch-node" prefix=<<__prefix__>> chunk=<> separator=<<__separator__>>/>
-$list>
-
-\end
-
-\define sorted-tree(prefix: "$:/",separator: "/")
-
-
<$text text=<<__prefix__>>/>
-
-<$macrocall $name="sorted-tree-node" prefix=<<__prefix__>> separator=<<__separator__>>/>
-
-
-\end
diff --git a/tiddlers/system/shadows/$__DefaultTiddlers.tid b/tiddlers/system/shadows/$__DefaultTiddlers.tid
deleted file mode 100644
index d6e8911..0000000
--- a/tiddlers/system/shadows/$__DefaultTiddlers.tid
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200702090658899
-modified: 20200702090700113
-title: $:/DefaultTiddlers
-type: text/vnd.tiddlywiki
-
-Contents
\ No newline at end of file
diff --git a/tiddlers/system/shadows/$__SiteSubtitle.tid b/tiddlers/system/shadows/$__SiteSubtitle.tid
deleted file mode 100644
index 33d1b2e..0000000
--- a/tiddlers/system/shadows/$__SiteSubtitle.tid
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200702085120796
-modified: 20200702085142879
-title: $:/SiteSubtitle
-type: text/vnd.tiddlywiki
-
-Coursework
\ No newline at end of file
diff --git a/tiddlers/system/shadows/$__SiteTitle.tid b/tiddlers/system/shadows/$__SiteTitle.tid
deleted file mode 100644
index 3823175..0000000
--- a/tiddlers/system/shadows/$__SiteTitle.tid
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200702085059173
-modified: 20200702085117297
-title: $:/SiteTitle
-type: text/vnd.tiddlywiki
-
-INFO202
\ No newline at end of file
diff --git a/tiddlers/system/shadows/$__config_MissingLinks.tid b/tiddlers/system/shadows/$__config_MissingLinks.tid
deleted file mode 100644
index 6c8d526..0000000
--- a/tiddlers/system/shadows/$__config_MissingLinks.tid
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200702085429508
-modified: 20200702085429522
-title: $:/config/MissingLinks
-type: text/vnd.tiddlywiki
-
-no
\ No newline at end of file
diff --git a/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_control-panel.tid b/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_control-panel.tid
deleted file mode 100644
index 17c7c68..0000000
--- a/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_control-panel.tid
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200702085728018
-modified: 20200702085728027
-title: $:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/control-panel
-type: text/vnd.tiddlywiki
-
-hide
\ No newline at end of file
diff --git a/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_home.tid b/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_home.tid
deleted file mode 100644
index 03cd9da..0000000
--- a/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_home.tid
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200702085722156
-modified: 20200702085722168
-title: $:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home
-type: text/vnd.tiddlywiki
-
-show
\ No newline at end of file
diff --git a/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_new-tiddler.tid b/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_new-tiddler.tid
deleted file mode 100644
index 23f5e3c..0000000
--- a/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_new-tiddler.tid
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200705193740311
-modified: 20200705195650023
-title: $:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-tiddler
-type: text/vnd.tiddlywiki
-
-hide
\ No newline at end of file
diff --git a/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_permaview.tid b/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_permaview.tid
deleted file mode 100644
index a4aaa82..0000000
--- a/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_permaview.tid
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200702085720288
-modified: 20200702085720299
-title: $:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview
-type: text/vnd.tiddlywiki
-
-show
\ No newline at end of file
diff --git a/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_print.tid b/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_print.tid
deleted file mode 100644
index 74dc65a..0000000
--- a/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_print.tid
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200702085748738
-modified: 20200702085748748
-title: $:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print
-type: text/vnd.tiddlywiki
-
-show
\ No newline at end of file
diff --git a/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__plugins_tiddlywiki_markdown_new-markdown-button.tid b/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__plugins_tiddlywiki_markdown_new-markdown-button.tid
deleted file mode 100644
index 04fac6b..0000000
--- a/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__plugins_tiddlywiki_markdown_new-markdown-button.tid
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200705193931320
-modified: 20200705193931332
-title: $:/config/PageControlButtons/Visibility/$:/plugins/tiddlywiki/markdown/new-markdown-button
-type: text/vnd.tiddlywiki
-
-hide
\ No newline at end of file
diff --git a/tiddlers/system/shadows/$__config_Tiddlers_TitleLinks.tid b/tiddlers/system/shadows/$__config_Tiddlers_TitleLinks.tid
deleted file mode 100644
index fdb98c1..0000000
--- a/tiddlers/system/shadows/$__config_Tiddlers_TitleLinks.tid
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200702092445451
-modified: 20200702092445462
-title: $:/config/Tiddlers/TitleLinks
-type: text/vnd.tiddlywiki
-
-yes
\ No newline at end of file
diff --git a/tiddlers/system/shadows/$__config_ViewToolbarButtons_Visibility_$__core_ui_Buttons_edit.tid b/tiddlers/system/shadows/$__config_ViewToolbarButtons_Visibility_$__core_ui_Buttons_edit.tid
deleted file mode 100644
index 95a7741..0000000
--- a/tiddlers/system/shadows/$__config_ViewToolbarButtons_Visibility_$__core_ui_Buttons_edit.tid
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200705193740311
-modified: 20200705195650034
-title: $:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/edit
-type: text/vnd.tiddlywiki
-
-hide
\ No newline at end of file
diff --git a/tiddlers/system/shadows/$__config_ViewToolbarButtons_Visibility_$__core_ui_Buttons_more-tiddler-actions.tid b/tiddlers/system/shadows/$__config_ViewToolbarButtons_Visibility_$__core_ui_Buttons_more-tiddler-actions.tid
deleted file mode 100644
index e6b890d..0000000
--- a/tiddlers/system/shadows/$__config_ViewToolbarButtons_Visibility_$__core_ui_Buttons_more-tiddler-actions.tid
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200705193740312
-modified: 20200705195650043
-title: $:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions
-type: text/vnd.tiddlywiki
-
-hide
\ No newline at end of file
diff --git a/tiddlers/system/shadows/$__config_WikiParserRules_Inline_wikilink.tid b/tiddlers/system/shadows/$__config_WikiParserRules_Inline_wikilink.tid
deleted file mode 100644
index 9f75603..0000000
--- a/tiddlers/system/shadows/$__config_WikiParserRules_Inline_wikilink.tid
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200702085414247
-modified: 20200702085414262
-title: $:/config/WikiParserRules/Inline/wikilink
-type: text/vnd.tiddlywiki
-
-disable
\ No newline at end of file
diff --git a/tiddlers/system/shadows/$__config_markdown_typographer.tid b/tiddlers/system/shadows/$__config_markdown_typographer.tid
deleted file mode 100644
index 8488aaa..0000000
--- a/tiddlers/system/shadows/$__config_markdown_typographer.tid
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200705183110896
-modified: 20200705183113173
-title: $:/config/markdown/typographer
-type: text/vnd.tiddlywiki
-
-true
\ No newline at end of file
diff --git a/tiddlers/system/shadows/$__core_ui_SideBar_More.tid b/tiddlers/system/shadows/$__core_ui_SideBar_More.tid
deleted file mode 100644
index a84243b..0000000
--- a/tiddlers/system/shadows/$__core_ui_SideBar_More.tid
+++ /dev/null
@@ -1,9 +0,0 @@
-caption: {{$:/language/SideBar/More/Caption}}
-created: 20200705194418663
-modified: 20200705195650052
-title: $:/core/ui/SideBar/More
-type: text/vnd.tiddlywiki
-
-
\ No newline at end of file
diff --git a/tiddlers/system/shadows/$__core_ui_SideBar_Recent.tid b/tiddlers/system/shadows/$__core_ui_SideBar_Recent.tid
deleted file mode 100644
index 41da52d..0000000
--- a/tiddlers/system/shadows/$__core_ui_SideBar_Recent.tid
+++ /dev/null
@@ -1,7 +0,0 @@
-caption: {{$:/language/SideBar/Recent/Caption}}
-created: 20200705194505595
-modified: 20200705194505689
-title: $:/core/ui/SideBar/Recent
-type: text/vnd.tiddlywiki
-
-<$macrocall $name="timeline" format={{$:/language/RecentChanges/DateFormat}}/>
diff --git a/tiddlers/system/shadows/$__core_ui_SideBar_Tools.tid b/tiddlers/system/shadows/$__core_ui_SideBar_Tools.tid
deleted file mode 100644
index 685556c..0000000
--- a/tiddlers/system/shadows/$__core_ui_SideBar_Tools.tid
+++ /dev/null
@@ -1,34 +0,0 @@
-caption: {{$:/language/SideBar/Tools/Caption}}
-created: 20200705194515493
-modified: 20200705194515641
-title: $:/core/ui/SideBar/Tools
-type: text/vnd.tiddlywiki
-
-\define lingo-base() $:/language/ControlPanel/
-\define config-title()
-$:/config/PageControlButtons/Visibility/$(listItem)$
-\end
-
-<> <>
-
-<$set name="tv-config-toolbar-icons" value="yes">
-
-<$set name="tv-config-toolbar-text" value="yes">
-
-<$set name="tv-config-toolbar-class" value="">
-
-<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]" variable="listItem">
-
-encodeuricomponent[]addprefix[tc-btn-]] }}}>
-
-<$checkbox tiddler=<> field="text" checked="show" unchecked="hide" default="show"/> <$transclude tiddler=<>/> <$transclude tiddler=<> field="description"/>
-
-
-
-$list>
-
-$set>
-
-$set>
-
-$set>
diff --git a/tiddlers/system/shadows/$__core_ui_ViewTemplate_subtitle.tid b/tiddlers/system/shadows/$__core_ui_ViewTemplate_subtitle.tid
deleted file mode 100644
index 4bb4d6b..0000000
--- a/tiddlers/system/shadows/$__core_ui_ViewTemplate_subtitle.tid
+++ /dev/null
@@ -1,12 +0,0 @@
-created: 20200702103011064
-modified: 20200702103011161
-title: $:/core/ui/ViewTemplate/subtitle
-type: text/vnd.tiddlywiki
-
-\whitespace trim
-<$reveal type="nomatch" stateTitle=<> text="hide" tag="div" retain="yes" animate="yes">
-
-<$link to={{!!modifier}} />
-<$view field="modified" format="date" template={{$:/language/Tiddler/DateFormat}}/>
-
-$reveal>
diff --git a/tiddlers/system/shadows/$__core_ui_ViewTemplate_tags.tid b/tiddlers/system/shadows/$__core_ui_ViewTemplate_tags.tid
deleted file mode 100644
index 98005fe..0000000
--- a/tiddlers/system/shadows/$__core_ui_ViewTemplate_tags.tid
+++ /dev/null
@@ -1,8 +0,0 @@
-created: 20200702103044361
-modified: 20200702103044458
-title: $:/core/ui/ViewTemplate/tags
-type: text/vnd.tiddlywiki
-
-<$reveal type="nomatch" stateTitle=<> text="hide" tag="div" retain="yes" animate="yes">
-<$list filter="[all[current]tags[]sort[title]]" template="$:/core/ui/TagTemplate" storyview="pop"/>
-$reveal>
diff --git a/tiddlers/system/shadows/$__core_ui_ViewTemplate_title.tid b/tiddlers/system/shadows/$__core_ui_ViewTemplate_title.tid
deleted file mode 100644
index 5157afa..0000000
--- a/tiddlers/system/shadows/$__core_ui_ViewTemplate_title.tid
+++ /dev/null
@@ -1,60 +0,0 @@
-created: 20200702104128510
-modified: 20200702134809674
-tags: $:/tags/ViewTemplate
-title: $:/core/ui/ViewTemplate/title
-type: text/vnd.tiddlywiki
-
-\define title-styles()
-fill:$(foregroundColor)$;
-\end
-\define config-title()
-$:/config/ViewToolbarButtons/Visibility/$(listItem)$
-\end
-
-
-
-<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]" variable="listItem"><$reveal type="nomatch" state=<> text="hide"><$set name="tv-config-toolbar-class" filter="[] [encodeuricomponent[]addprefix[tc-btn-]]"><$transclude tiddler=<>/>$set>$reveal>$list>
-
-<$set name="tv-wikilinks" value={{$:/config/Tiddlers/TitleLinks}}>
-<$link>
-<$set name="foregroundColor" value={{!!color}}>
->>
-<$transclude tiddler={{!!icon}}/>
-
-$set>
-
-
-<$list filter="[all[current]!has[section]removeprefix[$:/]]">
-
-$:/ <$text text=<>/>
-
-$list>
-
-
-<$list filter="[all[current]!has[section]!prefix[$:/]]">
-
-<$set name="strippedTitle" filter="[all[current]split[/]last[]]">
-<>
-$set>
-
-$list>
-
-
-<$list filter="[all[current]has[section]]">
-
-<$set name="strippedTitle" filter="[all[current]split[/]last[]]">
-<$view field="section"/>. <>
-$set>
-
-$list>
-
-$link>
-$set>
-
-
-<$reveal type="nomatch" text="" default="" state=<
> class="tc-tiddler-info tc-popup-handle" animate="yes" retain="yes">
-
-<$list filter="[all[shadows+tiddlers]tag[$:/tags/TiddlerInfoSegment]!has[draft.of]] [[$:/core/ui/TiddlerInfo]]" variable="listItem"><$transclude tiddler=<> mode="block"/>$list>
-
-$reveal>
-
\ No newline at end of file
diff --git a/tiddlers/system/shadows/$__language_Snippets_TableOfContents.tid b/tiddlers/system/shadows/$__language_Snippets_TableOfContents.tid
deleted file mode 100644
index 146616c..0000000
--- a/tiddlers/system/shadows/$__language_Snippets_TableOfContents.tid
+++ /dev/null
@@ -1,11 +0,0 @@
-caption: Table of Contents
-created: 20200702094536792
-modified: 20200702094536853
-title: $:/language/Snippets/TableOfContents
-type: text/vnd.tiddlywiki
-
-
-
-<>
-
-
\ No newline at end of file
diff --git a/tiddlers/system/shadows/$__themes_tiddlywiki_vanilla_options_sidebarlayout.tid b/tiddlers/system/shadows/$__themes_tiddlywiki_vanilla_options_sidebarlayout.tid
deleted file mode 100644
index 7c1d091..0000000
--- a/tiddlers/system/shadows/$__themes_tiddlywiki_vanilla_options_sidebarlayout.tid
+++ /dev/null
@@ -1,6 +0,0 @@
-created: 20200702085344572
-modified: 20200702085344586
-title: $:/themes/tiddlywiki/vanilla/options/sidebarlayout
-type: text/vnd.tiddlywiki
-
-fluid-fixed
\ No newline at end of file
diff --git a/tiddlers/system/snippets/$__ou_snippets_TableOfContents.tid b/tiddlers/system/snippets/$__ou_snippets_TableOfContents.tid
deleted file mode 100644
index f8cd3a1..0000000
--- a/tiddlers/system/snippets/$__ou_snippets_TableOfContents.tid
+++ /dev/null
@@ -1,18 +0,0 @@
-caption: Table of Contents
-created: 20200702091026430
-modified: 20200702110434742
-tags: $:/tags/TextEditor/Snippet
-title: $:/ou/snippets/TableOfContents
-type: text/vnd.tiddlywiki
-
-<$set name="labTag" value="labXX">
-
-!! Contents
-
-<$list filter="[tag!tag[hidden]!tag[lab]sort[section]]">
-<$link>{{!!section}}. {{!!alias}}$link>
-$list>
-
-
-<>
-$set>
\ No newline at end of file
diff --git a/tiddlers/system/styles/$__ou_styles_ButtonImage.css b/tiddlers/system/styles/$__ou_styles_ButtonImage.css
deleted file mode 100644
index 4113d30..0000000
--- a/tiddlers/system/styles/$__ou_styles_ButtonImage.css
+++ /dev/null
@@ -1,17 +0,0 @@
-/* used for displaying icons inline */
-.ou-button-image img, .ou-button-image svg {
- width: 1.2em;
- height: auto;
- vertical-align: text-bottom;
-}
-
-kbd {
- vertical-align: 0px;
- max-height:2em;
-}
-
-kbd svg {
- width: auto;
- height: 1.15em;
- padding: 0px !important;
-}
\ No newline at end of file
diff --git a/tiddlers/system/styles/$__ou_styles_ButtonImage.css.meta b/tiddlers/system/styles/$__ou_styles_ButtonImage.css.meta
deleted file mode 100644
index bea900a..0000000
--- a/tiddlers/system/styles/$__ou_styles_ButtonImage.css.meta
+++ /dev/null
@@ -1,5 +0,0 @@
-created: 20200703070355616
-modified: 20200703103503331
-tags: $:/tags/Stylesheet
-title: $:/ou/styles/ButtonImage
-type: text/css
\ No newline at end of file
diff --git a/tiddlers/system/styles/$__ou_styles_Fonts.css b/tiddlers/system/styles/$__ou_styles_Fonts.css
deleted file mode 100644
index 124b77d..0000000
--- a/tiddlers/system/styles/$__ou_styles_Fonts.css
+++ /dev/null
@@ -1,6 +0,0 @@
-@import url('https://fonts.googleapis.com/css?family=Roboto+Condensed&display=swap');
-
-kbd {
- font-family: sans;
- font-family: 'Roboto Condensed', sans-serif;
-}
\ No newline at end of file
diff --git a/tiddlers/system/styles/$__ou_styles_Fonts.css.meta b/tiddlers/system/styles/$__ou_styles_Fonts.css.meta
deleted file mode 100644
index acc3ae2..0000000
--- a/tiddlers/system/styles/$__ou_styles_Fonts.css.meta
+++ /dev/null
@@ -1,5 +0,0 @@
-created: 20200703072825545
-modified: 20200703072844121
-tags: $:/tags/Stylesheet
-title: $:/ou/styles/Fonts
-type: text/css
\ No newline at end of file
diff --git a/tiddlers/system/styles/$__ou_styles_Lists.css b/tiddlers/system/styles/$__ou_styles_Lists.css
deleted file mode 100644
index a6c9459..0000000
--- a/tiddlers/system/styles/$__ou_styles_Lists.css
+++ /dev/null
@@ -1,15 +0,0 @@
-.tc-tiddler-body li {
- margin-bottom: 0.7em;
-}
-
-.tc-tiddler-body li ul {
- margin-top: 0.5em;
-}
-
-.compact-list li {
- margin-bottom: 0em;
-}
-
-ul, ol {
- padding-left: 1.5em;
-}
\ No newline at end of file
diff --git a/tiddlers/system/styles/$__ou_styles_Lists.css.meta b/tiddlers/system/styles/$__ou_styles_Lists.css.meta
deleted file mode 100644
index b777e52..0000000
--- a/tiddlers/system/styles/$__ou_styles_Lists.css.meta
+++ /dev/null
@@ -1,5 +0,0 @@
-created: 20200703101746587
-modified: 20200705193404865
-tags: $:/tags/Stylesheet
-title: $:/ou/styles/Lists
-type: text/css
\ No newline at end of file
diff --git a/tiddlers/system/styles/$__ou_styles_Print.css b/tiddlers/system/styles/$__ou_styles_Print.css
deleted file mode 100644
index 4c0b3a9..0000000
--- a/tiddlers/system/styles/$__ou_styles_Print.css
+++ /dev/null
@@ -1,9 +0,0 @@
-@media print {
- .no-print {
- display: none !important;
- }
-
- .tc-title {
- font-size: 0.8em !important;*/
- }
-}
\ No newline at end of file
diff --git a/tiddlers/system/styles/$__ou_styles_Print.css.meta b/tiddlers/system/styles/$__ou_styles_Print.css.meta
deleted file mode 100644
index 84384cc..0000000
--- a/tiddlers/system/styles/$__ou_styles_Print.css.meta
+++ /dev/null
@@ -1,5 +0,0 @@
-created: 20200702135739771
-modified: 20200702140716669
-tags: $:/tags/Stylesheet
-title: $:/ou/styles/Print
-type: text/css
\ No newline at end of file
diff --git a/tiddlers/system/styles/$__ou_styles_TitleTweaks.css b/tiddlers/system/styles/$__ou_styles_TitleTweaks.css
deleted file mode 100644
index 66a9972..0000000
--- a/tiddlers/system/styles/$__ou_styles_TitleTweaks.css
+++ /dev/null
@@ -1,4 +0,0 @@
-/* remove the tiny space at the start of titles */
-.tc-tiddler-title-icon {
- margin-right: 0em !important;
-}
\ No newline at end of file
diff --git a/tiddlers/system/styles/$__ou_styles_TitleTweaks.css.meta b/tiddlers/system/styles/$__ou_styles_TitleTweaks.css.meta
deleted file mode 100644
index fb3070f..0000000
--- a/tiddlers/system/styles/$__ou_styles_TitleTweaks.css.meta
+++ /dev/null
@@ -1,5 +0,0 @@
-created: 20200702105400232
-modified: 20200702110330385
-tags: $:/tags/Stylesheet
-title: $:/ou/styles/TitleTweaks
-type: text/css
\ No newline at end of file
diff --git "a/tiddlers/system/tiddlers/$__ou_maintenance_\043edit.tid" "b/tiddlers/system/tiddlers/$__ou_maintenance_\043edit.tid"
deleted file mode 100644
index f4a5caf..0000000
--- "a/tiddlers/system/tiddlers/$__ou_maintenance_\043edit.tid"
+++ /dev/null
@@ -1,72 +0,0 @@
-created: 20200705193646377
-modified: 20200705194208801
-tags:
-title: $:/ou/maintenance/#edit
-type: text/vnd.tiddlywiki
-
-Hidden sidebar tabs:
-<$button to="$:/core/ui/SideBar/Recent">Recent$button>
-<$button to="$:/core/ui/SideBar/Tools">Tools$button>
-<$button to="$:/core/ui/SideBar/More">More$button>
-
-Useful stuff:
-<$button to="$:/ControlPanel">Control Panel$button>
-<$button to="$:/TagManager" >Tag Manager$button>
-
-Export: <$button>
-<$macrocall $name="exportButton" exportFilter="[!is[system]sort[title]]" />
-$button>
-
- Import:
-<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} >
-<$list filter="[prefix[yes]]">
-{{$:/core/images/import-button}}
-$list>
-<$list filter="[prefix[yes]]">
-<$text text={{$:/language/Buttons/Import/Caption}}/>
-$list>
-$button>
-<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>
-
-
-Export Tag: <$set name="tagx" value={{!!tagToExport}}>
-<$select field="tagToExport" >
-<$list filter='[tags[]!issystem[]sort[]]'>
->><$view field='title'/>
-$list>
-$select>
-<$button actions=<>>
-{{$:/core/images/export-button}}
-$button> Export ''<$count filter="[tag{!!tagToExport}]"/>'' tiddler(s) tagged: {{!!tagToExport}}
-$set>
-
-
-<$button actions=<>>
-Edit Mode
-$button> <$button actions=<>>
-Publish Mode
-$button>
-
-!! Cheat Sheet
-[[Cheat Sheet|$:/ou/examples/cheat_sheet]]
-
-!!Probable Garbage
-
-This is temporary state that should be deleted to avoid merge conflicts. Check it and if nothing important shows up, hit the button below prior to saving.
-
-
-<>
-
-
-<$button>
-<$action-deletetiddler $filter="[prefix[$:/temp]][prefix[$:/Import]][prefix[undefined]][prefix[$:/state/]][[$:/HistoryList]]"/>
-Delete Garbage
-$button>
-
-!! Changed Tiddlers
-
-This are the tiddlers that have changed since last save.
-
-
-<>
-
\ No newline at end of file
diff --git a/tiddlers/system/tiddlers/Content.tid b/tiddlers/system/tiddlers/Content.tid
deleted file mode 100644
index 6967645..0000000
--- a/tiddlers/system/tiddlers/Content.tid
+++ /dev/null
@@ -1,7 +0,0 @@
-created: 20200702093853161
-modified: 20200702113955542
-tags: $:/tags/MoreSideBar
-title: Content
-type: text/vnd.tiddlywiki
-
-<>
\ No newline at end of file
diff --git a/tiddlywiki.info b/tiddlywiki.info
deleted file mode 100644
index 289bcd1..0000000
--- a/tiddlywiki.info
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "description": "Basic client-server edition",
- "plugins": [
- "tiddlywiki/tiddlyweb",
- "tiddlywiki/filesystem",
- "tiddlywiki/highlight",
- "tiddlywiki/markdown"
- ],
- "themes": [
- "tiddlywiki/vanilla",
- "tiddlywiki/snowwhite"
- ],
- "build": {
- "labs": [
- "--rendertiddler",
- "$:/plugins/tiddlywiki/tiddlyweb/save/offline",
- "info202_labs.html",
- "text/plain"
- ]
- },
- "config": {
- "default-tiddler-location": "./tiddlers/content/labs/lab01"
- }
-}
diff --git a/tiddlywiki/.gitignore b/tiddlywiki/.gitignore
new file mode 100644
index 0000000..956cdf4
--- /dev/null
+++ b/tiddlywiki/.gitignore
@@ -0,0 +1 @@
+$__StoryList.tid
diff --git a/tiddlywiki/tiddlers/content/Contents.tid b/tiddlywiki/tiddlers/content/Contents.tid
new file mode 100644
index 0000000..a0bac24
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/Contents.tid
@@ -0,0 +1,23 @@
+created: 20200702090327462
+modified: 20200702135439557
+tags:
+title: Contents
+type: text/vnd.tiddlywiki
+
+! Labs
+
+<$list filter="[tag[lab]!tag[hidden]sort[title]]">
+<$set name="strippedTitle" filter="[all[current]split[/]last[]]">
+<$link><>$link>
+$set>
+$list>
+
+
+
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Adding a Default Main Class.md b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Adding a Default Main Class.md
new file mode 100644
index 0000000..59fe2a0
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Adding a Default Main Class.md
@@ -0,0 +1,36 @@
+You have been running the `Main` class directly by explicitly selecting that class using the right mouse button. Remember that in Java, any class can have a main method. We will usually have one class that we consider to be the primary 'main' class that we want to run to start our application — we should tell Gradle which class we consider to be the 'main' class in our project.
+
+First, let's explore what happens when we don't set a main class. Try to run the entire project using < Run Project">>. You will probably find that the menu item is disabled since NetBeans recognises that this is not an executable project.
+
+Add the following to the <> file. It should go **inside** the curly braces of the `plugins` section, below the existing line.
+
+```
+id 'application'
+```
+
+This tells Gradle that our project is now an executable application.
+
+We also need to tell Gradle which class is the main class. Add the following to the bottom of the file **below** the plugins section (after the closing curly brace for that section).
+
+```
+mainClassName = 'lab01.Main'
+```
+
+The complete file should look like:
+
+```
+plugins {
+ id 'java'
+ id 'application'
+}
+
+mainClassName = 'lab01.Main'
+```
+
+Save the file, and left click on the root of the project — switching focus away from the file is enough to get NetBeans to reload the file which is why we are clicking the project root.
+
+You should now be able to run the project using < Run Project">>. The big green run button on the main tool bar will also run the project. You can also use the <> key to run the project.
+
+If you ever find yourself in a situation where Gradle is running the wrong main method, or complaining about a missing file, then it is likely that you have the `mainClassName` property pointing to the wrong class.
+
+You always have the option of explicitly right clicking a file in either the source editor, or the project pane and selecting <> — NetBeans will tell Gradle to run this file instead of using the default main class. The shortcut key for running the currently selected file is < F6">>.
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Adding a Default Main Class.md.meta b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Adding a Default Main Class.md.meta
new file mode 100644
index 0000000..8350003
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Adding a Default Main Class.md.meta
@@ -0,0 +1,6 @@
+created: 20200705172311317
+modified: 20200705183201957
+section: 4.1
+tags: lab01
+title: /labs/lab01/Adding a Default Main Class
+type: text/x-markdown
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Document Conventions.tid b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Document Conventions.tid
new file mode 100644
index 0000000..555c9b5
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Document Conventions.tid
@@ -0,0 +1,34 @@
+created: 20200703064817063
+modified: 20200703083635773
+section: 1.4
+tags: lab01
+title: /labs/lab01/Document Conventions
+type: text/x-markdown
+
+The lab documents will use the following conventions:
+
+* Inline code (code that appears in the middle of a sentence) `looks like this`.
+
+* When we want you to perform an action in a user interface, such as selecting a menu it will look like: < New File > Java > Java Class">>, or if it is a single action: <>
+
+* If we want you to enter a keyboard shortcut command: < Space">>.
+
+* When we are referring to paths or folders/files on disk it will look like: <>.
+
+* Blocks of code look like:
+
+ ```java
+ public static void main(String[] args) {
+ System.out.println("Hello World");
+ }
+ ```
+
+* Many operations in NetBeans are performed by right clicking the root folder of the project in the project pane. This will be abbreviated to <> which is short for 'right click the project'.
+
+* We will often describe a task that needs to be completed and then provide additional details on how you should go about completing that task. Students sometimes get confused because they stop at the "what" part of the task, before getting to the "how" part. If something is confusing then keep reading — you might not have got to the "how" part yet.
+
+* The INFO202 lab documents can be quite long.
+
+ When introducing new concepts we try to provide all of the information that you will need to both understand and complete a task. There is a lot of material in these documents that explains the "what" and "why" part of a task rather than just the "how".
+
+ The instructions will become less detailed as the course progresses. Basically, once you have learned a concept then there is no need for us to explain it again. We will just give you the "what" and leave the "how" and "why" up to you (we will refer you back to the documents that provide the "how" and "why" where needed).
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Create a Project.md b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Create a Project.md
new file mode 100644
index 0000000..757c71f
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Create a Project.md
@@ -0,0 +1,25 @@
+We will start with a simple Java project that prints 'hello world' to the ouput console. We created this project in INFO201 too, but this time we will be using it to explore NetBeans and Gradle a lot more that we did in INFO201.
+
+1. Start NetBeans 11. It should appear in the <> section of the application menu (the blue cross at the bottom left of the screen).
+
+2. Create a new Gradle project using < New Project > Java with Gradle > Java Application" >>.
+
+ We will be looking into Gradle a bit more in the next section.
+
+3. Click <>.
+
+4. Add a <>. Using `lab01` would be a good choice. This name will be turned into a folder, so it is a good idea to stick to single words with no spaces and all lowercase to avoid problems later on.
+
+ NetBeans will default to storing the project in a folder named <>. That location is fine for this week. We will create a proper repository folder next week.
+
+5. Click <>. Note that NetBeans needs to generate a lot of index files when you create your very first project. It might take a minute or two to complete this. These index files are used to provide the code completion features that we will be using in a later section.
+
+6. NetBeans will have generated a `Main` class for you that contains an empty `main` method. It can be a little bit confusing having both a method and a class with the same name. You should know enough from COMP160 to be able to distinguish between the class and the method. The standard [naming conventions](#/labs/lab01/Naming%20Conventions) can help here — the class starts with a a captital `M` and the method starts with a lowercase `m`.
+
+ Add the code that prints `hello world` to the output console.
+
+ {{$:/core/images/tip}} Tip: You can use a template — type `sout` and hit < Space">>. We will show you how to view the list of templates later in this lab.
+
+8. Run the class. Right click the class (either in the project pane, or the background of the source window) and select <>. You can also use the < F6">> key shortcut to run the file.
+
+ You should see your message appear in the output console.
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Create a Project.md.meta b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Create a Project.md.meta
new file mode 100644
index 0000000..716a693
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Create a Project.md.meta
@@ -0,0 +1,6 @@
+created: 20200703090720106
+modified: 20200703101525428
+section: 3
+tags: lab01
+title: /labs/lab01/Exercise: Create a Project
+type: text/x-markdown
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Debugging.md b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Debugging.md
new file mode 100644
index 0000000..8da33a4
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Debugging.md
@@ -0,0 +1,42 @@
+Sometimes you find yourself in the situation where you are getting an error while your program is running and you can’t figure out what is causing the problem.
+
+One approach to helping you figure out what is causing the problem is to put lots of `System.out.println` statements in your code to print out the value of variables and show the path that the execution takes through your code.
+
+A better solution is to use a debugger.
+
+1. Add the following code to your main method (delete everything else in the method):
+
+ ```java
+ for(int i=0; i<10; i++) {
+ int x = i * 2;
+ System.out.println(x);
+ }
+ ```
+
+2. Click on the line number to the left of the line of code that starts with `int x`.
+
+ You should see a little red square appear where you clicked and the line will be highlighted red.
+
+ This is what we call a break point. This will tell the debugger that we want it to stop the program at this point so that we can have a look at the internals of the program.
+
+3. Right click in the editor and select <>.
+
+ This will start the debugger. The program will run until it hits the break point and then pause. You can tell which line of code the debugger has stopped at since it will be highlighted green.
+
+4. Hold your cursor over the `i` variable. You should see a tool-tip containing the current value of `i`.
+
+5. Notice that there are several new icons on the main toolbar when you are running the
+debugger. These are for controlling how the debugger will execute your program.
+
+ Find the *Step Over* icon on the main toolbar. This will advance the execution to the next line.
+
+6. Keep clicking *Step Over* and notice how the execution cycles through your loop.
+
+ Hold your cursor over the i and x variables and notice how the value changes.
+
+7. Open the local variables pane from < Debugging">> . This pane will show you all of the variables and their values.
+
+If you have a variable that is an object then you can drill down into the object to examine its
+contents.
+
+**Try to remember to use the debugger — if your program isn’t working the way you intended it to then the debugger will definitely help you figure out why.**
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Debugging.md.meta b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Debugging.md.meta
new file mode 100644
index 0000000..31c9d97
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Debugging.md.meta
@@ -0,0 +1,6 @@
+created: 20200705191108083
+modified: 20200705192040793
+section: 6
+tags: lab01
+title: /labs/lab01/Exercise: Debugging
+type: text/x-markdown
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Exploring Gradle.md b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Exploring Gradle.md
new file mode 100644
index 0000000..1539216
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Exploring Gradle.md
@@ -0,0 +1,22 @@
+As you may remember from INFO201, NetBeans is just a fancy code editor. NetBeans delegates to a build tool to compile and run your projects. There are a bunch of build tools available for Java, and NetBeans supports several of them (Maven, Ant, and Gradle) — we will be using Gradle, since it is the most modern of the available tools. Maven and Gradle are the dominant build tools that you are likely to encounter when working with Java.
+
+Let's take a closer look at the Gradle build file. Expand <> in the project pane. You will see the <> file that NetBeans generated for you when you created the project.
+
+Delete all of the code in that file and replace it with the following:
+
+```
+plugins {
+ id 'java'
+}
+```
+This is the bare minimum that we need to create a Java project using Gradle. Gradle supports many other programming languages and environments, so we at least need to tell what environment we are using so that it knows how to compile the code &mdash in this case, Java.
+
+You should still be able to run your `Main` class to display the 'hello world' message.
+
+Gradle has a default project layout, so as long as your files are using this default layout, this minimal build file is enough to allow Gradle to find and compile your code.
+
+You can read about the default project layout at:
+
+
+
+Since we are sticking to the default project layout, all we need in this file is to tell Gradle which sort of project we want — in this case a Java project.
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Exploring Gradle.md.meta b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Exploring Gradle.md.meta
new file mode 100644
index 0000000..ee78b49
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Exploring Gradle.md.meta
@@ -0,0 +1,6 @@
+created: 20200705165754654
+modified: 20200705175038562
+section: 4
+tags: lab01
+title: /labs/lab01/Exercise: Exploring Gradle
+type: text/x-markdown
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Java Review.md b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Java Review.md
new file mode 100644
index 0000000..34c19cb
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Java Review.md
@@ -0,0 +1,5 @@
+You used Java a little bit in INFO201 last semester so hopefully your Java skills are not too rusty. It is important that you get your Java skills back up to a working level ASAP since we cover a lot of material in a short amount of time in INFO202. If you struggle with basic Java then you will fall behind very quickly. We do not reteach Java in this course — we assume that if you passed COMP160 which is a prerequisite for this course then you are competent with basic Java.
+
+We have some review exercises that you can work through to test yourself and remind yourself how Java works. You can find this document in the < Labs">> section of Blackboard. We recommend that you try to complete these exercises over the first couple of weeks of the semester. Feel free to ask for help via email if you get stuck.
+
+Once you complete these exercises your Java skills should be where they need to be to take on INFO202.
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Java Review.md.meta b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Java Review.md.meta
new file mode 100644
index 0000000..6d67fb4
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Java Review.md.meta
@@ -0,0 +1,6 @@
+created: 20200705192108058
+modified: 20200705192336059
+section: 7
+tags: lab01
+title: /labs/lab01/Exercise: Java Review
+type: text/x-markdown
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Making NetBeans Work For You.md b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Making NetBeans Work For You.md
new file mode 100644
index 0000000..9cee6dc
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Making NetBeans Work For You.md
@@ -0,0 +1,79 @@
+NetBeans (and IDEs in general) contains many features that help you write code and fix errors quickly. Much of this was covered in INFO201, but you will be a lot more efficient if you learn how to properly use these features, so it is worth going through again.
+
+Create a simple `Student` domain class that contains fields for name and ID:
+
+1. Create the class by right clicking the <> package in the project pane and selecting < Java Class">>. Name the class `Student`, and leave it in the `lab01` package.
+
+2. Start by declaring the two fields.
+
+ Remember that a field (which is sometimes called an *attribute*, *property*, or *data field*) is declared at the class level (not inside a method). The declaration will consist of an access modifier (fields are usually `private`), a type (`String`, `Integer`, etc.), and an identifier (which is a name that identifies what the field will contain — in this case `name` or `id` (remember the convention that anything that isn't a class name should start with a lowercase letter).
+
+3. Generate the getters and setters (sometimes called accessors and mutators) using the < Insert Code ">> menu. Most of the items in the source menu are also available in the right click pop-up menu in the source editor.
+
+4. Generate a constructor that initialises both fields using the insert code feature again (using the same < Insert Code ">> menu).
+
+5. Declare another field called papers of type `ArrayList` using the following line of code:
+ ```java
+ private List papers = new ArrayList<>();
+ ```
+ You will get an error stating that `ArrayList` and `List` can not be found (hover your cursor over the red squiggly lines to see the error message). This is because you need to import the `java.util` package since that is where these classes are located.
+
+ NetBeans will do this for you if you use the < Fix Imports">> menu item.
+
+ Notice that there are multiple `List` classes. You will run into this problem frequently — you need to be careful to select the correct version of the class to import otherwise you will get more compiler errors. If you get the wrong one then go up and delete the incorrect `import` statement and try again.
+
+6. Delete the import statement that NetBeans added for you so that you get the same error again.
+
+ Notice how there is a light bulb in the bar to the left of the error. This means that NetBeans thinks it knows how to fix this error for you.
+
+ Click the light bulb. Examine the options presented to you and choose the best option to solve the problem.
+
+ Again, you need to be careful with the *fix code* feature. Sometimes the suggestions that NetBeans makes do not make sense, or sometimes it has multiple suggestions. This feature is only there to save you from having to type so much — it is not there to save you from having to think about what you are doing and you can make a problem much worse if you always select the first option.
+
+7. Delete the `import` statement again and this time build your project using < Clean and Build">>. Notice how the compiler error now appears in the output pane.
+
+ The errors are usually linked to the source code so you can click a link in the output pane to jump to the code that caused the error.
+
+ Fix the error again using one of the mechanisms that you have just been shown.
+
+8. Use the following instructions to add a `toString` method that returns the name and ID:
+
+ Click somewhere in the class (not inside a method) and hit < Insert">> . This is the shortcut for the insert code feature. Select <>.
+
+ Select which fields that you want to be returned by the toString method (ID and name).
+
+9. Switch to the `Main` that you created earlier that contains the `main` method.
+
+ Add code to the main method that will create an instance of your `Student` class and print out the result of calling the `toString()` method.
+
+ If you have forgotten how to create an instance of a class, it looks like this:
+ ```java
+ // create a string instance
+ String badger = new String("honey badger");
+ ```
+
+ Obviously, this code is creating an instance of `String`. Your code should create an instance of `Student`.
+
+ Don’t forget about the `sout` template for generating the code to print to the console.
+
+10. Keep your code formatted nicely using < Shift > f">> or < Format">>.
+
+11. You can comment out a chunk of code by selecting it and using < /">>. The same again will uncomment the code.
+
+12. You might have noticed already that a menu pops up while you are typing in code sometimes. This feature is called code completion. Type `System` then press <> . You should see the pop-up menu that will show you all of the members that the `System` class has available.
+
+ You can bring this menu up anytime using < Space">>.
+
+13. Type `sout` and hit < Space">> to complete the template. Delete everything between the brackets (if there is anything). Hit < p">>. This should pop up a menu showing you all of the parameter options that are available for this method. This is useful if you can’t remember which parameters a method accepts, or which order the parameters occur.
+
+14. When working on larger projects where you are working with lots of files you will start having trouble finding the file you are looking for. There are two more keyboard shortcuts that you will find useful:
+
+ * < Tab">> and keep the <> key held down: This opens a file switcher that has the open files ordered by last access (the most recently accessed files will be at the top). You can easily navigate this pane using the arrow keys, so it is an effective mechanism to navigate your project without needing to reach for the mouse (which is a good habit to try to develop — you are much faster if you can stick to the keyboard alone).
+
+ * You can also use < Tab">> to quickly toggle between two open files. This is useful if you find yourself switching between the same two files a lot which is quite a common occurrence.
+
+ * < o">> : Allows you to search for a type (class/interface) by name which can be useful if your project contains a lot of files. Note that your INFO202 course project will contain a lot of files.
+
+15. Take a quick look at < Keyboard Shortcuts Card">> . This should open up a PDF containing the default keyboard shortcuts and templates. Try to learn the keyboard shortcuts for the features that we have used in this lab so far. You will be far more efficient at editing code if you can use the IDE to do most of the heavy lifting for you.
+
+ Code that the IDE adds for you will generally be correct, conform to industry standards, and will not contain typos and spelling mistakes.
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Making NetBeans Work For You.md.meta b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Making NetBeans Work For You.md.meta
new file mode 100644
index 0000000..184fa1e
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Exercise_ Making NetBeans Work For You.md.meta
@@ -0,0 +1,6 @@
+created: 20200705181955465
+modified: 20200705191049577
+section: 5
+tags: lab01
+title: /labs/lab01/Exercise: Making NetBeans Work For You
+type: text/x-markdown
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Introduction.tid b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Introduction.tid
new file mode 100644
index 0000000..4cb8a2f
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Introduction.tid
@@ -0,0 +1,10 @@
+created: 20200702091409467
+modified: 20200703100213044
+section: 1
+tags: lab01
+title: /labs/lab01/Introduction
+type: text/vnd.tiddlywiki
+
+Welcome to INFO202. In this course we will build on the knowledge that you gained in previous courses (primarily COMP101, COMP160, and INFO201) to show you how you can create large (compared to what you have done previously) business applications.
+
+This lab is about reintroducing you to some of the tools that we used in INFO201.
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Lab 1_ Reintroduction.tid b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Lab 1_ Reintroduction.tid
new file mode 100644
index 0000000..0a4f6ae
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Lab 1_ Reintroduction.tid
@@ -0,0 +1,21 @@
+created: 20200702091216358
+modified: 20200703092739746
+tags: lab01 lab
+title: /labs/lab01/Lab 1: Reintroduction
+type: text/vnd.tiddlywiki
+
+<$set name="labTag" value="lab01">
+
+Click the <
> button below to open all of the sections for this lab.
+
+!! Contents
+
+<$list filter="[tag!tag[hidden]!tag[lab]sort[section]]">
+<$set name="strippedTitle" filter="[all[current]split[/]last[]]">
+<$link>{{!!section}}. <>$link>
+$set>
+$list>
+
+
+<>
+$set>
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Linux Desktop.tid b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Linux Desktop.tid
new file mode 100644
index 0000000..86c9869
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Linux Desktop.tid
@@ -0,0 +1,24 @@
+created: 20200703045728499
+modified: 20200703050116437
+section: 1.3
+tags: lab01
+title: /labs/lab01/Linux Desktop
+type: text/vnd.tiddlywiki
+
+We will be using the Information Science Linux desktop in lab 3.27 for INFO202.
+
+If you are reading this document from the Windows desktop then reboot and choose the 'Information Science Linux Desktop' option from the boot menu. You can log in with your usual University username and password.
+
+We are using Linux because:
+
+* The performance is usually significantly better than the student desktop. IDEs are extremely sensitive to storage latency due to the indexing required for the code completion features to operate. We have optimised this environment to reduce as much of this latency as possible while still allowing you to store your files on a comparatively slow file server.
+
+* We have more control over the software. We often need to make changes to software during the semester and it can take a long time to go through ITS to make these changes happen in the Windows student desktop.
+
+One downside of using our own Linux desktop is that you currently only have access to it from lab 3.27. We will make sure that you are able to continue working on the Windows student desktop when you don't have access to lab 3.27. NetBeans, Gradle, and most of the other software that we will be using will also be available to you in the student desktop. Most of you will have NetBeans and Gradle installed on your own computers as a result of taking INFO201, so you can continue to use that in INFO202.
+
+Take a couple of minutes to read the 'Lab Information' document on your desktop to familiarise yourself with the Linux environment. Pay particular attention to the following sections since they contain information that you should be aware of:
+
+* Home Folder
+* Accessing your H: Drive
+* Printing
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Naming Conventions.tid b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Naming Conventions.tid
new file mode 100644
index 0000000..d6fe93c
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Naming Conventions.tid
@@ -0,0 +1,26 @@
+created: 20200703090056774
+modified: 20200703095103922
+section: 2
+tags: lab01
+title: /labs/lab01/Naming Conventions
+type: text/x-markdown
+
+The following are the naming conventions that we want you to use in INFO202. The Java conventions are industry-wide conventions. The other conventions are to help you to avoid common problems with conflicting bits of software.
+
+* Project folders should be single-word (no spaces) and entirely lowercase.
+
+ IDEs and build tools like Gradle often use shell commands to performs tasks on your files and shell commands can have problems with paths that contain spaces since spaces are usually treads as separators by these commands.
+
+ We will, on occasion, use the command line to perform some actions on the project and you will have problems if your paths contain spaces.
+
+ Also remember that Java is case-sensitive and both Windows and macOS only pretend to be case-sensitive. This can cause some weird problems, particularly when you rename folders, so the easiest way to avoid those problems is to stick to all-lower case for folder names. Linux file systems are usually case sensitive, so we can avoid a lot of weird problems by using Linux, however the network file servers that we are using are not-case sensitive, so we still have to be careful.
+
+ Please also consider if the parent folder that you are putting your projects into contains any spaces. Putting your projects into the <> folder on Windows is a bad idea for the reasons mentioned above.
+
+* Java classes and interfaces should **always** start with an uppercase letter (which makes them easily distinguishable from other identifiers in your source code).
+
+* All other identifiers: packages, fields, variables, methods; **always** start with a lowercase letter.
+
+* Use camel case (`whereTheWordsAreSeparatedLikeThis`) rather than underscores for **all** identifiers.
+
+ This is a standard Java convention and some libraries and tools assume that your classes will use camel case and will not work properly if you don't.
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_TiddlyWiki.tid b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_TiddlyWiki.tid
new file mode 100644
index 0000000..023ead3
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_TiddlyWiki.tid
@@ -0,0 +1,20 @@
+created: 20200702113016814
+modified: 20200703102336509
+section: 1.2
+tags: lab01
+title: /labs/lab01/TiddlyWiki
+type: text/vnd.tiddlywiki
+
+We will be using TiddlyWiki for delivering the lab content in INFO202. You saw this in INFO201 so the following is a quick refresher:
+
+* When you have completed a section you can close it with the @@.ou-button-image {{$:/core/images/close-button}}@@ button at the top right of each section.
+* You can save the current state of your progress by clicking the @@.ou-button-image {{$:/core/images/permaview-button}}@@ icon on the side bar to the right. This will change the URL to include the state which you can then bookmark. If you open the bookmark the page will reappear in the exact state that you left it in.
+* You can reset back to the original state using the @@.ou-button-image
+ {{$:/core/images/home-button}}@@ icon on the side bar on the right. This will close all open sections, so you will lose your progress.
+* You can reopen a closed section by clicking its link in the 'Contents' section.
+* There is a search box in the side bar on the right that can search the entire document. The search was a bit broken in the INFO201 version of the labs document, but we have fixed this problem for INFO202.
+* If you want a printed copy of this document, first reset the document back to its default state by clicking the @@.ou-button-image {{$:/core/images/home-button}}@@ home button and then the <> button to open all of the sections, then click the @@.ou-button-image {{$:/core/images/print-button}}@@ button on the side bar on the right to print the document in is current state.
+* You can show and hide the side bar using the @@.ou-button-image
+ {{$:/core/images/chevron-right}}@@ button at the top right of the document.
+* You can download a copy of this document using the @@.ou-button-image
+ {{$:/core/images/save-button}}@@ icon on the side bar on the right. Note that this is the only proper way to save the document. Using the browser's 'save page' feature will likely result in a corrupted document.
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Using Gradle directly.md b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Using Gradle directly.md
new file mode 100644
index 0000000..9fe0b11
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Using Gradle directly.md
@@ -0,0 +1,38 @@
+Now that we have an application project with a main class, we can use Gradle directly without using NetBeans. Gradle is a command line application, so you will need to use the terminal:
+
+1. Open your project folder in the file manager. The easiest way to do this is using < Open in File Manager">> .
+
+2. In the file manager, right click the background and select <>.
+
+3. Enter the following into the terminal:
+
+ ```
+ gradle run
+ ```
+ You will see the 'hello world' message appear in the terminal.
+
+4. Gradle is smart enough to know that it needs to first compile the code before running it, but only if necessary (Gradle will try to avoid compiling code has already been compiled and has not changed). Run the command again, but this time we will get it to tell us exactly what is going on by using the `-info` option:
+ ```
+ gradle -info run
+ ```
+
+ You will see that the `:compileJava` task is `UP-TO-DATE`, meaning that it does not need to compile the classes to run the application.
+
+5. Let's clean the project to remove the compiled classes:
+ ```
+ gradle clean
+ ```
+
+6. Build the project again:
+ ```
+ gradle -info run
+ ```
+ This time you will see that the `:compileJava` task is not up to date, so Gradle will compile the classes before running the project.
+
+7. Enter `exit` to exit the terminal.
+
+Note that NetBeans was not involved here at all — we were interacting directly with the build tool (Gradle), rather than getting NetBeans to do that for us.
+
+Hopefully you can see now why build tools like Gradle are very useful. You can use any IDE (assuming it has Gradle support, which it almost certainly will), or if you are one of those stubborn masochists who refuses to give up your favourite text editor (Vim and Emacs are both installed on the lab machines btw) you can perform all build operations from the command line.
+
+If you are struggling to see the benefits — think team development. If you use Gradle projects then each team member can use their preferred IDE or editor without forcing their preferences on other team members.
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Using Gradle directly.md.meta b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Using Gradle directly.md.meta
new file mode 100644
index 0000000..ee8bd6a
--- /dev/null
+++ b/tiddlywiki/tiddlers/content/labs/lab01/_labs_lab01_Using Gradle directly.md.meta
@@ -0,0 +1,6 @@
+created: 20200705175153821
+modified: 20200705181933526
+section: 4.1
+tags: lab01
+title: /labs/lab01/Using Gradle directly
+type: text/x-markdown
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/macros/$__ou_macros_EditMode.tid b/tiddlywiki/tiddlers/system/macros/$__ou_macros_EditMode.tid
new file mode 100644
index 0000000..7d71ecb
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/macros/$__ou_macros_EditMode.tid
@@ -0,0 +1,24 @@
+created: 20200702100633703
+modified: 20200705195631007
+tags: $:/tags/Macro
+title: $:/ou/macros/EditMode
+type: text/vnd.tiddlywiki
+
+\define editMode()
+<$fieldmangler tiddler="$:/core/ui/SideBar/More">
+<$action-sendmessage $message="tm-add-tag" $param="$:/tags/SideBar"/>
+$fieldmangler>
+<$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-tiddler" text="show"/>
+<$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/edit" text="show"/>
+<$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions" text="show"/>
+\end
+
+\define publishMode()
+<$fieldmangler tiddler="$:/core/ui/SideBar/More">
+<$action-sendmessage $message="tm-remove-tag" $param="$:/tags/SideBar"/>
+$fieldmangler>
+<$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-tiddler" text="hide"/>
+<$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/edit" text="hide"/>
+<$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions" text="hide"/>
+\end
+
diff --git a/tiddlywiki/tiddlers/system/macros/$__ou_macros_MenuKeys.tid b/tiddlywiki/tiddlers/system/macros/$__ou_macros_MenuKeys.tid
new file mode 100644
index 0000000..abb188d
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/macros/$__ou_macros_MenuKeys.tid
@@ -0,0 +1,53 @@
+created: 20200703065308466
+modified: 20200703103856073
+tags: $:/tags/Macro
+title: $:/ou/macros/MenuKeys
+type: text/vnd.tiddlywiki
+
+\define keys(path)
+<$list filter="[[$path$]split[>]trim[]first[]]">
+<>
+$list>
+<$list filter="[[$path$]split[>]trim[]rest[]]">
+ᚐ <>
+$list>
+\end
+
+\define menu(path)
+<$list filter="[[$path$]split[>]trim[]first[]]">
+<>
+$list>
+<$list filter="[[$path$]split[>]trim[]rest[]]">
+❭ <>
+$list>
+\end
+
+\define path(path)
+{{$:/core/images/folder}} $path$
+\end
+
+
+!Usage:
+
+!!UI navigation
+```
+< New File > Blob" >>
+```
+< New File > Blob" >>
+
+!! Keyboard shortcuts
+```
+< Alt > 7" >>
+```
+< Alt > 7" >>
+
+!! Paths
+```
+<>
+```
+<>
+
+You can use both forward and back slashes, and colons in the path, so can represent file paths in all operating systems:
+
+<>
+<>
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/macros/$__ou_macros_OpenByFilter.tid b/tiddlywiki/tiddlers/system/macros/$__ou_macros_OpenByFilter.tid
new file mode 100644
index 0000000..d0d85dd
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/macros/$__ou_macros_OpenByFilter.tid
@@ -0,0 +1,16 @@
+created: 20200702092958496
+modified: 20200702110313440
+tags: $:/tags/Macro
+title: $:/ou/macros/OpenByFilter
+type: text/vnd.tiddlywiki
+
+\define openByFilter(filter)
+<$button>
+Open All
+<$list filter=$filter$>
+<$action-navigate $to={{!!title}}/>
+$list>
+$button>
+\end
+
+Opens all tiddlers matching the given filter.
diff --git a/tiddlywiki/tiddlers/system/macros/$__ou_macros_SortedTree.tid b/tiddlywiki/tiddlers/system/macros/$__ou_macros_SortedTree.tid
new file mode 100644
index 0000000..d5eada2
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/macros/$__ou_macros_SortedTree.tid
@@ -0,0 +1,60 @@
+created: 20200702112112330
+modified: 20200703005650408
+tags: $:/tags/Macro
+title: $:/ou/macros/SortedTree
+type: text/vnd.tiddlywiki
+
+\define sorted-leaf-link(full-title,chunk,separator: "/")
+<$link to=<<__full-title__>>><$text text=<<__chunk__>>/>$link>
+\end
+
+\define sorted-leaf-node(prefix,chunk)
+
+<$list filter="[<__prefix__>addsuffix<__chunk__>is[shadow]] [<__prefix__>addsuffix<__chunk__>is[tiddler]]" variable="full-title">
+<$list filter="[removeprefix<__prefix__>]" variable="chunk">
+{{$:/core/images/file}} <$macrocall $name="sorted-leaf-link" full-title=<> chunk=<>/>
+$list>
+$list>
+
+\end
+
+\define sorted-branch-node(prefix,chunk,separator: "/")
+
+<$set name="reveal-state" value={{{ [[$:/state/tree/]addsuffix<__prefix__>addsuffix<__chunk__>] }}}>
+<$reveal type="nomatch" stateTitle=<> text="show">
+<$button setTitle=<> setTo="show" class="tc-btn-invisible">
+{{$:/core/images/folder}} <$text text=<<__chunk__>>/>
+$button>
+$reveal>
+<$reveal type="match" stateTitle=<> text="show">
+<$button setTitle=<> setTo="hide" class="tc-btn-invisible">
+{{$:/core/images/folder}} <$text text=<<__chunk__>>/>
+$button>
+$reveal>
+(<$count filter="[all[shadows+tiddlers]removeprefix<__prefix__>removeprefix<__chunk__>] -[<__prefix__>addsuffix<__chunk__>]"/>)
+<$reveal type="match" stateTitle=<> text="show">
+<$macrocall $name="sorted-tree-node" prefix={{{ [<__prefix__>addsuffix<__chunk__>] }}} separator=<<__separator__>>/>
+$reveal>
+$set>
+
+\end
+
+\define sorted-tree-node(prefix,separator: "/")
+
+<$list filter="[all[tiddlers]!has[section]removeprefix<__prefix__>splitbefore<__separator__>sort[]!suffix<__separator__>][all[tiddlers]has[section]removeprefix<__prefix__>splitbefore<__separator__>sort[section]!suffix<__separator__>]" variable="chunk">
+<$macrocall $name="sorted-leaf-node" prefix=<<__prefix__>> chunk=<> separator=<<__separator__>>/>
+$list>
+<$list filter="[all[tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]suffix<__separator__>]" variable="chunk">
+<$macrocall $name="sorted-branch-node" prefix=<<__prefix__>> chunk=<> separator=<<__separator__>>/>
+$list>
+
+\end
+
+\define sorted-tree(prefix: "$:/",separator: "/")
+
+
<$text text=<<__prefix__>>/>
+
+<$macrocall $name="sorted-tree-node" prefix=<<__prefix__>> separator=<<__separator__>>/>
+
+
+\end
diff --git a/tiddlywiki/tiddlers/system/shadows/$__DefaultTiddlers.tid b/tiddlywiki/tiddlers/system/shadows/$__DefaultTiddlers.tid
new file mode 100644
index 0000000..d6e8911
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__DefaultTiddlers.tid
@@ -0,0 +1,6 @@
+created: 20200702090658899
+modified: 20200702090700113
+title: $:/DefaultTiddlers
+type: text/vnd.tiddlywiki
+
+Contents
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/shadows/$__SiteSubtitle.tid b/tiddlywiki/tiddlers/system/shadows/$__SiteSubtitle.tid
new file mode 100644
index 0000000..33d1b2e
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__SiteSubtitle.tid
@@ -0,0 +1,6 @@
+created: 20200702085120796
+modified: 20200702085142879
+title: $:/SiteSubtitle
+type: text/vnd.tiddlywiki
+
+Coursework
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/shadows/$__SiteTitle.tid b/tiddlywiki/tiddlers/system/shadows/$__SiteTitle.tid
new file mode 100644
index 0000000..3823175
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__SiteTitle.tid
@@ -0,0 +1,6 @@
+created: 20200702085059173
+modified: 20200702085117297
+title: $:/SiteTitle
+type: text/vnd.tiddlywiki
+
+INFO202
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/shadows/$__config_MissingLinks.tid b/tiddlywiki/tiddlers/system/shadows/$__config_MissingLinks.tid
new file mode 100644
index 0000000..6c8d526
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__config_MissingLinks.tid
@@ -0,0 +1,6 @@
+created: 20200702085429508
+modified: 20200702085429522
+title: $:/config/MissingLinks
+type: text/vnd.tiddlywiki
+
+no
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_control-panel.tid b/tiddlywiki/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_control-panel.tid
new file mode 100644
index 0000000..17c7c68
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_control-panel.tid
@@ -0,0 +1,6 @@
+created: 20200702085728018
+modified: 20200702085728027
+title: $:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/control-panel
+type: text/vnd.tiddlywiki
+
+hide
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_home.tid b/tiddlywiki/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_home.tid
new file mode 100644
index 0000000..03cd9da
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_home.tid
@@ -0,0 +1,6 @@
+created: 20200702085722156
+modified: 20200702085722168
+title: $:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home
+type: text/vnd.tiddlywiki
+
+show
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_new-tiddler.tid b/tiddlywiki/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_new-tiddler.tid
new file mode 100644
index 0000000..23f5e3c
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_new-tiddler.tid
@@ -0,0 +1,6 @@
+created: 20200705193740311
+modified: 20200705195650023
+title: $:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-tiddler
+type: text/vnd.tiddlywiki
+
+hide
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_permaview.tid b/tiddlywiki/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_permaview.tid
new file mode 100644
index 0000000..a4aaa82
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_permaview.tid
@@ -0,0 +1,6 @@
+created: 20200702085720288
+modified: 20200702085720299
+title: $:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview
+type: text/vnd.tiddlywiki
+
+show
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_print.tid b/tiddlywiki/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_print.tid
new file mode 100644
index 0000000..74dc65a
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__core_ui_Buttons_print.tid
@@ -0,0 +1,6 @@
+created: 20200702085748738
+modified: 20200702085748748
+title: $:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print
+type: text/vnd.tiddlywiki
+
+show
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__plugins_tiddlywiki_markdown_new-markdown-button.tid b/tiddlywiki/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__plugins_tiddlywiki_markdown_new-markdown-button.tid
new file mode 100644
index 0000000..04fac6b
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__config_PageControlButtons_Visibility_$__plugins_tiddlywiki_markdown_new-markdown-button.tid
@@ -0,0 +1,6 @@
+created: 20200705193931320
+modified: 20200705193931332
+title: $:/config/PageControlButtons/Visibility/$:/plugins/tiddlywiki/markdown/new-markdown-button
+type: text/vnd.tiddlywiki
+
+hide
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/shadows/$__config_Tiddlers_TitleLinks.tid b/tiddlywiki/tiddlers/system/shadows/$__config_Tiddlers_TitleLinks.tid
new file mode 100644
index 0000000..fdb98c1
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__config_Tiddlers_TitleLinks.tid
@@ -0,0 +1,6 @@
+created: 20200702092445451
+modified: 20200702092445462
+title: $:/config/Tiddlers/TitleLinks
+type: text/vnd.tiddlywiki
+
+yes
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/shadows/$__config_ViewToolbarButtons_Visibility_$__core_ui_Buttons_edit.tid b/tiddlywiki/tiddlers/system/shadows/$__config_ViewToolbarButtons_Visibility_$__core_ui_Buttons_edit.tid
new file mode 100644
index 0000000..95a7741
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__config_ViewToolbarButtons_Visibility_$__core_ui_Buttons_edit.tid
@@ -0,0 +1,6 @@
+created: 20200705193740311
+modified: 20200705195650034
+title: $:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/edit
+type: text/vnd.tiddlywiki
+
+hide
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/shadows/$__config_ViewToolbarButtons_Visibility_$__core_ui_Buttons_more-tiddler-actions.tid b/tiddlywiki/tiddlers/system/shadows/$__config_ViewToolbarButtons_Visibility_$__core_ui_Buttons_more-tiddler-actions.tid
new file mode 100644
index 0000000..e6b890d
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__config_ViewToolbarButtons_Visibility_$__core_ui_Buttons_more-tiddler-actions.tid
@@ -0,0 +1,6 @@
+created: 20200705193740312
+modified: 20200705195650043
+title: $:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions
+type: text/vnd.tiddlywiki
+
+hide
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/shadows/$__config_WikiParserRules_Inline_wikilink.tid b/tiddlywiki/tiddlers/system/shadows/$__config_WikiParserRules_Inline_wikilink.tid
new file mode 100644
index 0000000..9f75603
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__config_WikiParserRules_Inline_wikilink.tid
@@ -0,0 +1,6 @@
+created: 20200702085414247
+modified: 20200702085414262
+title: $:/config/WikiParserRules/Inline/wikilink
+type: text/vnd.tiddlywiki
+
+disable
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/shadows/$__config_markdown_typographer.tid b/tiddlywiki/tiddlers/system/shadows/$__config_markdown_typographer.tid
new file mode 100644
index 0000000..8488aaa
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__config_markdown_typographer.tid
@@ -0,0 +1,6 @@
+created: 20200705183110896
+modified: 20200705183113173
+title: $:/config/markdown/typographer
+type: text/vnd.tiddlywiki
+
+true
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/shadows/$__core_ui_SideBar_More.tid b/tiddlywiki/tiddlers/system/shadows/$__core_ui_SideBar_More.tid
new file mode 100644
index 0000000..a84243b
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__core_ui_SideBar_More.tid
@@ -0,0 +1,9 @@
+caption: {{$:/language/SideBar/More/Caption}}
+created: 20200705194418663
+modified: 20200705195650052
+title: $:/core/ui/SideBar/More
+type: text/vnd.tiddlywiki
+
+
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/shadows/$__core_ui_SideBar_Recent.tid b/tiddlywiki/tiddlers/system/shadows/$__core_ui_SideBar_Recent.tid
new file mode 100644
index 0000000..41da52d
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__core_ui_SideBar_Recent.tid
@@ -0,0 +1,7 @@
+caption: {{$:/language/SideBar/Recent/Caption}}
+created: 20200705194505595
+modified: 20200705194505689
+title: $:/core/ui/SideBar/Recent
+type: text/vnd.tiddlywiki
+
+<$macrocall $name="timeline" format={{$:/language/RecentChanges/DateFormat}}/>
diff --git a/tiddlywiki/tiddlers/system/shadows/$__core_ui_SideBar_Tools.tid b/tiddlywiki/tiddlers/system/shadows/$__core_ui_SideBar_Tools.tid
new file mode 100644
index 0000000..685556c
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__core_ui_SideBar_Tools.tid
@@ -0,0 +1,34 @@
+caption: {{$:/language/SideBar/Tools/Caption}}
+created: 20200705194515493
+modified: 20200705194515641
+title: $:/core/ui/SideBar/Tools
+type: text/vnd.tiddlywiki
+
+\define lingo-base() $:/language/ControlPanel/
+\define config-title()
+$:/config/PageControlButtons/Visibility/$(listItem)$
+\end
+
+<> <>
+
+<$set name="tv-config-toolbar-icons" value="yes">
+
+<$set name="tv-config-toolbar-text" value="yes">
+
+<$set name="tv-config-toolbar-class" value="">
+
+<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]" variable="listItem">
+
+encodeuricomponent[]addprefix[tc-btn-]] }}}>
+
+<$checkbox tiddler=<> field="text" checked="show" unchecked="hide" default="show"/> <$transclude tiddler=<>/> <$transclude tiddler=<> field="description"/>
+
+
+
+$list>
+
+$set>
+
+$set>
+
+$set>
diff --git a/tiddlywiki/tiddlers/system/shadows/$__core_ui_ViewTemplate_subtitle.tid b/tiddlywiki/tiddlers/system/shadows/$__core_ui_ViewTemplate_subtitle.tid
new file mode 100644
index 0000000..4bb4d6b
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__core_ui_ViewTemplate_subtitle.tid
@@ -0,0 +1,12 @@
+created: 20200702103011064
+modified: 20200702103011161
+title: $:/core/ui/ViewTemplate/subtitle
+type: text/vnd.tiddlywiki
+
+\whitespace trim
+<$reveal type="nomatch" stateTitle=<> text="hide" tag="div" retain="yes" animate="yes">
+
+<$link to={{!!modifier}} />
+<$view field="modified" format="date" template={{$:/language/Tiddler/DateFormat}}/>
+
+$reveal>
diff --git a/tiddlywiki/tiddlers/system/shadows/$__core_ui_ViewTemplate_tags.tid b/tiddlywiki/tiddlers/system/shadows/$__core_ui_ViewTemplate_tags.tid
new file mode 100644
index 0000000..98005fe
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__core_ui_ViewTemplate_tags.tid
@@ -0,0 +1,8 @@
+created: 20200702103044361
+modified: 20200702103044458
+title: $:/core/ui/ViewTemplate/tags
+type: text/vnd.tiddlywiki
+
+<$reveal type="nomatch" stateTitle=<> text="hide" tag="div" retain="yes" animate="yes">
+<$list filter="[all[current]tags[]sort[title]]" template="$:/core/ui/TagTemplate" storyview="pop"/>
+$reveal>
diff --git a/tiddlywiki/tiddlers/system/shadows/$__core_ui_ViewTemplate_title.tid b/tiddlywiki/tiddlers/system/shadows/$__core_ui_ViewTemplate_title.tid
new file mode 100644
index 0000000..5157afa
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__core_ui_ViewTemplate_title.tid
@@ -0,0 +1,60 @@
+created: 20200702104128510
+modified: 20200702134809674
+tags: $:/tags/ViewTemplate
+title: $:/core/ui/ViewTemplate/title
+type: text/vnd.tiddlywiki
+
+\define title-styles()
+fill:$(foregroundColor)$;
+\end
+\define config-title()
+$:/config/ViewToolbarButtons/Visibility/$(listItem)$
+\end
+
+
+
+<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]" variable="listItem"><$reveal type="nomatch" state=<> text="hide"><$set name="tv-config-toolbar-class" filter="[] [encodeuricomponent[]addprefix[tc-btn-]]"><$transclude tiddler=<>/>$set>$reveal>$list>
+
+<$set name="tv-wikilinks" value={{$:/config/Tiddlers/TitleLinks}}>
+<$link>
+<$set name="foregroundColor" value={{!!color}}>
+>>
+<$transclude tiddler={{!!icon}}/>
+
+$set>
+
+
+<$list filter="[all[current]!has[section]removeprefix[$:/]]">
+
+$:/ <$text text=<>/>
+
+$list>
+
+
+<$list filter="[all[current]!has[section]!prefix[$:/]]">
+
+<$set name="strippedTitle" filter="[all[current]split[/]last[]]">
+<>
+$set>
+
+$list>
+
+
+<$list filter="[all[current]has[section]]">
+
+<$set name="strippedTitle" filter="[all[current]split[/]last[]]">
+<$view field="section"/>. <>
+$set>
+
+$list>
+
+$link>
+$set>
+
+
+<$reveal type="nomatch" text="" default="" state=<
> class="tc-tiddler-info tc-popup-handle" animate="yes" retain="yes">
+
+<$list filter="[all[shadows+tiddlers]tag[$:/tags/TiddlerInfoSegment]!has[draft.of]] [[$:/core/ui/TiddlerInfo]]" variable="listItem"><$transclude tiddler=<> mode="block"/>$list>
+
+$reveal>
+
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/shadows/$__language_Snippets_TableOfContents.tid b/tiddlywiki/tiddlers/system/shadows/$__language_Snippets_TableOfContents.tid
new file mode 100644
index 0000000..146616c
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__language_Snippets_TableOfContents.tid
@@ -0,0 +1,11 @@
+caption: Table of Contents
+created: 20200702094536792
+modified: 20200702094536853
+title: $:/language/Snippets/TableOfContents
+type: text/vnd.tiddlywiki
+
+
+
+<>
+
+
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/shadows/$__themes_tiddlywiki_vanilla_options_sidebarlayout.tid b/tiddlywiki/tiddlers/system/shadows/$__themes_tiddlywiki_vanilla_options_sidebarlayout.tid
new file mode 100644
index 0000000..7c1d091
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/shadows/$__themes_tiddlywiki_vanilla_options_sidebarlayout.tid
@@ -0,0 +1,6 @@
+created: 20200702085344572
+modified: 20200702085344586
+title: $:/themes/tiddlywiki/vanilla/options/sidebarlayout
+type: text/vnd.tiddlywiki
+
+fluid-fixed
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/snippets/$__ou_snippets_TableOfContents.tid b/tiddlywiki/tiddlers/system/snippets/$__ou_snippets_TableOfContents.tid
new file mode 100644
index 0000000..f8cd3a1
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/snippets/$__ou_snippets_TableOfContents.tid
@@ -0,0 +1,18 @@
+caption: Table of Contents
+created: 20200702091026430
+modified: 20200702110434742
+tags: $:/tags/TextEditor/Snippet
+title: $:/ou/snippets/TableOfContents
+type: text/vnd.tiddlywiki
+
+<$set name="labTag" value="labXX">
+
+!! Contents
+
+<$list filter="[tag!tag[hidden]!tag[lab]sort[section]]">
+<$link>{{!!section}}. {{!!alias}}$link>
+$list>
+
+
+<>
+$set>
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/styles/$__ou_styles_ButtonImage.css b/tiddlywiki/tiddlers/system/styles/$__ou_styles_ButtonImage.css
new file mode 100644
index 0000000..4113d30
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/styles/$__ou_styles_ButtonImage.css
@@ -0,0 +1,17 @@
+/* used for displaying icons inline */
+.ou-button-image img, .ou-button-image svg {
+ width: 1.2em;
+ height: auto;
+ vertical-align: text-bottom;
+}
+
+kbd {
+ vertical-align: 0px;
+ max-height:2em;
+}
+
+kbd svg {
+ width: auto;
+ height: 1.15em;
+ padding: 0px !important;
+}
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/styles/$__ou_styles_ButtonImage.css.meta b/tiddlywiki/tiddlers/system/styles/$__ou_styles_ButtonImage.css.meta
new file mode 100644
index 0000000..bea900a
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/styles/$__ou_styles_ButtonImage.css.meta
@@ -0,0 +1,5 @@
+created: 20200703070355616
+modified: 20200703103503331
+tags: $:/tags/Stylesheet
+title: $:/ou/styles/ButtonImage
+type: text/css
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/styles/$__ou_styles_Fonts.css b/tiddlywiki/tiddlers/system/styles/$__ou_styles_Fonts.css
new file mode 100644
index 0000000..124b77d
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/styles/$__ou_styles_Fonts.css
@@ -0,0 +1,6 @@
+@import url('https://fonts.googleapis.com/css?family=Roboto+Condensed&display=swap');
+
+kbd {
+ font-family: sans;
+ font-family: 'Roboto Condensed', sans-serif;
+}
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/styles/$__ou_styles_Fonts.css.meta b/tiddlywiki/tiddlers/system/styles/$__ou_styles_Fonts.css.meta
new file mode 100644
index 0000000..acc3ae2
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/styles/$__ou_styles_Fonts.css.meta
@@ -0,0 +1,5 @@
+created: 20200703072825545
+modified: 20200703072844121
+tags: $:/tags/Stylesheet
+title: $:/ou/styles/Fonts
+type: text/css
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/styles/$__ou_styles_Lists.css b/tiddlywiki/tiddlers/system/styles/$__ou_styles_Lists.css
new file mode 100644
index 0000000..a6c9459
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/styles/$__ou_styles_Lists.css
@@ -0,0 +1,15 @@
+.tc-tiddler-body li {
+ margin-bottom: 0.7em;
+}
+
+.tc-tiddler-body li ul {
+ margin-top: 0.5em;
+}
+
+.compact-list li {
+ margin-bottom: 0em;
+}
+
+ul, ol {
+ padding-left: 1.5em;
+}
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/styles/$__ou_styles_Lists.css.meta b/tiddlywiki/tiddlers/system/styles/$__ou_styles_Lists.css.meta
new file mode 100644
index 0000000..b777e52
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/styles/$__ou_styles_Lists.css.meta
@@ -0,0 +1,5 @@
+created: 20200703101746587
+modified: 20200705193404865
+tags: $:/tags/Stylesheet
+title: $:/ou/styles/Lists
+type: text/css
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/styles/$__ou_styles_Print.css b/tiddlywiki/tiddlers/system/styles/$__ou_styles_Print.css
new file mode 100644
index 0000000..4c0b3a9
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/styles/$__ou_styles_Print.css
@@ -0,0 +1,9 @@
+@media print {
+ .no-print {
+ display: none !important;
+ }
+
+ .tc-title {
+ font-size: 0.8em !important;*/
+ }
+}
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/styles/$__ou_styles_Print.css.meta b/tiddlywiki/tiddlers/system/styles/$__ou_styles_Print.css.meta
new file mode 100644
index 0000000..84384cc
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/styles/$__ou_styles_Print.css.meta
@@ -0,0 +1,5 @@
+created: 20200702135739771
+modified: 20200702140716669
+tags: $:/tags/Stylesheet
+title: $:/ou/styles/Print
+type: text/css
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/styles/$__ou_styles_TitleTweaks.css b/tiddlywiki/tiddlers/system/styles/$__ou_styles_TitleTweaks.css
new file mode 100644
index 0000000..66a9972
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/styles/$__ou_styles_TitleTweaks.css
@@ -0,0 +1,4 @@
+/* remove the tiny space at the start of titles */
+.tc-tiddler-title-icon {
+ margin-right: 0em !important;
+}
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/styles/$__ou_styles_TitleTweaks.css.meta b/tiddlywiki/tiddlers/system/styles/$__ou_styles_TitleTweaks.css.meta
new file mode 100644
index 0000000..fb3070f
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/styles/$__ou_styles_TitleTweaks.css.meta
@@ -0,0 +1,5 @@
+created: 20200702105400232
+modified: 20200702110330385
+tags: $:/tags/Stylesheet
+title: $:/ou/styles/TitleTweaks
+type: text/css
\ No newline at end of file
diff --git "a/tiddlywiki/tiddlers/system/tiddlers/$__ou_maintenance_\043edit.tid" "b/tiddlywiki/tiddlers/system/tiddlers/$__ou_maintenance_\043edit.tid"
new file mode 100644
index 0000000..f4a5caf
--- /dev/null
+++ "b/tiddlywiki/tiddlers/system/tiddlers/$__ou_maintenance_\043edit.tid"
@@ -0,0 +1,72 @@
+created: 20200705193646377
+modified: 20200705194208801
+tags:
+title: $:/ou/maintenance/#edit
+type: text/vnd.tiddlywiki
+
+Hidden sidebar tabs:
+<$button to="$:/core/ui/SideBar/Recent">Recent$button>
+<$button to="$:/core/ui/SideBar/Tools">Tools$button>
+<$button to="$:/core/ui/SideBar/More">More$button>
+
+Useful stuff:
+<$button to="$:/ControlPanel">Control Panel$button>
+<$button to="$:/TagManager" >Tag Manager$button>
+
+Export: <$button>
+<$macrocall $name="exportButton" exportFilter="[!is[system]sort[title]]" />
+$button>
+
+ Import:
+<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} >
+<$list filter="[prefix[yes]]">
+{{$:/core/images/import-button}}
+$list>
+<$list filter="[prefix[yes]]">
+<$text text={{$:/language/Buttons/Import/Caption}}/>
+$list>
+$button>
+<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>
+
+
+Export Tag: <$set name="tagx" value={{!!tagToExport}}>
+<$select field="tagToExport" >
+<$list filter='[tags[]!issystem[]sort[]]'>
+>><$view field='title'/>
+$list>
+$select>
+<$button actions=<>>
+{{$:/core/images/export-button}}
+$button> Export ''<$count filter="[tag{!!tagToExport}]"/>'' tiddler(s) tagged: {{!!tagToExport}}
+$set>
+
+
+<$button actions=<>>
+Edit Mode
+$button> <$button actions=<>>
+Publish Mode
+$button>
+
+!! Cheat Sheet
+[[Cheat Sheet|$:/ou/examples/cheat_sheet]]
+
+!!Probable Garbage
+
+This is temporary state that should be deleted to avoid merge conflicts. Check it and if nothing important shows up, hit the button below prior to saving.
+
+
+<>
+
+
+<$button>
+<$action-deletetiddler $filter="[prefix[$:/temp]][prefix[$:/Import]][prefix[undefined]][prefix[$:/state/]][[$:/HistoryList]]"/>
+Delete Garbage
+$button>
+
+!! Changed Tiddlers
+
+This are the tiddlers that have changed since last save.
+
+
+<>
+
\ No newline at end of file
diff --git a/tiddlywiki/tiddlers/system/tiddlers/Content.tid b/tiddlywiki/tiddlers/system/tiddlers/Content.tid
new file mode 100644
index 0000000..6967645
--- /dev/null
+++ b/tiddlywiki/tiddlers/system/tiddlers/Content.tid
@@ -0,0 +1,7 @@
+created: 20200702093853161
+modified: 20200702113955542
+tags: $:/tags/MoreSideBar
+title: Content
+type: text/vnd.tiddlywiki
+
+<>
\ No newline at end of file
diff --git a/tiddlywiki/tiddlywiki.info b/tiddlywiki/tiddlywiki.info
new file mode 100644
index 0000000..289bcd1
--- /dev/null
+++ b/tiddlywiki/tiddlywiki.info
@@ -0,0 +1,24 @@
+{
+ "description": "Basic client-server edition",
+ "plugins": [
+ "tiddlywiki/tiddlyweb",
+ "tiddlywiki/filesystem",
+ "tiddlywiki/highlight",
+ "tiddlywiki/markdown"
+ ],
+ "themes": [
+ "tiddlywiki/vanilla",
+ "tiddlywiki/snowwhite"
+ ],
+ "build": {
+ "labs": [
+ "--rendertiddler",
+ "$:/plugins/tiddlywiki/tiddlyweb/save/offline",
+ "info202_labs.html",
+ "text/plain"
+ ]
+ },
+ "config": {
+ "default-tiddler-location": "./tiddlers/content/labs/lab01"
+ }
+}