3.4. IDeATe Virtual Cluster Software

The IDeATe equipment desk includes a ‘virtual cluster’ of MacBook Pros with a variety of software installed for course use which are available for checkout from the desk. We recommend that you use one of these computers for all assignments. We will provide support for helping you maintain and run the course materials on the cluster laptops. The complete list of requested software appears below.

You are welcome to use your own computer if you prefer, and we will endeavor to keep the course materials widely compatible. However, we cannot promise support since experience has shown that troubleshooting individual student laptops can become an unreasonable time sink. In particular, some examples were developed and tested under Mac OS X and are not tested in detail under Windows. We encourage Windows users to offer peer support to each other.

All work in this course can be performed using open-source or free software. The following guide may help you in setting up course materials on your personal computer. We welcome questions, but these instructions are offered as a courtesy and we will not be responsible for maintaining your personal system.

3.4.1. Notes on Cluster MacBook Pros for F15

  1. The cluster MacBook Pros can be checked out from the IDeATe equipment desk. The basic specs: 15” Retina MacBook Pro (2014), 2.2 GHz, 16G RAM, 500G SSD, Iris Pro graphics.
  2. They must not leave the Hunt Library building. The IDeATe desk is not open 24/7, so please plan your usage time appropriately.
  3. They have Bootcamp installed and run either OS X 10.10 or Windows 8.
  4. The OS X installation is configured to create user accounts on the local disk. This means that the first time you log onto any given laptop, all your settings will be the default, and none of your personal files will be directly available.
  5. Your Andrew AFS folder (and DFS folder?) can easily be mounted.

File Management Strategies.

  1. Work from your AFS or DFS space.
  2. Bring an external drive or USB stick to carry around your files.
  3. I am working on a strategy for myself which involves backing up my Library/Preferences folder to and from AFS to ease transferring settings from one laptop to another, but I am still developing this.

3.4.2. Installation on Personal OS X Computers

3.4.2.2. MacPorts

Much of the basic open-source software can be installed via MacPorts, an open-source package installation system for OS X. Effective use of MacPorts requires some willingness to use the command line (e.g. Terminal.app).

The MacPorts Quickstart instructions are the best reference for initial installation, but in even shorter form:

  1. Install the current XCode system from Apple if necessary.

  2. Install the base system from the .pkg package file appropriate to your OS version.

  3. Run an initial self-update from the command line:

    sudo port -v selfupdate
    
  4. Install essential packages. Note that this may take some time as it will download many packages and perhaps compile a few:

    sudo port install coreutils git gnuplot minicom py27-numpy py27-pyqt4 py27-pyqwt py27-scikit-learn py27-scipy py27-serial python27 qt4-mac sox
    

    Note that you may see many other packages installed by MacPorts as it automatically installs packages required by the ones you specify.

  5. Install additional packages. Some of these are more relevant to Raspberry Pi users:

    sudo port install Fugu doxygen emacs-app graphviz md5sha1sum nmap opencv +python27 p7zip py27-ipython py27-protobuf py27-sphinx py27-twisted py27-yaml sshfs unison xz eric4
    

3.4.3. Installation on Personal Windows Computers

As a minimum it is recommended to install the following applications. See the list below for links.

  1. Arduino IDE (requires Java)
  2. Fritzing

Other useful applications include:

  1. SourceTree

The closest equivalent to MacPorts is the Cygwin package system. For the Python support the recommended solution is python(x,y).

3.4.4. Cluster Course Software

Following is the table of software requested for the virtual cluster MacBook Pros from Computing Services on behalf of the course.

