Toolstack

dSoftArk is focused on realistic software development - and that means a lot of industrial strength tools.

Development

The central tools you need are

  1. A Java installation.
  2. Apache Ant.
  3. Software configuration management: Git recommended
  4. An Integrated Development Environment (IDE): IntelliJ recommmended

The only hard requirements in dSoftArk are Java and that all deliveries must build and execute directly from Ant build files. All provided code will run on Java 1.7 and newer versions.

Furthermore, from 2016 the recommended dSoftArk tools are IntelliJ IDE and Git for SCM. These are the 'safe bets' as the teaching assistents are all using these tools. I am not religious though, and indeed I use Eclipse but is working to test if I should make the jump to IntelliJ. All my courses are managed using Subversion but most of my code is managed by Git. When using Git I miss features from Subversion, when I use Subversion I miss features from Git... You are welcome to use any production tools you like as long as you spend your time learning dSoftArk techniques, not tweaking or reinstalling tools!

Pre-installed virtual machine

If you want to avoid the hazzle of installing a lot of tools, you can download a virtual ubuntu machine that has most tools installed.

To get going, you have to

  1. Download the VM in m31.zip (2 GB) and unzip it in some folder. Unzips to a folder with a VMWare version 8 virtual machine. It is a 64-bit LUbuntu 16.04 LTS Desktop machine with Java 8, Ant, and Eclipse installed. User: csdev; pwd: csau.
  2. Download a VMWare Player (find instructions on www.baerbak.com/vm) (Mac users need VMWare Fusion instead)
  3. ... and once started, browse to the folder and load and start the VM named 'Andromeda' (If Player shows several virtual machines, be sure to pick the one with suffix 'vmx'; the other ones are snapshots that will not do)
  4. Log onto Lubuntu using the credentials above
  5. Want a bigger screen: Drag VMWare windows to the wanted size, and choose 'Fit Guest Now'.

Installing IntelliJ is rather simple, check the tutorial at itfoss, and use method 1, using the PPA. Once installed, browse to folder /home/csdev/.local/share/umake/bin, and execute the jetrains-idea-ce shell script. This will configure IntelliJ, including adding an entry into the systems menu under 'Programming'.

The source code for the mandatory project is not installed. Get the zip from the mandatory exercise home page.

Installing the tool suite.

IDEs are nice and fast development tools but they are really bad when project must constantly move from one platform to another: which is exactly the case for your group and the TA! The TA needs to get hold of your code, execute it, browse and study it. Therefore the execution platform defining the truth about your code is raw Java and Apache Ant, run in the shell. If it works in your IntelliJ but not on the TAs machine when he/she executes 'ant test' then your hand-in has failed.

Java

Java JDK Standard Edition. You will need the 'JDK' to get the compile. Make sure you update your PATH environment variable so you can execute 'java' and 'javac' from a shell. On Ubuntu Linux you can 'sudo apt-get install openjdk-8-jdk' and get everything you want.

Apache Ant

Download it from ant.apache.org. You will need to set environment variables ANT_HOME, and JAVA_HOME, and update your PATH. For Windows these are manual tasks, refer to install. Again, Ubuntu linux is easier, just 'sudo apt-get install ant' and it is working.

For Mac, you can:

Install brew (if you don't already have it):
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Install ant:
$ brew install ant

Screencast production and publication

As a supplement to writing reports, hand-ins may require you to make a screencast: A video of your computer screen while you talk us through the actions you make.

I use BandiCam for recording (Windows). The free version only allows 5 minutes recording (and do NOT tell that you has passed the 5 minute mark), so the around 250 kr license is a good deal.

Hints: On the 'Video' tab, make sure to check "Show mouse cursor" and "Add mouse click effects" as this greatly enhances the TA's ability to view what you have been doing!

I have no experience on the other platforms, but here are some suggestions from the TAs

  1. Mac's QuickTime be used on MacOS.
  2. https://www.screencast-o-matic.com/ should work on Mac and Windows.
  3. 6 of the Best Free Linux Screencasting Software provides some options for Linux

If you need to append several clips into a larger cohesive video ( or cut out the part where it is obvious that you are in deep trouble :-) ), my current choice is avidemux which is free of charge but the user interface is, well, less than intuitive. But it can do the trick of truncating clips, append clips, and recode them into e.g. MP4 and other formats, without watermarks, nag screens, or requiring you to also get a zillion other programs.

To have a small video size for upload/download and to ensure playback use the MP4 format (Video: Mpeg 4 AVC (x264) [and click Configure and change to "Max Consecutive B-frames = 2" on pane "Frame"], and Audio: AAC (lav), Format: MP4 Muxer - in the Avidemux program), as recommende for youtube (search the web for 'advanced encoding settings youtube').

To let the TA view your screencast there are two options

Optional tools

Viewing Powerpoint

I publish my powerpoint slides used during the lectures as links on the schedule. There are several cost-less options to get a viewer for that

  1. Use office-360 that all AU students have for free
  2. Install Apache Open Office where the Impress application should be able to read power point files (I have heard it is not that good at editing it, but this is just for reading it.)
  3. On the Win platform there is a free viewer from Microsoft, find it by searching the web for "PowerPoint Viewer".
  4. You may also run the powerpoint viewer above under Wine on a linux box.

UML Drawing Tools

A simple drawing tool is to write it on a whiteboard/paper, use your phone to take a picture, and paste it into your report! As long as you writing is easy to read, this is perfectly fine.

For more finesse, a UML drawing tool is handy to draw the required class and sequence diagrams for the exercises. I use Microsoft Visio (Win platform). As a CS student you can get Visio for free (and a lot of other MS software). Do not use the built-in stencils, instead I recommend those posted by Pavel Hruby (at www.phruby.com). All UML diagrams in FRS have been made in Visio. You sign up for free Microsoft products by sending an e-mail to microsoft@cs.au.dk - you must provide your CS mail address in the body of the mail message.

Hints and Advice

Running MiniDraw from an IDE

A recurring problem once you get to the last mandatory exercise is getting MiniDraw to show the graphics properly. If it fails it is most probably because of a java.lang.RuntimeException: ImageManager: URL/folder '/resource/' does not exist. error.

It is because MiniDraw expects all graphics files to be located in a folder $classpath$/resource. The Ant script will copy these files in the 'copy-resource' task.

Thus to get graphics and MiniDraw working in your IDE, you will have to ensure two things