<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Development :: OAT Developer Documentation</title>
    <link>https://cs.uwaterloo.ca/~cs-oat/devdoc/dev/index.html</link>
    <description>Stuff related to the on-going task of developing OAT.</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <atom:link href="https://cs.uwaterloo.ca/~cs-oat/devdoc/dev/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Collected Wisdom</title>
      <link>https://cs.uwaterloo.ca/~cs-oat/devdoc/dev/wisdom/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://cs.uwaterloo.ca/~cs-oat/devdoc/dev/wisdom/index.html</guid>
      <description>This should have been started a LONG time ago… It should have many more pearls. But as they say,&#xA;The best time to plant a tree is 20 years ago. The next best time is today.&#xA;Type aliases vs. opaque types You often have some kind of data that has a particular role but a common type, usually String. For example, a Userid. Using a more specific type such as Userid makes code easier to read/understand/maintain.</description>
    </item>
    <item>
      <title>Techniques</title>
      <link>https://cs.uwaterloo.ca/~cs-oat/devdoc/dev/techniques/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://cs.uwaterloo.ca/~cs-oat/devdoc/dev/techniques/index.html</guid>
      <description>Techniques strongly tied to OAT.&#xA;Shorter stuff can go here. Longer or more important stuff may get their own page.&#xA;Delivering data to the browser When a web page has dynamic data to display, there are several general approaches:&#xA;Render it all on the server. Ask the server for an updated page when anything changes (Web1.0).&#xA;Deliver an HTML shell of the page and some ScalaJS. Fetch the data needed from a web service and render it on the browser.</description>
    </item>
    <item>
      <title>Update Local Database</title>
      <link>https://cs.uwaterloo.ca/~cs-oat/devdoc/dev/updatelocaldb/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://cs.uwaterloo.ca/~cs-oat/devdoc/dev/updatelocaldb/index.html</guid>
      <description>We often connect OAT to a local instance of postgres for testing, etc.&#xA;Requirements for the local database:&#xA;Same schema as production. Lots of the same data as production. A much-reduced set of students. Students that are fixed as much as possible (if they change, tests break). Ability to add new students to test time-sensitive features (eg we added degree audit but didn’t have plans defined for the ancient students already in the DB; added some new students). Obfuscate the students so a co-op student can work with them. We periodically extract specific students from the database using code in oat-extractdata. The extracted data is placed in ${OAT_HOME}/oat-testdata. Both of these repositories should be checked out from git.uwaterloo.ca:oat. Their ReadMe documents are helpful.</description>
    </item>
  </channel>
</rss>