A new tutorial article by Stefan Bodewig on the OracleTM Technology Network has been brought to my attention by a news article on TSS (thanks Sudhakar Ramakrishan). Describes the new , and tasks that should make ant even better! Will print and read the detail later, but I can’t wait to try some of these out on the EG-140 build (which needs all kinds of scripting tricks to work).
Recent Posts
UmlSketchingTools
Another approach to UML diagramming. This time publicised in Martin Fowler’s Blicki: MF Bliki: UmlSketchingTools. UMLGraph uses a mixture of JavaDoc tags and pic macros to do the hard work. Dr Spinelis argues for his declarative approach in “On the Declarative Specification of Models, IEEE Software, 20(2):94-96, March/April 2003 which is on-line in PDF format at http://www.spinellis.gr/pubs/jrnl/2003-IEEESW-umlgraph/html/article.html. Worth a look I think — as is the author’s (Domidis Spinellis) book Code Reading.
Visual Thought
Jeremy Rayner’s June 15 blog entry directed me to another free drawing tool for UML diagrams. Thanks for the link!
I mentioned violet a couple of days ago. It is really simple, unfortunately it doesn’t have the ability to move classes around once positioned. This makes it a a bit hard to use. It is open source so that could be fixed of course!
Visual Thought is a drawing tool so it has the same advantages as Visio in that it’s not designed for MDA or for code generation, so you can happily use it for agile modelling. As I have some modeling to do over the summer as I rewrite my Client-Server Programming in Java Module, I’ll let you know how it goes!
Rugby Summer Tests: All Home Sides Lose First Outings
BBC Match Reports on
All the home sides lost the first tests, but there’s potential there!
Rugby Summer Tests: England loss 36-3 in first test
BBC Match Report quote:
New Zealand gave coach Graham Henry the perfect start to his reign as England suffered at Dunedin’s “House of Pain.”
I’m gutted that the match kicked off 8.00 am UK time and I forgot to set the Sky+ box! Still Ireland versus South Africa this afternoon and Wales versus Argentina this evening. And the European Cup too! Super Saturday!
Suggestions for teaching Java
Not quite on topic, but well worth considering:
“If I were sitting down to design a course today, I’d put at the top of my paper: What can I do to make them curious and interested? What can I do to get them to where they can be creative? And finally, What can I do to help them feel like THEY kick ass, as opposed to thinking that I kick ass? (too many teachers try to impress the students with how smart the teacher is, but IMHO it’s way better for everyone if the students leave your class impressed with how smart THEY are).”
- Kathy Sierra
Violet UML Tool
Found this simple UML tool Violet on Cay
Horstmann’s web site. Thanks to
Frank Carver
for starting a thread on tools for Java teaching on JavaRanch and
Marlene Miller for suggesting Violet.
Experiments with CVS modules
I have a plan to refactor the lab exercises for EG-140 in readiness for
automated submission and marking. The first step was to put the BlueJ projects
that students upload into a new repository. However I wanted the repository to
be such that all the projects would be within the eg-140-laboratory project
but different subsets could be delivered to various audiences. For example,
students starting a week’s work should be able to get hold of just a single
project as in
cvs -d _cvs\_repository_ co naive-ticket-machine
or a whole week’s exercises as in
cvs -d _cvs\_repository_ co eg-140-week2
Here is my project structure:
eg-140-laboratory
|
+-- week2
|
+-- better-ticket-machine
|
+-- src
|
+-- test
|
+-- bluej
|
+-- files that students upload (a bluej project)
After some reading in Essential CVS and the CVS official manual I discovered how to use modules for this. Here is my module file:
Three different line formats are valid:
key -a aliases...
key [options] directory
key [options] directory files...
Where "options" are composed of:
-i progRun "prog" on "cvs commit" from top-level of module.-o progRun "prog" on "cvs checkout" of module.-e progRun "prog" on "cvs export" of module.-t progRun "prog" on "cvs rtag" of module.-u progRun "prog" on "cvs update" of module.-d dirPlace module in directory "dir" instead of module name.-lTop-level directory only -- do not recurse.
Note: If you change any of the "Run" options above, you'll have to release and
re-checkout any working directories of these modules. And "directory" is a path
to a directory relative to $CVSROOT.
The "-a" option specifies an alias. An alias is interpreted as if everything
on the right of the "-a" had been typed on the command line.
You can encode a module within a module by using the special & character to
interpose another module into the current module. This can be useful for
creating a module that consists of many directories spread out over the entire
source repository.
CVSROOT CVSROOT
The modules file itself
modules CVSROOT modules
EG-140 Laboratory: only available to staff!
eg-140-laboratory eg-140-laboratory
Student projects: incomplete projects that have to be edited. Essentially the BlueJ projects provided with Barnes and Kölling. Week 2: the individual projects
better-ticket-machine eg-140-laboratory/week2/better-ticket-machine/bluej naive-ticket-machine eg-140-laboratory/week2/naive-ticket-machine/bluej
book-exercise eg-140-laboratory/week2/book-exercise/bluej
Week 2: all together
eg-140-week2 -d week2 &naive-ticket-machine &better-ticket-machine
&book-exercise
As you can see, we set up the bluej folder in each sub-project to be a module,
named a they are in Barnes and Kölling. We then have a combined module to
bring together all the projects in a week’s labs (corresponding to a chapter in
the book) as a CVS module eg-140-week2. When we check out this project, it
creates a CVS sandbox named week2 which contains the three projects.
The next extension will be to get the staff-only version with worked solutions and JUnit tests working.
A couple of questions for later
- If we want students to check-in changes to their own repository, how can we do
it? The
CVSROOTwhere the original code comes from would be inappropriate … we effectively want each student to have his/own repository. CVS can probably do this so back to the book! - How can I get the compiled tests into the Bluej folders without breaking version dependencies? [answer might be cvs update — build all — cvs commit?]
Now Reading: Version Control with Subversion
I’m currently reading the free beta chapter of Version Control with Subversion from the forthcoming O’Reilly open book. Given that subversion can apparently use simple web technology, it may have more potential for use in a teaching situation than CVS — provided that the plugins for ant and eclipse are as good as the CVS ones! Watch this log for experiences on CVS versus Subversion.
Worth bookmarking: refcards.com
Refcards.com is a site where you can get handy reference cards for numerous open source tools and technologies. They can be printed double sided onto card (or paper) and fold into a three-column, easy-to-carry quick reference. Brilliant! The site had apparently disappeared for a while but is now back. Its author Andrew Ford has produced a new refcard for Template Toolkit. He has included some cards on Web technologies (very useful as handouts for my students!) from Benjamin Jung. Thanks to Chris Winters for the heads up.