RSSAmplifier

Blog

James W. Hanlon

jameswhanlon.comRSS feed ↗29 posts

Latest posts

Personal data and self hosting

Details of how I how self host services to maintain a degree of digital privacy and freedom.

Discrete-event simulation

How to build a simple discrete-event simulation with an example in Rust

Review of heat pump use and performance

A review of one year s worth of data from my home heat pump.

Silicon infrastructure

Thoughts on the requirements of software infrastructure to support chip design.

Building a Python processor

A rationale and strawman for a processor to accelerate dynamic-language workloads.

Cornish Unit House retrofit insulation

Retrofitting insulation in a timber-framed top floor.

From logic gates to a programming language using the Hex architecture

A hardware implementation of a Hex processor with some basic tooling, including a complete compiler for a simple programming language.

Seeding parallel xoroshiro128+ generators

Choosing seeds for parallel xoroshiro128+ generators using fixed offsets produces correlated outputs.

The hardware pseudorandom number generator of the Graphcore IPU

A short summary of an investigation into the statisitical quality and implementation cost in hardware of the xoroshiro128aox PRNG .

Garden workshop

Design and construction of a office and workshop.

Home thermal-imaging survey

Investigation of thermal faults using a thermal-imaging camera.

Reflections on the state of nature

A review of human impacts on nature as a way to reflect and navigate environmental bad news.

Error-correcting codes

Using Hamming Codes for single error correction and double error detection.

Recycled allotment shed

Low-cost construction of a shed out of reclaimed materials.

New chips for machine intelligence

Details of new chips that have been built recently to accelerate machine intelligence workloads.

Testing silicon logic with scan structures

A description of how digital circuits are modified to allow scan testing to be performed.

RGB lightbox stacks

Experimental lighting using high-power LEDs in generous volumes and behind translucent acrylic plastic to create big blocks of colour.

Three-channel high-power LED driver

An LED driver module controlled by a PIC12F1572 and with CAT4101 drivers, deployable in an array via a RS485 interface.

Querying logical paths in a Verilog design

A description of a command-line tool I created for tracing timing paths from a flattened netlist back through the RTL .

Retrofit shed insulation

Retrofitting an existing shed/workshop with insulation to improve its energy efficiency and make it a usable space throughout the year.

Vim command composition

The rules for composing Vim s motions and operators.

Writing synthesizable Verilog

Coding style for RTL design using Verilog / SystemVerilog. Updated 2024.

Notes on testing random number generators

Using empirical statistical tests to determine the quality of PRNGs.

A convolutional neural network from scratch

A C++ implementation of a convoluational neural network building on the explanation in Michael Nielsen s book Neural Networks and Deep Learning .

Reducing memory use in deep neural networks

A review of state-of-the-art techniques used.

Machine learning challenges for computer architecture

Neural networks have become a hot topic in computing and their development is progressing rapidly. They have a long history with some of the first …

The XC Programming Language

An overview of the key features of the language, many of which derive from occam.

The XMOS XMP-64

The XMP -64 is an experimental single-board distributed-memory parallel computer with 512 hardware threads and is programmable with a C-like language. It was developed by …

Scalable abstractions for general-purpose parallel computation

An overview of my PhD thesis.