<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MarkUs Blog</title>
	<atom:link href="http://blog.markusproject.org/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.markusproject.org</link>
	<description>MarkUs Developers Blog About Their Project</description>
	<lastBuildDate>Thu, 29 Jul 2010 04:03:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Automated Proxy Setup</title>
		<link>http://blog.markusproject.org/?p=1627</link>
		<comments>http://blog.markusproject.org/?p=1627#comments</comments>
		<pubDate>Thu, 29 Jul 2010 04:03:26 +0000</pubDate>
		<dc:creator>Severin</dc:creator>
				<category><![CDATA[Apache Proxy Setup]]></category>
		<category><![CDATA[Developer Essentials]]></category>

		<guid isPermaLink="false">http://blog.markusproject.org/?p=1627</guid>
		<description><![CDATA[Here are some instructions as to how to do a quick and dirty MarkUs setup so that it&#8217;s accessible behind Apache httpd. Please don&#8217;t use it in production. It may provide some inspirations, though. Here is a shell script, which does the heavy lifting of a proxied setup including basic authentication. This has been tested [...]]]></description>
			<content:encoded><![CDATA[<p>Here are some instructions as to how to do a quick and dirty MarkUs setup so that it&#8217;s accessible behind Apache httpd. Please don&#8217;t use it in production. It may provide some inspirations, though.</p>
<p>Here is a <a href="http://www.markusproject.org/dev/setup_apache_auth_proxy.sh">shell script</a>, which does the heavy lifting of a proxied setup including basic authentication. This has been tested on Debian and Ubuntu. It might also work on some other distributions with some modifications. The necessary steps are as follows:</p>
<ol>
<li>cd to a clean checkout of MarkUs</li>
<li>edit config/environment.rb such that it includes<br />
config.action_controller.relative_url_root = &#8220;/markus&#8221;</li>
<li>edit setup_apache_auth_proxy.sh and update MARKUS_RAILS_ROOT so<br />
that it points to your MarkUs checkout.</li>
<li>go to your MarkUs checkout and do ./script/server (the usual<br />
thing)</li>
</ol>
<p>Become root (e.g. $ sudo -s)<br />
# chmod +x setup_apache_auth_proxy.sh<br />
# ./setup_apache_auth_proxy.sh</p>
<p>Finally go to http://testhost.com/markus (It should ask for authentication; use username=markus_test password=test). You should see a standard MarkUs login screen now. Happy proxy testing/developing! <img src='http://blog.markusproject.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.markusproject.org/?feed=rss2&amp;p=1627</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PDF Conversion Heavy on Memory Use</title>
		<link>http://blog.markusproject.org/?p=1623</link>
		<comments>http://blog.markusproject.org/?p=1623#comments</comments>
		<pubDate>Mon, 19 Jul 2010 20:38:28 +0000</pubDate>
		<dc:creator>c8braver</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.markusproject.org/?p=1623</guid>
		<description><![CDATA[We use ImageMagick to convert pdfs to jpgs to display them within the browser. Originally, pdf to jpg conversion was done with the RMagick gem for ruby, which was a nice api for ImageMagick. This worked fine until we started testing with pdf files containing hundreds of pages. The problem that went unnoticed until then [...]]]></description>
			<content:encoded><![CDATA[<p>We use ImageMagick to convert pdfs to jpgs to display them within the browser. Originally, pdf to jpg conversion was done with the RMagick gem for ruby, which was a nice api for ImageMagick. This worked fine until we started testing with pdf files containing hundreds of pages. The problem that went unnoticed until then was the amount of memory ImageMagick actually required to convert files. It was quickly gobbling up gigabytes of RAM and taking over the entire swap memory. Fortunately, we noticed this and managed to kill the process in time before our computers crashed.</p>
<p>After doing some research, i found a blog post at http://www.salas.com/2009/06/19/geeky-rmagick-and-memory-leaks/. This talks about the issues of using RMagick, namely the memory leaks it creates as ruby&#8217;s garbage collector doesn&#8217;t play nice with it. Upon further investigation, I found that this leak made MarkUs use 3 times as much memory as was needed for conversion. Furthermore, the post described a function designed to free memory. However due to the nature of RMagick, this meant that we would be using at least twice necessary memory used to convert the files by ImageMagick, as RMagick would save an object corresponding to an image, and create a new one for every manipulation performed on it. Thus there was always an unavoidable window after a modification and before the original image object can be destroyed to free its memory.</p>
<p>As a result, I have opted for issuing a direct call to ImageMagick&#8217;s convert function via ruby.  This is a much better alternative, as it performs all the modifications in one line. The memory use issue still wasn&#8217;t solved here though. After more digging I found this formula on ImageMagick&#8217;s site http://www.imagemagick.org/script/advanced-unix-installation.php</p>
<p>Memory use = <em>(5 * Quantum Depth * Rows * Columns) / 8</em></p>
<p><em>Where Rows and Columns were the size of the pdf file, and quantum depth was a setting configured at the pre-compilation phase of ImageMagick. It was impractical to reduce the quantum depth for several reasons. Firstly, having to recompile ImageMagick would not be very fun, especially since this would have to be done for every server MarkUs is hosted on. Secondly, picture quality would be severely compromised, as quantum depth is responsible for the number of colours in the image (setting it to 8 would impose a 256 colour restriction and we live in 2010 now&#8230;). Lastly, the quantum depth was currently set at 16, and its minimal value was 8. All that extra headache would only cut memory use in half, and still not prevent malicious users from crashing server simply by using a pdf file twice as big.<br />
</em></p>
<p>After more headaches, (I blame myself for them, as the solution should have been so obvious) I took a close look at all the optional arguments the convert command takes. The -limit option was exactly what I was looking for &#8211; being responsible developers, the ImageMagick team knew of its heavy memory requirements and created a solution for cases just like ours. The documentation can be found here http://www.imagemagick.org/script/command-line-options.php#limit. Essentially, this option allowed me to limit the amount of memory that the convert command was allowed to use. Now, instead of eating up all the server&#8217;s RAM and swap, convert gets all the memory it needs from the hard disk, where space is not an issue anymore.</p>
<p>The downside of course, is significantly slower conversion times when the hard disk is used. To counteract this, I have added an option in the markus configuration that will allow sysadmins to set the amount of RAM they want to be accessible by ImageMagick. We found that 100 megabytes will take care of most conversion needs, and should be enough to convert a  10 page US letter sized pdf, and the hard disk only needs to kick in for those extra big files.</p>
<p>This post is meant to be a guide to anyone who decides to tinker with the pdf conversion system in the future, as well as aiding admins in the (highly unlikely&#8230;. hopefully) case something goes wrong.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.markusproject.org/?feed=rss2&amp;p=1623</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MarkUs 0.8.0 is out!</title>
		<link>http://blog.markusproject.org/?p=1605</link>
		<comments>http://blog.markusproject.org/?p=1605#comments</comments>
		<pubDate>Wed, 07 Jul 2010 15:20:38 +0000</pubDate>
		<dc:creator>Benjamin Vialle</dc:creator>
				<category><![CDATA[Releases]]></category>
		<category><![CDATA[0.8.0]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[image_annotation]]></category>
		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://blog.markusproject.org/?p=1605</guid>
		<description><![CDATA[The summer started two months ago and I am very proud to announce to you the latest release of MarkUs, version 0.8.0. We have added a lot of great features : Changelog We are now using Rails 2.3.8, the latest version of the 2.3.x tree Some bug fixes on submission dates and grace period credits [...]]]></description>
			<content:encoded><![CDATA[<p>The summer started two months ago and I am very proud to announce to you the latest release of MarkUs, version 0.8.0.</p>
<p>We have added a lot of great features : <img src='http://blog.markusproject.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em>Changelog</em></p>
<ul>
<li>We are now using Rails 2.3.8, the latest version of the 2.3.x tree</li>
<li>Some bug fixes on submission dates and grace period credits</li>
<li>Python and Ruby Scripts in order to help users to interact with MarkUs through the API</li>
<li>Displaying and annotating images</li>
<li>
<ul>A lot of accessibility features have been implemented :</p>
<li>Missing labels &#038; Better focus on forms</li>
<li>Adding annotations in downloaded code from students repository</li>
<li>Re-arrange criteria using keyboard</li>
</ul>
</li>
<li>MarkUs is now completely internationalized and a French translation is available</li>
</ul>
<p>So what are you waiting for?  <a href="http://www.markusproject.org/download/markus-0.8.0.tar.gz">Get MarkUs 0.8.0 right now!</a></p>
<p><strong>Contributors:</strong><br />
Diane Tam<br />
Dina Sabied<br />
Evan Browning<br />
Anton Braverman<br />
Nelle Varoquaux<br />
Bryan Shen<br />
Severin Gehwolf<br />
Mike Conley<br />
Benjamin Vialle</p>
<p>I hope I didn&#8217;t forget someone. <img src='http://blog.markusproject.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.markusproject.org/?feed=rss2&amp;p=1605</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Making Development Faster on Firefox</title>
		<link>http://blog.markusproject.org/?p=1602</link>
		<comments>http://blog.markusproject.org/?p=1602#comments</comments>
		<pubDate>Tue, 29 Jun 2010 15:02:01 +0000</pubDate>
		<dc:creator>Evan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.markusproject.org/?p=1602</guid>
		<description><![CDATA[I noticed that loading MarkUs from localhost with Firefox was taking much much longer than it took with Chrome or even IE.  I thought this was just due to my many development add-ons but when I looked at the page loading with firebug I noticed that most of the time was spent on DNS lookup.  [...]]]></description>
			<content:encoded><![CDATA[<p>I noticed that loading MarkUs from localhost with Firefox was taking much much longer than it took with Chrome or even IE.  I thought this was just due to my many development add-ons but when I looked at the page loading with firebug I noticed that most of the time was spent on DNS lookup.  From searching online, it seems that this is a known issue that occurs because Firefox is trying to find an IPV6 address for localhost but only receiving an IPV4 address.</p>
<p>To make things faster, go to about:config and set <em>network.dns.ipv4OnlyDomains </em>to the value &#8220;localhost&#8221;.  Now Firefox only tries to find an IPV4 address <img src='http://blog.markusproject.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.markusproject.org/?feed=rss2&amp;p=1602</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Annotating Images and PDF Files</title>
		<link>http://blog.markusproject.org/?p=1597</link>
		<comments>http://blog.markusproject.org/?p=1597#comments</comments>
		<pubDate>Wed, 23 Jun 2010 18:16:35 +0000</pubDate>
		<dc:creator>c8braver</dc:creator>
				<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://blog.markusproject.org/?p=1597</guid>
		<description><![CDATA[As some of you probably already know, I&#8217;ve recently finished implementing the image annotation feature for MarkUs and already committed the work. MarkUs now supports the standard web image formats &#8211; jpg, gif and png. Currently I am in the process of adding the ability to annotate PDFs. My approach to this task is to [...]]]></description>
			<content:encoded><![CDATA[<p>As some of you probably already know, I&#8217;ve recently finished implementing the image annotation feature for MarkUs and already committed the work. MarkUs now supports the standard web image formats &#8211; jpg, gif and png. Currently I am in the process of adding the ability to annotate PDFs.</p>
<p>My approach to this task is to convert the PDF files to JPG format via the ImageMagick software and the RMagick gem designed for ruby and then display it in the browser. This seemed like a reasonable approach, as we already have the ability to annotate JPG&#8217;s. Currently, I successfully managed to integrate the PDFs and I am at a point where they are converted and displayed in the browser and the user is able to annotate them.</p>
<p>Great! So why not commit and ship these features right away you say? Right now, the main issue is the fact that PDF-JPG conversion is a very expensive operation on the order of ~2-3 seconds per page and we obviously need to accommodate for multiple-page submissions. For example, it takes a good 25 seconds to convert a 900kb 11-paged PDF file. Class sizes can easily range in the hundreds, so a 300 person class would require 7500 seconds &#8211; just over 2 hours to convert all the PDFs.</p>
<p>The length of the conversion is due to the need of preserving the file-content quality. On its default settings, an ImageMagick conversion gives a poor image quality, rendering standard-sized text unreadable and thus the submission is effectively useless. To combat this, I use supersampling &#8211; increasing the image resolution while decreasing the image size. This significantly lengthens the conversion process.</p>
<p>In light of this problem, we clearly want as little conversions happening as possible &#8211; 1 conversion per file is the best we can do. Thus I have decided to store the binary data of the images (post-conversion) in the database, for quick access. The alternative would be to store the converted file in the student repositories, but this is very undesirable for multiple reasons.</p>
<p>Thus we are faced with several new questions. When do we convert and how many files at a time do we convert? After speaking with Karen, we decided to kick-off a process to collect all submissions and convert them as soon as the first user logs in after an assignments submission date and grace periods have passed. I will create a queue-like object to handle this process. It will be responsible for accommodating  any graders that try to mark a submission with a PDF in it before it has been converted, by bumping their job ahead of schedule. Thus waits for conversion of individual submissions may still occur, but they will happen less often. Colour coding the list of submissions may also prevent waits on the conversion process.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.markusproject.org/?feed=rss2&amp;p=1597</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Notes from Accessibility Meeting with Dan</title>
		<link>http://blog.markusproject.org/?p=1590</link>
		<comments>http://blog.markusproject.org/?p=1590#comments</comments>
		<pubDate>Fri, 11 Jun 2010 15:10:11 +0000</pubDate>
		<dc:creator>Evan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.markusproject.org/?p=1590</guid>
		<description><![CDATA[I met with Dan today to discuss his experiences using MarkUs and what suggestions he would have for improving its accessibility.  His first comment was that MarkUs is a mess, enough so that he ended up hacking the databases instead of using the web interface for most things.  However, it&#8217;s encouraging that MarkUs isn&#8217;t the [...]]]></description>
			<content:encoded><![CDATA[<p>I met with Dan today to discuss his experiences using MarkUs and what suggestions he would have for improving its accessibility.  His first comment was that MarkUs is a mess, enough so that he ended up hacking the databases instead of using the web interface for most things.  However, it&#8217;s encouraging that MarkUs isn&#8217;t the grading system that he finds the most frustrating <img src='http://blog.markusproject.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Here are the most important issues that he would like dealt with:</p>
<ul>
<li>Currently, in order to read annotations, you have to mouse over the corresponding line of code.  It would be great to have an alternate format, perhaps available for download by instructors, that inserts the annotations as comments into the code files themselves.  This would make it easy for blind users to review annotations in context.</li>
<li>There is a problem with the groups and graders tab that prevents him from adding, removing or moving students between groups.  Since we are planning to redo this section of MarkUs anyway, that is a perfect opportunity to make sure the new groups page is accessible!  It would also be good to be able to download and upload group lists in a more palatable format, something that begins by listing the students in the group for example.  The format (this may not be the same as the new csv format) that Dan was using had the &#8220;group_####&#8221; name followed by a large list of TAs, before finally eventually getting to the students that are actually in the group, so Dan found it difficult to navigate.</li>
<li>It would be great to give instructors a link to the SVN repositories of groups, and maybe a way to download a file containing all the repositories of every student.  Dan would be much more able to commit a file with comments it to a student&#8217;s repository than he would be able to use our visual annotation tools.</li>
</ul>
<p>It might not be feasible to do everything that would help with accessibility, but if we can do some of these things then maybe we can stop Dan from editing databases!  He is very interested in helping us out and will set up a development environment on his machine so that he can keep track of our progress and make suggestions.</p>
<p>It was good to hear that some issues have already been fixed.  Dan wanted a way to re-upload rubrics after he had downloaded them, and the latest MarkUs supports that.  He also very much wanted to be able to reorder criteria without using a mouse, and that fix is currently on ReviewBoard.  I&#8217;m really happy that someone will be able to immediately benefit from my code!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.markusproject.org/?feed=rss2&amp;p=1590</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Automated Testing Framework</title>
		<link>http://blog.markusproject.org/?p=1561</link>
		<comments>http://blog.markusproject.org/?p=1561#comments</comments>
		<pubDate>Wed, 09 Jun 2010 14:29:36 +0000</pubDate>
		<dc:creator>Benjamin Vialle</dc:creator>
				<category><![CDATA[Automated Testing]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://blog.markusproject.org/?p=1561</guid>
		<description><![CDATA[Talks concerning MarkUs Automated Testing Framework We defined some specifications for the Automated Testing Framework we wanted to implement. First, the framework must add as few dependencies as possible, and not disturb the core of MarkUs (MarkUs must not be overcrowded by other programs for testing student&#8217;s code). The Automated Testing Framework must also support [...]]]></description>
			<content:encoded><![CDATA[<p>Talks concerning MarkUs Automated Testing Framework</p>
<p>We defined some specifications for the Automated Testing Framework we wanted to implement. First, the framework must add as few dependencies as possible, and not disturb the core of MarkUs (MarkUs must not be overcrowded by other programs for testing student&#8217;s code). The Automated Testing Framework must also support as many languages as possible, allowing users to test any language regardless of the languages MarkUs has been implemented in.</p>
<p><strong>Technical side</strong></p>
<p>Today, C, Java, Python and Scheme are used in the Universities where MarkUs is deployed (<a href="http://web.cs.toronto.edu">Department of Computer Science</a>, University of Toronto.<a href="http://www.cs.uwaterloo.ca">School of Computer Science</a>, University of Waterloo.<a href="http://www.ec-nantes.fr">Ecole Centrale de Nantes</a>).<br />
C++ should be easy to implement according to the work done with C.</p>
<p>Diane and I are going to build our framework by using examples from these languages. When we speak of an Automated Testing Framework, the idea is not to build a new Unit Testing Framework. We aim to build an &#8220;abstraction layer&#8221; between MarkUs and most used Unit Testing Frameworks for most used languages in University.</p>
<p>A picture is far better than words :</p>
<div id="attachment_1563" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.markusproject.org/wp-content/uploads/2010/06/Automated_testing.jpeg"><img class="size-medium wp-image-1563" title="Automated_testing" src="http://blog.markusproject.org/wp-content/uploads/2010/06/Automated_testing-300x148.jpg" alt="Automated Testing" width="300" height="148" /></a><p class="wp-caption-text">Automated Testing Framework - version 1</p></div>
<p>MarkUs will call an Ant script written by the TA. This script, and all necessary files for the test environment (student code, data and tests) will be sent to a &#8220;working environment&#8221;. Later, the working environment could be moved to a dedicated server.</p>
<p>MarkUs will ask the Ant script to do many tasks (see <a href="http://ant.apache.org/manual/tasklist.html">Ant tasks</a>), in an asynchronous way. Next, the Ant script, customizable by each instructor, will compile, test and run student&#8217;s code. The Ant script will produce an xml or text output for tests and build. Ant&#8217;s output will be saved in MarkUs and will be filtered for instructors and students.</p>
<p>The student will be able to see the result of the compilation and some test results will be made available by the instructor.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.markusproject.org/?feed=rss2&amp;p=1561</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Accessibility in MarkUs</title>
		<link>http://blog.markusproject.org/?p=1553</link>
		<comments>http://blog.markusproject.org/?p=1553#comments</comments>
		<pubDate>Tue, 01 Jun 2010 13:57:19 +0000</pubDate>
		<dc:creator>Evan</dc:creator>
				<category><![CDATA[Usability]]></category>
		<category><![CDATA[accessibility]]></category>

		<guid isPermaLink="false">http://blog.markusproject.org/?p=1553</guid>
		<description><![CDATA[I have been working on making MarkUs more accessible, particularly to blind users.  To help me with this goal I installed a free open source screen reader, NVDA.  I plan on using other screen readers and technology in the future as well as working with blind users. To begin with, the screen reader is really [...]]]></description>
			<content:encoded><![CDATA[<p>I have been working on making MarkUs more accessible, particularly to blind users.  To help me with this goal I installed a free open source screen reader, <a href="http://www.nvda-project.org/">NVDA</a>.  I plan on using other screen readers and technology in the future as well as working with blind users.</p>
<p>To begin with, the screen reader is really fun, but after navigating for sometime you start to get frustrated with the length of time that it takes to do some things, and the voice gets annoying too.  I can see why people who use screen readers all the time make the voice go so fast, you want to be able to listen to everything as fast as you could read it visually.</p>
<p>After working with MarkUs for a few days in this format, here are some key features for accessibility that I need to work on, and which other developers should keep in mind when working on user interfaces:</p>
<ul>
<li>Everything has to be accessible using the keyboard only!  This is the only input method that we can assume everyone will be able to use.  The biggest problem with this in MarkUs is the accordion menus, they are only accessible through the mouse.  We will have to either get rid of them or make it so that they can be navigated to using the keyboard.  Another problem is dragging and dropping for reordering things, this is really convenient with the mouse and should not be removed, but we should add alternative buttons for keyboard access.</li>
</ul>
<ul>
<li>Focus is a problem, especially with javascript making new boxes and windows appear.  When these things appear the focus remains where it was before, and when you are using only a screen reader it seems like nothing happened.  For things like the upload file window, the box that seems to be in front of everything else on the screen is actually at the end of the document, so you have to tab through a lot of things until you see that something new has actually appeared.  If we could automatically change the focus when something like this appears, that would be a lot of help, and it would probably help everyone else too.</li>
</ul>
<ul>
<li>Every form input element should have a label!  We are pretty good at doing this so far, but there are places here and there where there is text that describes the form element, but is not formatted as a label.  It&#8217;s pretty easy to change this text into a label and it really helps to identify what each element does, otherwise you just hear something like &#8220;checkbox unchecked&#8221; and have to go hunt for the text that labels it.  There are some places where having a label does not make sense for sighted users (like in a table of students, we don&#8217;t want to have a label beside each checkbox) but we can make hidden labels in this case for the benefit of people who don&#8217;t see the visual association.</li>
</ul>
<p>Overall we have already done a good job of making things accessible just by following web conventions well, and if we deal with the points I mentioned above then I think MarkUs will be doing well  accessibility-wise.  The next step is to work with someone who actually requires the use of a screen reader, and I&#8217;m sure I will learn a lot more about what we could do to make things better!</p>
<p>I am using the <a href="https://stanley.cdf.toronto.edu/drproject/csc49x/olm_rails/wiki/Accessibility">wiki page</a> as a way to keep track of progress for myself, look there for more specific details.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.markusproject.org/?feed=rss2&amp;p=1553</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Repository Names Generated by MarkUs</title>
		<link>http://blog.markusproject.org/?p=1535</link>
		<comments>http://blog.markusproject.org/?p=1535#comments</comments>
		<pubDate>Sun, 02 May 2010 00:06:26 +0000</pubDate>
		<dc:creator>Severin</dc:creator>
				<category><![CDATA[Developer Essentials]]></category>
		<category><![CDATA[Missing Features]]></category>
		<category><![CDATA[Groupings]]></category>
		<category><![CDATA[Groups]]></category>
		<category><![CDATA[repository]]></category>

		<guid isPermaLink="false">http://blog.markusproject.org/?p=1535</guid>
		<description><![CDATA[I have been working on ticket #537 again. There is still this old review request this sitting around (see http://review.markusproject.org/r/327/). The idea was that MarkUs should use a student&#8217;s username as the name of the Subversion repository created. This makes remembering student&#8217;s repository names easier. As simple as it sounded initially, there are some delicate [...]]]></description>
			<content:encoded><![CDATA[<p>I have been working on ticket <a title="Ticket 537" href="https://stanley.cdf.toronto.edu/drproject/csc49x/olm_rails/ticket/537" target="_blank">#537</a> again. There is still this old review request this sitting around (see <a href="http://review.markusproject.org/r/327/" target="_blank">http://review.markusproject.org/r/327/</a>). The idea was that MarkUs should use a student&#8217;s username as the name of the Subversion repository created. This makes remembering student&#8217;s repository names easier. As simple as it sounded initially, there are some delicate corner cases to deal with.</p>
<ol>
<li>MarkUs allows instructors to reuse groups from previous assignments. Motivation for this feature was as follows. Students work on assignments alone throughout the term. In this case there is no need for students to form groups for each assignment. Students work alone anyway and once they&#8217;ve logged in a repository will be created for them (alternatively, an instructor has groups already set up so that students have repositories right away). The idea is to have students commit their code into these repositories created by MarkUs. It would be overkill, though, to create a brand new repository (and groups) for each assignment. So there is the possibility for instructors to set things up in a way that repositories are created once. But since the repositories already exist for later assignments we need a way to link those existing repositories with new groups for a new assignment. So one way is to use the &#8220;Use another assignment&#8217;s groups&#8221; feature. So far so good. But what if an instructor wants to have single student groups for A1 (allowing Subversion command line commits only) but wants to allow students to submit via MarkUs web interface for a small lab exercise? Assume for the lab exercise they would be allowed to form groups of two. Problem: If we would allow cloning groups forward for assignments for which web submissions are allowed, MarkUs could potentially link to the repository of A1. So things could end up in a repository called &#8220;c5anthei&#8221; and student c5bloche and c5anthei would be able to submit to it via the web interface. This seems a bit awkward, since the idea is to have repositories named after the student&#8217;s username only when it&#8217;s a single student assignment and it&#8217;s a command line commit only assignment. <strong>Solution:</strong> Cloning groupings forward for assignments won&#8217;t be allowed for assignments which enable MarkUs&#8217; web submission interface.</li>
<li>Using student&#8217;s usernames as the repository name opens up the possibility of repository collisions. I.e. MarkUs could end up trying to create a repository twice with the very same name (just imagine an instructor uploading the very same CSV groups file twice). <strong>Solution:</strong> This will happen for single student and non-web-submit assignments only. If a collision occurs the repository already exists, but that&#8217;s everything the CSV upload tries to achieve (apart from creating the groupings in MarkUs). But since MarkUs won&#8217;t create a repository if it already exists, this is a minor concern. This cannot happen for web submit assignments, because in this case a unique name for the repository will be generated. If a repository collision happens during a CSV upload, MarkUs will notify the instructor about it.</li>
<li>MarkUs &#8220;recycles&#8221; groups. MarkUs internally knows about groupings and groups. A grouping is basically a snapshot of students and their memberships in groups for a particular assignment. In fact, when you create a &#8220;Group&#8221; (in the usual sense) using MarkUs&#8217; web interface a grouping will be created. If a group object does not exist yet, it will be created too. This behaviour might be different for the next grouping, because a group object with the required name might already exist in the database. I.e. if a group with a particular name already exists, MarkUs will try to reuse it. Thus, it&#8217;s theoretically possible to create a group &#8220;Beta 10&#8243; for assignment 1 (say for A1 students work alone and have to commit via command line client). Then for A2, say, the instructor wants to create group &#8220;Beta 10&#8243; again, now allowing web interface submits and groups &gt; 1 members. In that case MarkUs will find group &#8220;Beta 10&#8243; in the database and will try to use this group instead of creating a brand new object. This is a problem if an instructor would pick a group name which is equal to a student&#8217;s username. We&#8217;d end up in a similar situation as described in (1).<strong> Solution: </strong>I think, the most clean solution is to require instructors to use the user&#8217;s username as the group name (and those groups can have one group member at most). Otherwise, an autogenerated repository name will be used.</li>
</ol>
<p>Those three corner cases are the ones I could think of so far. I&#8217;m not sure if we are still missing some. Let me know if there is a problem with my reasoning or if there are other cases I haven&#8217;t thought of, yet. Thanks! I&#8217;ll post an updated review shortly.</p>
<p>Edit: Considering that the repository name will be set in this special way for one member only groups, some of those cases might occur very rarely (if at all). Solution to (3) also means that it should be impossible to produce repository collisions. What do you think?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.markusproject.org/?feed=rss2&amp;p=1535</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Introducing MarkUs 0.7.0!</title>
		<link>http://blog.markusproject.org/?p=1528</link>
		<comments>http://blog.markusproject.org/?p=1528#comments</comments>
		<pubDate>Thu, 29 Apr 2010 03:16:32 +0000</pubDate>
		<dc:creator>m_conley</dc:creator>
				<category><![CDATA[Releases]]></category>
		<category><![CDATA[0.7.0]]></category>
		<category><![CDATA[flexible criterion]]></category>
		<category><![CDATA[flexible marking scheme]]></category>
		<category><![CDATA[marks spreadsheet]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[submissions table]]></category>

		<guid isPermaLink="false">http://blog.markusproject.org/?p=1528</guid>
		<description><![CDATA[Wow, what a great semester!  The team worked really hard, and should be very proud of themselves.  Besides all of the fixed bugs and the newly written tests, the MarkUs team cranked out the following new features: A more stable, polished, and usable notes system.  Notes can now be applied to students, groups, and assignment submissions An [...]]]></description>
			<content:encoded><![CDATA[<p>Wow, what a great semester!  The team worked really hard, and should be very proud of themselves.  Besides all of the fixed bugs and the newly written tests, the MarkUs team cranked out the following new features:</p>
<ul>
<li>A more stable, polished, and usable notes system.  Notes can now be applied to students, groups, and assignment submissions</li>
<li>An alternative, &#8220;flexible&#8221; marking scheme type that allows graders to input arbitrary numerical grades, as opposed to the more strict rubric marking scheme</li>
<li>A new marks spreadsheet feature that allows instructors and graders to input grades from assignments, quizzes, or tests, in an Excel-like web-based spreadsheet.  Grades can also be uploaded and downloaded via CSV file</li>
<li>The table of student submissions can now be bookmarked, and the back-button works correctly</li>
<li>Lots of bugfixes and usability fixes.</li>
</ul>
<p>So what are you waiting for?  <a href="http://www.markusproject.org/download/markus-0.7.0.tar.gz">Get MarkUs 0.7.0 right now!</a></p>
<p><strong>Contributors:</strong></p>
<p>Benjamin Vialle<br />
Christian Jacques<br />
Nelle Varoquaux<br />
Victoria Mui<br />
Joseph Maté<br />
Robert Burke<br />
Bryan Shen<br />
Brian Xu<br />
Fernando Garces<br />
Farah Juma<br />
Severin Gehwolf<br />
Mike Conley</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.markusproject.org/?feed=rss2&amp;p=1528</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