OS Developer Software Link Notes
Mac OS X Apple Java   optional install from Apple, required for Arduino IDE
Mac OS X Apple XCode https://developer.apple.com/xcode/ optional install from Apple, required for MacPorts
Mac OS X Apple XQuartz   optional install from Apple, essential for Pd
Mac OS X Arduino Arduino IDE 1.6.5 https://www.arduino.cc/download_handler.php?f=/arduino-1.6.5-macosx.zip 1.6 version supports Arduino Due
Mac OS X Audacity Audacity http://audacityteam.org/download/mac  
Mac OS X http://fritzing.org/home/ Fritzing http://fritzing.org/download/  
Mac OS X http://rowanj.github.io/gitx/ GitX-Dev http://builds.phere.net/GitX/development/GitX-dev.dmg replacement for MacPorts GitX
Mac OS X http://www.cadsoftusa.com/ EAGLE (freeware) http://www.cadsoftusa.com/download-eagle/freeware/ the free version supports small 2-layer boards
Mac OS X MacPorts coreutils    
Mac OS X MacPorts doxygen    
Mac OS X MacPorts emacs-app    
Mac OS X MacPorts encfs    
Mac OS X MacPorts Fugu    
Mac OS X MacPorts git    
Mac OS X MacPorts gnuplot    
Mac OS X MacPorts graphviz    
Mac OS X MacPorts guile    
Mac OS X MacPorts MacPorts installer system http://www.macports.org/  
Mac OS X MacPorts md5sha1sum    
Mac OS X MacPorts minicom    
Mac OS X MacPorts nmap    
Mac OS X MacPorts opencv +python27   the +python27 variant flag is required for Python integration
Mac OS X MacPorts p7zip    
Mac OS X MacPorts py27-ipython    
Mac OS X MacPorts py27-numpy    
Mac OS X MacPorts py27-protobuf    
Mac OS X MacPorts py27-pyqt4    
Mac OS X MacPorts py27-scikit-learn    
Mac OS X MacPorts py27-scipy    
Mac OS X MacPorts py27-serial    
Mac OS X MacPorts py27-sphinx    
Mac OS X MacPorts py27-twisted    
Mac OS X MacPorts py27-yaml    
Mac OS X MacPorts python27    
Mac OS X MacPorts qt4-mac    
Mac OS X MacPorts sox    
Mac OS X MacPorts sshfs    
Mac OS X MacPorts unison    
Mac OS X MacPorts xz    
Mac OS X Microsoft Microsoft Remote Desktop   from App Store, useful for interfacing to RPi
Mac OS X Miller Puckette Pure Data (pd) - the ‘vanilla’ version http://msp.ucsd.edu/Software/pd-0.46-6.mac.tar.gz  
Mac OS X pjrc.com Teensyduino https://www.pjrc.com/teensy/td_download.html The Teensyduino package should be installed over a separate, independent copy of the Arduino IDE (currently requires version 1.6.4). It adds support for several Teensy products.
Mac OS X Processing Processing https://processing.org/  
Mac OS X Roger Meier CoolTerm http://freeware.the-meiers.org/CoolTerm_Mac.zip This is a serial port terminal emulator which is useful for controlling interactive Arduino-based projects.
Mac OS X VideoLAN VLC www.videolan.org  
Windows 8.1 Apple, Microsoft Bootcamp with Windows 8.1 http://www.apple.com/support/bootcamp/ the Kinect V2 requires native Windows 8.1 to work
Windows 8.1 Arduino Arduino IDE 1.6.5 https://www.arduino.cc/download_handler.php?f=/arduino-1.6.5-r2-windows.exe 1.6 version supports Arduino Due
Windows 8.1 Autodesk 123D Catch http://www.123dapp.com/catch  
Windows 8.1 Autodesk HSMWorks CAM plugin for SolidWorks http://www.hsmworks.com/ Autodesk is currently offering free academic licenses for the full HWMWorks (not just the publicly free 2.5D HSMXpress).
Windows 8.1 Dassault Systemes SolidWorks http://www.solidworks.com/  
Windows 8.1 http://camotics.org CAMotics/OpenSCAM http://camotics.org/download.html This is a G-Code visualization and simulation tool which is a helpful accessory for any CAM workflow.
Windows 8.1 http://python-xy.github.io/ Python(x,y) http://python-xy.github.io/downloads.html  
Windows 8.1 McNeel and Associates Rhino 5 https://www.rhino3d.com/ Only the Windows version works with Grasshopper.
Windows 8.1 MecSoft RhinoCAM for Rhino 5 http://mecsoft.com/rhinocam-software/  
Windows 8.1   Firefly plugin for Rhino 5 http://www.fireflyexperiments.com  
Windows 8.1   Grasshopper plugin for Rhino 5 http://www.grasshopper3d.com/  

In addition, I made the following requests for the baseline OS X installation:

  1. Python, Processing, and Pd must be entered into the firewall permissions list; students will write networking programs which will trigger the firewall rules, but which they do not have authority to permit.
  2. Shared profile with proper AFS support. The current local profiles means students get a different environment each time they check out a cluster laptop, which is highly inefficient. AFS is preferred to DFS; the DFS support apparently changes file metadata, rendering git nearly unusable.

Errata:

  1. MacPorts package py27-pyqwt was omitted from the request list in F15.
  2. MacPorts package py27-opengl was omitted from the request list in F15.
  3. MacPorts package py27-tkinter was omitted from the request list in F15.
  4. OpenSCAM is now CAMotics.
  5. Python(x,y) moved from Google Code to github.