<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.wcipeg.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Judge%3AHistory</id>
		<title>Judge:History - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://www.wcipeg.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Judge%3AHistory"/>
		<link rel="alternate" type="text/html" href="http://www.wcipeg.com/wiki/index.php?title=Judge:History&amp;action=history"/>
		<updated>2026-05-10T02:03:23Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.25.2</generator>

	<entry>
		<id>http://www.wcipeg.com/wiki/index.php?title=Judge:History&amp;diff=1834&amp;oldid=prev</id>
		<title>Brian: /* Future plans */</title>
		<link rel="alternate" type="text/html" href="http://www.wcipeg.com/wiki/index.php?title=Judge:History&amp;diff=1834&amp;oldid=prev"/>
				<updated>2014-12-06T23:16:54Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Future plans&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 23:16, 6 December 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L32&quot; &gt;Line 32:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 32:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Future plans==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Future plans==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Brian plans to rewrite the core grader from scratch, to improve support for languages such as Java that invariably use multiple processes (something that the Unix API does not handle well). He also plans to refactor and then open-source the Judge code. It's currently uncertain whether either of these projects will ever see the light of day.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Brian plans to rewrite the core grader from scratch, to improve support for languages such as Java that invariably use multiple processes (something that the Unix API does not handle well). He also plans to refactor and then open-source the Judge code. It's currently uncertain whether either of these projects will ever see the light of day.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Brian also hopes that Google Fiber will one day come to Silicon Valley, where he currently resides, so that he can host the Judge on a dedicated server in his own home.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Brian</name></author>	</entry>

	<entry>
		<id>http://www.wcipeg.com/wiki/index.php?title=Judge:History&amp;diff=1833&amp;oldid=prev</id>
		<title>Brian: /* Recent hosting */</title>
		<link rel="alternate" type="text/html" href="http://www.wcipeg.com/wiki/index.php?title=Judge:History&amp;diff=1833&amp;oldid=prev"/>
				<updated>2014-12-06T23:15:49Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Recent hosting&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 23:15, 6 December 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L18&quot; &gt;Line 18:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 18:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Recent hosting==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Recent hosting==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The Judge was migrated a second time at the end of September 2010 to a OpenVZ box hosted by [http://www.intovps.com/ IntoVPS], which offered 512 MB guaranteed RAM, 30 GB disk space, 500 GB monthly bandwidth, and a quad-core CPU for only $10 USD/month. The :5050 suffix on the Judge URL was dropped, and the web server simply bound to port 80, since the hosting was then legitimate; Jacob also acquired the &amp;lt;code&amp;gt;wcipeg.com&amp;lt;/code&amp;gt; domain from James Rosselet (a former PEG member), giving the URL of the Judge as the current {{Root}}. A month later, it was again migrated to hosting by [http://www.virpus.com/ Virpus], which offered 1 GB guaranteed RAM, 50 GB disk space, 1600 GB monthly bandwidth, and six CPU cores, as Brian thought this was a better plan. However, Virpus hosting suffered from too much downtime, so in June of 2011 the Judge was migrated a fourth time to a [http://volumedrive.com/ VolumeDrive] box. In October of 2011, the Judge was migrated a fifth time to hosting offered by [http://lovevps.com/ LoveVPS], this time a Xen box, due to Brian's dissatisfaction with VolumeDrive's support and the incomplete virtualization of OpenVZ containers in general.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The Judge was migrated a second time at the end of September 2010 to a OpenVZ box hosted by [http://www.intovps.com/ IntoVPS], which offered 512 MB guaranteed RAM, 30 GB disk space, 500 GB monthly bandwidth, and a quad-core CPU for only $10 USD/month. The :5050 suffix on the Judge URL was dropped, and the web server simply bound to port 80, since the hosting was then legitimate; Jacob also acquired the &amp;lt;code&amp;gt;wcipeg.com&amp;lt;/code&amp;gt; domain from James Rosselet (a former PEG member), giving the URL of the Judge as the current {{Root}}.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A month later, it was again migrated to hosting by [http://www.virpus.com/ Virpus], which offered 1 GB guaranteed RAM, 50 GB disk space, 1600 GB monthly bandwidth, and six CPU cores, as Brian thought this was a better plan.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;However, Virpus hosting suffered from too much downtime, so in June of 2011 the Judge was migrated a fourth time to a [http://volumedrive.com/ VolumeDrive] box.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In October of 2011, the Judge was migrated a fifth time to hosting offered by [http://lovevps.com/ LoveVPS], this time a Xen box, due to Brian's dissatisfaction with VolumeDrive's support and the incomplete virtualization of OpenVZ containers in general.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Although LoveVPS was a satisfactory VPS host, Brian was again forced to migrate the Judge in May 2013, this time to HostingBeam (then PhoenixVPS); the reasons for this move will not be discussed here. HostingBeam suffered from strange performance issues: the virtualized file system was very slow, and so was &amp;lt;code&amp;gt;ptrace&amp;lt;/code&amp;gt;, an important operating system API used for automatic judging. These issues could be temporarily fixed by rebooting, but it would have been necessary to reboot the VPS more than once a week in order to maintain satisfactory performance.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Brian ultimately could not diagnose these issues with the HostingBeam VPS, so around June 2014, the Judge was moved to a [http://www.linode.com/ Linode] plan with 2 GB of RAM. (It is worth noting that Linode is generally considered one of the best VPS hosts, but was much more expensive around 2010; it became more feasible to host an online judge on Linode after April 2014, when the company doubled the RAM on all of their plans.)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Future plans==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Future plans==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Brian plans to rewrite the core grader from scratch, to improve support for languages such as Java that invariably use multiple processes (something that the Unix API does not handle well). He also plans to refactor and then open-source the Judge code. It's currently uncertain whether either of these projects will ever see the light of day.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Brian plans to rewrite the core grader from scratch, to improve support for languages such as Java that invariably use multiple processes (something that the Unix API does not handle well). He also plans to refactor and then open-source the Judge code. It's currently uncertain whether either of these projects will ever see the light of day.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Brian</name></author>	</entry>

	<entry>
		<id>http://www.wcipeg.com/wiki/index.php?title=Judge:History&amp;diff=1391&amp;oldid=prev</id>
		<title>Brian at 22:23, 17 October 2011</title>
		<link rel="alternate" type="text/html" href="http://www.wcipeg.com/wiki/index.php?title=Judge:History&amp;diff=1391&amp;oldid=prev"/>
				<updated>2011-10-17T22:23:30Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 22:23, 17 October 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;A brief history of the Judge&lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Background&lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;During &lt;/del&gt;the 2007/2008 school year, Hanson and Guru &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;decided &lt;/del&gt;to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;devote some time to a most worthy cause: &lt;/del&gt;writing an autograder for the 11/12 enriched CS class at Woburn&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;. In order to encourage us to develop her students' problem-solving skills as much as possible, Ms. Plachta set high expectations for them, such as earning 1000 points by the end of the year, where a typical problem is worth between 3 and 20 points. Students who wanted to earn a 99 in the course then had to solve between 50 and 300 problems, which translated to lots and lots of marking for Ms. Plachta. Marking programs is very tedious work. She had to download the program, save it in the student's folder, compile the program, locate the test data, run the program once for each case, then compare its output with the expected output. If the program failed, she often tried to figure out why, to give feedback to the student, and if it worked, she had to update the points spreadsheet&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Construction of the PEG Judge began during &lt;/ins&gt;the 2007/2008 school year, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;as a project by &lt;/ins&gt;Hanson and Guru&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, two former [[PEG:PEG leaders|PEG leaders]], &lt;/ins&gt;to &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;help Ms. Plachta by &lt;/ins&gt;writing an autograder for the 11/12 enriched CS class at Woburn.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The last task is the only one that should require human intervention, and it was clear that &lt;/del&gt;Ms. Plachta &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;was spending far too much time on &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;other tasks&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;In &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;periods &lt;/del&gt;of &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;time immediately preceding report card mark submission deadlines she &lt;/del&gt;was &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;literally spending day &lt;/del&gt;and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;night marking, marking, &lt;/del&gt;marking. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;As she was in poor health due &lt;/del&gt;to the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;cancer &lt;/del&gt;it &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;became clear that this would be too much of a burden &lt;/del&gt;for &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;her&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The more experienced students in class could &lt;/del&gt;give feedback to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;students whose programs didn't work&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;but it would have been impossible for them to mark everyone’s programs; &lt;/del&gt;it &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;would have been too much work for students who &lt;/del&gt;had &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;their own work &lt;/del&gt;to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;do too. And so &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;PEG Judge was born&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Though its creators did not anticipate this, &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Judge would have the added benefit of encouraging students to &lt;/del&gt;code.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ms. Plachta &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;demanded &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;highest standards of achievement from her students, in order to push them to reach their full potential&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;A student could typically earn a 99 in &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;course by earning a large number &lt;/ins&gt;of &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;points (on the order of magnitude of 1000) in one school year, where a single CS problem &lt;/ins&gt;was &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;typically worth between 3 &lt;/ins&gt;and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;20 points (depending on difficulty). This translated to lots and lots of &lt;/ins&gt;marking &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;for Ms&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Plachta, who had &lt;/ins&gt;to &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;download &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;source file, save &lt;/ins&gt;it &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;in the student's folder, compile the program, locate the test data, run the program once &lt;/ins&gt;for &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;each case, then compare its output with the expected output for each case&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;If the program failed, she often tried to figure out why, to &lt;/ins&gt;give feedback to &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the student&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;and if &lt;/ins&gt;it &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;worked, she &lt;/ins&gt;had to &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;update &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;points spreadsheet&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;In &lt;/ins&gt;the code &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;submission frenzies that preceded report card mark submission deadlines, Ms. Plachta often had to work day and night to finish all her marking&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;On September 23rd, 2008&lt;/del&gt;, the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;first source file was submitted &lt;/del&gt;to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the PEG Judge, which at the time supported only C and C++ (&lt;/del&gt;with &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Pascal being added soon afterward). The Judge was hosted on one of the school’s machines&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;a Dell OptiPlex with a dual-core Intel CPU and 4MB L2 cache using Jacob’s home internet connection with Rogers&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;As hosting servers on residential internet contracts is typically not allowed&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Hanson decided to run &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;server on some port &lt;/del&gt;other &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;than 80, &lt;/del&gt;in &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;case the ISP was scanning for unauthorized activity on port 80. After trying various ports he determined that 5050 is the only port above &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;reserved range &lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;''i.e.''&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the range 1-1023 to which&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;on some operating systems&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;permission to bind is withheld by the kernel &lt;/del&gt;and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;granted only to users with sufficient privilege&lt;/del&gt;) &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;that isn't actually filtered by &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;school board's firewall. So there we sat at http://pegjudge.ath.cx:5050/ . The &lt;/del&gt;Judge &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;at that time &lt;/del&gt;was &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;very new; it had a very basic set of features&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;but it got &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;job done. &lt;/del&gt;Guru &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;wrote most of the back end&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;particularly the grader itself&lt;/del&gt;, and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Hanson wrote most &lt;/del&gt;of the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;front end&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;When Ms. Plachta became ill with cancer&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;it became clear that this system was unsustainable. There were students in &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;class experienced enough &lt;/ins&gt;to &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;give feedback to other students who were having trouble &lt;/ins&gt;with &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;getting their code to work&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;but it would have been impossible for them to mark everyone’s programs; it would have been too much work for these students who had their own work to do too&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Meanwhile, computers are very bad at figuring out humans' mistakes&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;but very good at all &lt;/ins&gt;the other &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;tasks involved &lt;/ins&gt;in the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;marking process &lt;/ins&gt;(&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;automatic submission&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;compilation&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;execution&lt;/ins&gt;, and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;grading&lt;/ins&gt;)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. And so &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;PEG &lt;/ins&gt;Judge was &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;born&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;and complemented &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;efforts of &lt;/ins&gt;Guru, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Hanson, Jacob&lt;/ins&gt;, and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;others in taking over the teaching &lt;/ins&gt;of the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;class&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The &lt;/del&gt;2008&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;/2009 &lt;/del&gt;school &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;year saw &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;dramatic improvement in &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;interface as &lt;/del&gt;Hanson &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;completely overhauled &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;front end, leaving &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;interface cleaner&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;crisper&lt;/del&gt;, and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;more professional-looking&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;He also overhauled &lt;/del&gt;the back end, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;switching from &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;''ad hoc'' PHP functions being used before to the CodeIgniter framework&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;(&lt;/del&gt;The grader, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;though&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;has been tweaked only slightly since &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;inception of &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Judge&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;==Genesis==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;On September 23rd, &lt;/ins&gt;2008&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, the first source file was submitted to the PEG Judge, which at the time supported only C and C++ (with Pascal being added soon afterward). The Judge was hosted on a machine on loan from the &lt;/ins&gt;school&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Dell OptiPlex with a dual-core Intel CPU and 4MB L2 cache, running 32-bit Ubuntu GNU/Linux. The internet connection was provided by Jacob, who connected &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Judge to his home internet service with Rogers. Since hosting servers on residential internet contracts is typically not allowed, &lt;/ins&gt;Hanson &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;decided to run &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;server on some port other than 80 (&lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;standard for the HTTP)&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;in case Rogers was monitoring unauthorized activity on port 80. Port number 5050 was chosen for this purpose, as almost all other ports were filtered. Also, he found a simple dynamic DNS setup&lt;/ins&gt;, and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;so the original URL of the Judge was &amp;lt;code&amp;gt;http://pegjudge&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ath.cx:5050/&amp;lt;/code&amp;gt;. The Judge at that time was very new; it had a very basic set of features, but it got the job done. Guru wrote most of &lt;/ins&gt;the back end, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;and Hanson wrote most of &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;front end&lt;/ins&gt;. The &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;core &lt;/ins&gt;grader, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;responsible for setting up a sandbox and measuring resource usage&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;was taken from [http://mooshak.dcc.fc.up.pt/ Mooshak], as no PEG member at &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;time had &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;expertise in Unix-based systems necessary to write a grader from scratch&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;By &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;end &lt;/del&gt;of &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;that &lt;/del&gt;year the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Judge in its current form was essentially complete&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;a good thing as Hanson was off to university &lt;/del&gt;and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;would likely have other things on his mind&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;As Brian had started using Linux &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;previous year&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;he was in an ideal position to take over &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;administration of the Judge (but he had to trick Hanson into giving him root access). In November he added a wiki &lt;/del&gt;to the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;site &lt;/del&gt;and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;he has also gradually populated the allowed languages list&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;==Development==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;The Judge saw a dramatic improvement in &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;interface over the course &lt;/ins&gt;of &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the 2008/2009 school &lt;/ins&gt;year &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;as Hanson completely overhauled &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;front end, leaving the interface cleaner, crisper&lt;/ins&gt;, and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;more professional-looking&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;He also overhauled &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;back end&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;switching from &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;''ad hoc'' PHP functions being used before &lt;/ins&gt;to the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;secure &lt;/ins&gt;and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;high-performance CodeIgniter framework&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(The grader, however, was only tweaked slightly.)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;With &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;passing &lt;/del&gt;of &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Ms. Plachta &lt;/del&gt;the Judge was &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;never as popular as before&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;for students were no longer being pushed to earn 1000 points. But there were still some PEG members using it; Canada’s IOI teams trained on it; and Brian and &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;friend from Waterloo C.I. tried to run a mock DWITE contest. And so the Judge went on. When the Plachta house &lt;/del&gt;was &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sold in June, the Judge was migrated &lt;/del&gt;to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Brian's laptop, again illicitly. When Brian left for &lt;/del&gt;university&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;, he could not risk violating the residence contract, so the Judge was left without hosting&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Brian, Jacob, and Hanson were hopeful about convincing the Center &lt;/del&gt;for &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Education in Mathematics and Computing at the University of Waterloo to grant PEG hosting, for this is the organization primarily involved with high achievement in computer science at the high school level, &lt;/del&gt;running &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the Canadian Computing Competition &lt;/del&gt;and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sending Team Canada to the IOI&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Almost all problems from CCCs of years past&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;both stage 1 and stage 2, were already in the PEG Judge's archive, the interface had taken two years of work, the grader &lt;/del&gt;had been &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;tweaked precisely, and, all in all, &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;PEG Judge was the first in Canada with a level of sophistication on par with those &lt;/del&gt;of the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;major online judges &lt;/del&gt;of the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;time&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;PEG&lt;/del&gt;'s &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;request was denied by &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;CEMC, forcing Brian &lt;/del&gt;to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;look elsewhere&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;By &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;end &lt;/ins&gt;of &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;that year &lt;/ins&gt;the Judge &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;in its current form &lt;/ins&gt;was &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;essentially complete&lt;/ins&gt;, a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;good thing as Hanson &lt;/ins&gt;was &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;off &lt;/ins&gt;to university &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;and would likely have other things on his mind&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;It even included support &lt;/ins&gt;for running &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;contests &lt;/ins&gt;and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;posting comments&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Brian&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;who &lt;/ins&gt;had been &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;helping with administration since &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;beginning &lt;/ins&gt;of the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;year, took over at this point as primary administrator &lt;/ins&gt;of the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Judge&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Brian&lt;/ins&gt;'s &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;primary contributions were &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;addition of this wiki &lt;/ins&gt;to &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the site and support for various additional popular programming languages&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Luckily&lt;/del&gt;, some &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;very good VPS plans exist&lt;/del&gt;; [http://www.intovps.com/ IntoVPS], &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;for example, offers &lt;/del&gt;512 MB guaranteed RAM, 30 GB disk space, 500 GB monthly bandwidth, and a quad-core CPU for only $10 USD/month. The &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;PEG &lt;/del&gt;Judge was &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;initially migrated to an IntoVPS &lt;/del&gt;server; a month later it was again migrated to hosting by [http://www.virpus.com/ Virpus], which &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;offers &lt;/del&gt;1 GB guaranteed RAM, 50 GB disk space, 1600 GB monthly bandwidth, and six CPU cores. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;As &lt;/del&gt;hosting &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;is now legitimate&lt;/del&gt;, the :&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;5050 suffix &lt;/del&gt;was &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;dropped &lt;/del&gt;and the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;site is now {{Root}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;==Later years==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;With the passing of Ms. Plachta&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the Judge was never as popular as before, for students were no longer being pushed to earn 1000-odd points per year. But there were still &lt;/ins&gt;some &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;PEG members using it&lt;/ins&gt;; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Canada’s IOI teams trained on it; and Brian and a friend from Waterloo C.I. ran a mock DWITE contest. The decision was thus made to keep the Judge alive. When the Plachta house was sold in June 2010, Jacob could no longer host the Judge, so the Judge was migrated to Brian's laptop; this hosting was again illegitimate. When Brian left for university at the beginning of September 2010, he could not risk violating the residence contract that stated that hosting servers was strictly disallowed, so the Judge was left without hosting for a few weeks. Brian, Jacob, and Hanson were hopeful about convincing the Center for Education in Mathematics and Computing at the University of Waterloo to grant PEG hosting, for this is the organization primarily involved with high achievement in computer science at the high school level, running the Canadian Computing Competition and sending Team Canada to the IOI. Almost all problems from CCCs of years past, both stage 1 and stage 2, were already in the PEG Judge's archive, the interface had taken two years of work, the grader had been tweaked precisely, and, all in all, the PEG Judge was the first in Canada with a level of sophistication on par with those of the major online judges of the time. This did not work out, so Brian started looking for hosting companies.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;==Recent hosting==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;The Judge was migrated a second time at the end of September 2010 to a OpenVZ box hosted by &lt;/ins&gt;[http://www.intovps.com/ IntoVPS], &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;which offered &lt;/ins&gt;512 MB guaranteed RAM, 30 GB disk space, 500 GB monthly bandwidth, and a quad-core CPU for only $10 USD/month. The &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;:5050 suffix on the &lt;/ins&gt;Judge &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;URL &lt;/ins&gt;was &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;dropped, and the web &lt;/ins&gt;server &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;simply bound to port 80, since the hosting was then legitimate&lt;/ins&gt;; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Jacob also acquired the &amp;lt;code&amp;gt;wcipeg.com&amp;lt;/code&amp;gt; domain from James Rosselet (&lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;former PEG member), giving the URL of the Judge as the current {{Root}}. A &lt;/ins&gt;month later&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/ins&gt;it was again migrated to hosting by [http://www.virpus.com/ Virpus], which &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;offered &lt;/ins&gt;1 GB guaranteed RAM, 50 GB disk space, 1600 GB monthly bandwidth, and six CPU cores&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, as Brian thought this was a better plan&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;However, Virpus &lt;/ins&gt;hosting &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;suffered from too much downtime&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;so in June of 2011 &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Judge was migrated a fourth time to a [http&lt;/ins&gt;:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;//volumedrive.com/ VolumeDrive] box. In October of 2011, the Judge &lt;/ins&gt;was &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;migrated a fifth time to hosting offered by [http://lovevps.com/ LoveVPS], this time a Xen box, due to Brian's dissatisfaction with VolumeDrive's support &lt;/ins&gt;and the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;incomplete virtualization of OpenVZ containers in general.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;==Future plans==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Brian plans to rewrite the core grader from scratch, to improve support for languages such as Java that invariably use multiple processes (something that the Unix API does not handle well). He also plans to refactor and then open-source the Judge code. It's currently uncertain whether either of these projects will ever see the light of day.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Brian</name></author>	</entry>

	<entry>
		<id>http://www.wcipeg.com/wiki/index.php?title=Judge:History&amp;diff=480&amp;oldid=prev</id>
		<title>Brian: /* A brief history of the Judge */</title>
		<link rel="alternate" type="text/html" href="http://www.wcipeg.com/wiki/index.php?title=Judge:History&amp;diff=480&amp;oldid=prev"/>
				<updated>2010-11-07T23:30:47Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;A brief history of the Judge&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 23:30, 7 November 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L12&quot; &gt;Line 12:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 12:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;With the passing of Ms. Plachta the Judge was never as popular as before, for students were no longer being pushed to earn 1000 points. But there were still some PEG members using it; Canada’s IOI teams trained on it; and Brian and a friend from Waterloo C.I. tried to run a mock DWITE contest. And so the Judge went on. When the Plachta house was sold in June, the Judge was migrated to Brian's laptop, again illicitly. When Brian left for university, he could not risk violating the residence contract, so the Judge was left without hosting. Brian, Jacob, and Hanson were hopeful about convincing the Center for Education in Mathematics and Computing at the University of Waterloo to grant PEG hosting, for this is the organization primarily involved with high achievement in computer science at the high school level, running the Canadian Computing Competition and sending Team Canada to the IOI. Almost all problems from CCCs of years past, both stage 1 and stage 2, were already in the PEG Judge's archive, the interface had taken two years of work, the grader had been tweaked precisely, and, all in all, the PEG Judge was the first in Canada with a level of sophistication on par with those of the major online judges of the time. PEG's request was denied by the CEMC, forcing Brian to look elsewhere.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;With the passing of Ms. Plachta the Judge was never as popular as before, for students were no longer being pushed to earn 1000 points. But there were still some PEG members using it; Canada’s IOI teams trained on it; and Brian and a friend from Waterloo C.I. tried to run a mock DWITE contest. And so the Judge went on. When the Plachta house was sold in June, the Judge was migrated to Brian's laptop, again illicitly. When Brian left for university, he could not risk violating the residence contract, so the Judge was left without hosting. Brian, Jacob, and Hanson were hopeful about convincing the Center for Education in Mathematics and Computing at the University of Waterloo to grant PEG hosting, for this is the organization primarily involved with high achievement in computer science at the high school level, running the Canadian Computing Competition and sending Team Canada to the IOI. Almost all problems from CCCs of years past, both stage 1 and stage 2, were already in the PEG Judge's archive, the interface had taken two years of work, the grader had been tweaked precisely, and, all in all, the PEG Judge was the first in Canada with a level of sophistication on par with those of the major online judges of the time. PEG's request was denied by the CEMC, forcing Brian to look elsewhere.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Luckily, some very good VPS plans exist; [http://www.intovps.com/ IntoVPS], for example, offers 512 MB guaranteed RAM, 30 GB disk space, 500 GB monthly bandwidth, and a quad-core CPU for only $10 USD/month. The PEG Judge was initially migrated to an IntoVPS server; a month later it was again migrated to hosting by [http://www.virpus.com/ Virpus], which offers 1 GB guaranteed RAM, 50 GB disk space, 1600 GB monthly bandwidth, and six CPU cores. As hosting is now legitimate, the :5050 suffix was dropped and the site is now &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;http://pegjudge.ath.cx/&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Luckily, some very good VPS plans exist; [http://www.intovps.com/ IntoVPS], for example, offers 512 MB guaranteed RAM, 30 GB disk space, 500 GB monthly bandwidth, and a quad-core CPU for only $10 USD/month. The PEG Judge was initially migrated to an IntoVPS server; a month later it was again migrated to hosting by [http://www.virpus.com/ Virpus], which offers 1 GB guaranteed RAM, 50 GB disk space, 1600 GB monthly bandwidth, and six CPU cores. As hosting is now legitimate, the :5050 suffix was dropped and the site is now &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{{Root}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Brian</name></author>	</entry>

	<entry>
		<id>http://www.wcipeg.com/wiki/index.php?title=Judge:History&amp;diff=479&amp;oldid=prev</id>
		<title>Brian: Created page with '==A brief history of the Judge== During the 2007/2008 school year, Hanson and Guru decided to devote some time to a most worthy cause: writing an autograder for the 11/12 enriche…'</title>
		<link rel="alternate" type="text/html" href="http://www.wcipeg.com/wiki/index.php?title=Judge:History&amp;diff=479&amp;oldid=prev"/>
				<updated>2010-11-04T21:22:05Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;#039;==A brief history of the Judge== During the 2007/2008 school year, Hanson and Guru decided to devote some time to a most worthy cause: writing an autograder for the 11/12 enriche…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==A brief history of the Judge==&lt;br /&gt;
During the 2007/2008 school year, Hanson and Guru decided to devote some time to a most worthy cause: writing an autograder for the 11/12 enriched CS class at Woburn. In order to encourage us to develop her students' problem-solving skills as much as possible, Ms. Plachta set high expectations for them, such as earning 1000 points by the end of the year, where a typical problem is worth between 3 and 20 points. Students who wanted to earn a 99 in the course then had to solve between 50 and 300 problems, which translated to lots and lots of marking for Ms. Plachta. Marking programs is very tedious work. She had to download the program, save it in the student's folder, compile the program, locate the test data, run the program once for each case, then compare its output with the expected output. If the program failed, she often tried to figure out why, to give feedback to the student, and if it worked, she had to update the points spreadsheet.&lt;br /&gt;
&lt;br /&gt;
The last task is the only one that should require human intervention, and it was clear that Ms. Plachta was spending far too much time on the other tasks. In the periods of time immediately preceding report card mark submission deadlines she was literally spending day and night marking, marking, marking. As she was in poor health due to the cancer it became clear that this would be too much of a burden for her. The more experienced students in class could give feedback to students whose programs didn't work, but it would have been impossible for them to mark everyone’s programs; it would have been too much work for students who had their own work to do too. And so the PEG Judge was born. Though its creators did not anticipate this, the Judge would have the added benefit of encouraging students to code.&lt;br /&gt;
&lt;br /&gt;
On September 23rd, 2008, the first source file was submitted to the PEG Judge, which at the time supported only C and C++ (with Pascal being added soon afterward). The Judge was hosted on one of the school’s machines, a Dell OptiPlex with a dual-core Intel CPU and 4MB L2 cache using Jacob’s home internet connection with Rogers. As hosting servers on residential internet contracts is typically not allowed, Hanson decided to run the server on some port other than 80, in case the ISP was scanning for unauthorized activity on port 80. After trying various ports he determined that 5050 is the only port above the reserved range (''i.e.'', the range 1-1023 to which, on some operating systems, permission to bind is withheld by the kernel and granted only to users with sufficient privilege) that isn't actually filtered by the school board's firewall. So there we sat at http://pegjudge.ath.cx:5050/ . The Judge at that time was very new; it had a very basic set of features, but it got the job done. Guru wrote most of the back end, particularly the grader itself, and Hanson wrote most of the front end.&lt;br /&gt;
&lt;br /&gt;
The 2008/2009 school year saw a dramatic improvement in the interface as Hanson completely overhauled the front end, leaving the interface cleaner, crisper, and more professional-looking. He also overhauled the back end, switching from the ''ad hoc'' PHP functions being used before to the CodeIgniter framework. (The grader, though, has been tweaked only slightly since the inception of the Judge.)&lt;br /&gt;
&lt;br /&gt;
By the end of that year the Judge in its current form was essentially complete, a good thing as Hanson was off to university and would likely have other things on his mind. As Brian had started using Linux the previous year, he was in an ideal position to take over the administration of the Judge (but he had to trick Hanson into giving him root access). In November he added a wiki to the site and he has also gradually populated the allowed languages list.&lt;br /&gt;
&lt;br /&gt;
With the passing of Ms. Plachta the Judge was never as popular as before, for students were no longer being pushed to earn 1000 points. But there were still some PEG members using it; Canada’s IOI teams trained on it; and Brian and a friend from Waterloo C.I. tried to run a mock DWITE contest. And so the Judge went on. When the Plachta house was sold in June, the Judge was migrated to Brian's laptop, again illicitly. When Brian left for university, he could not risk violating the residence contract, so the Judge was left without hosting. Brian, Jacob, and Hanson were hopeful about convincing the Center for Education in Mathematics and Computing at the University of Waterloo to grant PEG hosting, for this is the organization primarily involved with high achievement in computer science at the high school level, running the Canadian Computing Competition and sending Team Canada to the IOI. Almost all problems from CCCs of years past, both stage 1 and stage 2, were already in the PEG Judge's archive, the interface had taken two years of work, the grader had been tweaked precisely, and, all in all, the PEG Judge was the first in Canada with a level of sophistication on par with those of the major online judges of the time. PEG's request was denied by the CEMC, forcing Brian to look elsewhere.&lt;br /&gt;
&lt;br /&gt;
Luckily, some very good VPS plans exist; [http://www.intovps.com/ IntoVPS], for example, offers 512 MB guaranteed RAM, 30 GB disk space, 500 GB monthly bandwidth, and a quad-core CPU for only $10 USD/month. The PEG Judge was initially migrated to an IntoVPS server; a month later it was again migrated to hosting by [http://www.virpus.com/ Virpus], which offers 1 GB guaranteed RAM, 50 GB disk space, 1600 GB monthly bandwidth, and six CPU cores. As hosting is now legitimate, the :5050 suffix was dropped and the site is now http://pegjudge.ath.cx/&lt;/div&gt;</summary>
		<author><name>Brian</name></author>	</entry>

	</feed>