Software Development

This page is a list of the working practices and tools I have some experience or interest in and am still willing to admit to.

Philosophy & Methods

Computational Science via Agile & Lean, experience of Agile Modelling (AM) & Scrum.

Design, craft and engineering by study, discussion and practice.

White-boards, sticky-notes, sticky-tape, post-cards and magnets.

Operating Systems

OpenVMS on VAX & Alpha

GNU/Linux

  • Ubuntu
  • Raspbian (Debian) on Raspberry Pi 2
  • Google Android

Database

PostgreSQL http://www.postgresql.org/

Languages

Historical

  • Algol 68R
  • VAX/VMS BASIC, Pascal & FORTRAN
  • DCL Digital Command Language
  • Linux Shell : bash (apprentice level)

Current choice of weapons:

Text Formatting

  • Markup languages for documents
  • MarkDown for notes

Graphical

  • UML
  • Graphviz dot

Functional Programming

  • a Lisp: Clojure (because on the JVM, the Java Virtual Machine
    – it might have been Scheme or Common Lisp.)
  • I’m interested in trying a ‘pure’ functional language like Haskell later

Imperative Programming

  • Python
  • Clojure’s dependency on JVM is making me rethink my decision not to use Java

Web

  • HTML5, CSS3 & JavaScript

Tools

Known Unknowns

Things I’ve heard of but don’t feel I understand enough:

Virtualisation & containers:
VMware, Docker.
Virtual Box, VBox?
Ubuntu lxc.

Laravel Forge to roll out a Linux server
Vagrant (vagrantfile boots up a web & DB VM. Problem: hardly and Vagrant lxc boxes.

IT automation (devops)

unix/linux – make

Ansible (playbooks – installs things necessary to run an app) uses YAML
https://www.ansible.com/
docs.ansible.com/ansible/
https://serversforhackers.com/an-ansible-tutorial

Chef, Puppet, Salt
‘git clone’, ‘vagrant up’ then ‘vagrant provision’. Deployment Heroku.
Composer/Bower/init scripts.

Java – Apache Ant with Ivy, Apache Maven, Gradle (default for Android)
used by:Clojure Leiningen
“task runner + artifact management”
“Maven meets Ant, without the pain”
like:
Python easy_instal
Ruby (on or off Rails). Rubygems, bundler, Jeweler
PHP  – Pear
perl – CPAN

Leiningen- for Clojure

JavaScript & the web

GulpJS – like Ant or Maven for Java but JS instead of XML

npm – JavaScript. Included with node.js

AngularJS by Google. MVC framework client presentation
Backbone MVC framework
Elm – functional language to web browser GUI
Ember framework for ambitious web applications
Meteor Webapp framework

JavaScript libraries

NodeJS server-side JavaScript runtime built on Chrome’s V8 JavaScript engine, inc. npm
React user interface library, view layer only
http://blog.andrewray.me/reactjs-for-stupid-people/

JavaScript tools:
Reveal.js HTML5 slides. slides.com, free for public decks
NodeBB forum software
Epoch D3.js data visualisation

Advertisements