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 (including in the ‘Windows Subsystem for Linux’ on Windows 10)
  • Debian
  • Raspberry Pi OS  (on a 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 a 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.

Kubernetes

Laravel Forge to roll out a Linux server
Vagrant (vagrantfile boots up a web & DB VM. Problem: hardly any 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.
Jenkins – continuous integration

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_install
Ruby (on or off Rails). Rubygems, bundler, Jeweler
PHP  – Pear
perl – CPAN

Leiningen- for Clojure

Python

https://www.djangoproject.com/

https://www.fullstackpython.com/flask.html

https://www.fullstackpython.com/react.html

JavaScript & the web

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

npm – JavaScript package manager for Node.js modules

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 run-time. Built on Chrome’s V8 JavaScript engine.

JavaScript tools:

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

Advertisement