Other articles

  1. AMReX: Adaptive Mesh Refinement EXascale

    AMReX is an adaptive mesh refinement software framework for building massively parallel block-structured adaptive mesh refinement (AMR) applications.

    It was developed at Lawrence Berkeley National Laboratory (LBNL), National Renewable Energy Laboratory, and Argonne National Laboratory (ANL) as part of the Block-Structured Adaptive Mesh Refinement (AMR) Co-Design Centre in the United …

    read more
  2. NoSQL


    NoSQL is a type of database management system (DBMS) that provides mechanisms for data storage and retrieval by means other than the tabular relation used in relational databases. In practice, NoSQL DBMSs usually complement, rather than replace, relational DBMSs. NoSQL is suitable for storing schema-less data and for web …

    read more
  3. An introduction to SQL

    Getting started with the VM

    Please grab feeg6003_SQL from ngcmbits and install in the normal way. Once you've logged in, please start "DB Browser for SQLite" from the Desktop. This is all you'll really need for this workshop; the database we will be using is pre-loaded. Alternatively, you can install …

    read more
  4. Cactus - a modular code for computation across different architectures

    Introduction to Cactus

    Cactus is an open source, 'problem solving environment' which started life at the Max Planck Institute for Gravitational Physics, before being further developed by collaboration between various institutions. Originally designed for working on numerical relativity problems, cactus has since expanded into a more general tool for scientists …

    read more
  5. PyTorch: GPU-Accelerated Neural Networks in Python

    Neural networks are flexible and diverse tools that can be applied in many situations, such as classification or regression. There are many different structural variations, which may be able to accommodate different inputs and are suited to different problems, and the design of these was historically inspired by the neural …

    read more
  6. VIM Basics

    What is VIM?

    VIM is a text editor with a relatively high learning curve, but many advantages. For example, VIM is ubiquitous - it is installed by default on almost all operating systems - as well as being highly configurable and efficient. It can be used for anything from quick text editing …

    read more
  7. Introduction to Machine Learning with Python



    Machine Learning is a form of Artificial Intelligence that gives computers the ability to learn from sets of data without explicitly programming them. By learning from one set of data, behaviours and patterns can be discovered and used to process new, unseen data. In other areas of computer science …

    read more
  8. Imperative vs. Declarative Programming - Installation Instructions

    In this workshop we will attempt to clarify, by way of comparison, the differences between imperative and declarative programming styles. Moreover, how aspects of both styles can be used to improve programming productivity.

    To aid with this, we will be presenting a number of exercises. Attempting these exercises requires access …

    read more
  9. Introduction to PyOpenCL

    OpenCL Logo


    Open Computing Language is a framework for writing programs that execute across heterogeneous platforms consisting of several elements, of which we're going to working with central processing units (CPUs) and graphics processing units (GPUs). OpenCL offers highly decreased computation times for complex programs by taking advantage of the CPU …

    read more
  10. Jupyter Notebooks


    Jupyter Notebooks are a web based application that enables users to create and share documents containing code, data visualisations and text in different programming languages. The structure of the notebook makes them useful for describing and record keeping of code execution and figures, helping maintain the reproducibility of the …

    read more
  11. Introduction to Emacs


    Emacs is a customisable, self-documenting and fully extensible text editor. Emacs is freely available under the GNU license and is generally distributed with Linux operating systems. It has a Graphical and Terminal mode of operation and therefore makes it particularly appealing for HPC where remote editing of files is …

    read more
  12. Getting Things Done

    Self-organisation for stress-free productivity

    Getting Things Done (GTD) is a method aimed at knowledge-workers that have to

    • balance multiple requests, projects, concerns, and at the same time
    • need some space to be creative

    GTD is based on five basic paradigms:

    • Capture everything that has your attention. Little, big, personal and …
    read more
  13. Metaprogramming in Python


    Metaprogramming is the process of writing code which manipulates existing code, such as functions or classes. It is a simple technique which can eliminate code repetition without introducing inheritance classes or multiple similar functions.

    The Workshop

    The workshop will be taught by Lucy Upton, a first year PhD student …

    read more
  14. Pandas

    Python is a becoming an increasingly common high level programming language, excelling in easy implementation of scientific programming tasks. For statistical analysis however, environments such as R or Stata remain the first choice of most.

    Pandas the Python Data Analysis Library, is an open source python library which allows advance …

    read more
  15. D3 Data-driven Document

    D3.js is a JavaScript library for manipulating documents based on data. It helps you bring data to life using HTML, SVG, and CSS. D3's emphasis on web standards gives you the full capabilities of modern browsers without tying yourself to a proprietary framework, combining powerful visualization components and a …

    read more
  16. Presenting with Reveal.js


    Reveal.js is a framework for easily creating beautiful presentations using HTML/Markdown. Check out the live demo.

    Reveal.js comes with a broad range of features including nested slides, Markdown content, PDF export, speaker notes and a JavaScript API. It's best viewed in a modern browser but fall-backs …

    read more
  17. Introducing Constructive Solid Geometry with OpenSCAD

    OpenSCAD Logo.

    Instructions for using the Virtual Machine

    A link to download the Virtual Machine with OpenSCAD installed is provided here.

    The virtual machine provides a very basic Debian installation with OpenSCAD 2014.3. Log in as the user csg with the password csg. There is no display manager installed, so you …

    read more
  18. HDF5

    Sublime Text 2

    This blog is a tutorial on some of the tools and features of HDF5 files. More specifically, we will cover the built-in terminal commands and some use of h5py, a HDF5 python package. You can download a VirtualBox image with required materials for the exercises from the following link (the …

    read more
  19. Virtualisation with Vagrant


    Exercise Solution
    Real World Demo


    Learning outcomes

    1. Understand different types of virtual machines
    2. Be able to run, provision and stop a vagrant virtual machine.

    Virtual machine recap/overview

    A virtual machine is a software implementation of a machine that executes programs like a physical machine. It essentially …

    read more
  20. Mercurial

    read more
  21. Forking on Bitbucket

    Distributed Version Control 101

    We have touched upon version control when discussing the issue of accessing the blog repository whilst working with Pelican. You cloned the blog repository onto your local disc. The fact that you copy the entire repository when issuing

    hg clone <url of remote repository>

    is the …

    read more