RSSAmplifier

Blog

excess.org

Ian’s projects

excess.orgRSS feed ↗10 posts

Latest posts

CKAN Workshop at csv,conf,v9

In September Adrià Mercader and I hosted a CKAN workshop as part of csv,conf,v9 in Bologna, Italy.

CanWIN Presentation at IEEE IHTC 2025

I had the privilege to present a paper on the Canadian Watershed Information Network (CanWIN) an open data portal managed by the University of Manitoba’s Centre for Earth Observation Science at the 2025 IEEE International Humanitarian Technology Conference (IHTC) in Edmonton.

Taming Dynamic Data with Table Designer

CKAN 2.11 introduces Table Designer: form builder and enforced validation for your data This article also appears in the CKAN Blog: Taming Dynamic Data with Table Designer and Table Designer was presented in video form at CKAN Monthly Live 22 Publishing high-quality data is hard. Data schemas, custom rules, and enforced validation help Publishing high-quality data over time is much harder. Data…

Modernizing the UI stack in Python with DearPyGUI - Ottawa Python

The Ottawa Python meetup group had its first hybrid meeting last week. Our host Spiria recorded the presentation and I’ve posted a slightly edited version above. Thank you to Ivan at Spiria for hosting, Ian and Bryan from WiseWithData for presenting and feeding us, and to everyone who came out. It was a great evening.

Homebrew CPU Step 2: Rhythm Game Plan

We’re turning a movie-playing circuit into an actual interactive game. This video lays out what we need to do: Use the HD44780 scrolling feature for the play field Design custom CGRAM characters Build a controller for user input Build a health tracker to halt the circuit on game over Tie it all together with new logic, opcodes and program code

Flood Fill Mazes

In this article we generate mazes using jupyter notebooks, numpy, matplotlib, and the scikit-image flood_fill function. Almost since I could first draw I’ve been fascinated with creating and solving mazes. Graph paper and mechanical pencils were some of my favorite gifts. Recently I’ve rediscovered some of that same childlike excitement by designing a homebrew cpu, and the next game I’m building…

ckanext-scheming 3.0 and Dataset Form Pages

ckanext-scheming is a CKAN extension for customizing dataset, group and organization metadata forms, validation rules and display templates. With ckanext-scheming 3.0 CKAN dataset metadata forms may now be split across multiple pages using start_form_page. Example ckanext-scheming schema: - start_form_page: title: Detailed Info description: These fields improve search and give users important…

Character LCD Video: Star Wars “No Moon” Scene

We crank up the bit rate for a widescreen character LCD video experience using our new 512K flash. Based on the encoder we developed for our Bad Apple on 32K EEPROM video but with our clock running 25x faster, we test the limits of our LCD character display.

CMOS vs TTL: What are logic families?

In this video we replace our clock’s 4011 CMOS Quad-NAND gate IC with a TTL equivalent and discuss compatibility between different logic families.

Milestone 1: LCD Character Display

We connect an HD44780-powered LCD character display to the circuit and play a simple text animation from the program ROM.