This site contains documentation of my personal software projects: open source projects, research projects, demonstration projects, class libraries, and applications.

Alastair Wyse

Backpropagation Visualization

BackPropagationVisualization is a web application which shows the weights and activation values in a basic neural network, and allows you to observe changes in these values as the network is trained. The neural network learns how to apply basic logic functions AND, OR, and XOR, and hence has just 2 input units and a single output unit, with a single layer of 5 hidden units. The training algorithm uses gradient descent with backpropagation, and the only form of regularization being adjustment of the learning rate... avoiding more advanced techniques like early stopping, momentum, weight decay, etc... to keep the training process and the code simple and easy to follow.

Screen shot Mapping to neural network diagrams Mapping to backpropagation equations

Technologies


Mathematics Modular Framework

Icon

Mathematics Modular Framework (MMF) is a software framework (.NET class library) which allows simple construction and rearrangement of workflows for finance, mathematics, and machine learning applications.

It allows the packaging of a program unit that performs a mathematical function into a 'module', which has strongly defined and typed inputs and outputs. The outputs of modules can then be linked to the inputs of other modules to form a directed graph (known as a 'module graph') which defines the workflow. The hierarchy implicit in the module graph allows the workflow to be executed automatically in order of dependency when processed. Workflows can also be serialized to and from XML documents, and hence written to and read from persistent storage (file, database, network, etc...).

Simple module graph example Linear regression module graph

Technologies


SimpleML

SimpleML provides implementations of basic machine learning algorithms in C#, and serves as a real-world use case of Mathematics Modular Framework. The implementations follow the examples given in the Coursera Machine Learning course instructed by Andrew Ng. In SimpleML, MMF is used to combine these example algorithms into different permutations of machine learning workflows.

Module graph example Logistic regression data

Technologies


Algorithms

Algorithms is a C# project containing implementations of some interesting and/or complex algorithms. It currently includes a sample implementation of the A* graph traversal algorithm, and looks at how different heuristic functions can affect the speed of finding a path through a graph.

Word graph Graph traversal results

Technologies


Method Invocation Remoting

Method Invocation Remoting is a framework which allows methods to be invoked remotely between C# and Java. Method invocations are represented as objects and then serialized and transported from code in the calling language (e.g. Java), before being invoked on the receiving side (e.g. C#). Any return values from invoking the method are then passed back and handled in the calling language. The object model is based around interfaces and an inversion of control / dependency injection design pattern, so users can easily substitute the provided classes which perform serialization and transport with their own classes.

Flow diagram 1 Flow diagram 2 Flow diagram 3

Technologies


More Complex Data Structures

MoreComplexDataStructures is a class library containing a collection of data structures (plus related utility classes) more complex than those found in the standard .NET framework. Includes a binary search tree, min and max heaps, trie, weighted random number generator, and frequency table.

Technologies


Application Metrics

Icon

ApplicationMetrics is a .NET class library which provides simple interfaces and classes to allow capturing metric and instrumentation information from a client application.

Performance Monitor 1 Performance Monitor 2

Technologies


Oracle Permission Generator

Icon

Oracle Permission Generator is a Windows desktop application which helps Oracle database developers and administrators generate scripts to manage privileges and synonyms within an Oracle database.

Function diagram Screen shot

Links

Technologies


Oracle Permission Generator Android

Oracle PermissionGenerator Android is an example of a simple Android-based business application, implementing the MVP (Model View Presenter) design pattern, and demonstrating how an Android application can interact with a .NET WCF webservice via SOAP or REST protocols.

Design 1 Design 2 Design 3

Technologies


Application Logging

ApplicationLogging is a .NET class library which provides simple interfaces and classes to allow logging from a client application. The included interface IApplicationLogger can be injected into client classes, and exposes simple methods for capturing detailed logging information from these client classes. ApplicationLogging includes implementations of IApplicationLogger which allow logging to a file or the console. The ApplicationLogging.Adapters project additionally includes an adapter class to route ApplicationLogging log events to an instance of the log4net ILog interface.

Technologies


AspectJ Demo

AspectJ Demo provides a simple, real-world example of how AspectJ can be used to separate two common cross cutting concerns: logging and instrumentation, in Java projects.

Technologies


CXF Demo

CXF Demo provides a simple, working example of consuming a .NET WCF web service in Java, using Apache CXF.

Technologies