Bookmarks
November 4, 2021
Ian’s projects
November 4, 2021
October 19, 2021
This youtube tutorial covers interfacing with an LCD2004 20x4 LCD Character Display module with an HD44780 controller using only switches and simple components on a breadboard.
January 5, 2021
ckanext-scheming 2.1 now support Datasets with repeating subfields and repeating text fields. Repeating subfieds support custom snippets and validation just like regular fields.
This work is inspired by the excellent ckanext-composite
extension and replaces ckanext-repeating repeating_text
fields.
You must be using CKAN 2.8 or later and a custom IPackageController plugin to index datasets with repeating subfields.
December 29, 2020
November 17, 2020
Hello! Content from the old excess.org site will be migrated here over the next few months. Thank you for stopping by.
August 4, 2017
CKAN’s datastore_search
now comes with format options and is up to 17x faster.
This article covers:
TL;DR:
datastore_search
is faster with no other changes requireddatastore_search
client code to use one of the new records_format=csv
and/or include_total=false
options to make it much, much fasterJune 1, 2015
I had the pleasure of co-hosting CKANCon last week and presented a short talk on ckanapi and ckanext-scheming.
October 3, 2014
For pyrf I needed to take data from a frequency plot, which could be any number of points, and present it as a spectrogram that fills the view size exactly. In the spectrogram I only care about the maximum values that appear in the range of frequencies represented by each pixel.
If I could just divide the number of source bins by an integer factor the solution would be simple:
return np.amax(data.reshape((-1, factor)), axis=1)
But I have to be able to handle any number of source bins and output that to any number of pixels.
Fortunately numpy is awesome.
September 12, 2014
I’ve been working on two new CKAN extensions that I’m really excited about. Since I helped build the custom metadata schema for open.canada.ca/ I’ve never been completely satisfied with the approach we took. These new extensions are the start of a proper solution to the compromises we made.
The new extensions are:
April 4, 2014
What does bar.foo do? - An exploration of Python assignment, objects, attributes and descriptors
This is a talk I gave March 27, 2014 at the Ottawa Python Authors Group meetup.
Follow along with the IPython notebook version if you would like to play with the code examples.
October 4, 2013
After working on PyRF this past year, I was asked to help edit to a paper written by ThinkRF’s Nikhil Adnani for AUTOTESTCON 2013: Wideband 20 GHz RF Digitizer and Python-based Open Application Framework for Test and Measurement.
This paper won the Walter E. Peterson award for Best Paper on Technology.
June 18, 2013
A site I’ve been working on for the past few months has just launched. data.gc.ca “2.0” (update: now open.canada.ca) is a completely rewritten version of the Open Data portal for the Government of Canada.
I worked on the CKAN portion of the site responsible for the data catalogue. CKAN is an open source Data Portal application written in Python. I built a fully bilingual schema with many additional fields for our datasets. I also optimized, fixed and improved many parts of CKAN itself.
Our team built templates based on the Web Experience Toolkit (WET). WET provides building blocks for creating accessible, mobile-friendly web sites. These templates include a map widget for our geospatial datasets and an interactive data table for previews of tabular data.
All of our work is available on the open-data github page and is released under a permissive license.
data.gc.ca might just be the largest, most fully bilingual and most accessible CKAN site anywhere. More to come!
March 14, 2013
This is something I’ve been wanting to write for a while.
Unicode page U+2800 has all the combinations of a 2x4 grid of Braille dots. Braille dots that line up neatly with the ones on all sides in most fonts. We can paint with this!
February 26, 2013
This is the second part of the talk I gave January 24, 2013 at the Ottawa Python Authors Group.
Part One introduces Python iterables and iterators and generators. This part covers the advanced use of generators while building an interactive two-player network game.
February 12, 2013
This is part one of a talk I gave January 24, 2013 at the Ottawa Python Authors Group
Part Two is now also available.
Both parts of this presentation are also available as a single IPython Notebook which you can download and run locally, or view with nbviewer.ipython.org. The complete source is available at https://github.com/wardi/iterables-iterators-generators
March 4, 2010
The development version of Urwid now has support for display and input on a Crystalfontz 635 LCD panel. These are small LCD screens that fit in a PC’s 5¼” drive bay. They have six buttons, four red/green LEDs and a 20x4 character display with an adjustable backlight.
October 20, 2007
Announcing XTerm Colour Chart 2.0 “Old and busted: Colour Cubes. New hotness: Colour Cows” release.
The script has been completely rewritten. It now requires python 2.3 or later for the optparse command-line parsing module.
Many new features have been added to this version: