About
Activity
498 followers
Experience & Education
Licenses & Certifications
-
Certified Kubernetes Application Developer (CKAD)
CNCF [Cloud Native Computing Foundation]
Issued ExpiresCredential ID LF-3345yghlk3 -
Publications
-
Basin and Landscape Dynamics (Badlands) model: release 1
See publicationBasin and Landscape Dynamics (Badlands) is a parallel TIN-based landscape evolution model, built to simulate topography development at various space and time scales. The model is capable of simulating hillslope processes (linear & non-linear diffusion), fluvial incision ('modified' Stream Power Law, Transport Capacity Law both for sediment erosion/transport/deposition), spatially and temporally varying geodynamic (horizontal + vertical displacements) and climatic forces which can be used to…
Basin and Landscape Dynamics (Badlands) is a parallel TIN-based landscape evolution model, built to simulate topography development at various space and time scales. The model is capable of simulating hillslope processes (linear & non-linear diffusion), fluvial incision ('modified' Stream Power Law, Transport Capacity Law both for sediment erosion/transport/deposition), spatially and temporally varying geodynamic (horizontal + vertical displacements) and climatic forces which can be used to simulate changes in base level, as well as effects of climate changes or sea-level fluctuations. The model uses gFlex package which is designed to solve elastic plate flexure for applications to Earth's lithosphere.
-
bulkem: an R package that quickly fits mixture models using the EM algorithm on CUDA hardware
See publicationOne disadvantage of the Expectation-Maximization (EM) algorithm is that it requires a lot of computation time to produce a result. This can be burdensome when many models need to be fit. The bulkem R package attempts to address this problem by taking advantage of CUDA hardware.
CUDA is a parallel computing platform available on NVIDIA graphics processing units, widely explored in the computational statistics literature. On the author's hardware, bulkem runs around thirty times faster on…One disadvantage of the Expectation-Maximization (EM) algorithm is that it requires a lot of computation time to produce a result. This can be burdensome when many models need to be fit. The bulkem R package attempts to address this problem by taking advantage of CUDA hardware.
CUDA is a parallel computing platform available on NVIDIA graphics processing units, widely explored in the computational statistics literature. On the author's hardware, bulkem runs around thirty times faster on CUDA hardware than on a CPU when many small datasets need to be fit. For very large datasets (one million observations), CUDA is around 36 times faster.
Using the current market price of CPU vs. GPU compute time, the GPU implementation is slightly more cost-effective for small datasets and twice as cost-effective for large datasets.
To achieve this level of performance even for small datasets, bulkem uses task parallelism and a novel parallel summation algorithm. It is also unique in being the only CUDA implementation of EM fitting for mixture models using the inverse Gaussian distribution. -
A Cost/Performance Study of Modern FPGAs in Cryptanalysis
See publicationExhaustive key search attacks will always be successful against any symmetric cipher given enough time. Many past and present deployments of cryptography are not strong enough to withstand a key search attack against a moderately funded adversary. This thesis compares the cost and performance of FPGA and software-based approaches to key search. This information is useful when assessing the security of cryptographic deployments and ciphers.
Implementations of cipher-independent FPGA key…Exhaustive key search attacks will always be successful against any symmetric cipher given enough time. Many past and present deployments of cryptography are not strong enough to withstand a key search attack against a moderately funded adversary. This thesis compares the cost and performance of FPGA and software-based approaches to key search. This information is useful when assessing the security of cryptographic deployments and ciphers.
Implementations of cipher-independent FPGA key search machines yield performance estimates for DES and RC5. Price/performance comparisons within CPU and FPGA families help to determine what the cheapest, fastest devices are. These results show that past performance estimates were too high and that the EFF DES cracker will cost very little to build using modern FPGAs.
The thesis also describes a framework that estimates FPGA resource consumption for any symmetric cipher. This makes use of data describing the resource consumption of each primitive cipher operation. Ciphers can be classified to determine if they will perform well using hardware or software approaches.
Discussion on regulatory issues within Australia and the United States place the results into perspective and show that restrictions effectively destroy the intent of cryptographic protection.
Courses
-
Advanced Engineering Design Project
ENGG4004
-
Algorithms (Advanced)
COMP3901
-
Bioinformatics
BCA810
-
Computer Design
ELEC4601
-
Computer Graphics (Advanced)
COMP3904
-
Computer Systems (Advanced)
COMP2901
-
Computer and Network Security
ELEC5610
-
Data Mining
STAT828
-
Design and Data Structures (Advanced)
COMP2902
-
Differential Calculus
MATH1001
-
Digital Systems Design
ELEC3601
-
Discrete Mathematics
MATH1004
-
E-Commerce Application Programming
EBUS5001
-
Electronic Devices and Circuits
ELEC3401
-
Engineering Software Requirements
ELEC4604
-
Foundations of Computer Systems
ELEC1101
-
Foundations of Electronic Circuits
ELEC1102
-
Fourier Series & Differential Equations
MATH2005
-
Integral Calculus and Modelling
MATH1003
-
Internet Engineering
ELEC3604
-
Introduction to Computing Systems
ELEC3603
-
Introduction to e-Commerce Systems
EBUS3001
-
Introductory Computer Systems (Advanced)
COMP1902
-
Introductory Electronics
ELEC2401
-
Introductory Programming (Advanced)
COMP1901
-
Languages and Logic (Advanced)
COMP2903
-
Linear Algebra
MATH1002
-
Management for Engineers
ELEC3701
-
Market Research and Forecasting
STAT826
-
Matrix Applications
MATH2002
-
Microcomputer Systems
ELEC2601
-
Modern Computational Statistical Methods
STAT878
-
Object-Oriented Systems (Advanced)
COMP3909
-
Physics 1 (Regular)
PHYS1001
-
Physics 1 (Technological)
PHYS1003
-
Practical Experience
ELEC4702
-
Product Development Project
COMP3205
-
Programming Practice (Advanced)
COMP2904
-
Real Time Computing
ELEC4602
-
Signals and Systems
ELEC2301
-
Software Engineering (Advanced)
COMP3800
-
Software Project (Advanced)
COMP3809
-
Software Project Management
ELEC4704
-
Statistical Graphics
STAT823
-
Statistical Theory
STAT810
-
Statistics Project
STAT825
-
System Analysis and Design
INFO2000
-
Thesis
ELEC4703
-
Time Series
STAT822
-
Vector Calculus and Complex Variables
MATH2001
Projects
-
rnotebook.io
- Present
See projectrnotebook.io provides easy-to-use Jupyter notebooks for the R statistical programming language. It was created to address a common problem in R teaching -- setting up the R environment and its packages consumes a lot of classroom time.
The most common CRAN packages are preloaded and data is saved automatically, so a student need only visit the website and start working. No login is required.
Technical details:
- Each user gets a temporary Docker container. Their data is kept…rnotebook.io provides easy-to-use Jupyter notebooks for the R statistical programming language. It was created to address a common problem in R teaching -- setting up the R environment and its packages consumes a lot of classroom time.
The most common CRAN packages are preloaded and data is saved automatically, so a student need only visit the website and start working. No login is required.
Technical details:
- Each user gets a temporary Docker container. Their data is kept in a persistent volume outside the container.
- Resource usage is controlled through cgroups, AppArmor and Docker.
- User connections are monitored and shut down when idle. The container and user state is restored automatically when the user returns. This allows a small server to handle many users. -
rdrr.io
- Present
See projectrdrr.io is the world's most comprehensive source of R package documentation. It provides searchable, runnable documentation for the CRAN, Bioconductor and GitHub repositories.
Technical details:
- The webserver pulls compiled package docs out of the database and renders them. It runs Python/Django and is optimized for low latency.
- The builder (Python/rq) finds new and updated packages, builds them and indexes them.
- ElasticSearch indexes all of the documentation output…rdrr.io is the world's most comprehensive source of R package documentation. It provides searchable, runnable documentation for the CRAN, Bioconductor and GitHub repositories.
Technical details:
- The webserver pulls compiled package docs out of the database and renders them. It runs Python/Django and is optimized for low latency.
- The builder (Python/rq) finds new and updated packages, builds them and indexes them.
- ElasticSearch indexes all of the documentation output, source code and metadata.
- Users can run R code snippets on the website. Security against malicious code execution is provided with AppArmor and Docker. Almost 80% of the CRAN and Bioconductor packages are available for use with no login required.
- The whole system runs on AWS, GCP and Vultr.
-
pypkg.com
-
See projectpypkg.com aims to be the world's most comprehensive source for Python package documentation. It uses the rdrr.io codebase with modifications to suit Python.
On top of what's available for R with rdrr.io, pypkg also:
- builds consistent API documentation for every package
- runs a custom ZFS file server. This provides low-latency access to any file in any Python package but only costs 15% of the equivalent Amazon EFS deployment.
-
BioLock Standalone
-
The BioLock Standalone is a fingerprint door lock. We developed it back in 2006, well before Touch ID or IoT was a thing. It stores and matches up to 100 users completely independently of a controlling PC or service. It can be configured to connect to a central server, and supports XML-RPC for user replication, management and logging.
Under the hood, it's an embedded Linux device. I crammed the whole Linux distro, embedded web server and config storage into 8MB of Flash. It boots in…The BioLock Standalone is a fingerprint door lock. We developed it back in 2006, well before Touch ID or IoT was a thing. It stores and matches up to 100 users completely independently of a controlling PC or service. It can be configured to connect to a central server, and supports XML-RPC for user replication, management and logging.
Under the hood, it's an embedded Linux device. I crammed the whole Linux distro, embedded web server and config storage into 8MB of Flash. It boots in under 20 seconds.
I wrote Linux kernel modules for the Ethernet (ENC28J60), SPI, Wiegand, RS-485 and touch sensor devices.
Later in the project, device cloning became a credible threat. Later devices have signed, encrypted and watermarked firmware so that leaks can be detected and controlled.
Honors & Awards
-
Dean's List of Excellence in Academic Performance
University of Sydney
Languages
-
English
Native or bilingual proficiency
-
German
Elementary proficiency
Other similar profiles
Explore collaborative articles
We’re unlocking community knowledge in a new way. Experts add insights directly into each article, started with the help of AI.
Explore More