<?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>A Concurrent Affair &#187; Graduate School</title>
	<atom:link href="http://www.concurrentaffair.org/category/graduate-school/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.concurrentaffair.org</link>
	<description>a blog about Mathias&#039; work and play.</description>
	<lastBuildDate>Tue, 07 Feb 2012 07:11:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Dissertation and Numbers</title>
		<link>http://www.concurrentaffair.org/2011/09/20/dissertation-and-numbers/</link>
		<comments>http://www.concurrentaffair.org/2011/09/20/dissertation-and-numbers/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 16:52:13 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[Graduate School]]></category>
		<category><![CDATA[Pictures]]></category>
		<category><![CDATA[Thesis]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/?p=2673</guid>
		<description><![CDATA[I received the bound copies of my dissertation yesterday. They look nice, but they&#8217;re kind of thin, for so much work. Including front matter, there are 157 pages. Some more numbers: The source code for my dissertation project has 35,979 &#8230; <a href="http://www.concurrentaffair.org/2011/09/20/dissertation-and-numbers/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I received the bound copies of my dissertation yesterday. They look nice, but they&#8217;re kind of thin, for so much work. Including front matter, there are 157 pages.</p>

<p>Some more numbers: The source code for my dissertation project has 35,979 lines with 136,951 words. At 30 lines per page, that would be 1,200 pages; but source code lines rarely fill the whole width of the page. At 250 words per page, that would be 548 pages; but <tt>wordsInProgramsAreOftenVeryLong</tt>.</p>

<p>It&#8217;s somewhere in between. But it&#8217;s also been written over the course of seven years.</p>

<p><a href="http://www.concurrentaffair.org/wp-content/uploads/2011/09/IMAG13091.jpg"><img src="http://www.concurrentaffair.org/wp-content/uploads/2011/09/IMAG13091.jpg" alt="Bound PhD Thesis Copies" title="Bound PhD Thesis Copies" class="aligncenter size-full wp-image-2776" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2011/09/20/dissertation-and-numbers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perforce Migration</title>
		<link>http://www.concurrentaffair.org/2011/06/12/perforce-migration/</link>
		<comments>http://www.concurrentaffair.org/2011/06/12/perforce-migration/#comments</comments>
		<pubDate>Sun, 12 Jun 2011 07:56:41 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[Graduate School]]></category>
		<category><![CDATA[Ramblings]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/?p=2573</guid>
		<description><![CDATA[Ever since my internship at National Instruments, I&#8217;ve been using Perforce as version control system. Thanks to their evaluation license, which is limited to two users, this has been completely free for me. I&#8217;m glad that I stuck with Perforce, &#8230; <a href="http://www.concurrentaffair.org/2011/06/12/perforce-migration/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ever since my internship at National Instruments, I&#8217;ve been using <a href="http://www.perforce.com/">Perforce</a> as version control system. Thanks to their <a href="http://www.perforce.com/perforce/price.html">evaluation license</a>, which is limited to two users, this has been completely free for me. I&#8217;m glad that I stuck with Perforce, because I am using it at work now too.</p>

<p>While at Rice, I had the Perforce server running on my office machine, a RHEL4 server. I don&#8217;t have a Linux box at home, just two Windows machines. To <a href="ftp://ftp.perforce.com/perforce/tools/p4-migrate/p4migrate.html#towindows">migrate the Perforce server from Linux to Windows</a>, I had to run the <a href="ftp://ftp.perforce.com/perforce/tools/p4-migrate/p4migrate.html">p4migrate</a> script to find name collisions, since Linux is case-sensitive and Windows is case-insensitive. There were a handful of different files that would have mapped to the same file on Windows. Perforce customer service has been great, even for a user of the free version like me. Thanks again!</p>

<p>Running the Perforce server on a Linux machine made it really easy to run scripts as part of Perforce triggers. I just ssh into the same machine and run a script:</p>

<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># See 'p4 help triggers' for more information about triggers.<br />
<br />
Triggers:<br />
&nbsp; &nbsp; run-RiceMBS.to.web change-commit //depot/DP4MBS/RiceMBS.student/*.jar &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-and-update-RiceMBS.sh %changelist% RiceMBS.to.web&quot;<br />
&nbsp; &nbsp; run-RiceMBS.to.202web change-commit //depot/DP4MBS/RiceMBS.student/*.jar &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-and-update-RiceMBS-20.sh %changelist% RiceMBS.to.202web&quot;<br />
&nbsp; &nbsp; run-MSThesis.to.web1 change-commit //depot/Concutest/MSThesis/pdf/thesis.pdf &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% MSThesis.to.web&quot;<br />
&nbsp; &nbsp; run-MSThesis.to.web2 change-commit //depot/Concutest/MSThesis.defense/MSThesis-Ricken.ppt &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% MSThesis.to.web&quot;<br />
&nbsp; &nbsp; run-COMP600MS.to.web change-commit //depot/Concutest/MSThesis.defense/COMP600/COMP600-Ricken.ppt &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% comp600.to.web&quot;<br />
&nbsp; &nbsp; run-COMP600PPPJ2009.to.web change-commit //depot/Concutest/PPPJ2009/presentation/COMP600/COMP600-Ricken-2009-08-24.ppt &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% comp600.to.web&quot;<br />
&nbsp; &nbsp; run-COMP600Mint.to.web change-commit //depot/Mint/COMP600/presentation/COMP600-Ricken-Mint-2010-02-08.* &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% comp600.to.web&quot;<br />
&nbsp; &nbsp; run-RCSC20071004.to.web change-commit //depot/Concutest/MSThesis.defense/RCSC-20071004/... &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% rcsc-20071004.to.web&quot;<br />
&nbsp; &nbsp; run-Concutest-JUnit.to.web2 change-commit //depot/Concutest/concJUnit/jars/*.jar &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% Concutest-JUnit.to.web2&quot;<br />
&nbsp; &nbsp; run-Kooprey.to.web change-commit //depot/DP4RDP/Kooprey.zip &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% Kooprey.to.web&quot;<br />
&nbsp; &nbsp; run-TempCalc.to.TempAssign change-commit //depot/OOPBook/TempCalculator/... &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TempCalc.to.TempAssign&quot;<br />
&nbsp; &nbsp; run-TempCalc.to.SIGCSE06 change-commit //depot/OOPBook/TempCalculator/... &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TempCalc.to.SIGCSE06&quot;<br />
&nbsp; &nbsp; run-SIGCSE06.to.web change-commit //depot/SIGCSE06/TempCalculator/webpage/... &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% SIGCSE06.to.web&quot;<br />
&nbsp; &nbsp; run-TeachJava2004.to.web1 change-commit &quot;//depot/DP4MBS/TeachJava Presentation/*.zip&quot; &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TeachJava2004.to.web&quot;<br />
&nbsp; &nbsp; run-TeachJava2004.to.web2 change-commit &quot;//depot/DP4MBS/TeachJava Presentation/*public.ppt&quot; &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TeachJava2004.to.web&quot;<br />
&nbsp; &nbsp; run-TeachJava2005.to.web1 change-commit &quot;//depot/DP4MBS/TeachJava 2005 Presentation/*&quot; &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TeachJava2005.to.web&quot;<br />
&nbsp; &nbsp; run-TeachJava2005.to.web2 change-commit &quot;//depot/DP4MBS/TeachJava 2005 Presentation/demos/*&quot; &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TeachJava2005.to.web&quot;<br />
&nbsp; &nbsp; run-TempAssign.to.web1 change-commit //depot/OOPBook/TemperatureAssignment/*.html &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TempAssign.to.web&quot;<br />
&nbsp; &nbsp; run-TempAssign.to.web2 change-commit //depot/OOPBook/TemperatureAssignment/handout/... &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TempAssign.to.web&quot;<br />
&nbsp; &nbsp; run-TempAssign.to.web3 change-commit //depot/OOPBook/TemperatureAssignment/solutions/... &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TempAssign.to.web&quot;<br />
&nbsp; &nbsp; run-TempAssign.to.web4 change-commit //depot/OOPBook/TemperatureAssignment/noApplets/TempCalc.pdf &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TempAssign.to.web&quot;<br />
&nbsp; &nbsp; run-VMInitPaper.to.web1 change-commit &quot;//depot/Concutest/vmSyncPoints/Synchronization During Java VM Initialization and Termination.pdf&quot; &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% VMInitPaper.to.web&quot;<br />
&nbsp; &nbsp; run-VMInitPaper.to.web2 change-commit //depot/Concutest/vmSyncPoints/*.log &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% VMInitPaper.to.web&quot;<br />
&nbsp; &nbsp; run-laptjavac.to.web change-commit //depot/Concutest/laptjavac/jars/*.jar &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% laptjavac.to.web&quot;<br />
&nbsp; &nbsp; run-tcSubtypingPaper.to.web change-commit //depot/Concutest/tcSubtyping/tcSubtyping.pdf &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% tcSubtypingPaper.to.web&quot;<br />
&nbsp; &nbsp; run-tcrt.to.web1 change-commit //depot/Concutest/ClassLoader/built/tcrt.jar &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% tcrt.to.web&quot;<br />
&nbsp; &nbsp; run-tcrt.to.web2 change-commit //depot/Concutest/ClassLoader/built/tclib.jar &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% tcrt.to.web&quot;<br />
&nbsp; &nbsp; run-tcrt.to.web3 change-commit //depot/Concutest/ClassLoader/built/tcrt.javadoc.jar &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% tcrt.to.web&quot;<br />
&nbsp; &nbsp; run-tcrt.to.web4 change-commit //depot/Concutest/ClassLoader/built/tclib.javadoc.jar &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% tcrt.to.web&quot;<br />
&nbsp; &nbsp; run-update-tc-javadoc change-commit //depot/Concutest/ClassLoader/built/tc*.javadoc.jar &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /home/mgricken/bin/update-tc-javadoc&quot;<br />
&nbsp; &nbsp; run-subannot-to-xajavac change-commit //depot/Concutest/ClassLoader/built/subannot.jar &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% subannot.to.xajavac&quot;<br />
&nbsp; &nbsp; run-xajavac.to.web change-commit //depot/Concutest/xajavac/jars/*.jar &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-and-update-xajavac.sh %changelist% xajavac.to.web&quot;<br />
&nbsp; &nbsp; run-subannot-to-xajavac-web change-commit //depot/Concutest/ClassLoader/built/subannot.jar &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-and-update-xajavac.sh %changelist% subannot.to.xajavac.web&quot;<br />
&nbsp; &nbsp; run-javacredir.to.web change-commit //depot/Misc/JavaCRedirector/* &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% javacredir.to.web&quot;<br />
&nbsp; &nbsp; run-xajavac.to.ClassLoader change-commit //depot/Concutest/xajavac/jars/xajavac.jar &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% xajavac.to.ClassLoader&quot;<br />
&nbsp; &nbsp; run-ant-xajavac.to.ClassLoader change-commit //depot/Concutest/xajavac/jars/ant-xajavac.jar &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% ant-xajavac.to.ClassLoader&quot;<br />
&nbsp; &nbsp; run-ant-xajavac.to.web change-commit //depot/Concutest/xajavac/jars/ant-xajavac.jar &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% ant-xajavac.to.web&quot;<br />
&nbsp; &nbsp; run-ant-xajavac.to.web change-commit //depot/Concutest/xajavac/xajavac-apache-ant-1.7.0/src/main/org/apache/tools/ant/taskdefs/compilers/Xajavac.java &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% ant-xajavac.to.web&quot;<br />
&nbsp; &nbsp; run-617seminar.to.web change-commit //depot/Concutest/seminar/... &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% 617seminar.to.web&quot;<br />
&nbsp; &nbsp; run-617seminar.to.web2 change-commit //depot/Concutest/seminar/... &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% 617seminar.to.web2&quot;<br />
&nbsp; &nbsp; run-resume.to.superscalar change-commit //web/mgricken.cs/tmp/resume* &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% resume-to-superscalar&quot;<br />
&nbsp; &nbsp; run-resume.to.owlnet change-commit //web/mgricken.cs/tmp/resume* &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% resume-to-owlnet&quot;<br />
&nbsp; &nbsp; run-cv.to.superscalar change-commit //web/mgricken.cs/tmp/cv* &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% resume-to-superscalar&quot;<br />
&nbsp; &nbsp; run-cv.to.owlnet change-commit //web/mgricken.cs/tmp/cv* &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% resume-to-owlnet&quot;<br />
&nbsp; &nbsp; run-references.to.superscalar change-commit //web/mgricken.cs/tmp/references* &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% resume-to-superscalar&quot;<br />
&nbsp; &nbsp; run-references.to.owlnet change-commit //web/mgricken.cs/tmp/references* &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% resume-to-owlnet&quot;<br />
&nbsp; &nbsp; run-concjunitrt-ClassLoader-to-concjunit change-commit //depot/Concutest/ClassLoader/built/concjunitrt.jar &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% concjunitrt-ClassLoader-to-concjunit&quot;<br />
&nbsp; &nbsp; run-SIGCSE2010.to.web change-commit //depot/Concutest/SIGCSE2010/pdf/SIGCSE2010-Ricken-Test-First-Java-Concurrency-for-the-Classroom.pdf &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% SIGCSE2010.to.web&quot;<br />
&nbsp; &nbsp; run-SIGCSE2010.to.web2 change-commit //depot/Concutest/SIGCSE2010/assignment/sigcse2010-java-concurrency.zip &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% SIGCSE2010.to.web&quot;<br />
&nbsp; &nbsp; run-SIGCSE2010.to.web3 change-commit //depot/Concutest/SIGCSE2010/presentation/SIGCSE2010-Ricken-Test-First-Java-Concurrency-for-the-Classroom-2010-03-12.ppt &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% SIGCSE2010.to.web&quot;<br />
&nbsp; &nbsp; run-TWS.to.web change-commit //depot/ThesisWritingSeminar/talk/TWS-Ricken-Concutest-2010-02-25.ppt &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TWS.to.web&quot;<br />
&nbsp; &nbsp; run-MintPurdue.to.web change-commit //depot/Mint/COMP600/purdue/Purdue-Ricken-Mint-2010-03-15.* &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% comp600.mint.purdue.to.web&quot;<br />
&nbsp; &nbsp; run-RiceResearchMixer2010.to.web change-commit //depot/Misc/Rice-grad-undergrad-research-mixer-2010/research-mixer-2010-ricken-poster-34-b.pdf &quot;/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% RiceResearchMixer2010.to.web&quot;</div></td></tr></tbody></table></div>

<p>I haven&#8217;t migrated these scripts yet. I do run Cygwin on my Windows machines, of course, and I could set up sshd on them, but I&#8217;m wondering if that is still the right thing to do.</p>

<p>Furthermore, I really wanted to install the Perforce server on vector, the Pentium 3 machine I got over 10 years ago. Unfortunately, one of the hard drives crapped out again, and it&#8217;s a PATA drive. All drives are PATA drives. I think it may be time to retire vector.</p>

<p>I&#8217;m considering buying a new i7 desktop, which will become scalar, and then making the current scalar, my Core 2 Duo desktop, the new vector. But perhaps I should install Linux on vector then? What distribution? Ubuntu?</p>

<p>Many questions, and of course only a little time on weekends to do it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2011/06/12/perforce-migration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Three Old Men</title>
		<link>http://www.concurrentaffair.org/2011/05/28/three-old-men/</link>
		<comments>http://www.concurrentaffair.org/2011/05/28/three-old-men/#comments</comments>
		<pubDate>Sat, 28 May 2011 05:08:44 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[Graduate School]]></category>
		<category><![CDATA[Pictures]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/?p=2558</guid>
		<description><![CDATA[Three old men, three doctors. I have therefore aged the photo accordingly.]]></description>
			<content:encoded><![CDATA[<p>Three old men, three doctors. I have therefore <a href="http://pixlr.com/o-matic/">aged the photo</a> accordingly.</p>

<p><a href="http://www.concurrentaffair.org/wp-content/uploads/2011/05/o-matic2.jpg"><img src="http://www.concurrentaffair.org/wp-content/uploads/2011/05/o-matic2-1024x768.jpg" alt="Three Doctors" title="Three Doctors" width="640" height="480" class="aligncenter size-large wp-image-2559" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2011/05/28/three-old-men/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upper Bound</title>
		<link>http://www.concurrentaffair.org/2011/05/17/upper-bound/</link>
		<comments>http://www.concurrentaffair.org/2011/05/17/upper-bound/#comments</comments>
		<pubDate>Tue, 17 May 2011 16:40:08 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[Graduate School]]></category>
		<category><![CDATA[Ramblings]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/2011/05/17/upper-bound/</guid>
		<description><![CDATA[According to Nature, about 37,000 PhDs are awarded annually. If there were that many degree recipients during the last 100 years (and there weren&#8217;t), and if all of them are still alive (they aren&#8217;t), then there&#8217;d be 3.7 million people &#8230; <a href="http://www.concurrentaffair.org/2011/05/17/upper-bound/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>According to <em>Nature</em>, about 37,000 PhDs are awarded annually.</p>

<p>If there were that many degree recipients during the last 100 years (and there weren&#8217;t), and if all of them are still alive (they aren&#8217;t), then there&#8217;d be 3.7 million people with a PhD.</p>

<p>As an upper bound, that&#8217;s a quite small number. Or, inversely, we constitute less than about 0.05% of the world population.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2011/05/17/upper-bound/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>All Done</title>
		<link>http://www.concurrentaffair.org/2011/04/21/all-done/</link>
		<comments>http://www.concurrentaffair.org/2011/04/21/all-done/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 15:39:01 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[Graduate School]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/?p=2549</guid>
		<description><![CDATA[My time in graduate school is over. A friend just turned my dissertation in for me. Dr. Mathias Ricken is done. I had a great time. Thanks to everyone who helped.]]></description>
			<content:encoded><![CDATA[<p>My time in graduate school is over. A friend just turned my dissertation in for me. Dr. Mathias Ricken is done.</p>

<p>I had a great time. Thanks to everyone who helped.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2011/04/21/all-done/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visa Interview</title>
		<link>http://www.concurrentaffair.org/2010/05/03/visa-interview/</link>
		<comments>http://www.concurrentaffair.org/2010/05/03/visa-interview/#comments</comments>
		<pubDate>Mon, 03 May 2010 16:34:53 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[Graduate School]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/?p=1822</guid>
		<description><![CDATA[Today, I went to Berlin to renew my student visa. For the last few weeks, I had collected letters, filled out forms, taken passport pictures and paid fees. Compared to five years ago, everything was a bit easier. The main &#8230; <a href="http://www.concurrentaffair.org/2010/05/03/visa-interview/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today, I went to Berlin to renew my student visa. For the last few weeks, I had collected letters, filled out forms, taken passport pictures and paid fees. Compared to five years ago, everything was a bit easier.</p>

<p>The main form was the DS-160, and it was filled out online. All I had to bring was a print-out of a barcode. The problem with the DS-160 web page, though, was that it asked for information like all the dates of when I had entered and left the US during the last five years&#8230; and the website timed out after 30 minutes of inactivity.</p>

<p>Everyone in my department was very kind and helpful, in particular my advisor Corky, my committee member Walid Taha, and the department chair Joe Warren, of course. Today at the embassy, everyone was friendly too.</p>

<p>I was a bit worried, because five years ago, I encountered quite the &#8220;Giftzwerg&#8221; there: She asked me &#8220;Do you have forms X, Y and Z?&#8221; and I said &#8220;Yes.&#8221; She returned my papers and said &#8220;No, you don&#8217;t.&#8221; which really confused me. What she meant to say was &#8220;Do you have ONLY forms X, Y and Z, and nothing else?&#8221; She clearly enjoyed being cryptic.</p>

<p>But today, I encountered no one like that. A young woman checked our documents outside, in the slight Berlin rain, and she noticed two problems: I still had my I-94 form in the pass, and she said that was &#8220;a big no-no&#8221;, but I told her it was a multiple entry I-94 form. She asked me to discuss this with her colleagues inside. Then she was looking for the receipt that I had paid the SEVIS fee. But I told her I had been a student for so long, I didn&#8217;t have to pay the SEVIS fee, I was grandfathered in. I had a print-out from the <a href="http://www.ice.gov/sevis/i901/faq3.htm#_Toc81222041">ICE website</a> too, had I needed it.</p>

<p>Next were a metal detector and an X-ray machine and a couple of Marines checking passports, and then I was in. There were only three visa applicants before me. I handed my passport and a few pieces of paper to a woman behind bullet-proof glass (I think it was the same woman who worked there five years ago; last time, she commented that she had the same birthday as me) and sat down to wait for my interview.</p>

<p>Maybe half an hour later, I was called to another window, and a male consular officer (the only one I&#8217;ve ever dealt with) got me ten-printed. Then he asked me what I was doing in the US (&#8220;I&#8217;m a PhD candidate in computer science and work as a research assistant at Rice University.&#8221;). Next, he asked me a bit about my research and how much work I had left to do. He said he got a PhD too, and that it took him longer than it will take me.</p>

<p>Then he already told me my visa had been approved and that the embassy will process my passport and mail it back. Great! Thanks, everyone, for your help.</p>

<p><b>Update</b></p>

<p>Today, on Wednesday, just a day and a half after my interview, I received my passport with a new visa stamp.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2010/05/03/visa-interview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Short, Non-Technical Talks Are Hard</title>
		<link>http://www.concurrentaffair.org/2010/02/25/short-non-technical-talks-are-hard/</link>
		<comments>http://www.concurrentaffair.org/2010/02/25/short-non-technical-talks-are-hard/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 00:43:20 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[Concurrent Unit Testing]]></category>
		<category><![CDATA[Graduate School]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/?p=1682</guid>
		<description><![CDATA[I just gave my talk Testing Concurrent Programs, A 7-Minute Jargon-Free Introduction to the students of the Thesis Writing Seminar of the School of Engineering here at Rice. It went very well, but I&#8217;ve got to say that this was &#8230; <a href="http://www.concurrentaffair.org/2010/02/25/short-non-technical-talks-are-hard/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I just gave my talk <a href="http://www.concurrentaffair.org/2010/02/25/presentation-testing-concurrent-programs-a-7-minute-jargon-free-introduction/">Testing Concurrent Programs, A 7-Minute Jargon-Free Introduction</a> to the students of the <a href="http://engr.rice.edu/content.aspx?id=2052">Thesis Writing Seminar</a> of the School of Engineering here at Rice. It went very well, but I&#8217;ve got to say that this was probably the most difficult talk I&#8217;ve had to prepare.</p>

<p>It is a 7-minute talk to an audience of smart engineering graduate students who generally are in all kinds of different fields. You can&#8217;t really use jargon or assume too much background knowledge and be too technical, otherwise you might lose your audience. You also can&#8217;t spend too much time explaining concepts. And at eight minutes, you get cut off.</p>

<p>I&#8217;ve really had to cut the number of slides down, gloss over a few things, and unfortunately also ignore some achievements that I think are really cool, like the reachability check of the join graph, which prevents &#8220;lucky&#8221; threads. Because of the extremely short time, practicing the talk pays off a lot, because your explanations just have to work. You don&#8217;t have time to start over.</p>

<p>The talk went very well and received unanimously positive feedback. What people liked the most was that it was virtually jargon-free, that the animations were simple and helpful, and that I was able to simplify the concepts and make them accessible to non-computer scientists without talking down to them.</p>

<p>Again, I finished working on the presentation only an hour before the talk, and my delivery definitely could have benefited from more time to practice. I also still haven&#8217;t figured out how to take a sip of water while giving a talk, but seven minutes fortunately were not long enough to develop a serious case of dry mouth.</p>

<p>Interestingly, Rui Zhang&#8217;s talk about software transactional memory was next, and my talk served as a good introduction.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2010/02/25/short-non-technical-talks-are-hard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pictures from Yesterday&#8217;s Talk</title>
		<link>http://www.concurrentaffair.org/2010/02/09/pictures-from-yesterdays-talk/</link>
		<comments>http://www.concurrentaffair.org/2010/02/09/pictures-from-yesterdays-talk/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 18:49:00 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[Graduate School]]></category>
		<category><![CDATA[Mint]]></category>
		<category><![CDATA[Pictures]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/?p=1578</guid>
		<description><![CDATA[Here are a few pictures from yesterday&#8217;s talk about Mint.]]></description>
			<content:encoded><![CDATA[<p>Here are a few pictures from <a href="http://www.concurrentaffair.org/2010/02/08/presentation-mint-a-multi-stage-extension-of-java/">yesterday&#8217;s talk</a> about <a href="http://www.cs.rice.edu/~mgricken/research/mint/">Mint</a>.</p>

<p><a href="http://www.concurrentaffair.org/wp-content/uploads/2010/02/vlcsnap-49097.jpg"><img src="http://www.concurrentaffair.org/wp-content/uploads/2010/02/vlcsnap-49097-300x168.jpg" alt="Multi-stage Programming" title="Multi-stage Programming" width="300" height="168" class="aligncenter size-medium wp-image-1580" /></a> <a href="http://www.concurrentaffair.org/wp-content/uploads/2010/02/vlcsnap-50839.jpg"><img src="http://www.concurrentaffair.org/wp-content/uploads/2010/02/vlcsnap-50839-300x168.jpg" alt="MSP in Java" title="MSP in Java" width="300" height="168" class="aligncenter size-medium wp-image-1582" /></a></p>

<p><a href="http://www.concurrentaffair.org/wp-content/uploads/2010/02/vlcsnap-51065.jpg"><img src="http://www.concurrentaffair.org/wp-content/uploads/2010/02/vlcsnap-51065-300x168.jpg" alt="MSP in Java 2" title="MSP in Java 2" width="300" height="168" class="aligncenter size-medium wp-image-1581" /></a> <a href="http://www.concurrentaffair.org/wp-content/uploads/2010/02/vlcsnap-51710.jpg"><img src="http://www.concurrentaffair.org/wp-content/uploads/2010/02/vlcsnap-51710-300x168.jpg" alt="Staged power Function" title="Staged power Function" width="300" height="168" class="aligncenter size-medium wp-image-1584" /></a></p>

<p><a href="http://www.concurrentaffair.org/wp-content/uploads/2010/02/vlcsnap-49588.jpg"><img src="http://www.concurrentaffair.org/wp-content/uploads/2010/02/vlcsnap-49588-300x168.jpg" alt="Weak Separability" title="Weak Separability" width="300" height="168" class="aligncenter size-medium wp-image-1583" /></a> <a href="http://www.concurrentaffair.org/wp-content/uploads/2010/02/vlcsnap-50505.jpg"><img src="http://www.concurrentaffair.org/wp-content/uploads/2010/02/vlcsnap-50505-300x168.jpg" alt="Thank You" title="Thank You" width="300" height="168" class="aligncenter size-medium wp-image-1579" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2010/02/09/pictures-from-yesterdays-talk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mint Talk in COMP 600</title>
		<link>http://www.concurrentaffair.org/2010/02/08/mint-talk-in-comp-600/</link>
		<comments>http://www.concurrentaffair.org/2010/02/08/mint-talk-in-comp-600/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 20:39:06 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[Graduate School]]></category>
		<category><![CDATA[Mint]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/?p=1549</guid>
		<description><![CDATA[I just gave the first presentation about Mint in the COMP 600 graduate seminar at Rice. The slides for &#8220;Mint: A Multi-stage Extension of Java&#8221; are available (PowerPoint, PDF, view embedded). This weekend, I was kicking myself why I had &#8230; <a href="http://www.concurrentaffair.org/2010/02/08/mint-talk-in-comp-600/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I just gave the first presentation about Mint in the <a href="http://www.owlnet.rice.edu/~comp600/">COMP 600 graduate seminar</a> at Rice. The slides for <a href="http://www.concurrentaffair.org/2010/02/08/presentation-mint-a-multi-stage-extension-of-java/">&#8220;Mint: A Multi-stage Extension of Java&#8221;</a> are available (<a href="http://www.cs.rice.edu/~mgricken/research/mint/download/COMP600-Ricken-Mint-2010-02-08.ppt">PowerPoint</a>, <a href="http://www.cs.rice.edu/~mgricken/research/mint/download/COMP600-Ricken-Mint-2010-02-08.pdf">PDF</a>, <a href="http://www.cs.rice.edu/~mgricken/view-pdf.shtml?http://www.cs.rice.edu/~mgricken/research/mint/download/COMP600-Ricken-Mint-2010-02-08.ppt">view embedded</a>). This weekend, I was kicking myself why I had volunteered for this talk out of turn, but it was good practice, and I&#8217;m a philanthropist and got the other grad students pizza that way.</p>

<p>Thanks for the opportunity to speak and for the good feedback!</p>

<p>Finally, the Java Mint Blog has a new URL: <a href="http://www.javamint.org/">www.javamint.org</a>. We currently also have some problems with the <a href="http://plresearch.org/do/view/ProgrammingLanguages/JavaMint">implementation URL</a>; for now, you can use <a href="http://mint.concutest.org">http://mint.concutest.org</a> as a resource hub for <a href="http://mint.concutest.org">everything Mint-related</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2010/02/08/mint-talk-in-comp-600/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Photos from My COMP 600 Practice Talk</title>
		<link>http://www.concurrentaffair.org/2009/09/12/photos-from-my-comp-600-practice-talk/</link>
		<comments>http://www.concurrentaffair.org/2009/09/12/photos-from-my-comp-600-practice-talk/#comments</comments>
		<pubDate>Sat, 12 Sep 2009 05:28:08 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[Concurrent Unit Testing]]></category>
		<category><![CDATA[Graduate School]]></category>
		<category><![CDATA[Pictures]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/?p=1037</guid>
		<description><![CDATA[Jennifer Harris was kind enough to video-tape m... <a href="http://www.concurrentaffair.org/2009/09/12/photos-from-my-comp-600-practice-talk/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Jennifer Harris was kind enough to video-tape my <a href="http://www.concurrentaffair.org/2009/08/24/practice-talk-in-comp-600-graduate-seminar/">practice talk</a> and make the recording available to me, and she did so in record time so I could watch myself before I went to Calgary. Thanks, Jennifer!</p>

<p>Here are some frames from the video:</p>


<a href='http://www.concurrentaffair.org/2009/09/12/photos-from-my-comp-600-practice-talk/comp600-mathias-ricken-2009-08-24-02/' title='COMP600-Mathias-Ricken-2009-08-24-02'><img width="150" height="150" src="http://www.concurrentaffair.org/wp-content/uploads/2009/09/COMP600-Mathias-Ricken-2009-08-24-02-150x150.jpg" class="attachment-thumbnail" alt="COMP600-Mathias-Ricken-2009-08-24-02" title="COMP600-Mathias-Ricken-2009-08-24-02" /></a>
<a href='http://www.concurrentaffair.org/2009/09/12/photos-from-my-comp-600-practice-talk/comp600-mathias-ricken-2009-08-24-04/' title='COMP600-Mathias-Ricken-2009-08-24-04'><img width="150" height="150" src="http://www.concurrentaffair.org/wp-content/uploads/2009/09/COMP600-Mathias-Ricken-2009-08-24-04-150x150.jpg" class="attachment-thumbnail" alt="COMP600-Mathias-Ricken-2009-08-24-04" title="COMP600-Mathias-Ricken-2009-08-24-04" /></a>
<a href='http://www.concurrentaffair.org/2009/09/12/photos-from-my-comp-600-practice-talk/comp600-mathias-ricken-2009-08-24-05/' title='COMP600-Mathias-Ricken-2009-08-24-05'><img width="150" height="150" src="http://www.concurrentaffair.org/wp-content/uploads/2009/09/COMP600-Mathias-Ricken-2009-08-24-05-150x150.jpg" class="attachment-thumbnail" alt="COMP600-Mathias-Ricken-2009-08-24-05" title="COMP600-Mathias-Ricken-2009-08-24-05" /></a>
<a href='http://www.concurrentaffair.org/2009/09/12/photos-from-my-comp-600-practice-talk/comp600-mathias-ricken-2009-08-24-06/' title='COMP600-Mathias-Ricken-2009-08-24-06'><img width="150" height="150" src="http://www.concurrentaffair.org/wp-content/uploads/2009/09/COMP600-Mathias-Ricken-2009-08-24-06-150x150.jpg" class="attachment-thumbnail" alt="COMP600-Mathias-Ricken-2009-08-24-06" title="COMP600-Mathias-Ricken-2009-08-24-06" /></a>
<a href='http://www.concurrentaffair.org/2009/09/12/photos-from-my-comp-600-practice-talk/comp600-mathias-ricken-2009-08-24-08/' title='COMP600-Mathias-Ricken-2009-08-24-08'><img width="150" height="150" src="http://www.concurrentaffair.org/wp-content/uploads/2009/09/COMP600-Mathias-Ricken-2009-08-24-08-150x150.jpg" class="attachment-thumbnail" alt="COMP600-Mathias-Ricken-2009-08-24-08" title="COMP600-Mathias-Ricken-2009-08-24-08" /></a>

]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2009/09/12/photos-from-my-comp-600-practice-talk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Back from Calgary</title>
		<link>http://www.concurrentaffair.org/2009/09/04/back-from-calgary/</link>
		<comments>http://www.concurrentaffair.org/2009/09/04/back-from-calgary/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 18:05:13 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[Concurrent Unit Testing]]></category>
		<category><![CDATA[Graduate School]]></category>
		<category><![CDATA[Pictures]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/?p=996</guid>
		<description><![CDATA[So I've been back from Calgary for nearly a wee... <a href="http://www.concurrentaffair.org/2009/09/04/back-from-calgary/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve been back from Calgary for nearly a week now, but I haven&#8217;t had time to write. The last week, and the conference, were pretty intense.</p>

<p>On Wednesday, August 26 I got up bright and early. I had already packed, so instead I could work on integrating  ConcJUnit support into DrJava. I really did work until the last minute: Even at IAH Terminal A I was still making changes. I just figured the demo of ConcJUnit wasn&#8217;t very exciting from a visual perspective, so using it inside DrJava might make it a bit better. I think this was the right idea.</p>

<p>My flight had a short layover in Salt Lake City, Utah. The mountains seemed great from the air. Maybe some day I can spend some more time there. It did look rather dry there though; in fact, even the airport was lacking water fountains, and I couldn&#8217;t refill my water bottle for the flight to Calgary. I got to Calgary around 10 PM (11 PM CDT). I had just used carry-on luggage (although the airplanes were so small that I couldn&#8217;t in fact carry it with me), so getting my stuff didn&#8217;t take long.</p>

<p>The immigration examination was pretty thorough: The officer asked me what I was doing in Calgary (&#8220;I&#8217;ll speak at a conference.&#8221;), what conference it was (&#8220;PPPJ at the University of Calgary.&#8221;), and what kind of a conference it was (&#8220;It&#8217;s a computer science conference.&#8221;). She then asked what my status in the US was (&#8220;I&#8217;m an F1 international student.&#8221;) and &#8220;what I was taking&#8221;. I didn&#8217;t understand that question. I guess she was asking what classes I was taking. I finally responded with &#8220;I&#8217;m a computer scientist.&#8221; Customs, on the other hand, was very easy. I took a taxi to the hotel and then had some late-night McDonald&#8217;s. I hate getting fast food, but I didn&#8217;t want to search for restaurants that were still open at 11 PM.</p>

<p>On both Thursday and Friday I got up at 6:30, used the coffee maker in my room and got dressed, then headed down for the complimentary breakfast, which was pretty good. On Friday, though, it was swamped with Austrian tourists. I pretended not to understand them. Then, around 8:45, I headed to the conference venue. I got back around 9 PM on both days and then continued to work at home.</p>

<p>The conference was pretty small &#8212; it seemed like nearly everyone that was there was also presenting. The highlights for me were definitely <a href="http://www.cs.washington.edu/homes/mernst/">Michael Ernst</a>&#8216;s tutorial on pluggable type-checking, <a href="http://portal.acm.org/citation.cfm?id=1294348">Borys Bradel</a>&#8216;s presentation on trace-based parallelization of recursive Java programs, and the work by <a href="http://www.inf.usi.ch/personal-info?id=1626">Danilo Ansaloni</a> et al, particularly MAJOR.</p>

<p>Danilo&#8217;s MAJOR presentation was just before mine, and it was really an impressive demonstration of aspect-oriented programming for instrumenting programs. He shocked me by saying, as an aside, that in their aspect-oriented version of <a href="http://groups.csail.mit.edu/pag/reCrash/">ReCrash</a> they can also detect uncaught exceptions in all threads. They do this by applying an advice at a join point at the end of the <code class="codecolorer text mac-classic"><span class="text">Thread.run()</span></code> method.</p>

<p>This seems a lot cooler than how I&#8217;m doing it, and I have to admit that I was stunned and that my presentation suffered. My approach, <a href="http://www.cs.rice.edu/~mgricken/research/concutest/concjunit/">ConcJUnit</a>, however, is simpler and uses standard Java, so it does have its merits.</p>

<p>The conference was enjoyable. I met some very smart, interesting and genuinely nice people. In addition to Borys, Danilo and Michael, I want to mention Ben Stephenson, the General Chair of the conference; Ondrej Lhotak, the keynote speaker; and Dave Hughes, chair of the CS department at Brock University and user of DrJava.</p>

<p>I did feel pretty tired afterward, though, and except for dinner downtown on Friday night, I didn&#8217;t have any time to go sightseeing. Consequently, the only pictures I took are from inside my nice hotel room and of a rather gigantic rabbit on the campus of the University of Calgary:</p>


<a href='http://www.concurrentaffair.org/2009/09/04/back-from-calgary/5880_546755445571_3001349_32356841_5996430_n/' title='5880_546755445571_3001349_32356841_5996430_n'><img width="150" height="150" src="http://www.concurrentaffair.org/wp-content/uploads/2009/09/5880_546755445571_3001349_32356841_5996430_n-150x150.jpg" class="attachment-thumbnail" alt="5880_546755445571_3001349_32356841_5996430_n" title="5880_546755445571_3001349_32356841_5996430_n" /></a>
<a href='http://www.concurrentaffair.org/2009/09/04/back-from-calgary/5880_546755440581_3001349_32356840_104359_n/' title='5880_546755440581_3001349_32356840_104359_n'><img width="150" height="150" src="http://www.concurrentaffair.org/wp-content/uploads/2009/09/5880_546755440581_3001349_32356840_104359_n-150x150.jpg" class="attachment-thumbnail" alt="5880_546755440581_3001349_32356840_104359_n" title="5880_546755440581_3001349_32356840_104359_n" /></a>
<a href='http://www.concurrentaffair.org/2009/09/04/back-from-calgary/5880_546745620261_3001349_32356380_4343383_n/' title='5880_546745620261_3001349_32356380_4343383_n'><img width="150" height="150" src="http://www.concurrentaffair.org/wp-content/uploads/2009/09/5880_546745620261_3001349_32356380_4343383_n-150x150.jpg" class="attachment-thumbnail" alt="5880_546745620261_3001349_32356380_4343383_n" title="5880_546745620261_3001349_32356380_4343383_n" /></a>


<p>On Saturday morning, I got up at 4:30 and had coffee, then shared a taxi to the airport with David Hughes. The flight back via Minneapolis, Minn. was uneventful, and again I got a decent amount of work done. There was no free wireless network at either of the airports (at least none that I could get to work), so in Minneapolis I used tethering on my Palm Treo to submit my changes to Perforce and Subversion.</p>

<p>I thank my advisor and co-author Corky Cartwright for letting me attend this conference; the School of Engineering for partially supporting me; and the conference organizers and reviewers for their hard work.</p>

<p>Now I&#8217;m back, and I&#8217;ve spent the last few days improving the ConcJUnit integration in DrJava. As of yesterday, it is now possible to select a JUnit or ConcJUnit jar file and use it instead of the built-in JUnit. If ConcJUnit is used, the Java runtime library can also be processed at the touch of a button.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2009/09/04/back-from-calgary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Practice Talk in COMP 600 Graduate Seminar</title>
		<link>http://www.concurrentaffair.org/2009/08/24/practice-talk-in-comp-600-graduate-seminar/</link>
		<comments>http://www.concurrentaffair.org/2009/08/24/practice-talk-in-comp-600-graduate-seminar/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 18:45:06 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[Concurrent Unit Testing]]></category>
		<category><![CDATA[Graduate School]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/?p=991</guid>
		<description><![CDATA[In our COMP 600 graduate seminar, I gave a prac... <a href="http://www.concurrentaffair.org/2009/08/24/practice-talk-in-comp-600-graduate-seminar/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In our <a href="http://www.owlnet.rice.edu/~comp600/">COMP 600 graduate seminar</a>, I gave a <a href="http://www.concurrentaffair.org/2009/08/24/presentation-concjunit-unit-testing-for-concurrent-programs/">practice talk</a> for my upcoming presentation at <a href="http://pppj09.cpsc.ucalgary.ca/">PPPJ 2009</a>.</p>

<p>I got some valuable feedback about the presentation and the <a href="http://www.cs.rice.edu/~mgricken/research/concutest/download/COMP600-Ricken-2009-08-24.ppt">slides</a>, mainly that the blue background for the source code made it hard to read. Thanks for your help.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2009/08/24/practice-talk-in-comp-600-graduate-seminar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Long Overdue Update</title>
		<link>http://www.concurrentaffair.org/2009/07/27/long-overdue-update/</link>
		<comments>http://www.concurrentaffair.org/2009/07/27/long-overdue-update/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 21:19:09 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[COMP402]]></category>
		<category><![CDATA[Concurrent Unit Testing]]></category>
		<category><![CDATA[DrJava]]></category>
		<category><![CDATA[Graduate School]]></category>
		<category><![CDATA[Mint]]></category>
		<category><![CDATA[Pictures]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/?p=917</guid>
		<description><![CDATA[It is the end of July already. The last time I ... <a href="http://www.concurrentaffair.org/2009/07/27/long-overdue-update/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It is the end of July already. The last time I posted was early in May, and that was really just an alibi post as well. For the last two or three months, I&#8217;ve felt like an update is long overdue, and some of you, my readers, have let me know about this as well. I&#8217;m sorry to have made you wait so long.</p>

<p>Again, I feel like I have to make the comment that I didn&#8217;t write because I worked so much, not because there was nothing to write about. Blogging just has a very low priority for me right now.</p>

<p>Perhaps the biggest story is that Corky and I have published a paper together: <a href="http://www.concurrentaffair.org/2009/06/05/paper-concjunit-unit-testing-for-concurrent-programs/">ConcJUnit: Unit Testing for Concurrent Programs</a> has been accepted at <a href="http://pppj09.cpsc.ucalgary.ca/program.php">PPPJ 2009</a>. The 7th International Conference on the Principles and Practice of Programming in Java will be held in Calgary, Canada at the end of August.</p>

<p>I&#8217;m quite excited about having this paper published, for two reasons: First, despite having worked with Corky for years now, this is actually the first paper we have co-authored. Second, I really only worked on the draft for four days before submitting it. On Monday night, April 20, I was at the Bill Bryson reading downtown, and when I was in line for autographs and checked my email, I saw a message from Corky that the PPPJ publication deadline had been postponed to Friday. He suggested that I submit something on unit testing concurrent programs.</p>

<p>Of course, right at that moment I thought &#8220;Four days? How am I supposed to do that?&#8221; and it seemed like a huge pain. But I decided I could pull a few things out of my thesis, enhance them a bit and give it a shot. Tuesday and Wednesday I experimented and added another feature to ConcJUnit, the concurrent unit testing framework I had developed, and Thursday and Friday I wrote the paper. It was rather short, a little under five pages, but I was happy with it. Friday night I almost got killed by a road-raged driver, but around 2 AM on Saturday night I submitted the paper (the submission deadlines are often on midnight at the international date line, i.e. 6 AM in Houston).</p>

<p>A few weeks passed while the paper was under review, but on June 5 we were notified that the paper had been accepted. I was in Finland at the time, so it was fortunate that the submission deadline of the camera-ready version had been postponed by a few weeks, so I didn&#8217;t have to work in Finland and could enjoy my vacation fully.</p>

<p>The other big story during the last half year was my work on <a href="http://plresearch.org/do/view/ProgrammingLanguages/JavaMint">Mint</a>, a multi-stage extension of Java. This has been really interesting work. I was mostly involved in creating the implementation, creating sample programs and benchmarks, and writing some of the non-mathy parts of the paper. I&#8217;m still not nearly as quick thinking about many of the multi-stage constructs as some of the other researchers, but I&#8217;m getting there.</p>

<p>In the implementation, we started off with the OpenJDK compiler and added brackets (<code class="codecolorer text mac-classic"><span class="text">&lt;| |&gt;</span></code> and <code class="codecolorer text mac-classic"><span class="text">&lt;| { } |&gt;</span></code>), escapes (<code class="codecolorer text mac-classic"><span class="text">`</span></code>) and the <code class="codecolorer text mac-classic"><span class="text">separable</span></code> keyword. Brackets gets turned into a constructor call to a code object, and this code object contains an AST of the source inside the brackets. When a code object is run, we send the AST back into the compiler (at runtime!) and then call the created code.</p>

<p>This project felt a bit like a hack, like self-modifying code. It was great. I got a pretty good tour of the Java compiler too, more than I got to see with my <a href="http://www.cs.rice.edu/~mgricken/research/xajavac/">xajavac</a> experiments. We&#8217;re having some overhead from the compiler, but once that&#8217;s done we can speed up our code by factors of 5 to 20, depending on the benchmark. Explaining all these things in detail is too complicated here, so I&#8217;ll refer the interested reader to our <a href="http://www.concurrentaffair.org/2009/07/14/tr09-02/">technical report</a>.</p>

<p>We first submitted a paper to <a href="http://openresearch.org/wiki/GPCE_2009">GPCE 2009</a>, but it got rejected. Initially I found this quite surprising, since I had so many strong collaborators, but it really came down to the wire with the submission deadline, and our paper still had many rough edges. Now we wrote the aforementioned technical report (which isn&#8217;t quite finished yet, actually, the appendix is still missing), and we submitted an improved version to <a href="http://www.cse.psu.edu/popl/10/">POPL 2010</a>. I dearly hope that the hard work of the last half year will pay off and reward us with a publication. I&#8217;ll probably continue to work on this for a bit, since I will probably be supported by Walid during the next year.</p>

<p>Something cool, although not significant from a professional point of view happened early this summer: Someone from <a href="http://www.vdm-publishing.com/" class="broken_link">VDM Verlag</a>, a German academic publisher, contacted me and asked if I would like to publish my MS thesis as a book. It&#8217;s available on <a href="http://www.amazon.com/Framework-Testing-Concurrent-Programs-Concutest/dp/3639150740/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1248734404&#038;sr=8-1">Amazon</a> and other websites now. I have to stress that this is merely a republication of my MS thesis. There was no additional peer review beyond what my thesis committee did. As such, it should not be viewed as book or monograph, but it&#8217;s cool nonetheless:</p>

<p><a href="http://www.amazon.com/Framework-Testing-Concurrent-Programs-Concutest/dp/3639150740/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1248734404&#038;sr=8-1"><img src="http://www.concurrentaffair.org/wp-content/uploads/2009/07/4965_543226921761_3001349_32194641_5230082_n.jpg" alt="I republished my MS thesis in book form." title="My book, &quot;A Framework for Testing Concurrent Programs: Concutest&quot;" width="604" height="453" class="size-full wp-image-939" /></a>
<img src="http://www.concurrentaffair.org/wp-content/uploads/2009/07/2009-05-29-018.jpg" alt="I republished my MS thesis in book form." title="My book, &quot;A Framework for Testing Concurrent Programs: Concutest&quot;"  width="604" height="453" class="alignnone size-full wp-image-947" /></p>

<p>Nothing much has happened with DrJava since the last post. We made a few bugfixes and improvements, and we&#8217;re planning to push out a new stable version soon.</p>

<p>I&#8217;ll close with some very nice reviews I got in my <a href="http://www.cs.rice.edu/~mgricken/teaching/402/09-spring/">COMP 402</a> teaching evaluation:</p>

<blockquote>Great course that introduces coding on a well establish code base. Completely different type of programming than that of lower level COMP classes. Taught a lot of practical programming techniques.
</blockquote>

<blockquote>The course is good if you want to practice in Java. And it&#8217;s awesome that you can do some real work in the development of a real software. </blockquote>

<blockquote>Knows the code base well and good at helping students without doing the work for them. The few lecturers were interesting and well presented. Good professor for this class.
</blockquote>

<blockquote>This class was more of independent study. The teacher was ready to help on completing a task whenever you asked him to. I learned a lot about production programming as a whole.
</blockquote>

<blockquote>Mathias is a good instructor. He is very helpful when we have some trouble in work. And he always replies email very quickly. He is a nice guy. In addition, he is really great in DrJava. </blockquote>

<p>Thank you for the kind words, and thanks to the School of Engineering, the department chair Joe Warren, and my advisor Corky for giving me this opportunity.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2009/07/27/long-overdue-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java Annotations for Types, Expressions and Multi-Staging</title>
		<link>http://www.concurrentaffair.org/2008/10/24/java-annotations-for-types-expressions-and-multi-staging/</link>
		<comments>http://www.concurrentaffair.org/2008/10/24/java-annotations-for-types-expressions-and-multi-staging/#comments</comments>
		<pubDate>Sat, 25 Oct 2008 02:28:48 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[Graduate School]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/?p=653</guid>
		<description><![CDATA[I gave another presentation in our PLT seminar ... <a href="http://www.concurrentaffair.org/2008/10/24/java-annotations-for-types-expressions-and-multi-staging/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I gave another presentation in our <a href="http://resource-aware.org/twiki/bin/view/Teaching/617">PLT seminar</a> today. The title was <a href="http://www.cs.rice.edu/~mgricken/research/xajavac/download/Java%20Annotations%20for%20Types%20and%20Expressions.ppt">&#8220;Annotations for Types and Expressions&#8221;</a>, but I really should have squeezed multi-stage programming (MSP) in there, because that was really the big benefit I want to achieve from adding annotations to expressions and statements.</p>

<p>I&#8217;ve been feeling a bit under the weather the last couple of days, so it makes me very happy to think the presentation went well. I got some good feedback again, mainly that I should have advertised the MSP part more. Someone also said that I have a &#8220;soothing voice&#8221;, which doesn&#8217;t aid in keeping tired audience members awake. I need to work on my vocal variety.</p>

<p>I spent the rest of the day grading the COMP 202 midterm and doing some maintenance for the course.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2008/10/24/java-annotations-for-types-expressions-and-multi-staging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>And Another Week Gone</title>
		<link>http://www.concurrentaffair.org/2008/09/24/and-another-week-gone/</link>
		<comments>http://www.concurrentaffair.org/2008/09/24/and-another-week-gone/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 14:45:44 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[Graduate School]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[xajavac]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/?p=599</guid>
		<description><![CDATA[The last week was still spent catching up from ... <a href="http://www.concurrentaffair.org/2008/09/24/and-another-week-gone/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The last week was still spent catching up from Ike. I got lucky, I got power back early, but until pretty much today, the area of Houston that I see on my bike commute to work had been without power. There are still lots of uprooted trees that need to be cleared, and the trash bags are piled high along the streets. Traffic lights seem to be working a bit better, and grocery stores are stocked again.</p>

<p>I was supposed to give a presentation right after Ike, but that day Rice was closed, and not only I was affected, so my talk got pushed back by a week. I finally gave it this Monday, on September 22, in the RAP seminar. It was titled <a href="http://www.cs.rice.edu/~mgricken/research/xajavac/download/Java%20Annotations%20for%20Invariant%20Specification.ppt">Java Annotations for Invariant Specification</a> and was about Java annotations in general, how I used them to specify and check program invariants, and how much easier that got once I had extended Java to support subtyping for annotations as well. The talk was generally well received, but many of the comments said I should have given a clear definition of what annotations are at the beginning, not interspersed throughout the lecture. I didn&#8217;t want to make it so syntax-heavy at the beginning, but I guess I was wrong. I also ran out of time towards the end.</p>

<p>After that, I spent the last two days configuring the <a href="http://groups.csail.mit.edu/pag/jsr308/">JSR 308 prototype compiler</a> on my Mac and my PC at home. It&#8217;s not as easy as it sounds, but I finally got it to work, except for the tests. Yesterday I also transferred the changes from <a href="http://www.cs.rice.edu/~mgricken/research/xajavac/">xajavac</a> that allow subtyping for annotations into the JSR 308 compiler. But that&#8217;s still a work in progress.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2008/09/24/and-another-week-gone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A New School Year</title>
		<link>http://www.concurrentaffair.org/2008/08/25/a-new-school-year/</link>
		<comments>http://www.concurrentaffair.org/2008/08/25/a-new-school-year/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 14:24:53 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[COMP202]]></category>
		<category><![CDATA[DrJava]]></category>
		<category><![CDATA[Graduate School]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/?p=559</guid>
		<description><![CDATA[It's 9 AM now, and a new school year has begun.... <a href="http://www.concurrentaffair.org/2008/08/25/a-new-school-year/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s 9 AM now, and a new school year has begun. I don&#8217;t think I have been this nervous in a while.</p>

<p>But there&#8217;s a reason for that: In just an hour, I will be delivering the first lecture of the first course that I am teaching by myself, <a href="http://www.cs.rice.edu/~mgricken/teaching/202/08-fall/">COMP 202 &#8211; Principles of Object-Oriented Programming II</a>.</p>

<p>I&#8217;ve re-worked and re-ordered some of the past lectures, switched out a few assignments, and added a new one, <a href="http://www.cs.rice.edu/~mgricken/teaching/202/08-fall/hw/hangman.re/">Hangman Refactored</a>. It uses the Janus principle and fits in really well after the <a href="http://www.cs.rice.edu/~mgricken/teaching/202/08-fall/lectures/progForChange/">Programming for Change</a> lecture and the <a href="http://www.cs.rice.edu/~mgricken/teaching/202/08-fall/hw/tempcalc">Temperature Calculator</a> assignment. At least that&#8217;s what I think. We&#8217;ll see how it goes.</p>

<p>On Saturday, I went to a wonderful workshop that the School of Engineering set up for TAs. I was on their list because this year I get paid by the School of Engineering. The discussion of different learning styles prompted me to ask the students to fill out a <a href="http://www.engr.ncsu.edu/learningstyles/ilsweb.html">Learning Styles Questionnaire</a>.</p>

<p>During the last three or four days, I also improved the external process facility of DrJava a bit. Clearer error messages are now printed to the external process panes, there are <code class="codecolorer text mac-classic"><span class="text">${and}</span></code>, <code class="codecolorer text mac-classic"><span class="text">${or}</span></code>, <code class="codecolorer text mac-classic"><span class="text">${not}</span></code> and <code class="codecolorer text mac-classic"><span class="text">${neq}</span></code> (not equal) properties, and simple search-and-replace can be done using the <code class="codecolorer text mac-classic"><span class="text">${replace.string;text=&quot;...&quot;;old=&quot;...&quot;;new=&quot;...&quot;}</span></code> property.</p>

<p>I then approached the NextGen and <a href="http://www.cs.rice.edu/~mgricken/research/xajavac/index.shtml">xajavac</a> compiler addons for DrJava again. Fortunately, Dan had told me about <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javac.html#commandlineargfile" class="broken_link">javac argfiles</a>, which elegantly solve the long-command-line problem. However, I discovered that some problems, like keeping together file names with spaces in them, reappear when printing to text files, even though I had solved them for the command line. I got around that by adding quoting options for file properties.</p>

<p>Now we have <a href="http://sourceforge.net/project/showfiles.php?group_id=44253&#038;package_id=288767">two working DrJava Addons</a> (&#8220;djapps&#8221;) that integrate NextGen and xajavac into DrJava.</p>

<p>Okay now, I&#8217;m going to get ready for COMP 202. I hope my Rice ID card will finally let me into the room. Wish me luck.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2008/08/25/a-new-school-year/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is It Safe?</title>
		<link>http://www.concurrentaffair.org/2008/08/08/is-it-safe/</link>
		<comments>http://www.concurrentaffair.org/2008/08/08/is-it-safe/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 17:42:17 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[Graduate School]]></category>
		<category><![CDATA[OOP Book]]></category>
		<category><![CDATA[Ramblings]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[xajavac]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/?p=543</guid>
		<description><![CDATA[For the last couple of days I have been contemp... <a href="http://www.concurrentaffair.org/2008/08/08/is-it-safe/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For the last couple of days I have been contemplating buying another fire-proof security file. I currently have two <a href="http://www.sentrysafe.com/products/productDetail.aspx?s=176">Sentry KS-4100</a> files.</p>

<p>I keep a lot of records: Some are important, like identification documents for three countries, my last will and testament, lease agreements, insurance policies, deeds of ownership, computer backups, and, yes, even tax records. Others hopefully aren&#8217;t so important: Receipts for many of the items I have purchased. My credit card has a nice benefit that extends the manufacturer&#8217;s warranty by up to a year, and to claim that benefit, I need the receipt. Also, in case of a disaster that destroys my property, my renters insurance will want to examine the receipts so I can be reimbursed for the purchase or replacement costs, not just what the lost items were worth at the time.</p>

<p>Unfortunately, I&#8217;m running out of room for these receipts. While looking at buying another KS-4100, I more closely inspected its <a href="http://ulstandardsinfonet.ul.com/scopes/0072.html">UL-72</a> certification. This particular Sentry file is manufactured to keep the interior at or below 350°F (177°C) for a fire that rages at 1550°F (855°C) for half an hour, which is apparently typical for an apartment fire.</p>

<p>As we all know, paper burns at <a href="http://en.wikipedia.org/wiki/Fahrenheit_451">451°F</a> (233°C) and it singes a bit sooner, at about 405°F (207°C), so keeping the interior of the file at or below 350°F keeps paper safe. Sentry also states that &#8220;CDs, DVDs, USB drives and memory sticks&#8221; are protected.</p>

<p>CDs and DVDs are mostly made of polycarbonate, with a melting point 513°F (267°C); jewel cases are mostly polystyrene that melts at 464°F (240°C), so CDs, DVDs and their cases are protected. I didn&#8217;t check the material of memory sticks and USB drives, although I&#8217;m a little worried about my portable hard drives now.</p>

<p>However, I also keep credit cards and ID cards in there, and they are usually made of polyvinyl chloride (PVC)<sup><a href="#footnote-1-543" id="footnote-link-1-543" title="See the footnote.">1</a></sup><sup>,</sup><sup><a href="#footnote-2-543" id="footnote-link-2-543" title="See the footnote.">2</a></sup>, and I organize the receipts in nice colorful transparent polypropylene (PP) draw-string envelopes. PVC products, and therefore nearly all ID and credit cards, melt at a mere 176°F (80°F), and my PP envelopes melt at 338°F (170°F), just below the temperature the safe could reach while working as certified.</p>

<p>I&#8217;m really experiencing mixed up feelings right now, and I am considering switching to paper envelopes for organization, but the PP envelopes are so much more resilient and practical, and the temperature difference from 338°F to 350°F isn&#8217;t that great. That&#8217;s perhaps a risk I&#8217;m willing to take.</p>

<p>With IDs and credit cards, however, that&#8217;s a completely different matter. I&#8217;m fairly certain that in an apartment fire, the inside of the safe could easily reach 176°F and melt my passports, my international driver&#8217;s licenses and ID cards, and my credit cards (oh shucks, I&#8217;ll just get new ones, Washington Mutual willing, but that&#8217;s another rant for another hour).</p>

<p>I <em>could</em> get a data-storage security file like the <a href="http://www.sentrysafe.com/products/productDetail.aspx?s=97&#038;WT.si_n=ShoppingCart&#038;WT.si_p=CartView">Sentry 6720</a>, which keeps the interior at or below 125°F (52°C). Apparently that&#8217;s good enough for floppy disks, and assumeably for hard drives as well, but unless I&#8217;m mistaken, it&#8217;s still too hot for credit and ID cards! And more importantly, it retails more than ten times the cost of the KS-4100.</p>

<p>How do protect your documents? Am I paranoid? Am I a &#8220;filing rat&#8221;, and you simply don&#8217;t have documents to protect? Please send me your ideas, if you like.</p>
<br />Footnotes:<br /><ol class="footnotes"><li id="footnote-1-543">I have since been corrected that credit cards are usually produced from polyvinyl chloride acetate, or PVCA, but I haven&#8217;t found the melting point of that yet.  [<a href="#footnote-link-1-543">back</a>]</li><li id="footnote-2-543">Apparently, the properties of PVCA can vary a lot, but one low figure that was provided to me was 257°F (125°C), which is still too low to be protected in the KS-4100 security file; PVCA cards would probably be safe in the expensive Sentry 6720 media file mentioned below.  [<a href="#footnote-link-2-543">back</a>]</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2008/08/08/is-it-safe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tropical Storm Edouard</title>
		<link>http://www.concurrentaffair.org/2008/08/05/tropical-storm-edouard/</link>
		<comments>http://www.concurrentaffair.org/2008/08/05/tropical-storm-edouard/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 03:35:15 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[Graduate School]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/?p=538</guid>
		<description><![CDATA[Today, Rice, UTH, and many other places in Hous... <a href="http://www.concurrentaffair.org/2008/08/05/tropical-storm-edouard/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today, Rice, UTH, and many other places in Houston were closed in preparation of the tropical storm <a href="http://www.weather.com/newscenter/hurricanecentral/2008/edouard.html?from=hurricane_welcome">Edouard</a>. This was the first storm since <a href="http://www.concurrentaffair.org/2005/09/26/back-to-normal/">Rita</a> that was expected to hit the Houston area directly, although it never reached the sustained winds speeds of a hurricane.</p>

<p>It remained a tropical storm, not a category 1 hurricane, with sustained wind speeds of about 65 mph. A hurricane has sustained wind speeds of 75 mph or more, and Rita made landfall with winds almost twice as fast, at 115 mph. Edouard also veered to the East and hit the coast near High Island, Texas, not in Galveston.</p>

<div id="attachment_541" class="wp-caption alignnone" style="width: 310px"><a href="http://www.concurrentaffair.org/wp-content/uploads/2008/08/tropical-storm-edouard-landfall-2008-08-05.jpg"><img src="http://www.concurrentaffair.org/wp-content/uploads/2008/08/tropical-storm-edouard-landfall-2008-08-05-300x173.jpg" alt="Tropical Storm Edouard Landfall 2008-08-05" title="tropical-storm-edouard-landfall-2008-08-05" width="300" height="173" class="size-medium wp-image-541" /></a><p class="wp-caption-text">Tropical Storm Edouard Landfall 2008-08-05</p></div>

<p>Overall, this storm was far less dangerous than predicted. Today was just a rainy day, and in fact not even the worst, even when compared to regular thunderstorms. There was a lot of media attention, and perhaps more caution than necessary, but that&#8217;s still a good thing. I got the impression that feelings of preparedness and control permeated the public, I did not get a sense of panic (except from some people on the MyFoxHouston.com chat who lived in Pasadena, feared a storm surge and had never learned to swim). It&#8217;s definitely better that people over-prepared for this storm and now have supplies that they didn&#8217;t need. But it&#8217;s still early in the hurricane season, so this &#8220;storm drill&#8221; may have been useful.</p>

<p>I haven&#8217;t written much in the past few days. I spent most of my time reworking the lecture notes for <a href="http://www.cs.rice.edu/~mgricken/teaching/202/08-fall/">COMP 202</a>, the course I&#8217;ll be teaching next semester.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2008/08/05/tropical-storm-edouard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Connexions Version of &#8220;Programming for Change&#8221;</title>
		<link>http://www.concurrentaffair.org/2008/05/13/connexions-version-of-programming-for-change/</link>
		<comments>http://www.concurrentaffair.org/2008/05/13/connexions-version-of-programming-for-change/#comments</comments>
		<pubDate>Tue, 13 May 2008 22:43:25 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[DrJava]]></category>
		<category><![CDATA[Graduate School]]></category>
		<category><![CDATA[OOP Book]]></category>
		<category><![CDATA[Ramblings]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/?p=524</guid>
		<description><![CDATA[Dr. Nguyen had sent me an email with an example... <a href="http://www.concurrentaffair.org/2008/05/13/connexions-version-of-programming-for-change/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dr. Nguyen had sent me an email with <a href="http://cnx.org/content/m12660/latest/">an example</a> of how to include Java applets in a Connexions document. Today I finally  updated the Connexions version of our <a href="http://www.cs.rice.edu/~mgricken/research/tempcalc/index.shtml">&#8220;Programming for Change&#8221; nifty assignment</a> that I had <a href="http://www.concurrentaffair.org/index.php/2007/07/25/connexions/">started to create last year</a>. The Connexions version now also includes applets, and both the original HTML version and the Connexions version now use an actual image of the star-shaped graph of conversion functions instead of ugly ASCII art.</p>

<p>I had to experiment a little bit since neither the example nor Connexion&#8217;s reference described how applets packaged in jar files can be used. It turned out I needed to specify the <em>class name</em> as source of the media, not a file name as described on the <a href="http://cnx.org/eip-help/media">reference page of the <code class="codecolorer text mac-classic"><span class="text">&lt;media&gt;</span></code> tag</a>, and then provide the jar file in a <code class="codecolorer text mac-classic"><span class="text">&lt;param&gt;</span></code> tag.</p>

<div class="codecolorer-container xml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;figure</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;applet1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;media</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;application/x-java-applet&quot;</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">&quot;controller.TempCalcApplet&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;width&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;300&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;height&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;50&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;archive&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;constant.jar&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/media<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;caption<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Example applet for the constant solution.<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/caption<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/figure<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></td></tr></tbody></table></div>

<p>Once those additions were made, I decided the <a href="http://cnx.org/content/m16219/latest/">Connexions Version of &#8220;Programming for Change&#8221;</a> was ready to be published.</p>

<p>In general, Connexions has probably become better. I saw that it now includes a LaTeX importer, although I haven&#8217;t tried it. It&#8217;s still a slow, cumbersome system, though, that makes a writer jump through an exorbitant number of pointless hoops. I&#8217;m going to edit all the lectures for the COMP 202 course that I will teach next semester, and I will make their appearance more consistent, but I&#8217;m not sure I also want to port all of them to Connexions. I might end up being forced to do that, even though I don&#8217;t see the value of having a Connexions port at all: No one in his right mind would want to maintain the documents.</p>

<p>In other news, I fixed a bug in DrJava that would throw a <a href="http://sourceforge.net/tracker/index.php?func=detail&#038;aid=1963420&#038;group_id=44253&#038;atid=438935">NullPointerException when using &#8220;Step Into&#8221;</a> in debug mode and corrected three typos in the QuickStart guide (two found by a user, a third found when I grepped for the misspelled word). I&#8217;m glad I didn&#8217;t make that mistake, although I&#8217;m the only one who has updated the DrJava documentation since it was created almost three years ago.</p>

<p>I also fixed a problem with loading projects and restoring the selection and active document. I don&#8217;t know how that got screwed up again, but I know that I fixed it once already, and after that it was working.</p>

<p>I completed the &#8220;project auto-refresh&#8221; task from COMP 312 that wasn&#8217;t finished; now there is a menu item to invoke the feature on demand, and the black list can be edited in the &#8220;Project Properties&#8221; dialog.</p>

<p>I changed the &#8220;Insert Variable&#8221; dialog so that it maintains the previously selected variable; I believe this makes the dialog less confusing. Finally, I&#8217;ve been in the process of adding a few actions to DrJava that can be invoked from the command line of an external process. The actions are implemented as side effects of the evaluation of the command line: A variable used to denote an action performs the action and then evaluates to the empty string, disappearing from the command line.</p>

<p>So far, the following properties are available:</p>

<ul>
    <li><code class="codecolorer text mac-classic"><span class="text">${action.save.all}</span></code> &mdash; save all source files and the project file</li>
    <li><code class="codecolorer text mac-classic"><span class="text">${action.compile.all}</span></code> &mdash; compile all source files and included external files</li>
    <li><code class="codecolorer text mac-classic"><span class="text">${action.clean}</span></code> &mdash; clean the build directory</li>
    <li><code class="codecolorer text mac-classic"><span class="text">${action.open.file;file=&quot;Foo.java&quot;;line=&quot;100&quot;}</span></code> &mdash; open a file and jump to a certain line, if a line number was specified</li>
    <li><code class="codecolorer text mac-classic"><span class="text">${action.auto.refresh}</span></code> &mdash; perform a project auto-refresh</li>
</ul>

<p>For example, the command line</p>

<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #800000;">${action.clean}</span><span style="color: #800000;">${action.compile.all}</span><span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #800000;">${project.build.dir}</span></div></td></tr></tbody></table></div>

<p>cleans the build directory, then compiles all files, and finally runs <code class="codecolorer text mac-classic"><span class="text">find</span></code> on the build directory, resulting in a listing of all class files.</p>

<p>Oh, and I graduated, but I still, still, still don&#8217;t have my diploma.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2008/05/13/connexions-version-of-programming-for-change/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Graduate Recruiting Day, Associates Interview, and DrJava Stuff</title>
		<link>http://www.concurrentaffair.org/2008/02/22/graduate-recruiting-day-associates-interview-and-drjava-stuff/</link>
		<comments>http://www.concurrentaffair.org/2008/02/22/graduate-recruiting-day-associates-interview-and-drjava-stuff/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 23:44:00 +0000</pubDate>
		<dc:creator>Mathias</dc:creator>
				<category><![CDATA[DrJava]]></category>
		<category><![CDATA[Graduate School]]></category>
		<category><![CDATA[Ramblings]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.concurrentaffair.org/index.php/2008/02/22/graduate-recruiting-day-associates-interview-and-drjava-stuff/</guid>
		<description><![CDATA[Today is graduate recruiting day at the CS depa... <a href="http://www.concurrentaffair.org/2008/02/22/graduate-recruiting-day-associates-interview-and-drjava-stuff/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today is graduate recruiting day at the CS department, so we&#8217;re supposed to mingle as much as possible with the prospective graduate students. At one point, I started talking to one prospective student, and suddenly I had seven or eight listening to me. I hope I didn&#8217;t ruin it for Rice ;-)</p>

<p>That alone would make for a busy day. I also had my second interview with Sid Richardson College&#8217;s Associates Committee. I don&#8217;t know if I&#8217;ve mentioned it before, but I&#8217;m applying to be an associate.</p>

<p>I got renewed licenses for the <a href="http://www.yourkit.com/">YourKit profiler</a> and showed Corky how to use it. We&#8217;re trying to pinpoint the hot spots in the indenting machinery.</p>

<p>Also, as reported before, I&#8217;m working on allowing DrJava to spawn external processes, and let the user insert variables like <code class="codecolorer text mac-classic"><span class="text">${drjava.current.file}</span></code> into the command lines as placeholders.</p>

<p>I&#8217;m trying to compile a list of all the variables I should (initially) include. All the DrJava configuration items and the Java system properties are already available. Here is what I have so far:</p>

<ul>
<li><code class="codecolorer text mac-classic"><span class="text">${drjava.current.file}</span></code></li>
<li><code class="codecolorer text mac-classic"><span class="text">${drjava.working.dir}</span></code><br /></li>
<li><code class="codecolorer text mac-classic"><span class="text">${drjava.all.files}</span></code> &#8212; this one will have to have options to set the separator between the files and to make the files relative to a certain directory. How I&#8217;m going to do that yet, I&#8217;m not quite sure.</li>
<li><code class="codecolorer text mac-classic"><span class="text">${drjava.project.files}</span></code> (see <code class="codecolorer text mac-classic"><span class="text">${drjava.all.files}</span></code>)</li>
<li><code class="codecolorer text mac-classic"><span class="text">${drjava.included.files}</span></code> (see <code class="codecolorer text mac-classic"><span class="text">${drjava.all.files}</span></code>)</li>
<li><code class="codecolorer text mac-classic"><span class="text">${drjava.excluded.files}</span></code> (see <code class="codecolorer text mac-classic"><span class="text">${drjava.all.files}</span></code>)<br /></li>
<li><code class="codecolorer text mac-classic"><span class="text">${drjava.word.under.cursor}</span></code></li>
<li><code class="codecolorer text mac-classic"><span class="text">${drjava.current.line}</span></code></li>
<li><code class="codecolorer text mac-classic"><span class="text">${drjava.current.col}</span></code></li>
<li><code class="codecolorer text mac-classic"><span class="text">${drjava.language.level}</span></code><br /></li>
<li><code class="codecolorer text mac-classic"><span class="text">${project.current.file}</span></code></li>
<li><code class="codecolorer text mac-classic"><span class="text">${project.root.dir}</span></code></li>
<li><code class="codecolorer text mac-classic"><span class="text">${project.build.dir}</span></code></li>
<li><code class="codecolorer text mac-classic"><span class="text">${project.main.document}</span></code></li>
<li><code class="codecolorer text mac-classic"><span class="text">${project.class.path}</span></code><br /></li>
<li><code class="codecolorer text mac-classic"><span class="text">${project.bookmarks}</span></code> &#8212; some form of list of &#8220;file-line number&#8221; pairs, somehow separated. For files, same problem with making them relative to a directory.</li>
<li><code class="codecolorer text mac-classic"><span class="text">${project.compiled.classes}</span></code> &#8212; this one is really the one that needs to be done lazily, and again the problems explained for <code class="codecolorer text mac-classic"><span class="text">${drjava.all.files}</span></code> apply.<br /></li>
<li><code class="codecolorer text mac-classic"><span class="text">${debugger.breakpoints}</span></code> &#8212; see <code class="codecolorer text mac-classic"><span class="text">${project.bookmarks}</span></code><br /></li>
<li><code class="codecolorer text mac-classic"><span class="text">${drjava.version}</span></code> &#8212; some combination of the information in CodeStatus.java and Version.java.</li>
<li><code class="codecolorer text mac-classic"><span class="text">${drjava.revision}</span></code> &#8212; I don&#8217;t think this is available right now, but I would like to actually get the revision, not just the build date.</li>
</ul>

<p>Can anyone think of any additional information that might be useful in external commands or scripts? Please post a comment.</p>

<p>As for the configuration of the separator characters and the directory that paths are relative to, I might have to do something like this: <code class="codecolorer text mac-classic"><span class="text">${drjava.all.files;sep=&quot; &quot;;dir=&quot;${project.root.dir}&quot;}</span></code>. That means that the properties are basically functions, and I&#8217;ll have to do interpretation (ok&#8230; text processing) recursively. I&#8217;m not sure I&#8217;m happy about that.</p>

<p>In a few minutes we&#8217;re leaving for the recruiting dinner. I don&#8217;t know how this day went by so fast, but at least it feels like I&#8217;m trying to help out. I think I was the only grad student mingling with the prospectives at the 4 o&#8217;clock break.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.concurrentaffair.org/2008/02/22/graduate-recruiting-day-associates-interview-and-drjava-stuff/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

